Skip to content

Commit

Permalink
use project scales in label rendering and new 2D canvas dock if they are
Browse files Browse the repository at this point in the history
set (fix qgis#51326)
  • Loading branch information
alexbruy committed Feb 19, 2024
1 parent 88ac205 commit 3c3f7da
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 0 deletions.
17 changes: 17 additions & 0 deletions src/app/qgsmapcanvasdockwidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
#include "qgsvectorlayer.h"
#include "qgsapplication.h"
#include "qgsdockablewidgethelper.h"
#include "qgsprojectviewsettings.h"

#include <QMessageBox>
#include <QMenu>
Expand Down Expand Up @@ -590,6 +591,22 @@ QgsMapSettingsAction::QgsMapSettingsAction( QWidget *parent )
gLayout->addWidget( label, 2, 0 );

mScaleCombo = new QgsScaleComboBox();
// use either global scales or project scales
if ( QgsProject::instance()->viewSettings()->useProjectScales() )
{
const QVector< double > scales = QgsProject::instance()->viewSettings()->mapScales();
QStringList textScales;
textScales.reserve( scales.size() );
for ( const double scale : scales )
textScales << QStringLiteral( "1:%1" ).arg( QLocale().toString( scale, 'f', 0 ) );
mScaleCombo->updateScales( textScales );
}
else
{
// use global scales
mScaleCombo->updateScales();
}

gLayout->addWidget( mScaleCombo, 2, 1 );

mRotationWidget = new QgsDoubleSpinBox();
Expand Down
19 changes: 19 additions & 0 deletions src/gui/qgstextformatwidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
#include "qgssymbollayerreference.h"
#include "qgsconfig.h"
#include "qgsprojectstylesettings.h"
#include "qgsprojectviewsettings.h"

#include <QButtonGroup>
#include <QMessageBox>
Expand Down Expand Up @@ -849,6 +850,24 @@ void QgsTextFormatWidget::populateDataDefinedButtons()
registerDataDefinedButton( mScaleBasedVisibilityMaxDDBtn, QgsPalLayerSettings::Property::MaximumScale );
mScaleBasedVisibilityMaxDDBtn->setUsageInfo( ddScaleVisInfo );

// use either global scales or project scales
if ( QgsProject::instance()->viewSettings()->useProjectScales() )
{
const QVector< double > scales = QgsProject::instance()->viewSettings()->mapScales();
QStringList textScales;
textScales.reserve( scales.size() );
for ( const double scale : scales )
textScales << QStringLiteral( "1:%1" ).arg( QLocale().toString( scale, 'f', 0 ) );
mMinScaleWidget->updateScales( textScales );
mMaxScaleWidget->updateScales( textScales );
}
else
{
// use global scales
mMinScaleWidget->updateScales();
mMaxScaleWidget->updateScales();
}

registerDataDefinedButton( mFontLimitPixelDDBtn, QgsPalLayerSettings::Property::FontLimitPixel );
mFontLimitPixelDDBtn->registerCheckedWidget( mFontLimitPixelChkBox );
registerDataDefinedButton( mFontMinPixelDDBtn, QgsPalLayerSettings::Property::FontMinPixel );
Expand Down

0 comments on commit 3c3f7da

Please sign in to comment.