void QgsTileScaleWidget::showTileScale( QMainWindow *mainWindow ) { QgsDockWidget *dock = mainWindow->findChild<QgsDockWidget *>( QStringLiteral( "theTileScaleDock" ) ); if ( dock ) { dock->setVisible( dock->isHidden() ); return; } QgsMapCanvas *canvas = mainWindow->findChild<QgsMapCanvas *>( QStringLiteral( "theMapCanvas" ) ); QgsDebugMsg( QString( "canvas:%1 [%2]" ).arg( ( quint64 ) canvas, 0, 16 ).arg( canvas ? canvas->objectName() : "" ) ); if ( !canvas ) { QgsDebugMsg( "map canvas mapCanvas not found" ); return; } QgsTileScaleWidget *tws = new QgsTileScaleWidget( canvas ); tws->setObjectName( QStringLiteral( "theTileScaleWidget" ) ); QgsLayerTreeView *legend = mainWindow->findChild<QgsLayerTreeView *>( QStringLiteral( "theLayerTreeView" ) ); if ( legend ) { connect( legend, &QgsLayerTreeView::currentLayerChanged, tws, &QgsTileScaleWidget::layerChanged ); } else { QgsDebugMsg( "legend not found" ); } //create the dock widget dock = new QgsDockWidget( tr( "Tile Scale" ), mainWindow ); dock->setObjectName( QStringLiteral( "theTileScaleDock" ) ); connect( dock, &QDockWidget::dockLocationChanged, tws, &QgsTileScaleWidget::locationChanged ); mainWindow->addDockWidget( Qt::RightDockWidgetArea, dock ); // add to the Panel submenu QMenu *panelMenu = mainWindow->findChild<QMenu *>( QStringLiteral( "mPanelMenu" ) ); if ( panelMenu ) { // add to the Panel submenu panelMenu->addAction( dock->toggleViewAction() ); } else { QgsDebugMsg( "panel menu not found" ); } dock->setWidget( tws ); connect( dock, &QDockWidget::visibilityChanged, tws, &QgsTileScaleWidget::scaleEnabled ); QgsSettings settings; dock->setVisible( settings.value( QStringLiteral( "UI/tileScaleEnabled" ), false ).toBool() ); }
void QgsTileScaleWidget::showTileScale( QMainWindow *mainWindow ) { QgsDockWidget *dock = mainWindow->findChild<QgsDockWidget *>( QStringLiteral( "theTileScaleDock" ) ); if ( dock ) { dock->setVisible( dock->isHidden() ); return; } QgsMapCanvas *canvas = mainWindow->findChild<QgsMapCanvas *>( QStringLiteral( "theMapCanvas" ) ); QgsDebugMsg( QString( "canvas:%1 [%2]" ).arg(( ulong ) canvas, 0, 16 ).arg( canvas ? canvas->objectName() : "" ) ); if ( !canvas ) { QgsDebugMsg( "map canvas theMapCanvas not found" ); return; } QgsTileScaleWidget *tws = new QgsTileScaleWidget( canvas ); tws->setObjectName( QStringLiteral( "theTileScaleWidget" ) ); QObject *legend = mainWindow->findChild<QObject*>( QStringLiteral( "theLayerTreeView" ) ); if ( legend ) { connect( legend, SIGNAL( currentLayerChanged( QgsMapLayer* ) ), tws, SLOT( layerChanged( QgsMapLayer* ) ) ); } else { QgsDebugMsg( "legend not found" ); } //create the dock widget dock = new QgsDockWidget( tr( "Tile Scale Panel" ), mainWindow ); dock->setObjectName( QStringLiteral( "theTileScaleDock" ) ); dock->setAllowedAreas( Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea ); mainWindow->addDockWidget( Qt::RightDockWidgetArea, dock ); // add to the Panel submenu QMenu *panelMenu = mainWindow->findChild<QMenu *>( QStringLiteral( "mPanelMenu" ) ); if ( panelMenu ) { // add to the Panel submenu panelMenu->addAction( dock->toggleViewAction() ); } else { QgsDebugMsg( "panel menu not found" ); } dock->setWidget( tws ); connect( dock, SIGNAL( visibilityChanged( bool ) ), tws, SLOT( scaleEnabled( bool ) ) ); QSettings settings; dock->setVisible( settings.value( QStringLiteral( "/UI/tileScaleEnabled" ), false ).toBool() ); }