113113#include " qgscredentialdialog.h"
114114#include " qgscursors.h"
115115#include " qgscustomization.h"
116+ #include " qgscustomlayerorderwidget.h"
116117#include " qgscustomprojectiondialog.h"
117118#include " qgsdatasourceuri.h"
118119#include " qgsdatumtransformdialog.h"
142143#include " qgslayertreeutils.h"
143144#include " qgslayertreeview.h"
144145#include " qgslayertreeviewdefaultactions.h"
145- #include " qgslegend.h"
146- #include " qgslegendgroup.h"
147- #include " qgslayerorder.h"
148- #include " qgslegendlayer.h"
149146#include " qgslogger.h"
150147#include " qgsmapcanvas.h"
151148#include " qgsmaplayer.h"
@@ -556,11 +553,7 @@ QgisApp::QgisApp( QSplashScreen *splash, bool restorePlugins, QWidget * parent,
556553 mMapCanvas ->setFocus ();
557554
558555 mLayerTreeView = new QgsLayerTreeView ( this );
559-
560- // "theMapLegend" used to find this canonical instance later
561- mMapLegend = new QgsLegend ( mMapCanvas , this , " theMapLegend" );
562-
563- mMapLayerOrder = new QgsLayerOrder ( mMapLegend , this , " theMapLayerOrder" );
556+ mLayerTreeView ->setObjectName (" theLayerTreeView" ); // "theLayerTreeView" used to find this canonical instance later
564557
565558 // create undo widget
566559 mUndoWidget = new QgsUndoWidget ( NULL , mMapCanvas );
@@ -574,7 +567,6 @@ QgisApp::QgisApp( QSplashScreen *splash, bool restorePlugins, QWidget * parent,
574567 createCanvasTools ();
575568 mMapCanvas ->freeze ();
576569 initLayerTreeView ();
577- initLegend ();
578570 createOverview ();
579571 createMapTips ();
580572 createDecorations ();
@@ -822,7 +814,6 @@ QgisApp::QgisApp( )
822814 mMapCanvas = new QgsMapCanvas ();
823815 mMapCanvas ->freeze ();
824816 mLayerTreeView = new QgsLayerTreeView ( this );
825- mMapLegend = new QgsLegend ( mMapCanvas );
826817 mUndoWidget = new QgsUndoWidget ( NULL , mMapCanvas );
827818 mInfoBar = new QgsMessageBar ( centralWidget () );
828819 // More tests may need more members to be initialized
@@ -2216,8 +2207,10 @@ QgsMessageBar* QgisApp::messageBar()
22162207
22172208void QgisApp::initLayerTreeView ()
22182209{
2219- mLayerTreeDock = new QDockWidget ( tr ( " Layers NEW" ), this );
2220- mLayerTreeDock ->setObjectName ( " LayersNEW" );
2210+ mLayerTreeView ->setWhatsThis ( tr ( " Map legend that displays all the layers currently on the map canvas. Click on the check box to turn a layer on or off. Double click on a layer in the legend to customize its appearance and set other properties." ) );
2211+
2212+ mLayerTreeDock = new QDockWidget ( tr ( " Layers" ), this );
2213+ mLayerTreeDock ->setObjectName ( " Layers" );
22212214 mLayerTreeDock ->setAllowedAreas ( Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea );
22222215
22232216 QgsLayerTreeModel* model = new QgsLayerTreeModel ( QgsProject::instance ()->layerTreeRoot (), this );
@@ -2233,8 +2226,28 @@ void QgisApp::initLayerTreeView()
22332226 mLayerTreeDock ->setWidget ( mLayerTreeView );
22342227 addDockWidget ( Qt::LeftDockWidgetArea, mLayerTreeDock );
22352228
2236- mLayerTreeCanvasBridge = new QgsLayerTreeMapCanvasBridge ( QgsProject::instance ()->layerTreeRoot (), mMapCanvas );
2237- mLayerTreeCanvasBridge ->setParent (this );
2229+ mLayerTreeCanvasBridge = new QgsLayerTreeMapCanvasBridge ( QgsProject::instance ()->layerTreeRoot (), mMapCanvas , this );
2230+
2231+ mMapLayerOrder = new QgsCustomLayerOrderWidget (mLayerTreeCanvasBridge , this );
2232+ mMapLayerOrder ->setObjectName (" theMapLayerOrder" );
2233+
2234+ QCheckBox *orderCb = new QCheckBox ( tr ( " Control rendering order" ) );
2235+ orderCb->setChecked ( false );
2236+
2237+ mMapLayerOrder ->setWhatsThis ( tr ( " Map layer list that displays all layers in drawing order." ) );
2238+ mLayerOrderDock = new QDockWidget ( tr ( " Layer order" ), this );
2239+ mLayerOrderDock ->setObjectName ( " LayerOrder" );
2240+ mLayerOrderDock ->setAllowedAreas ( Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea );
2241+
2242+ QWidget* w = new QWidget ( this );
2243+ QVBoxLayout* l = new QVBoxLayout;
2244+ l->setMargin ( 0 );
2245+ l->addWidget ( mMapLayerOrder );
2246+ l->addWidget ( orderCb );
2247+ w->setLayout ( l );
2248+ mLayerOrderDock ->setWidget ( w );
2249+ addDockWidget ( Qt::LeftDockWidgetArea, mLayerOrderDock );
2250+ mLayerOrderDock ->hide ();
22382251}
22392252
22402253
@@ -2262,51 +2275,6 @@ void QgisApp::layerTreeViewCurrentChanged(const QModelIndex& current, const QMod
22622275}
22632276
22642277
2265- void QgisApp::initLegend ()
2266- {
2267- mMapLegend ->setWhatsThis ( tr ( " Map legend that displays all the layers currently on the map canvas. Click on the check box to turn a layer on or off. Double click on a layer in the legend to customize its appearance and set other properties." ) );
2268- mLegendDock = new QDockWidget ( tr ( " Layers" ), this );
2269- mLegendDock ->setObjectName ( " Legend" );
2270- mLegendDock ->setAllowedAreas ( Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea );
2271-
2272- QCheckBox *orderCb = new QCheckBox ( tr ( " Control rendering order" ) );
2273- orderCb->setChecked ( false );
2274-
2275- connect ( orderCb, SIGNAL ( toggled ( bool ) ), mMapLegend , SLOT ( unsetUpdateDrawingOrder ( bool ) ) );
2276- connect ( mMapLegend , SIGNAL ( updateDrawingOrderUnchecked ( bool ) ), orderCb, SLOT ( setChecked ( bool ) ) );
2277-
2278- QWidget *w = new QWidget ( this );
2279- QLayout *l = new QVBoxLayout;
2280- l->setMargin ( 0 );
2281- l->addWidget ( mMapLegend );
2282- w->setLayout ( l );
2283- mLegendDock ->setWidget ( w );
2284- addDockWidget ( Qt::LeftDockWidgetArea, mLegendDock );
2285-
2286- // add to the Panel submenu
2287- mPanelMenu ->addAction ( mLegendDock ->toggleViewAction () );
2288-
2289- mMapLayerOrder ->setWhatsThis ( tr ( " Map layer list that displays all layers in drawing order." ) );
2290- mLayerOrderDock = new QDockWidget ( tr ( " Layer order" ), this );
2291- mLayerOrderDock ->setObjectName ( " LayerOrder" );
2292- mLayerOrderDock ->setAllowedAreas ( Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea );
2293-
2294- w = new QWidget ( this );
2295- l = new QVBoxLayout;
2296- l->setMargin ( 0 );
2297- l->addWidget ( mMapLayerOrder );
2298- l->addWidget ( orderCb );
2299- w->setLayout ( l );
2300- mLayerOrderDock ->setWidget ( w );
2301- addDockWidget ( Qt::LeftDockWidgetArea, mLayerOrderDock );
2302- mLayerOrderDock ->hide ();
2303-
2304- // add to the Panel submenu
2305- mPanelMenu ->addAction ( mLayerOrderDock ->toggleViewAction () );
2306-
2307- return ;
2308- }
2309-
23102278void QgisApp::createMapTips ()
23112279{
23122280 // Set up the timer for maptips. The timer is reset everytime the mouse is moved
@@ -9504,7 +9472,7 @@ void QgisApp::showLayerProperties( QgsMapLayer *ml )
95049472 else
95059473 {
95069474 vlp = new QgsVectorLayerProperties ( vlayer, this );
9507- connect ( vlp, SIGNAL ( refreshLegend ( QString, QgsLegendItem::Expansion ) ), mLayerTreeView , SLOT ( refreshLayerSymbology ( QString ) ) );
9475+ connect ( vlp, SIGNAL ( refreshLegend ( QString ) ), mLayerTreeView , SLOT ( refreshLayerSymbology ( QString ) ) );
95089476 }
95099477
95109478 if ( vlp->exec () )
0 commit comments