From 50b3f0c20f997ca5769f526158f67cb0f7dcfb4c Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Sat, 23 May 2020 09:08:31 +1000 Subject: [PATCH] Fix some hidpi issues with tiny icons --- src/app/qgisappstylesheet.cpp | 36 ++++++++++++++------------ src/gui/labeling/qgslabelingwidget.cpp | 3 +++ src/gui/qgsoptionsdialogbase.cpp | 8 +++--- src/gui/qgstextformatwidget.cpp | 4 +++ src/ui/qgstextformatwidgetbase.ui | 12 +++------ 5 files changed, 34 insertions(+), 29 deletions(-) diff --git a/src/app/qgisappstylesheet.cpp b/src/app/qgisappstylesheet.cpp index c824378e7eb6..b822494087c6 100644 --- a/src/app/qgisappstylesheet.cpp +++ b/src/app/qgisappstylesheet.cpp @@ -25,7 +25,7 @@ #include "qgsproxystyle.h" #include "qgslogger.h" #include "qgssettings.h" - +#include "qgsguiutils.h" QgisAppStyleSheet::QgisAppStyleSheet( QObject *parent ) : QObject( parent ) @@ -133,22 +133,24 @@ void QgisAppStyleSheet::buildStyleSheet( const QMap &opts ) if ( themeName == QStringLiteral( "default" ) || !QgsApplication::uiThemes().contains( themeName ) ) { //sidebar style - QString style = "QListWidget#mOptionsListWidget {" - " background-color: rgba(69, 69, 69, 0);" - " outline: 0;" - "}" - "QFrame#mOptionsListFrame {" - " background-color: rgba(69, 69, 69, 220);" - "}" - "QListWidget#mOptionsListWidget::item {" - " color: white;" - " padding: 3px;" - "}" - "QListWidget#mOptionsListWidget::item::selected {" - " color: black;" - " background-color:palette(Window);" - " padding-right: 0px;" - "}"; + const int frameMargin = QgsGuiUtils::scaleIconSize( 3 ); + + QString style = QStringLiteral( "QListWidget#mOptionsListWidget {" + " background-color: rgba(69, 69, 69, 0);" + " outline: 0;" + "}" + "QFrame#mOptionsListFrame {" + " background-color: rgba(69, 69, 69, 220);" + "}" + "QListWidget#mOptionsListWidget::item {" + " color: white;" + " padding: %1px;" + "}" + "QListWidget#mOptionsListWidget::item::selected {" + " color: black;" + " background-color:palette(Window);" + " padding-right: 0px;" + "}" ).arg( frameMargin ); QString toolbarSpacing = opts.value( QStringLiteral( "toolbarSpacing" ), QString() ).toString(); if ( !toolbarSpacing.isEmpty() ) diff --git a/src/gui/labeling/qgslabelingwidget.cpp b/src/gui/labeling/qgslabelingwidget.cpp index b4688897fa3c..51d3b4c59555 100644 --- a/src/gui/labeling/qgslabelingwidget.cpp +++ b/src/gui/labeling/qgslabelingwidget.cpp @@ -46,6 +46,9 @@ QgsLabelingWidget::QgsLabelingWidget( QgsVectorLayer *layer, QgsMapCanvas *canva connect( mLabelModeComboBox, static_cast( &QComboBox::currentIndexChanged ), this, &QgsLabelingWidget::labelModeChanged ); setLayer( layer ); + + const int iconSize16 = QgsGuiUtils::scaleIconSize( 16 ); + mEngineSettingsButton->setIconSize( QSize( iconSize16, iconSize16 ) ); } QgsLabelingGui *QgsLabelingWidget::labelingGui() diff --git a/src/gui/qgsoptionsdialogbase.cpp b/src/gui/qgsoptionsdialogbase.cpp index 9190f457051e..9a06977695ce 100644 --- a/src/gui/qgsoptionsdialogbase.cpp +++ b/src/gui/qgsoptionsdialogbase.cpp @@ -33,6 +33,7 @@ #include "qgslogger.h" #include "qgsoptionsdialoghighlightwidget.h" #include "qgsoptionswidgetfactory.h" +#include "qgsguiutils.h" QgsOptionsDialogBase::QgsOptionsDialogBase( const QString &settingsKey, QWidget *parent, Qt::WindowFlags fl, QgsSettings *settings ) : QDialog( parent, fl ) @@ -101,14 +102,15 @@ void QgsOptionsDialogBase::initOptionsBase( bool restoreUi, const QString &title return; } - int size = mSettings->value( QStringLiteral( "/IconSize" ), 24 ).toInt(); + int size = QgsGuiUtils::scaleIconSize( mSettings->value( QStringLiteral( "/IconSize" ), 24 ).toInt() ); // buffer size to match displayed icon size in toolbars, and expected geometry restore // newWidth (above) may need adjusted if you adjust iconBuffer here - int iconBuffer = 4; + const int iconBuffer = QgsGuiUtils::scaleIconSize( 4 ); mOptListWidget->setIconSize( QSize( size + iconBuffer, size + iconBuffer ) ); mOptListWidget->setFrameStyle( QFrame::NoFrame ); - optionsFrame->layout()->setContentsMargins( 0, 3, 3, 3 ); + const int frameMargin = QgsGuiUtils::scaleIconSize( 3 ); + optionsFrame->layout()->setContentsMargins( 0, frameMargin, frameMargin, frameMargin ); QVBoxLayout *layout = static_cast( optionsFrame->layout() ); if ( buttonBoxFrame ) diff --git a/src/gui/qgstextformatwidget.cpp b/src/gui/qgstextformatwidget.cpp index 514cb063dfe4..90b6269a4bc4 100644 --- a/src/gui/qgstextformatwidget.cpp +++ b/src/gui/qgstextformatwidget.cpp @@ -96,9 +96,13 @@ void QgsTextFormatWidget::initWidget() const int iconSize = QgsGuiUtils::scaleIconSize( 20 ); mOptionsTab->setIconSize( QSize( iconSize, iconSize ) ); + mLabelingOptionsListWidget->setIconSize( QSize( iconSize, iconSize ) ) ; const int iconSize32 = QgsGuiUtils::scaleIconSize( 32 ); const int iconSize24 = QgsGuiUtils::scaleIconSize( 24 ); const int iconSize18 = QgsGuiUtils::scaleIconSize( 18 ); + const int iconSize16 = QgsGuiUtils::scaleIconSize( 16 ); + + mPreviewTextBtn->setIconSize( QSize( iconSize16, iconSize16 ) ); mPointOffsetAboveLeft->setIconSize( QSize( iconSize32, iconSize18 ) ); mPointOffsetAbove->setIconSize( QSize( iconSize32, iconSize18 ) ); mPointOffsetAboveRight->setIconSize( QSize( iconSize32, iconSize18 ) ); diff --git a/src/ui/qgstextformatwidgetbase.ui b/src/ui/qgstextformatwidgetbase.ui index 8e939bdd2455..3c7fc36e3313 100644 --- a/src/ui/qgstextformatwidgetbase.ui +++ b/src/ui/qgstextformatwidgetbase.ui @@ -268,12 +268,6 @@ - - - 24 - 22 - - Reset sample text @@ -723,8 +717,8 @@ 0 0 - 323 - 292 + 485 + 429 @@ -1313,7 +1307,7 @@ font-style: italic; 0 0 - 373 + 370 708