]> git.sesse.net Git - vlc/commitdiff
Qt: plugins dialog as a toggle one.
authorJean-Baptiste Kempf <jb@videolan.org>
Wed, 1 Jul 2009 22:57:15 +0000 (00:57 +0200)
committerJean-Baptiste Kempf <jb@videolan.org>
Wed, 1 Jul 2009 22:57:15 +0000 (00:57 +0200)
Close #2900

modules/gui/qt4/dialogs/plugins.cpp
modules/gui/qt4/dialogs/plugins.hpp
modules/gui/qt4/dialogs_provider.cpp

index e8fa2df9656934fba6e5be9bde63192cf71c0a90..722ea0fd9539191ac3b4fbddce70f9e5a887f7bd 100644 (file)
@@ -38,6 +38,8 @@
 #include <QLineEdit>
 #include <QLabel>
 
+PluginDialog *PluginDialog::instance = NULL;
+
 PluginDialog::PluginDialog( intf_thread_t *_p_intf ) : QVLCFrame( _p_intf )
 {
     setAttribute( Qt::WA_DeleteOnClose );
index 798f01f61750edde1314387700f0a0a7fe881edf..1a243a8913e5ab058a066a506ce48234f33f0650 100644 (file)
@@ -34,11 +34,23 @@ class PluginDialog : public QVLCFrame
 {
     Q_OBJECT;
 public:
-    PluginDialog( intf_thread_t * );
+    static PluginDialog * getInstance( intf_thread_t *p_intf )
+    {
+        if( !instance)
+            instance = new PluginDialog( p_intf );
+        return instance;
+    }
+    static void killInstance()
+    {
+        delete instance;
+        instance = NULL;
+    }
 private:
-    void FillTree();
+    PluginDialog( intf_thread_t * );
     virtual ~PluginDialog();
+    static PluginDialog *instance;
 
+    void FillTree();
     QTreeWidget *treePlugins;
     SearchLineEdit *edit;
 private slots:
index dad88347bdf310911d0adab2f023a6da3408cd7a..9a954e968b419b350b24a24472d162cff2162c70 100644 (file)
@@ -259,8 +259,7 @@ void DialogsProvider::toolbarDialog()
 
 void DialogsProvider::pluginDialog()
 {
-    PluginDialog *diag = new PluginDialog( p_intf );
-    diag->show();
+    PluginDialog::getInstance( p_intf )->toggleVisible();
 }
 
 /* Generic open file */