Commit a622a74a authored by Jean-Baptiste Kempf's avatar Jean-Baptiste Kempf

Qt: remove Preferences singleton. Simplify and Close #2552 and #2551

parent db8fce29
......@@ -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();
}
}
......@@ -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:
......
......@@ -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()
......
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