#include <QMessageBox>
#include <QDialogButtonBox>
-PrefsDialog *PrefsDialog::instance = NULL;
-
PrefsDialog::PrefsDialog( QWidget *parent, intf_thread_t *_p_intf )
: QVLCDialog( parent, _p_intf )
{
/* 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 */
config_SaveConfigFile( p_intf, NULL );
getSettings()->clear();
- close();
- instance = NULL;
- PrefsDialog::getInstance( p_intf )->show();
+ accept();
}
}
{
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;
QGroupBox *types;
QRadioButton *small,*all;
- static PrefsDialog *instance;
-
bool b_small;
private slots: