[vlc-commits] Qt: preferences: use StackedWidget for advanced layout
Francois Cartegnie
git at videolan.org
Thu Mar 22 15:43:54 CET 2012
vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Fri Mar 16 20:29:48 2012 +0100| [e66c5af165370dd882a92a547844dced0e8325e9] | committer: Francois Cartegnie
Qt: preferences: use StackedWidget for advanced layout
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=e66c5af165370dd882a92a547844dced0e8325e9
---
modules/gui/qt4/dialogs/preferences.cpp | 25 +++++++++----------------
modules/gui/qt4/dialogs/preferences.hpp | 3 +--
2 files changed, 10 insertions(+), 18 deletions(-)
diff --git a/modules/gui/qt4/dialogs/preferences.cpp b/modules/gui/qt4/dialogs/preferences.cpp
index d18118a..d4e9650 100644
--- a/modules/gui/qt4/dialogs/preferences.cpp
+++ b/modules/gui/qt4/dialogs/preferences.cpp
@@ -62,9 +62,6 @@ PrefsDialog::PrefsDialog( QWidget *parent, intf_thread_t *_p_intf )
advanced_tree_panel = new QWidget;
advanced_tree_panel->setLayout( new QVBoxLayout );
- advanced_main_panel = new QWidget;
- advanced_main_panel->setLayout( new QHBoxLayout );
-
/* Choice for types */
types = new QGroupBox( qtr("Show settings") );
types->setAlignment( Qt::AlignHCenter );
@@ -83,7 +80,7 @@ PrefsDialog::PrefsDialog( QWidget *parent, intf_thread_t *_p_intf )
tree_filter = NULL;
simple_tree = NULL;
simple_panels_stack = new QStackedWidget;
- advanced_panel = NULL;
+ advanced_panels_stack = new QStackedWidget;
/* Buttons */
QDialogButtonBox *buttonsBox = new QDialogButtonBox();
@@ -112,7 +109,7 @@ PrefsDialog::PrefsDialog( QWidget *parent, intf_thread_t *_p_intf )
simple_split_widget->layout()->setMargin( 0 );
advanced_split_widget->layout()->addWidget( advanced_tree_panel );
- advanced_split_widget->layout()->addWidget( advanced_main_panel );
+ advanced_split_widget->layout()->addWidget( advanced_panels_stack );
advanced_split_widget->layout()->setMargin( 0 );
/* Layout */
@@ -175,10 +172,10 @@ void PrefsDialog::setAdvanced()
}
/* If no advanced Panel exist, create one, attach it and show it*/
- if( !advanced_panel )
+ if( advanced_panels_stack->count() < 1 )
{
- advanced_panel = new AdvPrefsPanel( advanced_main_panel );
- advanced_main_panel->layout()->addWidget( advanced_panel );
+ AdvPrefsPanel *insert = new AdvPrefsPanel( advanced_panels_stack );
+ advanced_panels_stack->insertWidget( 0, insert );
}
/* Select the first Item of the preferences. Maybe you want to select a specified
@@ -229,17 +226,13 @@ void PrefsDialog::changeAdvPanel( QTreeWidgetItem *item )
if( item == NULL ) return;
PrefsItemData *data = item->data( 0, Qt::UserRole ).value<PrefsItemData*>();
- if( advanced_panel )
- if( advanced_panel->isVisible() ) advanced_panel->hide();
-
if( !data->panel )
{
- data->panel = new AdvPrefsPanel( p_intf, advanced_main_panel, data );
- advanced_main_panel->layout()->addWidget( data->panel );
+ data->panel = new AdvPrefsPanel( p_intf, advanced_panels_stack, data );
+ advanced_panels_stack->insertWidget( advanced_panels_stack->count(),
+ data->panel );
}
-
- advanced_panel = data->panel;
- advanced_panel->show();
+ advanced_panels_stack->setCurrentWidget( data->panel );
}
#if 0
diff --git a/modules/gui/qt4/dialogs/preferences.hpp b/modules/gui/qt4/dialogs/preferences.hpp
index d388717..cb8b3db 100644
--- a/modules/gui/qt4/dialogs/preferences.hpp
+++ b/modules/gui/qt4/dialogs/preferences.hpp
@@ -56,10 +56,9 @@ private:
enum { SIMPLE, ADVANCED };
QStackedWidget *stack;
- QWidget *advanced_main_panel;
QWidget *simple_split_widget, *advanced_split_widget;
- AdvPrefsPanel *advanced_panel;
+ QStackedWidget *advanced_panels_stack;
QStackedWidget *simple_panels_stack;
SPrefsPanel *simple_panels[SPrefsMax];
More information about the vlc-commits
mailing list