]> git.sesse.net Git - vlc/blobdiff - modules/gui/qt4/dialogs/preferences.hpp
Destroy preferences dialog on close and on reset.
[vlc] / modules / gui / qt4 / dialogs / preferences.hpp
index 55e409b10007edb7429b9c0d560a93a61be2de81..634df78b46f0d44f5cc82be8bd2b9cad49a6dd4b 100644 (file)
@@ -29,7 +29,7 @@
 
 class PrefsTree;
 class SPrefsCatList;
-class PrefsPanel;
+class AdvPrefsPanel;
 class SPrefsPanel;
 class QTreeWidgetItem;
 class QTreeWidget;
@@ -39,53 +39,58 @@ class QGroupBox;
 class QRadioButton;
 class QWidget;
 class QCheckBox;
-class QListWidget;
-class QListWidgetItem;
 class QLabel;
 
-class PrefsDialog : public QVLCFrame
+class PrefsDialog : public QVLCDialog
 {
     Q_OBJECT;
 public:
-    static PrefsDialog * getInstance( intf_thread_t *_p_intf )
+    static PrefsDialog * getInstance( intf_thread_t *p_intf )
     {
         if( !instance )
-            instance = new PrefsDialog( _p_intf );
+            instance = new PrefsDialog( (QWidget *)p_intf->p_sys->p_mi, p_intf );
         return instance;
     }
     virtual ~PrefsDialog() {};
-
+#if 0
+    /*Called from extended settings, is not used anymore, but could be useful one day*/
     void showModulePrefs( char* );
+#endif
+
 private:
-    PrefsDialog( intf_thread_t * );
+    PrefsDialog( QWidget *, intf_thread_t * );
+    QGridLayout *main_layout;
+
+    void destroyPanels();
 
     QWidget *main_panel;
     QHBoxLayout *main_panel_l;
-    PrefsPanel *advanced_panel;
-    SPrefsPanel *simple_panel;
+
+    AdvPrefsPanel *advanced_panel;
+    SPrefsPanel *current_simple_panel;
     SPrefsPanel *simple_panels[SPrefsMax];
 
     QWidget *tree_panel;
     QHBoxLayout *tree_panel_l;
+
     SPrefsCatList *simple_tree;
     PrefsTree *advanced_tree;
 
     QGroupBox *types;
     QRadioButton *small,*all;
 
-    QGridLayout *main_layout;
-
-//    QLabel *panel_label;
-
     static PrefsDialog *instance;
+
 private slots:
-     void changePanel( QTreeWidgetItem * );
-     void changeSimplePanel( QListWidgetItem * );
-     void setAll();
-     void setSmall();
-     void save();
-     void cancel();
-     void reset();
+    void setAdvanced();
+    void setSmall();
+
+    void changeAdvPanel( QTreeWidgetItem * );
+    void changeSimplePanel( int );
+
+    void save();
+    void cancel();
+    void reset();
 };
 
 #endif