Commit 814c0649 authored by Francois Cartegnie's avatar Francois Cartegnie Committed by Jean-Baptiste Kempf

UI: simple prefs menu UI fixes and enhancement

UI: new resources for prefs menu
Signed-off-by: default avatarJean-Baptiste Kempf <jb@videolan.org>
parent 4271ab26
...@@ -199,6 +199,29 @@ void ConfigControl::doApply( intf_thread_t *p_intf ) ...@@ -199,6 +199,29 @@ void ConfigControl::doApply( intf_thread_t *p_intf )
} }
} }
/*******************************************************
* Simple widgets
*******************************************************/
InterfacePreviewWidget::InterfacePreviewWidget
( QWidget *parent ) : QLabel( parent, 0 )
{
setGeometry( 0, 0, 128, 100 );
setSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed );
}
void InterfacePreviewWidget::setPreview( int comboid )
{
/* Need to move resources references as soon as qt4.cpp
local defines has been moved somewhere else
*/
char * pixmaps[] = { ":/prefsmenu/sample_classic",
":/prefsmenu/sample_complete",
":/prefsmenu/sample_minimal" };
setPixmap( QPixmap( pixmaps[ comboid ] ) );
}
/************************************************************************** /**************************************************************************
* String-based controls * String-based controls
*************************************************************************/ *************************************************************************/
......
...@@ -53,6 +53,23 @@ class QGridLayout; ...@@ -53,6 +53,23 @@ class QGridLayout;
class QDialogButtonBox; class QDialogButtonBox;
class QVBoxLayout; class QVBoxLayout;
/*******************************************************
* Simple widgets
*******************************************************/
class InterfacePreviewWidget : public QLabel
{
Q_OBJECT
public:
InterfacePreviewWidget( QWidget * );
public slots:
void setPreview( int );
};
/*******************************************************
* Variable controls
*******************************************************/
class ConfigControl : public QObject class ConfigControl : public QObject
{ {
Q_OBJECT Q_OBJECT
......
...@@ -473,10 +473,8 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent, ...@@ -473,10 +473,8 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
CONFIG_GENERIC( "language", StringList, ui.languageLabel, language ); CONFIG_GENERIC( "language", StringList, ui.languageLabel, language );
BUTTONACT( ui.assoButton, assoDialog() ); BUTTONACT( ui.assoButton, assoDialog() );
#else #else
ui.language->hide(); ui.languageBox->hide();
ui.languageLabel->hide(); ui.assoBox->hide();
ui.assoName->hide();
ui.assoButton->hide();
#endif #endif
/* interface */ /* interface */
...@@ -485,14 +483,27 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent, ...@@ -485,14 +483,27 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
{ {
if( strstr( psz_intf, "skin" ) ) if( strstr( psz_intf, "skin" ) )
ui.skins->setChecked( true ); ui.skins->setChecked( true );
else if( strstr( psz_intf, "qt" ) ) } else {
ui.qt4->setChecked( true ); /* defaults to qt */
ui.qt4->setChecked( true );
} }
free( psz_intf ); free( psz_intf );
optionWidgets.append( ui.skins ); optionWidgets.append( ui.skins );
optionWidgets.append( ui.qt4 ); optionWidgets.append( ui.qt4 );
ui.skins_zone->setEnabled( ui.skins->isChecked() );
CONNECT( ui.skins, toggled( bool ), ui.skins_zone, setEnabled( bool ) );
ui.native_zone->setEnabled( ui.qt4->isChecked() );
CONNECT( ui.qt4, toggled( bool ), ui.native_zone, setEnabled( bool ) );
InterfacePreviewWidget *preview = new InterfacePreviewWidget( this );
( (QGridLayout *) ui.LooknfeelBox->layout() )->
addWidget( preview, 1, 0, 1, 2 );
CONNECT( ui.displayModeBox, currentIndexChanged( int ),
preview, setPreview( int ) );
CONFIG_GENERIC( "qt-display-mode", IntegerList, ui.displayLabel, CONFIG_GENERIC( "qt-display-mode", IntegerList, ui.displayLabel,
displayModeBox ); displayModeBox );
CONFIG_GENERIC( "embedded-video", Bool, NULL, embedVideo ); CONFIG_GENERIC( "embedded-video", Bool, NULL, embedVideo );
...@@ -510,17 +521,21 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent, ...@@ -510,17 +521,21 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
CONFIG_GENERIC( "qt-updates-notif", Bool, NULL, updatesBox ); CONFIG_GENERIC( "qt-updates-notif", Bool, NULL, updatesBox );
CONFIG_GENERIC_NO_BOOL( "qt-updates-days", Integer, NULL, CONFIG_GENERIC_NO_BOOL( "qt-updates-days", Integer, NULL,
updatesDays ); updatesDays );
ui.updatenotifier_zone->setEnabled( ui.updatesBox->isChecked() );
CONNECT( ui.updatesBox, toggled( bool ), CONNECT( ui.updatesBox, toggled( bool ),
ui.updatesDays, setEnabled( bool ) ); ui.updatenotifier_zone, setEnabled( bool ) );
#else #else
ui.updatesBox->hide(); ui.updatesBox->hide();
ui.updatesDays->hide(); ui.updatenotifier_zone->hide();
#endif #endif
/* ONE INSTANCE options */ /* ONE INSTANCE options */
#if defined( WIN32 ) || defined( HAVE_DBUS ) || defined(__APPLE__) #if defined( WIN32 ) || defined( HAVE_DBUS ) || defined(__APPLE__)
CONFIG_GENERIC( "one-instance", Bool, NULL, OneInterfaceMode ); CONFIG_GENERIC( "one-instance", Bool, NULL, OneInterfaceMode );
CONFIG_GENERIC( "playlist-enqueue", Bool, NULL, CONFIG_GENERIC( "playlist-enqueue", Bool, NULL,
EnqueueOneInterfaceMode ); EnqueueOneInterfaceMode );
ui.EnqueueOneInterfaceMode->setEnabled( ui.OneInterfaceMode->isChecked() );
CONNECT( ui.OneInterfaceMode, toggled( bool ),
ui.EnqueueOneInterfaceMode, setEnabled( bool ) );
#else #else
ui.OneInterfaceBox->hide(); ui.OneInterfaceBox->hide();
#endif #endif
...@@ -613,6 +628,7 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent, ...@@ -613,6 +628,7 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
#undef CONFIG_GENERIC #undef CONFIG_GENERIC
} }
void SPrefsPanel::updateAudioOptions( int number) void SPrefsPanel::updateAudioOptions( int number)
{ {
QString value = qobject_cast<QComboBox *>(optionWidgets[audioOutCoB]) QString value = qobject_cast<QComboBox *>(optionWidgets[audioOutCoB])
......
...@@ -149,9 +149,9 @@ static void ShowDialog ( intf_thread_t *, int, int, intf_dialog_args_t * ); ...@@ -149,9 +149,9 @@ static void ShowDialog ( intf_thread_t *, int, int, intf_dialog_args_t * );
"as lyrics, album arts...\n" \ "as lyrics, album arts...\n" \
" - minimal mode with limited controls" ) " - minimal mode with limited controls" )
#define QT_NORMAL_MODE_TEXT N_( "Classic look" ) #define QT_NORMAL_MODE_TEXT N_( "Classic" )
#define QT_ALWAYS_VIDEO_MODE_TEXT N_( "Complete look with information area" ) #define QT_ALWAYS_VIDEO_MODE_TEXT N_( "Complete (with information area)" )
#define QT_MINIMAL_MODE_TEXT N_( "Minimal look with no menus" ) #define QT_MINIMAL_MODE_TEXT N_( "Minimal (without menu)" )
#define QT_FULLSCREEN_TEXT N_( "Show a controller in fullscreen mode" ) #define QT_FULLSCREEN_TEXT N_( "Show a controller in fullscreen mode" )
#define QT_NATIVEOPEN_TEXT N_( "Embed the file browser in open dialog" ) #define QT_NATIVEOPEN_TEXT N_( "Embed the file browser in open dialog" )
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>732</width> <width>732</width>
<height>604</height> <height>657</height>
</rect> </rect>
</property> </property>
<property name="sizePolicy"> <property name="sizePolicy">
...@@ -20,16 +20,6 @@ ...@@ -20,16 +20,6 @@
<string>Form</string> <string>Form</string>
</property> </property>
<layout class="QGridLayout" name="gridLayout_3"> <layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<widget class="QLabel" name="languageLabel">
<property name="text">
<string>Language</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="language"/>
</item>
<item row="2" column="0" colspan="2"> <item row="2" column="0" colspan="2">
<widget class="QGroupBox" name="OneInterfaceBox"> <widget class="QGroupBox" name="OneInterfaceBox">
<property name="title"> <property name="title">
...@@ -43,13 +33,6 @@ ...@@ -43,13 +33,6 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="0">
<widget class="QLabel" name="assoName">
<property name="text">
<string>File associations:</string>
</property>
</widget>
</item>
<item row="0" column="1" colspan="2"> <item row="0" column="1" colspan="2">
<widget class="QCheckBox" name="EnqueueOneInterfaceMode"> <widget class="QCheckBox" name="EnqueueOneInterfaceMode">
<property name="text"> <property name="text">
...@@ -57,23 +40,10 @@ ...@@ -57,23 +40,10 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="2">
<widget class="QPushButton" name="assoButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Association Setup</string>
</property>
</widget>
</item>
</layout> </layout>
</widget> </widget>
</item> </item>
<item row="3" column="0" colspan="2"> <item row="4" column="0" colspan="2">
<widget class="QGroupBox" name="groupBox_2"> <widget class="QGroupBox" name="groupBox_2">
<property name="title"> <property name="title">
<string>Privacy / Network Interaction</string> <string>Privacy / Network Interaction</string>
...@@ -82,7 +52,7 @@ ...@@ -82,7 +52,7 @@
<item row="0" column="0"> <item row="0" column="0">
<widget class="QLabel" name="artFetchLabel"> <widget class="QLabel" name="artFetchLabel">
<property name="text"> <property name="text">
<string>Album art download policy</string> <string>Album art download policy:</string>
</property> </property>
</widget> </widget>
</item> </item>
...@@ -93,16 +63,6 @@ ...@@ -93,16 +63,6 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="2">
<widget class="QSpinBox" name="updatesDays">
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="suffix">
<string> days</string>
</property>
</widget>
</item>
<item row="2" column="0"> <item row="2" column="0">
<widget class="QCheckBox" name="saveRecentlyPlayed"> <widget class="QCheckBox" name="saveRecentlyPlayed">
<property name="text"> <property name="text">
...@@ -118,7 +78,7 @@ ...@@ -118,7 +78,7 @@
<item> <item>
<widget class="QLabel" name="filterLabel"> <widget class="QLabel" name="filterLabel">
<property name="text"> <property name="text">
<string>Filter</string> <string>Filter:</string>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
...@@ -146,22 +106,51 @@ ...@@ -146,22 +106,51 @@
</item> </item>
</layout> </layout>
</item> </item>
<item row="1" column="1" colspan="2">
<widget class="QWidget" name="updatenotifier_zone" native="true">
<layout class="QHBoxLayout" name="horizontalLayout_5">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>every</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="updatesDays">
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="suffix">
<string> days</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
</layout> </layout>
</widget> </widget>
</item> </item>
<item row="1" column="0" colspan="2"> <item row="1" column="0" colspan="2">
<widget class="QGroupBox" name="groupBox"> <widget class="QGroupBox" name="LooknfeelBox">
<property name="title"> <property name="title">
<string>Interface Type</string> <string>Look and feel</string>
</property> </property>
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<item row="0" column="0" colspan="2">
<widget class="QRadioButton" name="qt4">
<property name="text">
<string>Native</string>
</property>
</widget>
</item>
<item row="0" column="2" colspan="4"> <item row="0" column="2" colspan="4">
<widget class="QLabel" name="defaultLabel"> <widget class="QLabel" name="defaultLabel">
<property name="sizePolicy"> <property name="sizePolicy">
...@@ -187,51 +176,14 @@ ...@@ -187,51 +176,14 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="2"> <item row="6" column="0" colspan="2">
<widget class="QLabel" name="displayLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Display mode</string>
</property>
</widget>
</item>
<item row="1" column="3" colspan="3">
<widget class="QComboBox" name="displayModeBox">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="2" column="2" colspan="2">
<widget class="QCheckBox" name="embedVideo">
<property name="text">
<string>Embed video in interface</string>
</property>
</widget>
</item>
<item row="3" column="2" colspan="2">
<widget class="QCheckBox" name="fsController">
<property name="text">
<string>Show a controller in fullscreen</string>
</property>
</widget>
</item>
<item row="5" column="0" colspan="2">
<widget class="QRadioButton" name="skins"> <widget class="QRadioButton" name="skins">
<property name="text"> <property name="text">
<string>Skins</string> <string>Use custom skin</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="5" column="2" colspan="4"> <item row="6" column="2" colspan="4">
<widget class="QLabel" name="skinsLabel"> <widget class="QLabel" name="skinsLabel">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum"> <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
...@@ -265,31 +217,170 @@ ...@@ -265,31 +217,170 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="6" column="0" colspan="2"> <item row="5" column="0" colspan="6">
<widget class="QLabel" name="skinFileLabel"> <widget class="Line" name="line">
<property name="text"> <property name="orientation">
<string>Skin file</string> <enum>Qt::Horizontal</enum>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>fileSkin</cstring>
</property> </property>
</widget> </widget>
</item> </item>
<item row="6" column="2" colspan="3"> <item row="7" column="2" colspan="4">
<widget class="QLineEdit" name="fileSkin"> <widget class="QWidget" name="skins_zone" native="true">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed"> <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
</property> </property>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<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>
<widget class="QLineEdit" name="fileSkin">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item>
<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>
</layout>
</widget>
</item>
<item row="0" column="0" colspan="2">
<widget class="QRadioButton" name="qt4">
<property name="text">
<string>Use native style</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget> </widget>
</item> </item>
<item row="6" column="5"> <item row="1" column="2" colspan="4">
<widget class="QPushButton" name="skinBrowse"> <widget class="QWidget" name="native_zone" native="true">
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="1">
<widget class="QComboBox" name="displayModeBox">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="7" column="1">
<widget class="QCheckBox" name="fsController">
<property name="text">
<string>Show controls in full screen mode</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="displayLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="text">
<string>Display mode:</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QCheckBox" name="systrayBox">
<property name="text">
<string>Show systray icon</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QCheckBox" name="resizingBox">
<property name="text">
<string>Resize interface to video size</string>
</property>
</widget>
</item>
<item row="7" column="0">
<widget class="QCheckBox" name="embedVideo">
<property name="text">
<string>Embed video in interface</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
<item row="0" column="0" colspan="2">
<widget class="QGroupBox" name="languageBox">
<property name="title">
<string>Language</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QLabel" name="languageLabel">
<property name="text">
<string>Menus language:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="language"/>
</item>
</layout>
</widget>
</item>
<item row="3" column="0" colspan="2">
<widget class="QGroupBox" name="assoBox">
<property name="title">
<string>File associations</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QPushButton" name="assoButton">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed"> <sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch> <horstretch>0</horstretch>
...@@ -297,30 +388,22 @@ ...@@ -297,30 +388,22 @@
</sizepolicy> </sizepolicy>
</property> </property>
<property name="text"> <property name="text">
<string>Browse...</string> <string>Set up associations...</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="4" column="0" colspan="6"> <item>
<widget class="Line" name="line"> <spacer name="horizontalSpacer">
<property name="orientation"> <property name="orientation">
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
</property> </property>
</widget> <property name="sizeHint" stdset="0">
</item> <size>
<item row="3" column="4" colspan="2"> <width>40</width>
<widget class="QCheckBox" name="systrayBox"> <height>20</height>
<property name="text"> </size>
<string>Systray icon</string>
</property>
</widget>
</item>
<item row="2" column="4" colspan="2">
<widget class="QCheckBox" name="resizingBox">
<property name="text">
<string>Resize interface to video size</string>
</property> </property>
</widget> </spacer>
</item> </item>
</layout> </layout>
</widget> </widget>
...@@ -328,14 +411,10 @@ ...@@ -328,14 +411,10 @@
</layout> </layout>
</widget> </widget>
<tabstops> <tabstops>
<tabstop>language</tabstop>
<tabstop>qt4</tabstop> <tabstop>qt4</tabstop>
<tabstop>displayModeBox</tabstop>
<tabstop>OneInterfaceMode</tabstop> <tabstop>OneInterfaceMode</tabstop>
<tabstop>assoButton</tabstop>
<tabstop>artFetcher</tabstop> <tabstop>artFetcher</tabstop>
<tabstop>updatesBox</tabstop> <tabstop>updatesBox</tabstop>
<tabstop>updatesDays</tabstop>
</tabstops> </tabstops>
<resources/> <resources/>
<connections/> <connections/>
......
...@@ -92,4 +92,9 @@ ...@@ -92,4 +92,9 @@
<file alias="lock">pixmaps/lock.png</file> <file alias="lock">pixmaps/lock.png</file>
<file alias="playlist_remove" >pixmaps/playlist/remove.png</file> <file alias="playlist_remove" >pixmaps/playlist/remove.png</file>
</qresource> </qresource>
<qresource prefix="/prefsmenu" >
<file alias="sample_classic" >pixmaps/sample_classic.png</file>
<file alias="sample_complete" >pixmaps/sample_complete.png</file>
<file alias="sample_minimal" >pixmaps/sample_minimal.png</file>
</qresource>
</RCC> </RCC>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment