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

Reply via email to