Extensions/Qt: information panel for Extensions
[vlc.git] / modules / gui / qt4 / dialogs / plugins.hpp
index f45888c..31298dc 100644 (file)
 
 #include "util/qvlcframe.hpp"
 #include "util/singleton.hpp"
-#include <QTreeWidget>
+
+#include <vlc_extensions.h>
+
 #include <QStringList>
+#include <QTreeWidgetItem>
+#include <QListWidgetItem>
 
+class QLabel;
+class QTabWidget;
+class QComboBox;
 class QTreeWidget;
 class QLineEdit;
-
+class QTextBrowser;
+class PluginTab;
+class ExtensionTab;
+class ExtensionListItem;
 class SearchLineEdit;
+
 class PluginDialog : public QVLCFrame, public Singleton<PluginDialog>
 {
     Q_OBJECT;
@@ -41,20 +52,59 @@ private:
     PluginDialog( intf_thread_t * );
     virtual ~PluginDialog();
 
+    QTabWidget *tabs;
+    PluginTab *pluginTab;
+    ExtensionTab *extensionTab;
+
+    friend class Singleton<PluginDialog>;
+};
+
+class PluginTab : public QVLCFrame
+{
+    Q_OBJECT;
+
+private:
+    PluginTab( intf_thread_t *p_intf );
+    virtual ~PluginTab();
+
     void FillTree();
     QTreeWidget *treePlugins;
     SearchLineEdit *edit;
+
 private slots:
     void search( const QString& );
 
-    friend class    Singleton<PluginDialog>;
+    friend class PluginDialog;
+};
+
+class ExtensionTab : public QVLCFrame
+{
+    Q_OBJECT;
+
+private:
+    ExtensionTab( intf_thread_t *p_intf );
+    virtual ~ExtensionTab();
+
+    QComboBox *extList;
+    QLabel *author, *version, *url;
+    QTextBrowser *description;
+    QLineEdit *name;
+
+private slots:
+    void fillList();
+    void selectionChanged( int index );
+    void reloadExtensions();
+
+    friend class PluginDialog;
 };
 
 class PluginTreeItem : public QTreeWidgetItem
 {
 public:
-    PluginTreeItem(QStringList &qs_item, int Type = QTreeWidgetItem::Type) : QTreeWidgetItem (qs_item, Type)
-    { }
+    PluginTreeItem(QStringList &qs_item, int Type = QTreeWidgetItem::Type)
+            : QTreeWidgetItem (qs_item, Type) {}
+    virtual ~PluginTreeItem() {}
+
     virtual bool operator< ( const QTreeWidgetItem & other ) const;
 };