From: Jean-Baptiste Kempf Date: Wed, 7 Mar 2007 21:03:26 +0000 (+0000) Subject: Qt4 - Preferences. Add CONFIG_DIRECTORY_ITEM. Does not work, but does not harm. Why... X-Git-Tag: 0.9.0-test0~8217 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=317dd0afc10fcc8fcb528cd3982689e5187e9698;p=vlc Qt4 - Preferences. Add CONFIG_DIRECTORY_ITEM. Does not work, but does not harm. Why ? can a C++ guru explain me? thks! --- diff --git a/modules/gui/qt4/components/preferences_widgets.cpp b/modules/gui/qt4/components/preferences_widgets.cpp index 3432696f70..f79e0ec846 100644 --- a/modules/gui/qt4/components/preferences_widgets.cpp +++ b/modules/gui/qt4/components/preferences_widgets.cpp @@ -1,11 +1,12 @@ /***************************************************************************** * preferences_widgets.cpp : Widgets for preferences displays **************************************************************************** - * Copyright (C) 2006 the VideoLAN team + * Copyright (C) 2006-2007 the VideoLAN team * $Id$ * * Authors: Clément Stenac * Antoine Cellerier + * Jean-Baptiste Kempf * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -106,7 +107,8 @@ ConfigControl *ConfigControl::createControl( vlc_object_t *p_this, line, false ); break; case CONFIG_ITEM_DIRECTORY: - fprintf( stderr, "Todo (CONFIG_ITEM_DIRECTORY)\n" ); + p_control = new DirectoryConfigControl( p_this, p_item, parent, l, + line, false ); break; case CONFIG_ITEM_KEY: p_control = new KeySelectorControl( p_this, p_item, parent, l, line ); @@ -263,6 +265,28 @@ void FileConfigControl::finish() label->setToolTip( qfu(p_item->psz_longtext) ); } +/********* String / Directory **********/ + +DirectoryConfigControl::DirectoryConfigControl( vlc_object_t *_p_this, + module_config_t *_p_item, QWidget *_p_widget, + QGridLayout *_p_layout, int& _int, bool _pwd ) : + FileConfigControl( _p_this, _p_item, _p_widget, _p_layout, _int, _pwd) +{} + +DirectoryConfigControl::DirectoryConfigControl( vlc_object_t *_p_this, + module_config_t *_p_item, QLabel *_p_label, + QLineEdit *_p_line, bool _pwd ) : + FileConfigControl( _p_this, _p_item, _p_label, _p_line, _pwd) +{} + + +void DirectoryConfigControl::updateField() +{ + text->setText( QFileDialog::getOpenFileName( NULL, + qtr( "Select File" ), qfu( p_this->p_libvlc->psz_homedir ), + NULL, 0, QFileDialog::ShowDirsOnly ) ); +} + /********* String / choice list **********/ StringListConfigControl::StringListConfigControl( vlc_object_t *_p_this, module_config_t *_p_item, QWidget *_parent, bool bycat, diff --git a/modules/gui/qt4/components/preferences_widgets.hpp b/modules/gui/qt4/components/preferences_widgets.hpp index 3017badf81..9ad8d2d1f4 100644 --- a/modules/gui/qt4/components/preferences_widgets.hpp +++ b/modules/gui/qt4/components/preferences_widgets.hpp @@ -6,6 +6,7 @@ * * Authors: Clément Stenac * Antoine Cellerier + * Jean-Baptiste Kempf * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -36,6 +37,7 @@ #include #include #include +#include #include "qt4.hpp" #include @@ -262,17 +264,37 @@ public: QLineEdit*, bool pwd ); virtual ~FileConfigControl() {}; virtual QString getValue() { return text->text(); }; - virtual void show() { text->show(); label->show(); } - virtual void hide() { text->hide(); label->hide(); } -public slots: + virtual void show() { text->show(); label->show(); browse->show(); } + virtual void hide() { text->hide(); label->hide(); browse->hide(); } +public slots: void updateField(); -private: +protected: void finish(); +private: QLineEdit *text; QLabel *label; QPushButton *browse; }; +class DirectoryConfigControl : public FileConfigControl +{ + Q_OBJECT; +public: + DirectoryConfigControl( vlc_object_t *, module_config_t *, QWidget *, + QGridLayout *, int&, bool pwd ); + DirectoryConfigControl( vlc_object_t *, module_config_t *, QLabel *, + QLineEdit*, bool pwd ); + virtual ~DirectoryConfigControl() {}; + virtual QString getValue() { return text->text(); }; + virtual void show() { text->show(); label->show(); browse->show(); } + virtual void hide() { text->hide(); label->hide(); browse->hide(); } +public slots: + void updateField(); +private: + QLineEdit *text; + QLabel *label; + QPushButton *browse; +}; class ModuleConfigControl : public VStringConfigControl { diff --git a/modules/gui/qt4/components/simple_preferences.cpp b/modules/gui/qt4/components/simple_preferences.cpp index 01a918cd5d..c669484ee5 100644 --- a/modules/gui/qt4/components/simple_preferences.cpp +++ b/modules/gui/qt4/components/simple_preferences.cpp @@ -157,8 +157,8 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent, dXdisplayDevice ); #endif - CONFIG_GENERIC( "snapshot-path", File, NULL, - snapshotsDirectory ); /* FIXME -> use file instead of string */ + CONFIG_GENERIC( "snapshot-path", Directory, NULL, + snapshotsDirectory ); CONFIG_GENERIC( "snapshot-prefix", String, NULL, snapshotsPrefix ); CONFIG_GENERIC( "snapshot-sequential", Bool, NULL, snapshotsSequentialNumbering ); @@ -192,13 +192,11 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent, #ifndef WIN32 CONFIG_GENERIC( "alsadev" , StringList , NULL, alsaDevice ); CONFIG_GENERIC( "dspdev" , File , NULL, OSSDevice ); - //FIXME File #else CONFIG_GENERIC( "directx-audio-device" , IntegerList, NULL, DirectXDevice ); #endif CONFIG_GENERIC( "audiofile-file" , File , NULL, FileName ); - //Fixme File CONFIG_GENERIC( "headphone-dolby" , Bool , NULL, headphoneEffect ); // CONFIG_GENERIC( "" , Bool, NULL, ); activation of normalizer @@ -243,7 +241,6 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent, /* CONFIG_GENERIC( "intf", Module, NULL, ??? ); */ //FIXME interface choice CONFIG_GENERIC( "qt-always-video", Bool, NULL, qtAlwaysVideo ); CONFIG_GENERIC( "skins2-last", File, NULL, fileSkin); - //FIXME File #if defined( WIN32 ) || defined(HAVE_DBUS_3) CONFIG_GENERIC( "one-instance", Bool, NULL, OneInterfaceMode ); CONFIG_GENERIC( "playlist-enqueue", Bool, NULL, @@ -258,7 +255,6 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent, CONFIG_GENERIC( "sub-language", String, NULL, preferredLanguage ); CONFIG_GENERIC( "freetype-font", File, NULL, font ); - /* FIXME -> use file instead of string */ CONFIG_GENERIC( "freetype-color", IntegerList, NULL, fontColor ); CONFIG_GENERIC( "freetype-rel-fontsize", IntegerList, NULL, fontSize );