vlc | branch: master | Prince Gupta <guptaprince8...@gmail.com> | Tue Feb 23 15:53:58 2021 +0530| [4ccb6535aadd1aeb9152094518003e1155e63272] | committer: Pierre Lamot
qt: allow changing user scale factor from preferences Signed-off-by: Pierre Lamot <pie...@videolabs.io> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=4ccb6535aadd1aeb9152094518003e1155e63272 --- .../qt/dialogs/preferences/simple_preferences.cpp | 28 ++++++++++++++++++++ .../gui/qt/dialogs/preferences/sprefs_interface.ui | 30 ++++++++++++++++++++++ 2 files changed, 58 insertions(+) diff --git a/modules/gui/qt/dialogs/preferences/simple_preferences.cpp b/modules/gui/qt/dialogs/preferences/simple_preferences.cpp index a505e86902..adf40d8fc9 100644 --- a/modules/gui/qt/dialogs/preferences/simple_preferences.cpp +++ b/modules/gui/qt/dialogs/preferences/simple_preferences.cpp @@ -812,6 +812,34 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent, ui.colorSchemeComboBox->insertItems(0, p_intf->p_sys->p_mi->getColorScheme()->stringList()); QObject::connect( ui.colorSchemeComboBox, &QComboBox::currentTextChanged, p_intf->p_sys->p_mi->getColorScheme(), &ColorSchemeModel::setCurrent ); + const float intfScaleFloatFactor = 100.f; + const auto updateIntfUserScaleFactorFromControls = + [this, slider = ui.intfScaleFactorSlider, spinBox = ui.intfScaleFactorSpinBox, intfScaleFloatFactor](const int value) + { + if (slider->value() != value) + { + QSignalBlocker s( slider ); + slider->setValue( value ); + } + if (spinBox->value() != value) + { + QSignalBlocker s( spinBox ); + spinBox->setValue( value ); + } + p_intf->p_sys->p_mi->setIntfUserScaleFactor( value / intfScaleFloatFactor ); + }; + + ui.intfScaleFactorSlider->setRange( p_intf->p_sys->p_mi->getMinIntfUserScaleFactor() * intfScaleFloatFactor + , p_intf->p_sys->p_mi->getMaxIntfUserScaleFactor() * intfScaleFloatFactor); + ui.intfScaleFactorSpinBox->setRange( p_intf->p_sys->p_mi->getMinIntfUserScaleFactor() * intfScaleFloatFactor + , p_intf->p_sys->p_mi->getMaxIntfUserScaleFactor() * intfScaleFloatFactor); + + updateIntfUserScaleFactorFromControls( p_intf->p_sys->p_mi->getIntfUserScaleFactor() * intfScaleFloatFactor ); + QObject::connect( ui.intfScaleFactorSlider, QOverload<int>::of(&QSlider::valueChanged) + , p_intf->p_sys->p_mi , updateIntfUserScaleFactorFromControls ); + QObject::connect( ui.intfScaleFactorSpinBox, QOverload<int>::of(&QSpinBox::valueChanged) + , p_intf->p_sys->p_mi , updateIntfUserScaleFactorFromControls ); + #if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) CONFIG_BOOL( "qt-titlebar", titleBarCheckBox ); #else diff --git a/modules/gui/qt/dialogs/preferences/sprefs_interface.ui b/modules/gui/qt/dialogs/preferences/sprefs_interface.ui index b14aacf247..cbc8eaaf60 100644 --- a/modules/gui/qt/dialogs/preferences/sprefs_interface.ui +++ b/modules/gui/qt/dialogs/preferences/sprefs_interface.ui @@ -304,6 +304,36 @@ </property> </widget> </item> + <item row="14" column="0"> + <widget class="QLabel" name="scaleFactorLabel"> + <property name="text"> + <string>Interface scale factor:</string> + </property> + <property name="buddy"> + <cstring>intfScaleFactorSlider</cstring> + </property> + </widget> + </item> + <item row="14" column="2"> + <widget class="QSlider" name="intfScaleFactorSlider"> + <property name="tracking"> + <bool>false</bool> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + </widget> + </item> + <item row="14" column="3"> + <widget class="QSpinBox" name="intfScaleFactorSpinBox"> + <property name="suffix"> + <string> %</string> + </property> + <property name="singleStep"> + <number>5</number> + </property> + </widget> + </item> <item row="5" column="0"> <widget class="QCheckBox" name="titleBarCheckBox"> <property name="text"> _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits