[vlc-devel] commit: Qt: remove Preferences singleton. Simplify and Close #2552 and #2551 (Jean-Baptiste Kempf )
git version control
git at videolan.org
Sun Mar 15 03:42:07 CET 2009
vlc | branch: master | Jean-Baptiste Kempf <jb at videolan.org> | Sun Mar 15 03:41:19 2009 +0100| [a622a74a1fe9cd481474960ff8435335d56a4067] | committer: Jean-Baptiste Kempf
Qt: remove Preferences singleton. Simplify and Close #2552 and #2551
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=a622a74a1fe9cd481474960ff8435335d56a4067
---
modules/gui/qt4/dialogs/preferences.cpp | 53 ++-----------------------------
modules/gui/qt4/dialogs/preferences.hpp | 14 +-------
modules/gui/qt4/dialogs_provider.cpp | 3 +-
3 files changed, 7 insertions(+), 63 deletions(-)
diff --git a/modules/gui/qt4/dialogs/preferences.cpp b/modules/gui/qt4/dialogs/preferences.cpp
index 06b2f5c..89864d7 100644
--- a/modules/gui/qt4/dialogs/preferences.cpp
+++ b/modules/gui/qt4/dialogs/preferences.cpp
@@ -39,8 +39,6 @@
#include <QMessageBox>
#include <QDialogButtonBox>
-PrefsDialog *PrefsDialog::instance = NULL;
-
PrefsDialog::PrefsDialog( QWidget *parent, intf_thread_t *_p_intf )
: QVLCDialog( parent, _p_intf )
{
@@ -294,56 +292,13 @@ void PrefsDialog::save()
/* Save to file */
config_SaveConfigFile( p_intf, NULL );
-
- destroyPanels();
-
- hide();
+ accept();
}
-void PrefsDialog::destroyPanels()
-{
- msg_Dbg( p_intf, "Destroying the Panels" );
- /* Delete the other panel in order to force its reload after clicking
- on apply. In fact, if we don't do that, the preferences from the other
- panels won't be accurate, so we would have to recreate the whole dialog,
- and we don't want that.*/
- if( small->isChecked() && advanced_panel )
- {
- /* Deleting only the active panel from the advanced config doesn't work
- because the data records of PrefsItemData contains still a
- reference to it only cleanAll() is sure to remove all Panels! */
- advanced_tree->cleanAll();
- advanced_panel = NULL;
- }
- if( all->isChecked() && current_simple_panel )
- {
- for( int i = 0 ; i< SPrefsMax; i++ )
- {
- if( simple_panels[i] )
- {
- delete simple_panels[i];
- simple_panels[i] = NULL;
- }
- }
- current_simple_panel = NULL;
- }
-}
-
-
/* Clean the preferences, dunno if it does something really */
void PrefsDialog::cancel()
{
- if( small->isChecked() && simple_tree )
- {
- for( int i = 0 ; i< SPrefsMax; i++ )
- if( simple_panels[i] ) simple_panels[i]->clean();
- }
- else if( all->isChecked() && advanced_tree )
- {
- advanced_tree->cleanAll();
- advanced_panel = NULL;
- }
- hide();
+ reject();
}
/* Reset all the preferences, when you click the button */
@@ -362,8 +317,6 @@ void PrefsDialog::reset()
config_SaveConfigFile( p_intf, NULL );
getSettings()->clear();
- close();
- instance = NULL;
- PrefsDialog::getInstance( p_intf )->show();
+ accept();
}
}
diff --git a/modules/gui/qt4/dialogs/preferences.hpp b/modules/gui/qt4/dialogs/preferences.hpp
index bcd1f49..ef50b52 100644
--- a/modules/gui/qt4/dialogs/preferences.hpp
+++ b/modules/gui/qt4/dialogs/preferences.hpp
@@ -45,24 +45,16 @@ class PrefsDialog : public QVLCDialog
{
Q_OBJECT;
public:
- static PrefsDialog * getInstance( intf_thread_t *p_intf )
- {
- if( !instance )
- instance = new PrefsDialog( (QWidget *)p_intf->p_sys->p_mi, p_intf );
- return instance;
- }
- virtual ~PrefsDialog() { instance = NULL; }
+ PrefsDialog( QWidget *, intf_thread_t * );
+ virtual ~PrefsDialog() {}
#if 0
/*Called from extended settings, is not used anymore, but could be useful one day*/
void showModulePrefs( char* );
#endif
private:
- PrefsDialog( QWidget *, intf_thread_t * );
QGridLayout *main_layout;
- void destroyPanels();
-
QWidget *main_panel;
QHBoxLayout *main_panel_l;
@@ -79,8 +71,6 @@ private:
QGroupBox *types;
QRadioButton *small,*all;
- static PrefsDialog *instance;
-
bool b_small;
private slots:
diff --git a/modules/gui/qt4/dialogs_provider.cpp b/modules/gui/qt4/dialogs_provider.cpp
index 79ad6aa..2c95d90 100644
--- a/modules/gui/qt4/dialogs_provider.cpp
+++ b/modules/gui/qt4/dialogs_provider.cpp
@@ -172,7 +172,8 @@ void DialogsProvider::playlistDialog()
void DialogsProvider::prefsDialog()
{
- PrefsDialog::getInstance( p_intf )->toggleVisible();
+ PrefsDialog *p = new PrefsDialog( (QWidget *)p_intf->p_sys->p_mi, p_intf );
+ p->toggleVisible();
}
void DialogsProvider::extendedDialog()
More information about the vlc-devel
mailing list