@@ -35,8 +35,8 @@ QgsTileScaleWidget::QgsTileScaleWidget( QgsMapCanvas *mapCanvas, QWidget *parent
35
35
, mMapCanvas( mapCanvas )
36
36
{
37
37
setupUi ( this );
38
- connect ( mSlider , &QSlider::valueChanged, this , &QgsTileScaleWidget::mSlider_valueChanged );
39
38
39
+ connect ( mSlider , &QSlider::valueChanged, this , &QgsTileScaleWidget::mSlider_valueChanged );
40
40
connect ( mMapCanvas , &QgsMapCanvas::scaleChanged, this , &QgsTileScaleWidget::scaleChanged );
41
41
42
42
layerChanged ( mMapCanvas ->currentLayer () );
@@ -110,6 +110,11 @@ void QgsTileScaleWidget::mSlider_valueChanged( int value )
110
110
mMapCanvas ->zoomByFactor ( mResolutions .at ( mSlider ->value () ) / mMapCanvas ->mapUnitsPerPixel () );
111
111
}
112
112
113
+ void QgsTileScaleWidget::locationChanged ( Qt::DockWidgetArea area )
114
+ {
115
+ mSlider ->setOrientation ( area == Qt::TopDockWidgetArea || area == Qt::BottomDockWidgetArea ? Qt::Horizontal : Qt::Vertical );
116
+ }
117
+
113
118
void QgsTileScaleWidget::showTileScale ( QMainWindow *mainWindow )
114
119
{
115
120
QgsDockWidget *dock = mainWindow->findChild <QgsDockWidget *>( QStringLiteral ( " theTileScaleDock" ) );
@@ -144,7 +149,9 @@ void QgsTileScaleWidget::showTileScale( QMainWindow *mainWindow )
144
149
// create the dock widget
145
150
dock = new QgsDockWidget ( tr ( " Tile Scale" ), mainWindow );
146
151
dock->setObjectName ( QStringLiteral ( " theTileScaleDock" ) );
147
- dock->setAllowedAreas ( Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea );
152
+
153
+ connect ( dock, &QDockWidget::dockLocationChanged, tws, &QgsTileScaleWidget::locationChanged );
154
+
148
155
mainWindow->addDockWidget ( Qt::RightDockWidgetArea, dock );
149
156
150
157
// add to the Panel submenu
0 commit comments