Skip to content

Commit 1531c52

Browse files
committed
[ui] add an horizontal mode for tile scale panel
1 parent 560164d commit 1531c52

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

src/providers/wms/qgstilescalewidget.cpp

+9-2
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ QgsTileScaleWidget::QgsTileScaleWidget( QgsMapCanvas *mapCanvas, QWidget *parent
3535
, mMapCanvas( mapCanvas )
3636
{
3737
setupUi( this );
38-
connect( mSlider, &QSlider::valueChanged, this, &QgsTileScaleWidget::mSlider_valueChanged );
3938

39+
connect( mSlider, &QSlider::valueChanged, this, &QgsTileScaleWidget::mSlider_valueChanged );
4040
connect( mMapCanvas, &QgsMapCanvas::scaleChanged, this, &QgsTileScaleWidget::scaleChanged );
4141

4242
layerChanged( mMapCanvas->currentLayer() );
@@ -110,6 +110,11 @@ void QgsTileScaleWidget::mSlider_valueChanged( int value )
110110
mMapCanvas->zoomByFactor( mResolutions.at( mSlider->value() ) / mMapCanvas->mapUnitsPerPixel() );
111111
}
112112

113+
void QgsTileScaleWidget::locationChanged( Qt::DockWidgetArea area )
114+
{
115+
mSlider->setOrientation( area == Qt::TopDockWidgetArea || area == Qt::BottomDockWidgetArea ? Qt::Horizontal : Qt::Vertical );
116+
}
117+
113118
void QgsTileScaleWidget::showTileScale( QMainWindow *mainWindow )
114119
{
115120
QgsDockWidget *dock = mainWindow->findChild<QgsDockWidget *>( QStringLiteral( "theTileScaleDock" ) );
@@ -144,7 +149,9 @@ void QgsTileScaleWidget::showTileScale( QMainWindow *mainWindow )
144149
//create the dock widget
145150
dock = new QgsDockWidget( tr( "Tile Scale" ), mainWindow );
146151
dock->setObjectName( QStringLiteral( "theTileScaleDock" ) );
147-
dock->setAllowedAreas( Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea );
152+
153+
connect( dock, &QDockWidget::dockLocationChanged, tws, &QgsTileScaleWidget::locationChanged );
154+
148155
mainWindow->addDockWidget( Qt::RightDockWidgetArea, dock );
149156

150157
// add to the Panel submenu

src/providers/wms/qgstilescalewidget.h

+1
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ class QgsTileScaleWidget : public QWidget, private Ui::QgsTileScaleWidget
3636
void scaleChanged( double );
3737
void mSlider_valueChanged( int );
3838
void scaleEnabled( bool );
39+
void locationChanged( Qt::DockWidgetArea area );
3940

4041
private:
4142
QgsTileScaleWidget( QgsMapCanvas *mapCanvas, QWidget *parent = nullptr, Qt::WindowFlags f = nullptr );

0 commit comments

Comments
 (0)