|
135 | 135 | #include "qgsgpsinformationwidget.h" |
136 | 136 | #include "qgsguivectorlayertools.h" |
137 | 137 | #include "qgslabelinggui.h" |
| 138 | +#include "qgslayertreemapcanvasbridge.h" |
138 | 139 | #include "qgslayertreemodel.h" |
139 | 140 | #include "qgslayertreenode.h" |
| 141 | +#include "qgslayertreeregistrybridge.h" |
140 | 142 | #include "qgslayertreeutils.h" |
141 | 143 | #include "qgslayertreeview.h" |
142 | 144 | #include "qgslayertreeviewdefaultactions.h" |
@@ -2226,9 +2228,37 @@ void QgisApp::initLayerTreeView() |
2226 | 2228 |
|
2227 | 2229 | connect( mLayerTreeView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(layerTreeViewDoubleClicked(QModelIndex)) ); |
2228 | 2230 | connect( mLayerTreeView, SIGNAL(currentLayerChanged(QgsMapLayer*)), this, SLOT(activeLayerChanged(QgsMapLayer*)) ); |
| 2231 | + connect( mLayerTreeView->selectionModel(), SIGNAL(currentChanged(QModelIndex,QModelIndex)), this, SLOT(layerTreeViewCurrentChanged(QModelIndex,QModelIndex))); |
2229 | 2232 |
|
2230 | 2233 | mLayerTreeDock->setWidget( mLayerTreeView ); |
2231 | 2234 | addDockWidget( Qt::LeftDockWidgetArea, mLayerTreeDock ); |
| 2235 | + |
| 2236 | + QgsLayerTreeMapCanvasBridge* bridge = new QgsLayerTreeMapCanvasBridge( QgsProject::instance()->layerTreeRoot(), mMapCanvas ); |
| 2237 | + bridge->setParent(this); |
| 2238 | +} |
| 2239 | + |
| 2240 | + |
| 2241 | +void QgisApp::layerTreeViewCurrentChanged(const QModelIndex& current, const QModelIndex& previous) |
| 2242 | +{ |
| 2243 | + Q_UNUSED(previous); |
| 2244 | + |
| 2245 | + // defaults |
| 2246 | + QgsLayerTreeGroup* parentGroup = mLayerTreeView->layerTreeModel()->rootGroup(); |
| 2247 | + int index = 0; |
| 2248 | + |
| 2249 | + if (current.isValid()) |
| 2250 | + { |
| 2251 | + if (QgsLayerTreeNode* currentNode = mLayerTreeView->currentNode()) |
| 2252 | + { |
| 2253 | + QgsLayerTreeNode* parentNode = currentNode->parent(); |
| 2254 | + if (parentNode && parentNode->nodeType() == QgsLayerTreeNode::NodeGroup) |
| 2255 | + parentGroup = static_cast<QgsLayerTreeGroup*>(parentNode); |
| 2256 | + } |
| 2257 | + |
| 2258 | + index = current.row(); |
| 2259 | + } |
| 2260 | + |
| 2261 | + QgsProject::instance()->layerTreeRegistryBridge()->setLayerInsertionPoint(parentGroup, index); |
2232 | 2262 | } |
2233 | 2263 |
|
2234 | 2264 |
|
|
0 commit comments