[vlc-commits] [Git][videolan/vlc][master] 3 commits: qt: add presets for selecting layout

Steve Lhomme (@robUx4) gitlab at videolan.org
Mon Jan 8 07:02:03 UTC 2024



Steve Lhomme pushed to branch master at VideoLAN / VLC


Commits:
4a89a8bf by Mohit Marathe at 2024-01-08T06:48:00+00:00
qt: add presets for selecting layout

Signed-off-by: Mohit Marathe <mohitmarathe23 at gmail.com>

- - - - -
d86f3585 by Mohit Marathe at 2024-01-08T06:48:00+00:00
qt: add Customize Interface button

Signed-off-by: Mohit Marathe <mohitmarathe23 at gmail.com>

- - - - -
ad377d48 by Mohit Marathe at 2024-01-08T06:48:00+00:00
qt: add tooltip for layout buttons

- - - - -


4 changed files:

- modules/gui/qt/dialogs/preferences/simple_preferences.cpp
- modules/gui/qt/dialogs/preferences/simple_preferences.hpp
- modules/gui/qt/dialogs/preferences/sprefs_interface.ui
- modules/gui/qt/pixmaps/prefs/sample_skins.png


Changes:

=====================================
modules/gui/qt/dialogs/preferences/simple_preferences.cpp
=====================================
@@ -28,6 +28,7 @@
 
 #include "simple_preferences.hpp"
 #include "preferences_widgets.hpp"
+#include "dialogs/dialogs_provider.hpp"
 #include "maininterface/mainctx.hpp"
 #include "util/color_scheme_model.hpp"
 #include "util/proxycolumnmodel.hpp"
