From 04e52ef4fcfd62cf03de3a9a679f55f94824ea90 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Cl=C3=A9ment=20Stenac?= Date: Sat, 3 Jun 2006 18:03:40 +0000 Subject: [PATCH] Preferences --- modules/gui/qt4/Modules.am | 18 +- modules/gui/qt4/components/preferences.cpp | 518 ++++++++++++++++++ .../{preferences_tree.hpp => preferences.hpp} | 65 ++- .../gui/qt4/components/preferences_tree.cpp | 27 - .../qt4/components/preferences_widgets.cpp | 4 +- .../qt4/components/preferences_widgets.hpp | 2 +- modules/gui/qt4/dialogs/prefs_dialog.cpp | 159 ++++++ modules/gui/qt4/dialogs/prefs_dialog.hpp | 79 +++ modules/gui/qt4/dialogs_provider.cpp | 2 + modules/gui/qt4/pixmaps/advanced.xpm | 125 +++++ modules/gui/qt4/pixmaps/audio.xpm | 102 ++++ modules/gui/qt4/pixmaps/codec.xpm | 151 +++++ modules/gui/qt4/pixmaps/intf.xpm | 235 ++++++++ modules/gui/qt4/pixmaps/type_net.xpm | 173 ++++++ modules/gui/qt4/pixmaps/type_playlist.xpm | 145 +++++ modules/gui/qt4/pixmaps/video.xpm | 143 +++++ 16 files changed, 1914 insertions(+), 34 deletions(-) create mode 100644 modules/gui/qt4/components/preferences.cpp rename modules/gui/qt4/components/{preferences_tree.hpp => preferences.hpp} (54%) delete mode 100644 modules/gui/qt4/components/preferences_tree.cpp create mode 100644 modules/gui/qt4/dialogs/prefs_dialog.cpp create mode 100644 modules/gui/qt4/dialogs/prefs_dialog.hpp create mode 100644 modules/gui/qt4/pixmaps/advanced.xpm create mode 100644 modules/gui/qt4/pixmaps/audio.xpm create mode 100644 modules/gui/qt4/pixmaps/codec.xpm create mode 100644 modules/gui/qt4/pixmaps/intf.xpm create mode 100644 modules/gui/qt4/pixmaps/type_net.xpm create mode 100644 modules/gui/qt4/pixmaps/type_playlist.xpm create mode 100644 modules/gui/qt4/pixmaps/video.xpm diff --git a/modules/gui/qt4/Modules.am b/modules/gui/qt4/Modules.am index 2d72f7b7b7..ed5d711bd2 100644 --- a/modules/gui/qt4/Modules.am +++ b/modules/gui/qt4/Modules.am @@ -18,9 +18,11 @@ TOMOC = main_interface \ dialogs_provider \ input_manager \ dialogs/playlist \ + dialogs/prefs_dialog \ dialogs/streaminfo \ components/infopanels \ components/preferences_widgets \ + components/preferences \ util/input_slider MOCCPP := $(TOMOC:%=%.moc.cpp) @@ -30,8 +32,10 @@ nodist_SOURCES_qt4 = \ input_manager.moc.cpp \ dialogs/playlist.moc.cpp \ dialogs/streaminfo.moc.cpp \ + dialogs/prefs_dialog.moc.cpp \ components/infopanels.moc.cpp \ components/preferences_widgets.moc.cpp \ + components/preferences.moc.cpp \ util/input_slider.moc.cpp if ENABLE_QT4 @@ -56,9 +60,11 @@ SOURCES_qt4 = qt4.cpp \ dialogs_provider.cpp \ input_manager.cpp \ dialogs/playlist.cpp \ + dialogs/prefs_dialog.cpp \ dialogs/streaminfo.cpp \ components/infopanels.cpp \ components/preferences_widgets.cpp \ + components/preferences.cpp \ util/input_slider.cpp $(NULL) @@ -69,8 +75,16 @@ EXTRA_DIST += \ input_manager.hpp \ dialogs/playlist.hpp \ dialogs/streaminfo.hpp \ + dialogs/prefs_dialog.hpp \ components/infopanels.hpp \ components/preferences_widgets.hpp \ + components/preferences.hpp \ util/input_slider.hpp \ - ui/input_stats.ui - + ui/input_stats.ui \ + pixmaps/advanced.xpm \ + pixmaps/audio.xpm \ + pixmaps/codec.xpm \ + pixmaps/intf.xpm \ + pixmaps/type_net.xpm \ + pixmaps/type_playlist.xpm \ + pixmaps/video.xpm diff --git a/modules/gui/qt4/components/preferences.cpp b/modules/gui/qt4/components/preferences.cpp new file mode 100644 index 0000000000..50cd460872 --- /dev/null +++ b/modules/gui/qt4/components/preferences.cpp @@ -0,0 +1,518 @@ +/***************************************************************************** + * preferences_tree.cpp : Tree of modules for preferences + **************************************************************************** + * Copyright (C) 2000-2005 the VideoLAN team + * $Id: wxwidgets.cpp 15731 2006-05-25 14:43:53Z zorglub $ + * + * Authors: Clément Stenac + * + * 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 + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. + *****************************************************************************/ + +#include "components/preferences.hpp" +#include "components/preferences_widgets.hpp" +#include + +#include "pixmaps/audio.xpm" +#include "pixmaps/video.xpm" +#include "pixmaps/type_net.xpm" +#include "pixmaps/type_playlist.xpm" +#include "pixmaps/advanced.xpm" +#include "pixmaps/codec.xpm" +#include "pixmaps/intf.xpm" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define ITEM_HEIGHT 25 + +/********************************************************************* + * The Tree + *********************************************************************/ +PrefsTree::PrefsTree( intf_thread_t *_p_intf, QWidget *_parent ) : + QTreeWidget( _parent ), p_intf( _p_intf ) +{ + module_t *p_module; + vlc_list_t *p_list = vlc_list_find( p_intf, VLC_OBJECT_MODULE, + FIND_ANYWHERE ); + if( !p_list ) return; + + setColumnCount( 1 ); + setIconSize( QSize( ITEM_HEIGHT,ITEM_HEIGHT ) ); + +#define BI( a,b) QIcon a##_icon = QIcon( QPixmap( b##_xpm )) + BI( audio, audio ); + BI( video, video ); + BI( input, codec ); + BI( sout, type_net ); + BI( advanced, advanced ); + BI( playlist, type_playlist ); + BI( interface, intf ); +#undef BI + + /* Build the tree for the main module */ + int i_index; + for( i_index = 0; i_index < p_list->i_count; i_index++ ) + { + p_module = (module_t *)p_list->p_values[i_index].p_object; + if( !strcmp( p_module->psz_object_name, "main" ) ) + break; + } + if( i_index < p_list->i_count ) + { + module_config_t *p_item = p_module->p_config; + PrefsItemData *data = NULL; + QTreeWidgetItem *current_item = NULL; + if( p_item ) do + { + char *psz_help; + QIcon icon; + switch( p_item->i_type ) + { + case CONFIG_CATEGORY: + if( p_item->i_value == -1 ) break; + data = new PrefsItemData(); + data->name = QString( config_CategoryNameGet + ( p_item->i_value ) ); + psz_help = config_CategoryHelpGet( p_item->i_value ); + if( psz_help ) + data->help = QString( psz_help ); + else + data->help.clear(); + data->i_type = TYPE_CATEGORY; + data->i_object_id = p_item->i_value; + + switch( p_item->i_value ) + { +#define CI(a,b) case a: icon = b##_icon;break + CI( CAT_AUDIO, audio ); + CI( CAT_VIDEO, video ); + CI( CAT_INPUT, input ); + CI( CAT_SOUT, sout ); + CI( CAT_ADVANCED, advanced ); + CI( CAT_PLAYLIST, playlist ); + CI( CAT_INTERFACE, interface ); +#undef CI + } + + current_item = new QTreeWidgetItem(); + current_item->setText( 0, data->name ); + current_item->setIcon( 0 , icon ); + current_item->setData( 0, Qt::UserRole, + qVariantFromValue( data ) ); + addTopLevelItem( current_item ); + //fprintf( stderr, "Adding %s\n", current_item->text(0).toLatin1().data() ); + break; + case CONFIG_SUBCATEGORY: + if( p_item->i_value == -1 ) break; + if( data && + ( p_item->i_value == SUBCAT_VIDEO_GENERAL || + p_item->i_value == SUBCAT_ADVANCED_MISC || + p_item->i_value == SUBCAT_INPUT_GENERAL || + p_item->i_value == SUBCAT_INTERFACE_GENERAL || + p_item->i_value == SUBCAT_SOUT_GENERAL|| + p_item->i_value == SUBCAT_PLAYLIST_GENERAL|| + p_item->i_value == SUBCAT_AUDIO_GENERAL ) ) + { + // Data still contains the correct thing + data->i_type = TYPE_CATSUBCAT; + data->i_subcat_id = p_item->i_value; + data->name = QString( config_CategoryNameGet( + p_item->i_value ) ); + psz_help = config_CategoryHelpGet( p_item->i_value ); + if( psz_help ) + data->help = QString( psz_help ); + else + data->help.clear(); + current_item->setData( 0, Qt::UserRole, + QVariant::fromValue( data ) ); + continue; + } + data = new PrefsItemData(); + data->name = QString( config_CategoryNameGet( p_item->i_value)); + psz_help = config_CategoryHelpGet( p_item->i_value ); + if( psz_help ) + data->help = QString( psz_help ); + else + data->help.clear(); + data->i_type = TYPE_SUBCATEGORY; + data->i_object_id = p_item->i_value; + + assert( current_item ); + + /* TODO : Choose the image */ + QTreeWidgetItem *subcat_item = new QTreeWidgetItem(); + subcat_item->setText( 0, data->name ); + //item->setIcon( 0 , XXX ); + subcat_item->setData( 0, Qt::UserRole, + qVariantFromValue(data) ); + subcat_item->setSizeHint( 0, QSize( -1, ITEM_HEIGHT ) ); + current_item->addChild( subcat_item ); + break; + } + } while( p_item->i_type != CONFIG_HINT_END && p_item++ ); + } + + /* Build the tree of plugins */ + for( int i_index = 0; i_index < p_list->i_count; i_index++ ) + { + module_config_t *p_item; + int i_subcategory = -1, i_category = -1, i_options = 0; + p_module = (module_t *)p_list->p_values[i_index].p_object; + + // Main module excluded + if( !strcmp( p_module->psz_object_name, "main" ) ) continue; + + /* Exclude empty plugins (submodules don't have config options, they + * are stored in the parent module) */ + if( p_module->b_submodule ) continue; + + p_item = p_module->p_config; + if( !p_item ) continue; + + do { + if( p_item->i_type == CONFIG_CATEGORY ) + i_category = p_item->i_value; + else if( p_item->i_type == CONFIG_SUBCATEGORY ) + i_subcategory = p_item->i_value; + if( p_item->i_type & CONFIG_ITEM ) + i_options++; + + if( i_options > 0 && i_category >= 0 && i_subcategory >= 0 ) + break; + } while( p_item->i_type != CONFIG_HINT_END && p_item++ ); + + if( !i_options ) continue; // Nothing to display + + // Locate the category item; + QTreeWidgetItem *subcat_item = NULL; + bool b_found = false; + for( int i_cat_index = 0 ; i_cat_index < topLevelItemCount(); + i_cat_index++ ) + { + QTreeWidgetItem *cat_item = topLevelItem( i_cat_index ); + PrefsItemData *data = cat_item->data( 0, Qt::UserRole ). + value(); + if( data->i_object_id == i_category ) + { + for( int i_sc_index = 0; i_sc_index < cat_item->childCount(); + i_sc_index++ ) + { + subcat_item = cat_item->child( i_sc_index ); + PrefsItemData *sc_data = subcat_item->data(0, Qt::UserRole). + value(); + if( sc_data && sc_data->i_object_id == i_subcategory ) + { + b_found = true; + break; + } + } + if( !b_found ) + { + subcat_item = cat_item; + b_found = true; + } + break; + } + } + if( !b_found ) continue; + + PrefsItemData *module_data = new PrefsItemData(); + module_data->b_submodule = p_module->b_submodule; + module_data->i_type = TYPE_MODULE; + module_data->i_object_id = p_module->b_submodule ? + ((module_t *)p_module->p_parent)->i_object_id : + p_module->i_object_id; + module_data->help.clear(); + // TODO image + QTreeWidgetItem *module_item = new QTreeWidgetItem(); + module_item->setText( 0, p_module->psz_shortname ? + p_module->psz_shortname : p_module->psz_object_name ); + //item->setIcon( 0 , XXX ); + module_item->setData( 0, Qt::UserRole, + QVariant::fromValue( module_data) ); + module_item->setSizeHint( 0, QSize( -1, ITEM_HEIGHT ) ); + subcat_item->addChild( module_item ); + } + + /* We got everything, just sort a bit */ + sortItems( 0, Qt::AscendingOrder ); + + vlc_list_release( p_list ); +} + +PrefsTree::~PrefsTree() {} + +void PrefsTree::ApplyAll() +{ + DoAll( false ); +} + +void PrefsTree::CleanAll() +{ + DoAll( true ); +} + +/// \todo When cleaning, we should remove the panel ? +void PrefsTree::DoAll( bool doclean ) +{ + for( int i_cat_index = 0 ; i_cat_index < topLevelItemCount(); + i_cat_index++ ) + { + QTreeWidgetItem *cat_item = topLevelItem( i_cat_index ); + for( int i_sc_index = 0; i_sc_index <= cat_item->childCount(); + i_sc_index++ ) + { + QTreeWidgetItem *sc_item = cat_item->child( i_sc_index ); + for( int i_module = 0 ; i_module <= sc_item->childCount(); + i_module++ ) + { + PrefsItemData *data = sc_item->child( i_sc_index )-> + data( 0, Qt::UserRole ). + value(); + if( data->panel && doclean ) + data->panel->Clean(); + else if( data->panel ) + data->panel->Apply(); + } + } + } +} + + +/********************************************************************* + * The Panel + *********************************************************************/ +PrefsPanel::PrefsPanel( QWidget *_parent ) : QWidget( _parent ) +{} + +PrefsPanel::PrefsPanel( intf_thread_t *_p_intf, QWidget *_parent, + PrefsItemData * data ) : + QWidget( _parent ), p_intf( _p_intf ) +{ + module_config_t *p_item; + module_t *p_module; + vlc_list_t *p_list = NULL; + global_layout = new QVBoxLayout(); + + if( data->i_type == TYPE_CATEGORY ) + { + /* TODO */ + return; + } + else if( data->i_type == TYPE_MODULE ) + { + p_module = (module_t *) vlc_object_get( p_intf, data->i_object_id ); + } + else + { + /* List the plugins */ + int i_index; + vlc_bool_t b_found = VLC_FALSE; + p_list = vlc_list_find( p_intf, VLC_OBJECT_MODULE, FIND_ANYWHERE ); + if( !p_list ) return; + + for( i_index = 0; i_index < p_list->i_count; i_index++ ) + { + p_module = (module_t *)p_list->p_values[i_index].p_object; + if( !strcmp( p_module->psz_object_name, "main" ) ) + { + b_found = VLC_TRUE; + break; + } + } + if( !p_module && !b_found ) + { + msg_Warn( p_intf, "unable to create preferences (main not found)"); + return; + } + } + + if( p_module->b_submodule ) + p_item = ((module_t *)p_module->p_parent)->p_config; + else + p_item = p_module->p_config; + + if( data->i_type == TYPE_SUBCATEGORY || data->i_type == TYPE_CATSUBCAT ) + { + do + { + if( p_item->i_type == CONFIG_SUBCATEGORY && + ( data->i_type == TYPE_SUBCATEGORY && + p_item->i_value == data->i_object_id ) || + ( data->i_type == TYPE_CATSUBCAT && + p_item->i_value == data->i_subcat_id ) ) + { + break; + } + if( p_item->i_type == CONFIG_HINT_END ) break; + } while( p_item++ ); + } + + QString head; + if( data->i_type == TYPE_SUBCATEGORY || data->i_type == TYPE_CATSUBCAT ) + { + head = QString( data->name ); + p_item++; // Why that ? + } + else + head = QString( p_module->psz_longname ); + + QLabel *label = new QLabel( head, this ); + QFont font = label->font(); + font.setPointSize( font.pointSize() + 2 ); font.setBold( true ); + label->setFont( font ); + QLabel *help = new QLabel( data->help, this ); + help->setWordWrap( true ); + + global_layout->addWidget( label ); + global_layout->addWidget( help ); + + QGroupBox *box = NULL; + QVBoxLayout *boxlayout = NULL; + + QScrollArea *scroller= new QScrollArea; + QWidget *scrolled_area = new QWidget; + + QVBoxLayout *layout = new QVBoxLayout(); + + if( p_item ) do + { + if( ( ( data->i_type == TYPE_SUBCATEGORY && + p_item->i_value != data->i_object_id ) || + ( data->i_type == TYPE_CATSUBCAT && + p_item->i_value != data->i_subcat_id ) ) && + ( p_item->i_type == CONFIG_CATEGORY || + p_item->i_type == CONFIG_SUBCATEGORY ) ) + break; + if( p_item->b_internal == VLC_TRUE ) continue; + + if( p_item->i_type == CONFIG_SECTION ) + { + if( box ) + { + box->setLayout( boxlayout ); + layout->addWidget( box, 1 ); + } + box = new QGroupBox( p_item->psz_text ); + boxlayout = new QVBoxLayout(); + } + + ConfigControl *control = ConfigControl::createControl( + VLC_OBJECT( p_intf ), p_item, + NULL ); + if( !control ) + { + continue; + } + if( !box ) + layout->addWidget( control ); + else + boxlayout->addWidget( control ); + + controls.append( control ); + } + while( !(p_item->i_type == CONFIG_HINT_END || + ( ( data->i_type == TYPE_SUBCATEGORY || + data->i_type == TYPE_CATSUBCAT ) && + ( p_item->i_type == CONFIG_CATEGORY || + p_item->i_type == CONFIG_SUBCATEGORY ) ) ) && p_item++ ); + + if( box ) + { + box->setLayout( boxlayout ); + layout->addWidget( box, 1 ); + } + + scrolled_area->setSizePolicy( QSizePolicy::Preferred,QSizePolicy::Fixed ); + scrolled_area->setLayout( layout ); + scroller->setWidget( scrolled_area ); + scroller->setWidgetResizable( true ); + global_layout->addWidget( scroller ); + + some_hidden_text = new QLabel( "Some options are available but hidden. "\ + "Check \"Advanced options\" to see them." ); + some_hidden_text->setWordWrap( true ); + + setLayout( global_layout ); + setAdvanced( false ); +} + +void PrefsPanel::Apply() +{ + /* todo */ + QList::Iterator i; + for( i = controls.begin() ; i != controls.end() ; i++ ) + { + VIntConfigControl *vicc = qobject_cast(*i); + if( !vicc ) + { + VFloatConfigControl *vfcc = qobject_cast(*i); + if( !vfcc) + { + VStringConfigControl *vscc = + qobject_cast(*i); + assert( vscc ); + config_PutPsz( p_intf, vscc->getName().toAscii().data(), + vscc->getValue().toAscii().data() ); + continue; + } + config_PutFloat( p_intf, vfcc->getName().toAscii().data(), + vfcc->getValue() ); + continue; + } + config_PutInt( p_intf, vicc->getName().toAscii().data(), + vicc->getValue() ); + } +} + +void PrefsPanel::Clean() +{} + +void PrefsPanel::setAdvanced( bool adv ) +{ + bool some_hidden = false; + if( adv == advanced ) return; + + advanced = adv; + QList::Iterator i; + for( i = controls.begin() ; i != controls.end() ; i++ ) + { + if( (*i)->isAdvanced() ) + { + fprintf( stderr, "Showing \n" ); + if( !advanced ) some_hidden = true; + (*i)->setVisible( advanced ); + } + } + if( some_hidden_text ) + { + global_layout->removeWidget( some_hidden_text ); + some_hidden_text->hide(); + } + if( some_hidden ) + { + global_layout->addWidget( some_hidden_text ); + some_hidden_text->show(); + } +} diff --git a/modules/gui/qt4/components/preferences_tree.hpp b/modules/gui/qt4/components/preferences.hpp similarity index 54% rename from modules/gui/qt4/components/preferences_tree.hpp rename to modules/gui/qt4/components/preferences.hpp index d54e905b5a..913d38c7b5 100644 --- a/modules/gui/qt4/components/preferences_tree.hpp +++ b/modules/gui/qt4/components/preferences.hpp @@ -25,11 +25,72 @@ #define _PREFSTREE_H_ #include +#include +#include + +enum +{ + TYPE_CATEGORY, + TYPE_CATSUBCAT, + TYPE_SUBCATEGORY, + TYPE_MODULE +}; + +class PrefsPanel; +class QLabel; +class QVBoxLayout; + +class PrefsItemData : public QObject +{ +public: + PrefsItemData() + { panel = NULL; i_object_id = 0; i_subcat_id = -1; }; + virtual ~PrefsItemData() {}; + PrefsPanel *panel; + int i_object_id; + int i_subcat_id; + int i_type; + bool b_submodule; + QString name; + QString help; +}; + +Q_DECLARE_METATYPE( PrefsItemData* ); class PrefsTree : public QTreeWidget { Q_OBJECT; public: - PrefsTree(); + PrefsTree( intf_thread_t *, QWidget * ); virtual ~PrefsTree(); -} + + void ApplyAll(); + void CleanAll(); + +private: + void DoAll( bool ); + intf_thread_t *p_intf; +}; + +class ConfigControl; + +class PrefsPanel : public QWidget +{ + Q_OBJECT +public: + PrefsPanel( intf_thread_t *, QWidget *, PrefsItemData * ); + PrefsPanel( QWidget *); + virtual ~PrefsPanel() {}; + void Apply(); + void Clean(); +private: + intf_thread_t *p_intf; + QList controls; + QLabel *some_hidden_text; + QVBoxLayout *global_layout; + bool advanced; +public slots: + void setAdvanced( bool ); +}; + +#endif diff --git a/modules/gui/qt4/components/preferences_tree.cpp b/modules/gui/qt4/components/preferences_tree.cpp deleted file mode 100644 index d70a3de9d2..0000000000 --- a/modules/gui/qt4/components/preferences_tree.cpp +++ /dev/null @@ -1,27 +0,0 @@ -/***************************************************************************** - * preferences_tree.cpp : Tree of modules for preferences - **************************************************************************** - * Copyright (C) 2000-2005 the VideoLAN team - * $Id: wxwidgets.cpp 15731 2006-05-25 14:43:53Z zorglub $ - * - * Authors: Clément Stenac - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. - *****************************************************************************/ - -#include "components/preferences_tree.hpp" - -#include - diff --git a/modules/gui/qt4/components/preferences_widgets.cpp b/modules/gui/qt4/components/preferences_widgets.cpp index d13fea62ad..9552a5702c 100644 --- a/modules/gui/qt4/components/preferences_widgets.cpp +++ b/modules/gui/qt4/components/preferences_widgets.cpp @@ -65,7 +65,7 @@ ConfigControl *ConfigControl::createControl( vlc_object_t *p_this, if( !p_item->i_list ) p_control = new StringConfigControl( p_this, p_item, parent,false ); else - abort(); + fprintf(stderr, "GRAA\n" ); break; default: break; @@ -88,7 +88,7 @@ StringConfigControl::StringConfigControl( vlc_object_t *_p_this, label->setToolTip( p_item->psz_longtext ); QHBoxLayout *layout = new QHBoxLayout(); - layout->addWidget( label ); layout->addWidget( text ); + layout->addWidget( label, 0 ); layout->addWidget( text, 1 ); setLayout( layout ); } diff --git a/modules/gui/qt4/components/preferences_widgets.hpp b/modules/gui/qt4/components/preferences_widgets.hpp index bdaf843cb7..5e69e1a5ae 100644 --- a/modules/gui/qt4/components/preferences_widgets.hpp +++ b/modules/gui/qt4/components/preferences_widgets.hpp @@ -40,7 +40,7 @@ public: ConfigControl( vlc_object_t *, module_config_t *, QWidget * ); virtual ~ConfigControl(); QString getName() { return _name; } - bool getAdvanced() { return _advanced; } + bool isAdvanced() { return _advanced; } static ConfigControl * createControl( vlc_object_t*, module_config_t*,QWidget* ); diff --git a/modules/gui/qt4/dialogs/prefs_dialog.cpp b/modules/gui/qt4/dialogs/prefs_dialog.cpp new file mode 100644 index 0000000000..b692c8d7b2 --- /dev/null +++ b/modules/gui/qt4/dialogs/prefs_dialog.cpp @@ -0,0 +1,159 @@ +/***************************************************************************** + * prefs_dialog.cpp : Preferences + **************************************************************************** + * Copyright (C) 2000-2005 the VideoLAN team + * $Id: wxwidgets.cpp 15731 2006-05-25 14:43:53Z zorglub $ + * + * Authors: Clément Stenac + * + * 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 + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ + +#include "dialogs/prefs_dialog.hpp" +#include "dialogs_provider.hpp" +#include "util/qvlcframe.hpp" + +#include "components/preferences.hpp" +#include "qt4.hpp" + +#include +#include +#include +#include +#include +#include +PrefsDialog *PrefsDialog::instance = NULL; + +PrefsDialog::PrefsDialog( intf_thread_t *_p_intf ) : QVLCFrame( _p_intf ) +{ + layout = new QHBoxLayout(); + QVBoxLayout * main_layout = new QVBoxLayout(); + setWindowTitle( _("Preferences" ) ); + resize( 800, 450 ); + + advanced_tree = NULL; + simple_tree = NULL; + simple_panel = NULL; + advanced_panel = NULL; + + vertical = new QVBoxLayout(); + + // Choice for types + types = new QGroupBox( "Show settings" ); + QHBoxLayout *tl = new QHBoxLayout(); + tl->setSpacing( 3 ); + small = new QRadioButton( "Common", types ); + all = new QRadioButton( "All", types ); + tl->addWidget( small ); + tl->addWidget( all ); + types->setLayout(tl ); + + layout->addLayout( vertical, 1 ); + setAll(); + + all->setChecked( true ); + + main_layout->addLayout( layout ); + adv_chk = new QCheckBox("Advanced options"); + main_layout->addWidget( adv_chk ); + + QObject::connect( adv_chk, SIGNAL( toggled(bool) ), this, + SLOT( setAdvanced( bool ) ) ); + setLayout( main_layout ); + + QObject::connect( small, SIGNAL( clicked() ), this, SLOT( setSmall()) ); + QObject::connect( all, SIGNAL( clicked() ), this, SLOT( setAll()) ); +} + +void PrefsDialog::setAdvanced( bool advanced ) +{ + if( advanced_panel ) + advanced_panel->setAdvanced( advanced ); +} + +void PrefsDialog::setAll() +{ + while( (vertical->takeAt(0)) != 0 ) {} + if( simple_tree ) + simple_tree->hide(); + + if( !advanced_tree ) + { + advanced_tree = new PrefsTree( p_intf, this ); + QObject::connect( advanced_tree, + SIGNAL( currentItemChanged( QTreeWidgetItem *, + QTreeWidgetItem *) ), this, + SLOT( changePanel( QTreeWidgetItem * ) ) ); + } + advanced_tree->show(); + setAdvanced( adv_chk->isChecked() ); + vertical->addWidget( types ); + vertical->addWidget( advanced_tree ); + + if( layout->count() == 2 ) + layout->takeAt(1); + + if( !advanced_panel ) + advanced_panel = new PrefsPanel( this ); + layout->addWidget( advanced_panel, 3 ) ; +} + +void PrefsDialog::setSmall() +{ + while( (vertical->takeAt(0)) != 0 ) {} + if( advanced_tree ) + advanced_tree->hide(); + + if( !simple_tree ) + simple_tree = new QTreeWidget(); + simple_tree->show(); + vertical->addWidget( types ); + vertical->addWidget( simple_tree ); + + if( layout->count() == 2 ) + layout->takeAt(1); + + if( !simple_panel ) + simple_panel = new QWidget(); + layout->addWidget( simple_panel, 3 ) ; +} + + +void PrefsDialog::init() +{ +} + +PrefsDialog::~PrefsDialog() +{ +} + +void PrefsDialog::changePanel( QTreeWidgetItem *item ) +{ + PrefsItemData *data = item->data( 0, Qt::UserRole ).value(); + + if( advanced_panel ) + { + layout->removeWidget( advanced_panel ); + advanced_panel->hide(); + } + if( !data->panel ) + { + data->panel = new PrefsPanel( p_intf, this, data ); + } + advanced_panel = data->panel; + advanced_panel->show(); + setAdvanced( adv_chk->isChecked() ); + layout->addWidget( advanced_panel, 3 ); + +} diff --git a/modules/gui/qt4/dialogs/prefs_dialog.hpp b/modules/gui/qt4/dialogs/prefs_dialog.hpp new file mode 100644 index 0000000000..22f5429d24 --- /dev/null +++ b/modules/gui/qt4/dialogs/prefs_dialog.hpp @@ -0,0 +1,79 @@ +/***************************************************************************** + * prefs_dialog.hpp : Preferences + **************************************************************************** + * Copyright (C) 2000-2005 the VideoLAN team + * $Id: wxwidgets.cpp 15731 2006-05-25 14:43:53Z zorglub $ + * + * Authors: Clément Stenac + * + * 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 + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. + ****************************************************************************/ + +#ifndef _PREFS_DIALOG_H_ +#define _PREFS_DIALOG_H_ + +#include "util/qvlcframe.hpp" + +class PrefsTree; +class PrefsPanel; +class QTreeWidgetItem; +class QTreeWidget; +class QHBoxLayout; +class QVBoxLayout; +class QGroupBox; +class QRadioButton; +class QWidget; +class QCheckBox; + +class PrefsDialog : public QVLCFrame +{ + Q_OBJECT; +public: + static PrefsDialog * getInstance( intf_thread_t *_p_intf ) + { + fprintf( stderr, "%p\n", _p_intf ); + if( !instance ) + { + instance = new PrefsDialog( _p_intf ); + instance->init(); + } + return instance; + } + virtual ~PrefsDialog(); +private: + PrefsDialog( intf_thread_t * ); + void init(); + + PrefsPanel *advanced_panel; + PrefsTree *advanced_tree; + QWidget *simple_panel; + QTreeWidget *simple_tree; + QGroupBox *types; + // The layout for the main part + QHBoxLayout *layout; + // Layout for the left pane + QVBoxLayout *vertical; + QRadioButton *small,*all; + QCheckBox *adv_chk; + + static PrefsDialog *instance; +private slots: + void changePanel( QTreeWidgetItem *); + void setAll(); + void setSmall(); + void setAdvanced( bool ); +}; + +#endif diff --git a/modules/gui/qt4/dialogs_provider.cpp b/modules/gui/qt4/dialogs_provider.cpp index bbabc84747..cb63802252 100644 --- a/modules/gui/qt4/dialogs_provider.cpp +++ b/modules/gui/qt4/dialogs_provider.cpp @@ -24,6 +24,7 @@ #include "qt4.hpp" #include #include "dialogs/playlist.hpp" +#include "dialogs/prefs_dialog.hpp" #include "dialogs/streaminfo.hpp" #include @@ -94,6 +95,7 @@ void DialogsProvider::streaminfoDialog() void DialogsProvider::prefsDialog() { + PrefsDialog::getInstance( p_intf )->toggleVisible(); } void DialogsProvider::messagesDialog() diff --git a/modules/gui/qt4/pixmaps/advanced.xpm b/modules/gui/qt4/pixmaps/advanced.xpm new file mode 100644 index 0000000000..4f48bbee8d --- /dev/null +++ b/modules/gui/qt4/pixmaps/advanced.xpm @@ -0,0 +1,125 @@ +/* XPM */ +static char * advanced_xpm[] = { +"16 16 106 2", +" c None", +". c #AEAEBE", +"+ c #D7D7E0", +"@ c #D5D5DD", +"# c #C2C2CE", +"$ c #CECED7", +"% c #FEFEFE", +"& c #DCDCE2", +"* c #9F9FB2", +"= c #C3C3CE", +"- c #FBFBFB", +"; c #D0D0D8", +"> c #86869E", +", c #8F8FA4", +"' c #EBEBEE", +") c #EEEEF2", +"! c #9595A9", +"~ c #A2A2B5", +"{ c #9A9AAE", +"] c #CACAD5", +"^ c #F8F8F9", +"/ c #F7F7F9", +"( c #9999AC", +"_ c #A8A8B8", +": c #E7E7EB", +"< c #87879F", +"[ c #6F6F8B", +"} c #BFBFCB", +"| c #F1F1F5", +"1 c #E9E9EE", +"2 c #EDEDF2", +"3 c #DBDBE2", +"4 c #7C7F9B", +"5 c #818199", +"6 c #E2E2E7", +"7 c #D2D2DC", +"8 c #BDBDCA", +"9 c #E3E3E8", +"0 c #E0E0E6", +"a c #E0E0E4", +"b c #E1E1E7", +"c c #C6C6D1", +"d c #707599", +"e c #9B9BAE", +"f c #DEDEE4", +"g c #D8D8E1", +"h c #DADAE2", +"i c #D8D8E0", +"j c #BEBECB", +"k c #B2B6CE", +"l c #B09E8F", +"m c #CC8B22", +"n c #808098", +"o c #AFAFBF", +"p c #B9B9C8", +"q c #B3B3C2", +"r c #BCBCC9", +"s c #C3C6DA", +"t c #BDAA9A", +"u c #CF8925", +"v c #E68208", +"w c #DA9217", +"x c #49496A", +"y c #565674", +"z c #4B4B6D", +"A c #5D6186", +"B c #B3A196", +"C c #CF8B28", +"D c #E98606", +"E c #FD8606", +"F c #F38F0B", +"G c #D59018", +"H c #B2721C", +"I c #F19C0D", +"J c #FEA310", +"K c #FEA210", +"L c #F8A410", +"M c #D28F19", +"N c #CF8918", +"O c #FEBC19", +"P c #FEBE1B", +"Q c #FEB518", +"R c #FEA913", +"S c #FDA610", +"T c #CF8717", +"U c #C98819", +"V c #FECE20", +"W c #FEAC13", +"X c #FE8907", +"Y c #FE8506", +"Z c #FC980B", +"` c #B26E16", +" . c #C27F18", +".. c #FEA410", +"+. c #FE9109", +"@. c #FE8004", +"#. c #FE9106", +"$. c #BD7013", +"%. c #BB650F", +"&. c #FE9F0D", +"*. c #FE9808", +"=. c #ED8108", +"-. c #915216", +";. c #994E10", +">. c #AB5A0D", +",. c #894914", +" . + @ # ", +" $ % % & * ", +" = - % ; ", +"> , ' % ) ! ", +"~ { ] ^ / ) ( ", +"_ : < [ } | 1 2 3 4 ", +"5 6 7 8 9 0 a b c d ", +" e f b g h i j k l m ", +" n o p q r s t u v w ", +" x y z A B C D E F G ", +" H I J J K L M ", +" N O P Q R S T ", +" U V W X Y Z ` ", +" ...+.@.#.$.", +" %.&.*.=.-.", +" ;.>.,. "}; diff --git a/modules/gui/qt4/pixmaps/audio.xpm b/modules/gui/qt4/pixmaps/audio.xpm new file mode 100644 index 0000000000..722b8ea824 --- /dev/null +++ b/modules/gui/qt4/pixmaps/audio.xpm @@ -0,0 +1,102 @@ +/* XPM */ +static char * audio_xpm[] = { +"16 16 83 1", +" c None", +". c #00E000", +"+ c #00F100", +"@ c #00F500", +"# c #00DE00", +"$ c #00AF00", +"% c #00AF01", +"& c #00A402", +"* c #00A100", +"= c #00A400", +"- c #009401", +"; c #009301", +"> c #007700", +", c #007A02", +"' c #008101", +") c #00EE00", +"! c #00F300", +"~ c #00A701", +"{ c #009C02", +"] c #009C00", +"^ c #007E03", +"/ c #007401", +"( c #929292", +"_ c #9E9E9E", +": c #A8A8A8", +"< c #747474", +"[ c #737373", +"} c #6C6C6C", +"| c #666666", +"1 c #787878", +"2 c #8F8F8F", +"3 c #A7A7A7", +"4 c #B6B6B7", +"5 c #6D6D6D", +"6 c #626262", +"7 c #646464", +"8 c #848484", +"9 c #969696", +"0 c #B9B9B9", +"a c #C6C6C6", +"b c #A6A6AA", +"c c #6A6A6A", +"d c #7A7A7A", +"e c #B2B2B2", +"f c #BFBFBF", +"g c #BABABA", +"h c #B6B6B6", +"i c #B4B4B4", +"j c #D7D7D7", +"k c #C3C3C4", +"l c #6B6B6B", +"m c #636363", +"n c #606060", +"o c #575757", +"p c #555555", +"q c #535353", +"r c #888888", +"s c #D3D3D3", +"t c #E1E1E1", +"u c #B3B3B4", +"v c #383838", +"w c #707070", +"x c #585858", +"y c #3C3C3C", +"z c #3B3B3B", +"A c #494949", +"B c #DEDEDE", +"C c #C4C4C4", +"D c #57575D", +"E c #242424", +"F c #7C7C7C", +"G c #949494", +"H c #A2A2A2", +"I c #BCBCBC", +"J c #8B8B8D", +"K c #444444", +"L c #414141", +"M c #464646", +"N c #5D5D5D", +"O c #7B7B7B", +"P c #4A4A4F", +"Q c #4A4A4B", +"R c #515153", +" .+@# ", +" $%& *=- ", +" ; >, ", +" ' ", +" )! ", +" ~{ ]- ", +" ^ / ", +" (_: ", +" <[}||1234 ", +" 5|667<89:0ab ", +" c66defghiajk ", +" l6mnopqmrstu ", +" vwcxyvzA3BCD ", +" EoF2GHIhJ ", +" KLMNOP ", +" QR "}; diff --git a/modules/gui/qt4/pixmaps/codec.xpm b/modules/gui/qt4/pixmaps/codec.xpm new file mode 100644 index 0000000000..d2db76a13d --- /dev/null +++ b/modules/gui/qt4/pixmaps/codec.xpm @@ -0,0 +1,151 @@ +/* XPM */ +static char * codec_xpm[] = { +"16 16 132 2", +" c None", +". c #131313", +"+ c #464646", +"@ c #E0E0E0", +"# c #656565", +"$ c #3D3D3D", +"% c #E4E9EC", +"& c #FBFFFF", +"* c #E8E9EB", +"= c #595858", +"- c #393A3B", +"; c #D1DBE6", +"> c #ECF8FF", +", c #E8F4FF", +"' c #D5DAE1", +") c #C1C1C1", +"! c #4F4E4D", +"~ c #0A0A0A", +"{ c #909295", +"] c #D8EAFD", +"^ c #DFF1FF", +"/ c #C0CAD6", +"( c #C6CCD4", +"_ c #E5ECF1", +": c #828385", +"< c #080808", +"[ c #989898", +"} c #5B5B5B", +"| c #2F2E2D", +"1 c #898E94", +"2 c #ADB8C6", +"3 c #B6BDC7", +"4 c #E6F1FD", +"5 c #F6FFFF", +"6 c #8D96A2", +"7 c #121213", +"8 c #646464", +"9 c #B6B6B6", +"0 c #898989", +"a c #767676", +"b c #3F3F3F", +"c c #292827", +"d c #6D6E6F", +"e c #D4E0F0", +"f c #F1FFFF", +"g c #B9C4D0", +"h c #868E98", +"i c #B0BBC6", +"j c #46484B", +"k c #1E1E1D", +"l c #C7C7C7", +"m c #8D8D8D", +"n c #818181", +"o c #A1A1A1", +"p c #5E5E5E", +"q c #343433", +"r c #777A7F", +"s c #B3BDC6", +"t c #959AA2", +"u c #DEE9F2", +"v c #F7FFFF", +"w c #B8C2CE", +"x c #363636", +"y c #030303", +"z c #8F8F8F", +"A c #BDBDBD", +"B c #999999", +"C c #AAAAAA", +"D c #E1E1E1", +"E c #F6F6F6", +"F c #EBEBEB", +"G c #7E7E7E", +"H c #3F3E3E", +"I c #6E6F6F", +"J c #D9DFE7", +"K c #FDFFFF", +"L c #EDF4F9", +"M c #7A7D81", +"N c #0C0B0B", +"O c #A7A7A7", +"P c #C4C4C4", +"Q c #B5B5B5", +"R c #C2C2C2", +"S c #D6D6D6", +"T c #D5D5D5", +"U c #CDCDCD", +"V c #C5C5C5", +"W c #727272", +"X c #5D5C5C", +"Y c #AEAFB0", +"Z c #F0F1F1", +"` c #929394", +" . c #0B0B0A", +".. c #868686", +"+. c #D9D9D9", +"@. c #D3D3D3", +"#. c #B8B8B8", +"$. c #9B9B9B", +"%. c #969696", +"&. c #A0A0A0", +"*. c #D1D1D1", +"=. c #919192", +"-. c #111111", +";. c #3E3E3E", +">. c #BEBEBE", +",. c #EFEFEF", +"'. c #E7E7E7", +"). c #B0B0B0", +"!. c #CFCFCF", +"~. c #F4F4F4", +"{. c #DFDFDF", +"]. c #5D5D5D", +"^. c #0C0C0C", +"/. c #585858", +"(. c #FFFFFF", +"_. c #FDFDFD", +":. c #FBFBFB", +"<. c #8E8E8E", +"[. c #252525", +"}. c #424242", +"|. c #7F7F7F", +"1. c #A8A8A8", +"2. c #939393", +"3. c #6D6D6D", +"4. c #191919", +"5. c #4C4C4C", +"6. c #6B6B6B", +"7. c #8B8B8B", +"8. c #ADADAD", +"9. c #B4B4B4", +"0. c #333333", +"a. c #6C6C6C", +" . ", +" + @ # ", +" $ % & * = ", +" - ; > , ' ) ! ", +" ~ { ] ^ / ( _ : < ", +" [ } | 1 2 3 4 5 6 7 . ", +" 8 9 0 a b c d e f g h i j k ", +" l m n m o p q r s t u v w x y ", +"z A B C D E F G H I J K L M N ", +"O P Q R S T U V W X Y Z ` . ", +"..+.@.#.[ $.%.&.*...G =.-. ", +";.>.,.'.).z B !.~.{.].^. ", +" /.9 ,.(._.(.:.T <.[. ", +" }.|.$.1.&.2.3.4. ", +" 5.6.7.8.9.$ ", +" 0.# a. "}; diff --git a/modules/gui/qt4/pixmaps/intf.xpm b/modules/gui/qt4/pixmaps/intf.xpm new file mode 100644 index 0000000000..c5828e86d7 --- /dev/null +++ b/modules/gui/qt4/pixmaps/intf.xpm @@ -0,0 +1,235 @@ +/* XPM */ +static char * intf_xpm[] = { +"16 16 216 2", +" c None", +". c #715F39", +"+ c #DDA434", +"@ c #CD8A01", +"# c #CC8A04", +"$ c #B79042", +"% c #D49411", +"& c #D18D03", +"* c #B27D11", +"= c #ECECEC", +"- c #FFFDFA", +"; c #FEFBF8", +"> c #FDFAF7", +", c #FCFAF7", +"' c #FCF9F6", +") c #FBF8F6", +"! c #F8F8FA", +"~ c #BAAB8C", +"{ c #D09824", +"] c #CD8B02", +"^ c #C88600", +"/ c #987D48", +"( c #CFD1D6", +"_ c #B0B0AF", +": c #FCFCFD", +"< c #BAC7DC", +"[ c #C0D1E6", +"} c #C5D6E8", +"| c #C9DAEB", +"1 c #CDDEED", +"2 c #CFE3F3", +"3 c #C0CCD7", +"4 c #BE9648", +"5 c #D3910C", +"6 c #CD8B03", +"7 c #A06E0A", +"8 c #868A90", +"9 c #FFFFFF", +"0 c #797979", +"a c #B4B4B2", +"b c #E9ECF2", +"c c #2962B7", +"d c #3C7ED0", +"e c #4D8ED9", +"f c #5B9DE2", +"g c #66A9EA", +"h c #64A8ED", +"i c #868978", +"j c #D4961A", +"k c #CD8A02", +"l c #C08205", +"m c #5D5844", +"n c #4977C2", +"o c #7B7B7A", +"p c #B5B4B1", +"q c #ECEFF5", +"r c #3670C4", +"s c #3A7DD1", +"t c #4A8DDA", +"u c #5397E1", +"v c #60A5EC", +"w c #92ABC7", +"x c #A88A4F", +"y c #CF8E09", +"z c #C88602", +"A c #8E691F", +"B c #295A9D", +"C c #5287D4", +"D c #F4F5F7", +"E c #797978", +"F c #B6B6B5", +"G c #EDF0F5", +"H c #2E68BD", +"I c #3577CE", +"J c #3F81D4", +"K c #619BDE", +"L c #639CDB", +"M c #91A0B1", +"N c #CFCDCB", +"O c #A4916A", +"P c #9F7012", +"Q c #455C77", +"R c #2268CA", +"S c #4D7FCA", +"T c #E9E9EB", +"U c #787676", +"V c #BAB9B6", +"W c #EEF1F7", +"X c #1850AF", +"Y c #2363C2", +"Z c #3878CE", +"` c #4B8DDA", +" . c #638DBE", +".. c #C2C3C3", +"+. c #C6C5C5", +"@. c #8E8D8E", +"#. c #4E6277", +"$. c #2E6DC3", +"%. c #1A5DC0", +"&. c #3E6EBF", +"*. c #E7E8E9", +"=. c #797876", +"-. c #BBBBB9", +";. c #F0F3F9", +">. c #1048AA", +",. c #033FAB", +"'. c #2465C3", +"). c #4F96E0", +"!. c #97A9BD", +"~. c #CFCBC6", +"{. c #949290", +"]. c #6B7E8C", +"^. c #6EA5D8", +"/. c #2766C3", +"(. c #023CAA", +"_. c #3766BA", +":. c #E5E6E7", +"<. c #797976", +"[. c #BDBBBA", +"}. c #F1F4FA", +"|. c #164EAF", +"1. c #0948B1", +"2. c #114FB2", +"3. c #365885", +"4. c #767472", +"5. c #949495", +"6. c #566E8D", +"7. c #7DB0DB", +"8. c #70AAE6", +"9. c #0D4BB2", +"0. c #0039A8", +"a. c #3868BA", +"b. c #E3E4E5", +"c. c #BEBDBB", +"d. c #F2F5FC", +"e. c #215AB6", +"f. c #1459C1", +"g. c #21477E", +"h. c #95918B", +"i. c #17130F", +"j. c #536774", +"k. c #7FB4E5", +"l. c #76B1E9", +"m. c #2F6DC5", +"n. c #1957BA", +"o. c #0747B1", +"p. c #3C6CBD", +"q. c #E0E0E2", +"r. c #BFBEBD", +"s. c #F3F6FC", +"t. c #2965BF", +"u. c #1D5CB8", +"v. c #344256", +"w. c #3A352F", +"x. c #020407", +"y. c #789DBB", +"z. c #5694E0", +"A. c #397ACE", +"B. c #3070C9", +"C. c #2564C2", +"D. c #1152B8", +"E. c #4272C2", +"F. c #DDDDDF", +"G. c #C0BFBE", +"H. c #F1F4FB", +"I. c #346EC2", +"J. c #4067A3", +"K. c #29364B", +"L. c #09182B", +"M. c #336298", +"N. c #4F93E1", +"O. c #498DDC", +"P. c #4386D8", +"Q. c #3B7DD3", +"R. c #2F71CB", +"S. c #195CC0", +"T. c #4879C8", +"U. c #D9DADB", +"V. c #C2C1C1", +"W. c #FBFCFE", +"X. c #BAC9E2", +"Y. c #BFCADD", +"Z. c #AFBBCB", +"`. c #B2C6DE", +" + c #BAD4F1", +".+ c #B7CFE9", +"++ c #B4CCE7", +"@+ c #B0C8E3", +"#+ c #ABC2DF", +"$+ c #A4BBDA", +"%+ c #9BB2D5", +"&+ c #A8B9D5", +"*+ c #D7D7D7", +"=+ c #7B7B7B", +"-+ c #848484", +";+ c #FFFFFE", +">+ c #FDFBF9", +",+ c #F8F6F3", +"'+ c #F3F0EC", +")+ c #EFEBE7", +"!+ c #EBE7E3", +"~+ c #E8E5E0", +"{+ c #E4E1DD", +"]+ c #E1DED9", +"^+ c #DEDBD6", +"/+ c #D8D6D2", +"(+ c #D3D3D3", +"_+ c #535353", +":+ c #4F4F4F", +"<+ c #5B5B5B", +"[+ c #5A5A5A", +"}+ c #595959", +"|+ c #575757", +"1+ c #555555", +"2+ c #545454", +"3+ c #414141", +" . + @ # ", +" $ % & * ", +" = - ; > , ' ) ! ~ { ] ^ / ( ", +"_ : < [ } | 1 2 3 4 5 6 7 8 9 0 ", +"a b c d e f g h i j k l m n 9 o ", +"p q r s t u v w x y z A B C D E ", +"F G H I J K L M N O P Q R S T U ", +"V W X Y Z ` ...+.@.#.$.%.&.*.=.", +"-.;.>.,.'.).!.~.{.].^./.(._.:.<.", +"[.}.|.1.2.3.4.5.6.7.8.9.0.a.b.E ", +"c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.E ", +"r.s.t.u.v.w.x.y.z.A.B.C.D.E.F.E ", +"G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.E ", +"V.W.X.Y.Z.`. +.+++@+#+$+%+&+*+=+", +"-+9 ;+- >+,+'+)+!+~+{+]+^+/+(+_+", +" :+<+[+}+}+|+|+|+1+1+1+_+2+3+ "}; diff --git a/modules/gui/qt4/pixmaps/type_net.xpm b/modules/gui/qt4/pixmaps/type_net.xpm new file mode 100644 index 0000000000..6c38e4a89d --- /dev/null +++ b/modules/gui/qt4/pixmaps/type_net.xpm @@ -0,0 +1,173 @@ +/* XPM */ +static char * type_net_xpm[] = { +"16 16 154 2", +" c None", +". c #667AAC", +"+ c #8293BC", +"@ c #8192BA", +"# c #6677A0", +"$ c #8C9BC3", +"% c #E9EBF5", +"& c #F8F8FC", +"* c #FDFCFE", +"= c #FFFFFF", +"- c #FCFCFF", +"; c #E7EBF9", +"> c #8996B4", +", c #99A5CD", +"' c #E7E8F2", +") c #CED2DD", +"! c #C0C6D6", +"~ c #CBD1E1", +"{ c #E7E9F4", +"] c #E8EAF5", +"^ c #E7E8F4", +"/ c #F0F2FE", +"( c #919DC3", +"_ c #53659F", +": c #B3BBD7", +"< c #98A2BB", +"[ c #93A0BE", +"} c #98A5C5", +"| c #C8CEE1", +"1 c #D5D8E7", +"2 c #CBCFE0", +"3 c #D0D4E5", +"4 c #D7DBEC", +"5 c #D0D5EF", +"6 c #47578E", +"7 c #3E579E", +"8 c #5F709B", +"9 c #7084B1", +"0 c #7588B6", +"a c #CBD1E5", +"b c #EBEDF6", +"c c #E2E6F1", +"d c #D9DCEB", +"e c #D3D7E9", +"f c #CBCFE5", +"g c #C0C5E2", +"h c #7B89C2", +"i c #29396C", +"j c #6273AF", +"k c #56699E", +"l c #4A619B", +"m c #49629E", +"n c #A2AECE", +"o c #E4E7F0", +"p c #E9EBF3", +"q c #E3E5F2", +"r c #D4D8EB", +"s c #C0C5DF", +"t c #8D97BF", +"u c #6F7FBD", +"v c #1F2B51", +"w c #3B4C83", +"x c #98A1D3", +"y c #A7AFD6", +"z c #7481A9", +"A c #1F397C", +"B c #234089", +"C c #2C4789", +"D c #AEB7D0", +"E c #EBEDF7", +"F c #D4D8EC", +"G c #959FC6", +"H c #364B86", +"I c #4159A0", +"J c #152652", +"K c #303D69", +"L c #919CD1", +"M c #AAB1D9", +"N c #6B79A3", +"O c #072670", +"P c #0B2C7C", +"Q c #001F73", +"R c #7989B5", +"S c #EDEDF8", +"T c #B4BCDB", +"U c #253D7D", +"V c #374B87", +"W c #4A62AA", +"X c #05143D", +"Y c #8490C8", +"Z c #5A699A", +"` c #123079", +" . c #0A2B7C", +".. c #0F2F7E", +"+. c #09297A", +"@. c #3B5495", +"#. c #B6BDDB", +"$. c #485F9C", +"%. c #09266D", +"&. c #5D6B9E", +"*. c #7483BD", +"=. c #415186", +"-. c #2F488D", +";. c #102E7A", +">. c #1A3885", +",. c #24418A", +"'. c #29458D", +"). c #27438B", +"!. c #28438C", +"~. c #0F2E7D", +"{. c #233F89", +"]. c #284694", +"^. c #172C60", +"/. c #294183", +"(. c #39549C", +"_. c #455D9D", +":. c #4C62A0", +"<. c #5065A1", +"[. c #4D63A0", +"}. c #455C9C", +"|. c #41599B", +"1. c #314E99", +"2. c #0E2766", +"3. c #2F3E6D", +"4. c #6375AE", +"5. c #7D8DC2", +"6. c #7A88BC", +"7. c #7C8BBF", +"8. c #7385BC", +"9. c #5065A0", +"0. c #1F305C", +"a. c #363D58", +"b. c #888FB2", +"c. c #676D8F", +"d. c #282F49", +"e. c #C6C6C9", +"f. c #8A8A8C", +"g. c #A8A8AF", +"h. c #C6C6CC", +"i. c #B9B9C0", +"j. c #C2C2C6", +"k. c #DADAD9", +"l. c #ADADB2", +"m. c #ABABB1", +"n. c #CCCCD2", +"o. c #8A8A91", +"p. c #373739", +"q. c #39393C", +"r. c #626268", +"s. c #68686C", +"t. c #6C6C6E", +"u. c #555559", +"v. c #313134", +"w. c #38383A", +" . + @ # ", +" $ % & * = - ; > ", +" , ' ) ! ~ { ] ^ / ( ", +" _ : < [ } | 1 2 3 4 5 6 ", +" 7 8 9 0 a b c d e f g h ", +" i j k l m n o p q r s t u v ", +" w x y z A B C D E F G H I J ", +" K L M N O P Q R S T U V W X ", +" Y Z ` ...+.@.#.$.%.&.*. ", +" =.-.;.>.,.'.).!.~.{.].^. ", +" /.(._.:.<.[.}.|.1.2. ", +" 3.4.5.6.7.8.9.0. ", +" a.b.c.d. ", +" e.f. ", +" g.h.i.j.k.k.l.m.n.o. ", +" p.q.r.s.t.u.v.w. "}; diff --git a/modules/gui/qt4/pixmaps/type_playlist.xpm b/modules/gui/qt4/pixmaps/type_playlist.xpm new file mode 100644 index 0000000000..e05fdec2c7 --- /dev/null +++ b/modules/gui/qt4/pixmaps/type_playlist.xpm @@ -0,0 +1,145 @@ +/* XPM */ +static char * type_playlist_xpm[] = { +"16 16 126 2", +" c None", +". c #959695", +"+ c #000000", +"@ c #0E0E0E", +"# c #282828", +"$ c #696969", +"% c #DADBDA", +"& c #E4E5E4", +"* c #E6E7E6", +"= c #D3D3D3", +"- c #FFFFFF", +"; c #F9F9F9", +"> c #F9F9F8", +", c #E7E7E7", +"' c #E4E4E4", +") c #CDCDCD", +"! c #252525", +"~ c #C8C9C8", +"{ c #E3E4E3", +"] c #F6F6F6", +"^ c #DADADA", +"/ c #9F9F9F", +"( c #FEFEFE", +"_ c #FCFCFB", +": c #FBFBFB", +"< c #F2F2F2", +"[ c #AFAFAE", +"} c #E9E9E9", +"| c #B3B3B3", +"1 c #383838", +"2 c #CECFCE", +"3 c #9E9E9E", +"4 c #FDFDFD", +"5 c #FAFAF9", +"6 c #F3F3F3", +"7 c #A9A9A8", +"8 c #F0F0F0", +"9 c #F4F4F4", +"0 c #ABABAB", +"a c #414141", +"b c #9D9D9C", +"c c #9A9A9A", +"d c #9A9A99", +"e c #9B9B9A", +"f c #9D9C9C", +"g c #0A0A0A", +"h c #9B9B9B", +"i c #F8F8F7", +"j c #F7F6F5", +"k c #F6F6F4", +"l c #F4F3F2", +"m c #F1F0EF", +"n c #F0EFED", +"o c #E5E4E2", +"p c #848381", +"q c #6A6763", +"r c #F8F7F6", +"s c #989897", +"t c #989796", +"u c #EBEAE8", +"v c #E1DFDC", +"w c #B6B6B4", +"x c #72706C", +"y c #B1B0AF", +"z c #818180", +"A c #AFAFAD", +"B c #EFEFED", +"C c #EFEEEC", +"D c #ECEBE9", +"E c #E8E7E5", +"F c #A4A4A1", +"G c #C4C3C0", +"H c #817D74", +"I c #7F7F7E", +"J c #7F7E7D", +"K c #EEEDEB", +"L c #EDECEA", +"M c #E8E7E4", +"N c #E7E6E3", +"O c #8B867D", +"P c #7D7D7C", +"Q c #ACABA9", +"R c #91908E", +"S c #8E8E8C", +"T c #E6E4E1", +"U c #A2A19F", +"V c #646462", +"W c #A49E93", +"X c #7C7B7A", +"Y c #7B7B7A", +"Z c #E7E5E2", +"` c #E4E3DF", +" . c #E3E2DE", +".. c #DEDDD9", +"+. c #DDDCD8", +"@. c #E0DFDB", +"#. c #A19C90", +"$. c #E6E5E2", +"%. c #E5E4E1", +"&. c #8E8E8B", +"*. c #747371", +"=. c #0B0B0B", +"-. c #DCDBD7", +";. c #DBD9D5", +">. c #A19B90", +",. c #E3E2DF", +"'. c #E4E2DF", +"). c #DCDAD6", +"!. c #D9D7D3", +"~. c #E1E0DC", +"{. c #E2E1DD", +"]. c #71716F", +"^. c #0B0B0A", +"/. c #706F6D", +"(. c #D8D6D1", +"_. c #9F998D", +":. c #999891", +"<. c #A39D92", +"[. c #A39D91", +"}. c #A29C90", +"|. c #A19B8F", +"1. c #9D978C", +"2. c #9B968A", +"3. c #676359", +"4. c #919191", +"5. c #757575", +". + + + + + + + + + @ # $ % & * ", +"+ = - - - - - ; > > , ' ) ! ~ { ", +"+ ] ^ / - ( _ : > < [ } - | 1 2 ", +"+ - / 3 4 _ 5 > > 6 7 8 - 9 0 a ", +"+ - 4 b : 5 c d e f } + + + + g ", +"+ - : h > i j k l m n n o p q + ", +"+ - > i r j s t t t l u v w x + ", +"+ - y z A B n C D E + + F G H + ", +"+ - I B J K L D M N + + + v O + ", +"+ - L P Q D R R S T + U V v W + ", +"+ - X X Y M N Z ` .+ ..+.@.#.+ ", +"+ - $.$.$.%.&.*.=.=.+ -.;.+.>.+ ", +"+ - ,. .'.` .+ + + + ).!.-.>.+ ", +"+ - v ~.@.{.~.].=.^./.!.(.!._.+ ", +"+ :.W <.[.<.}.|.>._._.1.1.2.3.+ ", +"4.+ + + + + + + + + + + + + + 5."}; diff --git a/modules/gui/qt4/pixmaps/video.xpm b/modules/gui/qt4/pixmaps/video.xpm new file mode 100644 index 0000000000..91ef2325c6 --- /dev/null +++ b/modules/gui/qt4/pixmaps/video.xpm @@ -0,0 +1,143 @@ +/* XPM */ +static char * video_xpm[] = { +"16 16 124 2", +" c None", +". c #FFFFFF", +"+ c #1B4260", +"@ c #1E4869", +"# c #1E4B6D", +"$ c #1E4A6B", +"% c #204F73", +"& c #215175", +"* c #325C7C", +"= c #37607E", +"- c #255B84", +"; c #296491", +"> c #4D7CA0", +", c #6A90AB", +"' c #7697B0", +") c #235174", +"! c #2C6894", +"~ c #3375A7", +"{ c #3677A8", +"] c #4E8BBA", +"^ c #81ADCE", +"/ c #AFCBE0", +"( c #C7DAE9", +"_ c #42759D", +": c #275478", +"< c #326D9B", +"[ c #3C81B7", +"} c #447FAE", +"| c #5390BF", +"1 c #5994C2", +"2 c #5C95C2", +"3 c #92B8D6", +"4 c #C8DBEA", +"5 c #4D7EA4", +"6 c #2D5B80", +"7 c #366E9D", +"8 c #3974A3", +"9 c #336893", +"0 c #3D7DB0", +"a c #5592C3", +"b c #5792C3", +"c c #89B3D5", +"d c #B4CFE4", +"e c #CADDEC", +"f c #4A7DA6", +"g c #3E6688", +"h c #42749D", +"i c #BDBDBD", +"j c #326088", +"k c #4380B5", +"l c #396D99", +"m c #6C9FCA", +"n c #8CB6D8", +"o c #99BDDD", +"p c #6EA2CE", +"q c #3C74A4", +"r c #446B8C", +"s c #000000", +"t c #5F5F5F", +"u c #969696", +"v c #959595", +"w c #447AA5", +"x c #3D6B94", +"y c #6198C9", +"z c #6BA1D1", +"A c #639CCE", +"B c #4E8FC8", +"C c #4279A9", +"D c #424242", +"E c #7F7F7F", +"F c #606060", +"G c #636363", +"H c #484848", +"I c #1E1E1E", +"J c #7A7A7A", +"K c #5C80A2", +"L c #6594C1", +"M c #70A5D6", +"N c #6FA3D4", +"O c #5E8AB4", +"P c #8C8C8C", +"Q c #383838", +"R c #3D3D3D", +"S c #5D5D5D", +"T c #B8B8B8", +"U c #6A6A6A", +"V c #4C4C4C", +"W c #171717", +"X c #94BCE2", +"Y c #205B07", +"Z c #1F5A06", +"` c #2A2A2A", +" . c #4E4E4E", +".. c #4B4B4B", +"+. c #585858", +"@. c #727272", +"#. c #454545", +"$. c #050505", +"%. c #2B2B2B", +"&. c #121212", +"*. c #36960D", +"=. c #318A0C", +"-. c #246608", +";. c #363636", +">. c #323232", +",. c #4D4D4D", +"'. c #3E3E3E", +"). c #1B1B1B", +"!. c #154700", +"~. c #236308", +"{. c #2B780A", +"]. c #31840E", +"^. c #3E7326", +"/. c #468A29", +"(. c #0B0B0B", +"_. c #040404", +":. c #517D3E", +"<. c #328E0B", +"[. c #389013", +"}. c #3E9A17", +"|. c #2F840B", +"1. c #308C09", +"2. c #FDFDFD", +"3. c #FBFBFB", +". . . . . . . . . . . . . . . . ", +". + @ # $ % & & & & * = * & & . ", +". # - ; ; ; ; ; ; > , ' , > ; . ", +". ) ! ~ ~ { { ~ ] ^ / ( / ^ _ . ", +". : < [ [ } | 1 2 3 4 . 4 3 5 . ", +". 6 7 8 . 9 0 a b c d e d c f . ", +". g h . i . j k l m n o n p q . ", +". r s t u v . w . x y z A B C . ", +". s D E F G H I J . K L M N O . ", +". s P D Q R s S T U V W X Y Z . ", +". ` .s s ..+.@.#.$.%.&.Y *.=.. ", +". -.Y ;.>.V ,.'.).s !.~.{.{.].. ", +". ^./.{.~.(._.!.~.{.].*.~.{.*.. ", +". :.*.*.<.].].{.].[.}.|.*.1.*.. ", +". . . . . . . . . 2.3.3.. . . . ", +" "}; -- 2.39.2