@@ -758,8 +759,8 @@ SPrefsPanel::SPrefsPanel( qt_intf_t *_p_intf, QWidget *_parent,
 
             if( !module_exists( "skins2" ) )
             {
-                ui.LooknfeelSelection->hide();
-                ui.mainPreview->hide();
+                ui.skins->hide();
+                ui.skinImage->hide();
             }
             else
             {
@@ -769,9 +770,6 @@ SPrefsPanel::SPrefsPanel( qt_intf_t *_p_intf, QWidget *_parent,
                 {
                     if( strstr( psz_intf, "skin" ) )
                         ui.skins->setChecked( true );
-                } else {
-                    /* defaults to qt */
-                    ui.qt->setChecked( true );
                 }
                 free( psz_intf );
             }
@@ -787,22 +785,35 @@ SPrefsPanel::SPrefsPanel( qt_intf_t *_p_intf, QWidget *_parent,
             ui.stylesLabel->hide();
 #endif
             radioGroup = new QButtonGroup(this);
-            radioGroup->addButton( ui.qt, 0 );
-            radioGroup->addButton( ui.skins, 1 );
+            radioGroup->addButton( ui.modernButton, 0 );
+            radioGroup->addButton( ui.classicButton, 1 );
+            radioGroup->addButton( ui.skins, 2 );
+
+            configBool( "qt-minimal-view", ui.minimalviewBox );
+
+            /*Update layout radio buttons based on the checkState of the following checkboxes*/
+            connect(ui.menuBarCheck, &QCheckBox::stateChanged, this, &SPrefsPanel::updateLayoutSelection);
+            connect(ui.pinVideoControlsCheckbox, &QCheckBox::stateChanged, this, &SPrefsPanel::updateLayoutSelection);
+#if QT_CLIENT_SIDE_DECORATION_AVAILABLE
+            connect(ui.titleBarCheckBox, &QCheckBox::stateChanged, this, &SPrefsPanel::updateLayoutSelection);
+#endif
+
+            /*Clicking on image will check the corresponding layout radio button*/
+            layoutImages = new QButtonGroup( this );
+            layoutImages->addButton( ui.modernImage, 0 );
+            layoutImages->addButton( ui.classicImage, 1 );
+            layoutImages->addButton( ui.skinImage, 2 );
+
+            connect( layoutImages, qOverload<QAbstractButton*>( &QButtonGroup::buttonClicked ), this, &SPrefsPanel::imageLayoutClick );
+
+            /* Set checkboxes depending on the layout selected*/
 #if QT_VERSION >= QT_VERSION_CHECK(5,15,0)
-            connect( radioGroup, &QButtonGroup::idClicked,
-                     ui.styleStackedWidget, &QStackedWidget::setCurrentIndex );
+            connect(radioGroup, &QButtonGroup::idClicked, this, &SPrefsPanel::handleLayoutChange);
+            connect(layoutImages, &QButtonGroup::idClicked, this, &SPrefsPanel::handleLayoutChange);
 #else
-            connect( radioGroup, QOverload<int>::of(&QButtonGroup::buttonClicked),
-                     ui.styleStackedWidget, &QStackedWidget::setCurrentIndex );
+            connect(radioGroup, QOverload<int>::of(&QButtonGroup::buttonClicked), this, &SPrefsPanel::handleLayoutChange);
+            connect(layoutImages, QOverload<int>::of(&QButtonGroup::buttonClicked), this, &SPrefsPanel::handleLayoutChange);
 #endif
-            ui.styleStackedWidget->setCurrentIndex( radioGroup->checkedId() );
-
-            connect( ui.minimalviewBox, &QCheckBox::toggled,
-                     ui.mainPreview, &InterfacePreviewWidget::setNormalPreview );
-            configBool( "qt-minimal-view", ui.minimalviewBox );
-            ui.mainPreview->setNormalPreview( ui.minimalviewBox->isChecked() );
-            ui.skinsPreview->setPreview( InterfacePreviewWidget::SKINS );
 
             configBool( "embedded-video", ui.embedVideo );
             configBool( "qt-video-autoresize", ui.resizingBox );
@@ -869,6 +880,10 @@ SPrefsPanel::SPrefsPanel( qt_intf_t *_p_intf, QWidget *_parent,
             QObject::connect( ui.intfScaleFactorSpinBox, QOverload<int>::of(&QSpinBox::valueChanged)
                               , p_intf->p_mi , updateIntfUserScaleFactorFromControls );
 
+            DialogsProvider *provider = DialogsProvider::getInstance();
+
+            QObject::connect( ui.toolbarEditor, &QAbstractButton::clicked, provider, &DialogsProvider::showToolbarEditorDialog);
+
 #if QT_CLIENT_SIDE_DECORATION_AVAILABLE
             configBool( "qt-titlebar", ui.titleBarCheckBox );
 #else
@@ -1125,6 +1140,68 @@ SPrefsPanel::~SPrefsPanel()
     free( lang );
 }
 
+/* Checks the layout radio button corresponding the image clicked */
+void SPrefsPanel::imageLayoutClick( QAbstractButton* btn )
+{
+    QAbstractButton* layoutBtn = radioGroup->buttons().at( layoutImages->id( btn ) );
+    assert( layoutBtn );
+    layoutBtn->setChecked( true );
+}
+
+/* Change configurations depending on the layout selected and set check states of radioGroup */
+void SPrefsPanel::handleLayoutChange( int id )
+{
+    auto ui = m_interfaceUI;
+    if (id == 0) {
+        // Modern layout selected
+        ui.styleStackedWidget->setCurrentIndex(0);
+        ui.menuBarCheck->setChecked(false);
+#if QT_CLIENT_SIDE_DECORATION_AVAILABLE
+        ui.titleBarCheckBox->setChecked(false);
+#endif
+        ui.pinVideoControlsCheckbox->setChecked(false);
+    }
+    else if (id == 1) {
+        // Classic layout selected
+        ui.styleStackedWidget->setCurrentIndex(0);
+        ui.menuBarCheck->setChecked(true);
+#if QT_CLIENT_SIDE_DECORATION_AVAILABLE
+        ui.titleBarCheckBox->setChecked(true);
+#endif
+        ui.pinVideoControlsCheckbox->setChecked(true);
+    }
+    else if (id == 2) {
+        ui.styleStackedWidget->setCurrentIndex(1);
+    }
+}
+
+void SPrefsPanel::updateLayoutSelection()
+{
+    auto ui = m_interfaceUI;
+    bool isModern = !ui.menuBarCheck->isChecked()
+#if QT_CLIENT_SIDE_DECORATION_AVAILABLE
+                    && !ui.titleBarCheckBox->isChecked()
+#endif
+                    && !ui.pinVideoControlsCheckbox->isChecked();
+
+    ui.modernButton->setChecked(isModern);
+
+    bool isClassic = ui.menuBarCheck->isChecked()
+#if QT_CLIENT_SIDE_DECORATION_AVAILABLE
+                     && ui.titleBarCheckBox->isChecked()
+#endif
+                     && ui.pinVideoControlsCheckbox->isChecked();
+
+    ui.classicButton->setChecked(isClassic);
+
+    if (!isModern && !isClassic) {
+        radioGroup->setExclusive(false);
+        ui.modernButton->setChecked(false);
+        ui.classicButton->setChecked(false);
+        radioGroup->setExclusive(true);
+    }
+}
+
 void SPrefsPanel::updateAudioVolume( int volume )
 {
     m_audioUI.volumeValue->setValue( volume );


=====================================
modules/gui/qt/dialogs/preferences/simple_preferences.hpp
=====================================
@@ -135,6 +135,7 @@ private:
     QHash<QString, AudioControlGroup> audioControlGroups;
     QStringList qs_filter;
     QButtonGroup *radioGroup;
+    QButtonGroup *layoutImages;
 
     char *lang;
     MLFoldersEditor *mlFoldersEditor {};
@@ -163,6 +164,9 @@ private slots:
     void updateAudioOptions( int );
     void updateAudioVolume( int );
     void langChanged( int );
+    void imageLayoutClick( QAbstractButton* );
+    void handleLayoutChange( int );
+    void updateLayoutSelection();
 #ifdef _WIN32
     void assoDialog();
     void updateCheckBoxes( QTreeWidgetItem*, int );


=====================================
modules/gui/qt/dialogs/preferences/sprefs_interface.ui
=====================================
@@ -7,8 +7,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>700</width>
-    <height>808</height>
+    <width>1446</width>
+    <height>1378</height>
    </rect>
   </property>
   <property name="sizePolicy">
@@ -67,66 +67,129 @@
          <property name="bottomMargin">
           <number>0</number>
          </property>
-         <item row="0" column="4">
-          <widget class="QRadioButton" name="skins">
-           <property name="text">
-            <string>Use custom skin</string>
-           </property>
-          </widget>
-         </item>
-         <item row="0" column="5">
-          <spacer name="horizontalSpacer">
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>40</width>
-             <height>20</height>
-            </size>
-           </property>
-          </spacer>
+         <item row="0" column="3">
+          <layout class="QVBoxLayout" name="verticalLayout_2">
+           <item>
+            <widget class="QPushButton" name="skinImage">
+             <property name="toolTip">
+              <string>VLC will use custom skin.</string>
+             </property>
+             <property name="text">
+              <string/>
+             </property>
+             <property name="icon">
+              <iconset resource="../../vlc.qrc">
+               <normaloff>:/prefsmenu/sample_skins.png</normaloff>:/prefsmenu/sample_skins.png</iconset>
+             </property>
+             <property name="iconSize">
+              <size>
+               <width>244</width>
+               <height>145</height>
+              </size>
+             </property>
+             <property name="flat">
+              <bool>true</bool>
+             </property>
+            </widget>
+           </item>
+           <item alignment="Qt::AlignHCenter">
+            <widget class="QRadioButton" name="skins">
+             <property name="toolTip">
+              <string>VLC will use custom skin.</string>
+             </property>
+             <property name="text">
+              <string>Use custom skin</string>
+             </property>
+            </widget>
+           </item>
+          </layout>
          </item>
          <item row="0" column="1">
-          <spacer name="horizontalSpacer_4">
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>40</width>
-             <height>20</height>
-            </size>
-           </property>
-          </spacer>
+          <layout class="QVBoxLayout" name="verticalLayout_8">
+           <item>
+            <widget class="QPushButton" name="modernImage">
+             <property name="toolTip">
+              <string>VLC will use a modern layout with
+no menubar or pinned controls but
+with client-side decoration.</string>
+             </property>
+             <property name="text">
+              <string/>
+             </property>
+             <property name="icon">
+              <iconset resource="../../vlc.qrc">
+               <normaloff>:/prefsmenu/sample_minimal.png</normaloff>:/prefsmenu/sample_minimal.png</iconset>
+             </property>
+             <property name="iconSize">
+              <size>
+               <width>244</width>
+               <height>145</height>
+              </size>
+             </property>
+             <property name="flat">
+              <bool>true</bool>
+             </property>
+            </widget>
+           </item>
+           <item alignment="Qt::AlignHCenter">
+            <widget class="QRadioButton" name="modernButton">
+             <property name="toolTip">
+              <string>VLC will use a modern layout with
+no menubar or pinned controls but
+with client-side decoration.</string>
+             </property>
+             <property name="text">
+              <string>Modern</string>
+             </property>
+             <property name="checked">
+              <bool>true</bool>
+             </property>
+            </widget>
+           </item>
+          </layout>
          </item>
          <item row="0" column="2">
-          <widget class="QRadioButton" name="qt">
-           <property name="toolTip">
-            <string>This is VLC's default interface, with a native look and feel.</string>
-           </property>
-           <property name="text">
-            <string>Use native style</string>
-           </property>
-           <property name="checked">
-            <bool>true</bool>
-           </property>
-          </widget>
-         </item>
-         <item row="0" column="3">
-          <spacer name="horizontalSpacer_5">
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>40</width>
-             <height>20</height>
-            </size>
-           </property>
-          </spacer>
+          <layout class="QVBoxLayout" name="verticalLayout_7">
+           <item>
+            <widget class="QPushButton" name="classicImage">
+             <property name="toolTip">
+              <string>VLC will use a classic layout with
+a menubar and pinned controls but
+with no client-side decoration.</string>
+             </property>
+             <property name="text">
+              <string/>
+             </property>
+             <property name="icon">
+              <iconset resource="../../vlc.qrc">
+               <normaloff>:/prefsmenu/sample_complete.png</normaloff>:/prefsmenu/sample_complete.png</iconset>
+             </property>
+             <property name="iconSize">
+              <size>
+               <width>244</width>
+               <height>145</height>
+              </size>
+             </property>
+             <property name="flat">
+              <bool>true</bool>
+             </property>
+            </widget>
+           </item>
+           <item alignment="Qt::AlignHCenter">
+            <widget class="QRadioButton" name="classicButton">
+             <property name="toolTip">
+              <string>VLC will use a classic layout with
+a menubar and pinned controls but
+with no client-side decoration.</string>
+             </property>
+             <property name="text">
+              <string>Classic</string>
+             </property>
+            </widget>
+           </item>
+          </layout>
          </item>
-         <item row="1" column="2" colspan="3">
+         <item row="1" column="1" colspan="2">
           <widget class="Line" name="line">
            <property name="orientation">
             <enum>Qt::Horizontal</enum>
@@ -136,6 +199,13 @@
         </layout>
        </widget>
       </item>
+      <item>
+       <widget class="QToolButton" name="toolbarEditor">
+        <property name="text">
+         <string>Customize Toolbar</string>
+        </property>
+       </widget>
+      </item>
       <item>
        <widget class="QStackedWidget" name="styleStackedWidget">
         <property name="currentIndex">
@@ -149,28 +219,6 @@
           <property name="rightMargin">
            <number>0</number>
           </property>
-          <item>
-           <widget class="InterfacePreviewWidget" name="mainPreview">
-            <property name="sizePolicy">
-             <sizepolicy hsizetype="Maximum" vsizetype="Maximum">
-              <horstretch>0</horstretch>
-              <verstretch>0</verstretch>
-             </sizepolicy>
-            </property>
-            <property name="minimumSize">
-             <size>
-              <width>122</width>
-              <height>50</height>
-             </size>
-            </property>
-            <property name="styleSheet">
-             <string notr="true">background-color: rgb(192, 192, 192);</string>
-            </property>
-            <property name="alignment">
-             <set>Qt::AlignHCenter|Qt::AlignTop</set>
-            </property>
-           </widget>
-          </item>
           <item>
            <widget class="QWidget" name="native_zone" native="true">
             <property name="sizePolicy">
@@ -199,23 +247,49 @@
              <item row="6" column="2" colspan="2">
               <widget class="QComboBox" name="notificationCombo"/>
              </item>
-             <item row="10" column="2" colspan="2">
-              <widget class="QComboBox" name="stylesCombo"/>
+             <item row="1" column="4">
+              <spacer name="horizontalSpacer_7">
+               <property name="orientation">
+                <enum>Qt::Horizontal</enum>
+               </property>
+               <property name="sizeHint" stdset="0">
+                <size>
+                 <width>20</width>
+                 <height>20</height>
+                </size>
+               </property>
+              </spacer>
              </item>
-             <item row="0" column="0" colspan="5">
-              <widget class="QCheckBox" name="fsController">
+             <item row="1" column="1">
+              <spacer name="horizontalSpacer_3">
+               <property name="orientation">
+                <enum>Qt::Horizontal</enum>
+               </property>
+               <property name="sizeHint" stdset="0">
+                <size>
+                 <width>40</width>
+                 <height>20</height>
+                </size>
+               </property>
+              </spacer>
+             </item>
+             <item row="5" column="2">
+              <widget class="QCheckBox" name="titleBarCheckBox">
                <property name="text">
-                <string>Show controls in full screen mode</string>
+                <string>Enable window titlebar</string>
                </property>
               </widget>
              </item>
-             <item row="3" column="2" colspan="2">
-              <widget class="QCheckBox" name="pauseMinimizedBox">
+             <item row="1" column="0">
+              <widget class="QCheckBox" name="embedVideo">
                <property name="text">
-                <string>Pause playback when minimized</string>
+                <string>Integrate video in interface</string>
                </property>
               </widget>
              </item>
+             <item row="12" column="2" colspan="2">
+              <widget class="QComboBox" name="autoRaiseComboBox"/>
+             </item>
              <item row="6" column="0">
               <widget class="QLabel" name="notificationComboLabel">
                <property name="text">
@@ -226,10 +300,10 @@
                </property>
               </widget>
              </item>
-             <item row="3" column="0">
-              <widget class="QCheckBox" name="minimalviewBox">
+             <item row="4" column="0" colspan="2">
+              <widget class="QCheckBox" name="systrayBox">
                <property name="text">
-                <string>Start in minimal view mode</string>
+                <string>Show systray icon</string>
                </property>
               </widget>
              </item>
@@ -249,43 +323,30 @@
                </property>
               </widget>
              </item>
-             <item row="1" column="0">
-              <widget class="QCheckBox" name="embedVideo">
-               <property name="text">
-                <string>Integrate video in interface</string>
-               </property>
-              </widget>
-             </item>
-             <item row="1" column="1">
-              <spacer name="horizontalSpacer_3">
-               <property name="orientation">
-                <enum>Qt::Horizontal</enum>
+             <item row="14" column="3">
+              <widget class="QSpinBox" name="intfScaleFactorSpinBox">
+               <property name="suffix">
+                <string> %</string>
                </property>
-               <property name="sizeHint" stdset="0">
-                <size>
-                 <width>40</width>
-                 <height>20</height>
-                </size>
+               <property name="singleStep">
+                <number>5</number>
                </property>
-              </spacer>
+              </widget>
              </item>
-             <item row="1" column="4">
-              <spacer name="horizontalSpacer_7">
-               <property name="orientation">
-                <enum>Qt::Horizontal</enum>
+             <item row="13" column="0">
+              <widget class="QLabel" name="colorSchemeLabel">
+               <property name="text">
+                <string>Color scheme:</string>
                </property>
-               <property name="sizeHint" stdset="0">
-                <size>
-                 <width>20</width>
-                 <height>20</height>
-                </size>
+               <property name="buddy">
+                <cstring>colorSchemeComboBox</cstring>
                </property>
-              </spacer>
+              </widget>
              </item>
-             <item row="4" column="0" colspan="2">
-              <widget class="QCheckBox" name="systrayBox">
+             <item row="3" column="0">
+              <widget class="QCheckBox" name="minimalviewBox">
                <property name="text">
-                <string>Show systray icon</string>
+                <string>Start in minimal view mode</string>
                </property>
               </widget>
              </item>
@@ -299,26 +360,23 @@
                </property>
               </widget>
              </item>
-             <item row="12" column="2" colspan="2">
-              <widget class="QComboBox" name="autoRaiseComboBox"/>
+             <item row="10" column="2" colspan="2">
+              <widget class="QComboBox" name="stylesCombo"/>
              </item>
-             <item row="13" column="0">
-              <widget class="QLabel" name="colorSchemeLabel">
-               <property name="text">
-                <string>Color scheme:</string>
+             <item row="14" column="2">
+              <widget class="QSlider" name="intfScaleFactorSlider">
+               <property name="tracking">
+                <bool>false</bool>
                </property>
-               <property name="buddy">
-                <cstring>colorSchemeComboBox</cstring>
+               <property name="orientation">
+                <enum>Qt::Horizontal</enum>
                </property>
               </widget>
              </item>
-             <item row="13" column="2" colspan="2">
-              <widget class="QComboBox" name="colorSchemeComboBox"/>
-             </item>
-             <item row="4" column="2">
-              <widget class="QCheckBox" name="menuBarCheck">
+             <item row="3" column="2" colspan="2">
+              <widget class="QCheckBox" name="pauseMinimizedBox">
                <property name="text">
-                <string>Show the menu bar</string>
+                <string>Pause playback when minimized</string>
                </property>
               </widget>
              </item>
@@ -332,26 +390,23 @@
                </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>
+             <item row="4" column="2">
+              <widget class="QCheckBox" name="menuBarCheck">
+               <property name="text">
+                <string>Show the menu bar</string>
                </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>
+             <item row="0" column="0" colspan="5">
+              <widget class="QCheckBox" name="fsController">
+               <property name="text">
+                <string>Show controls in full screen mode</string>
                </property>
               </widget>
              </item>
+             <item row="13" column="2" colspan="2">
+              <widget class="QComboBox" name="colorSchemeComboBox"/>
+             </item>
              <item row="5" column="0" colspan="2">
               <widget class="QCheckBox" name="pinVideoControlsCheckbox">
                <property name="toolTip">
@@ -362,13 +417,6 @@
                </property>
               </widget>
              </item>
-             <item row="5" column="2">
-              <widget class="QCheckBox" name="titleBarCheckBox">
-               <property name="text">
-                <string>Enable window titlebar</string>
-               </property>
-              </widget>
-             </item>
             </layout>
            </widget>
           </item>
@@ -382,28 +430,6 @@
           <property name="rightMargin">
            <number>0</number>
           </property>
-          <item>
-           <widget class="InterfacePreviewWidget" name="skinsPreview">
-            <property name="sizePolicy">
-             <sizepolicy hsizetype="Maximum" vsizetype="Maximum">
-              <horstretch>0</horstretch>
-              <verstretch>0</verstretch>
-             </sizepolicy>
-            </property>
-            <property name="minimumSize">
-             <size>
-              <width>122</width>
-              <height>50</height>
-             </size>
-            </property>
-            <property name="styleSheet">
-             <string notr="true">background-color: rgb(192, 192, 192);</string>
-            </property>
-            <property name="alignment">
-             <set>Qt::AlignCenter</set>
-            </property>
-           </widget>
-          </item>
           <item>
            <widget class="QWidget" name="skins_zone" native="true">
             <property name="enabled">
@@ -428,42 +454,6 @@
              <property name="bottomMargin">
               <number>0</number>
              </property>
-             <item row="1" column="1">
-              <widget class="QLabel" name="skinFileLabel">
-               <property name="text">
-                <string>Skin resource file:</string>
-               </property>
-               <property name="alignment">
-                <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-               </property>
-               <property name="buddy">
-                <cstring>fileSkin</cstring>
-               </property>
-              </widget>
-             </item>
-             <item row="1" column="2">
-              <widget class="QLineEdit" name="fileSkin">
-               <property name="sizePolicy">
-                <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
-                 <horstretch>0</horstretch>
-                 <verstretch>0</verstretch>
-                </sizepolicy>
-               </property>
-              </widget>
-             </item>
-             <item row="1" column="3">
-              <widget class="QPushButton" name="skinBrowse">
-               <property name="sizePolicy">
-                <sizepolicy hsizetype="Maximum" vsizetype="Fixed">
-                 <horstretch>0</horstretch>
-                 <verstretch>0</verstretch>
-                </sizepolicy>
-               </property>
-               <property name="text">
-                <string>Choose...</string>
-               </property>
-              </widget>
-             </item>
              <item row="2" column="1" colspan="3">
               <widget class="QLabel" name="skinsLabel">
                <property name="sizePolicy">
@@ -498,6 +488,42 @@
                </property>
               </widget>
              </item>
+             <item row="1" column="3">
+              <widget class="QPushButton" name="skinBrowse">
+               <property name="sizePolicy">
+                <sizepolicy hsizetype="Maximum" vsizetype="Fixed">
+                 <horstretch>0</horstretch>
+                 <verstretch>0</verstretch>
+                </sizepolicy>
+               </property>
+               <property name="text">
+                <string>Choose...</string>
+               </property>
+              </widget>
+             </item>
+             <item row="1" column="2">
+              <widget class="QLineEdit" name="fileSkin">
+               <property name="sizePolicy">
+                <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
+                 <horstretch>0</horstretch>
+                 <verstretch>0</verstretch>
+                </sizepolicy>
+               </property>
+              </widget>
+             </item>
+             <item row="1" column="1">
+              <widget class="QLabel" name="skinFileLabel">
+               <property name="text">
+                <string>Skin resource file:</string>
+               </property>
+               <property name="alignment">
+                <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+               </property>
+               <property name="buddy">
+                <cstring>fileSkin</cstring>
+               </property>
+              </widget>
+             </item>
             </layout>
            </widget>
           </item>
@@ -514,10 +540,10 @@
       <string>Playlist and Instances</string>
      </property>
      <layout class="QGridLayout" name="gridLayout_2">
-      <item row="1" column="0" colspan="2">
-       <widget class="QCheckBox" name="oneInstanceFromFile">
-        <property name="text">
-         <string>Use only one instance when started from file manager</string>
+      <item row="4" column="1">
+       <widget class="QComboBox" name="continuePlaybackComboBox">
+        <property name="enabled">
+         <bool>true</bool>
         </property>
        </widget>
       </item>
@@ -528,10 +554,17 @@
         </property>
        </widget>
       </item>
-      <item row="2" column="1">
-       <widget class="QCheckBox" name="playPauseBox">
+      <item row="0" column="0">
+       <widget class="QCheckBox" name="OneInterfaceMode">
         <property name="text">
-         <string>Pause on the last frame of a video</string>
+         <string>Allow only one instance</string>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="0" colspan="2">
+       <widget class="QCheckBox" name="oneInstanceFromFile">
+        <property name="text">
+         <string>Use only one instance when started from file manager</string>
         </property>
        </widget>
       </item>
@@ -542,10 +575,10 @@
         </property>
        </widget>
       </item>
-      <item row="4" column="1">
-       <widget class="QComboBox" name="continuePlaybackComboBox">
-        <property name="enabled">
-         <bool>true</bool>
+      <item row="2" column="1">
+       <widget class="QCheckBox" name="playPauseBox">
+        <property name="text">
+         <string>Pause on the last frame of a video</string>
         </property>
        </widget>
       </item>
@@ -559,13 +592,6 @@
         </property>
        </widget>
       </item>
-      <item row="0" column="0">
-       <widget class="QCheckBox" name="OneInterfaceMode">
-        <property name="text">
-         <string>Allow only one instance</string>
-        </property>
-       </widget>
-      </item>
      </layout>
     </widget>
    </item>
@@ -575,27 +601,6 @@
       <string>Privacy / Network Interaction</string>
      </property>
      <layout class="QGridLayout" name="gridLayout_3">
-      <item row="2" column="0">
-       <widget class="QCheckBox" name="MetadataNetworkAccessMode">
-        <property name="text">
-         <string>Allow metadata network access</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="0">
-       <widget class="QCheckBox" name="updatesBox">
-        <property name="text">
-         <string>Activate updates notifier</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="0">
-       <widget class="QCheckBox" name="saveRecentlyPlayed">
-        <property name="text">
-         <string>Save recently played items</string>
-        </property>
-       </widget>
-      </item>
       <item row="0" column="2">
        <widget class="QSpinBox" name="updatesDays">
         <property name="alignment">
@@ -609,6 +614,13 @@
         </property>
        </widget>
       </item>
+      <item row="1" column="0">
+       <widget class="QCheckBox" name="saveRecentlyPlayed">
+        <property name="text">
+         <string>Save recently played items</string>
+        </property>
+       </widget>
+      </item>
       <item row="1" column="2">
        <widget class="QPushButton" name="clearRecent">
         <property name="text">
@@ -616,6 +628,13 @@
         </property>
        </widget>
       </item>
+      <item row="2" column="0">
+       <widget class="QCheckBox" name="MetadataNetworkAccessMode">
+        <property name="text">
+         <string>Allow metadata network access</string>
+        </property>
+       </widget>
+      </item>
       <item row="1" column="1">
        <spacer name="clearRecentSpacer">
         <property name="orientation">
@@ -629,6 +648,13 @@
         </property>
        </spacer>
       </item>
+      <item row="0" column="0">
+       <widget class="QCheckBox" name="updatesBox">
+        <property name="text">
+         <string>Activate updates notifier</string>
+        </property>
+       </widget>
+      </item>
      </layout>
     </widget>
    </item>
@@ -717,17 +743,8 @@
    </item>
   </layout>
  </widget>
- <customwidgets>
-  <customwidget>
-   <class>InterfacePreviewWidget</class>
-   <extends>QLabel</extends>
-   <header>dialogs/preferences/preferences_widgets.hpp</header>
-  </customwidget>
- </customwidgets>
  <tabstops>
   <tabstop>langCombo</tabstop>
-  <tabstop>qt</tabstop>
-  <tabstop>skins</tabstop>
   <tabstop>fsController</tabstop>
   <tabstop>embedVideo</tabstop>
   <tabstop>resizingBox</tabstop>
@@ -758,6 +775,8 @@
   <tabstop>MetadataNetworkAccessMode</tabstop>
   <tabstop>assoButton</tabstop>
  </tabstops>
- <resources/>
+ <resources>
+  <include location="../../vlc.qrc"/>
+ </resources>
  <connections/>
 </ui>


=====================================
modules/gui/qt/pixmaps/prefs/sample_skins.png
=====================================
Binary files a/modules/gui/qt/pixmaps/prefs/sample_skins.png and b/modules/gui/qt/pixmaps/prefs/sample_skins.png differ



View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/33330313e13cdf4e3e4acb45505c8bbeb3612c42...ad377d480f78e8637f61b226435eedf4437dee3e

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/33330313e13cdf4e3e4acb45505c8bbeb3612c42...ad377d480f78e8637f61b226435eedf4437dee3e
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance


More information about the vlc-commits mailing list