]> git.sesse.net Git - vlc/blobdiff - modules/gui/qt4/components/preferences_widgets.hpp
Qt4 - Open Capture: work on DirectShow Capture cards.
[vlc] / modules / gui / qt4 / components / preferences_widgets.hpp
index 4bb91ec6f60e3866ccab44130d1a38c89247b66d..97971d809640bc3ec1e0d80f741b5bcf2df8ca3e 100644 (file)
@@ -23,8 +23,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 
-#ifndef _INFOPANELS_H_
-#define _INFOPANELS_H_
+#ifndef _PREFERENCESWIDGETS_H_
+#define _PREFERENCESWIDGETS_H_
 
 #include <vlc/vlc.h>
 
@@ -50,6 +50,8 @@ class QTreeWidget;
 class QTreeWidgetItem;
 class QGroupBox;
 class QGridLayout;
+class QDialogButtonBox;
+class QVBoxLayout;
 
 class ConfigControl : public QObject
 {
@@ -85,8 +87,11 @@ protected:
     QString _name;
     QWidget *widget;
     bool _advanced;
+#if 0
+/* You shouldn't use that now..*/
 signals:
     void Updated();
+#endif
 };
 
 /*******************************************************
@@ -117,8 +122,8 @@ public:
                           QLabel*, QSlider* );
     virtual ~IntegerConfigControl() {};
     virtual int getValue();
-    virtual void show() { spin->show(); label->show(); }
-    virtual void hide() { spin->hide(); label->hide(); }
+    virtual void show() { spin->show(); if( label ) label->show(); }
+    virtual void hide() { spin->hide(); if( label ) label->hide(); }
 
 protected:
     QSpinBox *spin;
@@ -161,8 +166,8 @@ public:
                               QComboBox*, bool );
     virtual ~IntegerListConfigControl() {};
     virtual int getValue();
-    virtual void hide() { combo->hide(); label->hide(); }
-    virtual void show() { combo->show(); label->show(); }
+    virtual void hide() { combo->hide(); if( label ) label->hide(); }
+    virtual void show() { combo->show(); if( label ) label->show(); }
 private:
     void finish( bool );
     QLabel *label;
@@ -211,8 +216,8 @@ public:
                         QLabel*, QDoubleSpinBox* );
     virtual ~FloatConfigControl() {};
     virtual float getValue();
-    virtual void show() { spin->show(); label->show(); }
-    virtual void hide() { spin->hide(); label->hide(); }
+    virtual void show() { spin->show(); if( label ) label->show(); }
+    virtual void hide() { spin->hide(); if( label ) label->hide(); }
 
 protected:
     QDoubleSpinBox *spin;
@@ -260,8 +265,8 @@ public:
                          QLineEdit*,  bool pwd );
     virtual ~StringConfigControl() {};
     virtual QString getValue() { return text->text(); };
-    virtual void show() { text->show(); label->show(); }
-    virtual void hide() { text->hide(); label->hide(); }
+    virtual void show() { text->show(); if( label ) label->show(); }
+    virtual void hide() { text->hide(); if( label ) label->hide(); }
 private:
     void finish();
     QLineEdit *text;
@@ -278,8 +283,8 @@ public:
                        QLineEdit *, QPushButton *, bool pwd );
     virtual ~FileConfigControl() {};
     virtual QString getValue() { return text->text(); };
-    virtual void show() { text->show(); label->show(); browse->show(); }
-    virtual void hide() { text->hide(); label->hide(); browse->hide(); }
+    virtual void show() { text->show(); if( label ) label->show(); browse->show(); }
+    virtual void hide() { text->hide(); if( label ) label->hide(); browse->hide(); }
 public slots:
     virtual void updateField();
 protected:
@@ -324,8 +329,8 @@ public:
                          QComboBox*, bool );
     virtual ~ModuleConfigControl() {};
     virtual QString getValue();
-    virtual void hide() { combo->hide(); label->hide(); }
-    virtual void show() { combo->show(); label->show(); }
+    virtual void hide() { combo->hide(); if( label ) label->hide(); }
+    virtual void show() { combo->show(); if( label ) label->show(); }
 private:
     void finish( bool );
     QLabel *label;
@@ -360,6 +365,7 @@ private:
 
 class StringListConfigControl : public VStringConfigControl
 {
+    Q_OBJECT;
 public:
     StringListConfigControl( vlc_object_t *, module_config_t *, QWidget *,
                              bool, QGridLayout*, int& );
@@ -367,13 +373,20 @@ public:
                              QComboBox*, bool );
     virtual ~StringListConfigControl() {};
     virtual QString getValue();
-    virtual void hide() { combo->hide(); label->hide(); }
-    virtual void show() { combo->show(); label->show(); }
+    virtual void hide() { combo->hide(); if( label ) label->hide(); }
+    virtual void show() { combo->show(); if( label ) label->show(); }
+       QComboBox *combo;
 private:
     void finish( bool );
     QLabel *label;
-    QComboBox *combo;
+private slots:
+    void actionRequested( int );
+
 };
+
+void setfillVLCConfigCombo(const char *configname, intf_thread_t *p_intf,
+                        QComboBox *combo, QWidget *parent = 0 );
+
 #if 0
 struct ModuleCheckBox {
     QCheckBox *checkbox;
@@ -401,7 +414,7 @@ private slot:
 class KeyInputDialog : public QDialog
 {
 public:
-    KeyInputDialog( QList<module_config_t *> &, const char * );
+    KeyInputDialog( QList<module_config_t *> &, const char *, QWidget * );
     int keyValue;
     bool conflicts;
 private:
@@ -409,9 +422,19 @@ private:
     void keyPressEvent( QKeyEvent *);
     void wheelEvent( QWheelEvent *);
     QLabel *selected;
-    QLabel *warning;
-    const char * keyToChange;
+    QVBoxLayout *vLayout;
+    const char *keyToChange;
     QList<module_config_t*> values;
+    QDialogButtonBox *buttonBox;
+};
+
+class KeyShortcutEdit: public QLineEdit
+{
+    Q_OBJECT
+private:
+    virtual void mousePressEvent( QMouseEvent *event );
+signals:
+    void pressed();
 };
 
 class KeySelectorControl : public ConfigControl
@@ -422,16 +445,19 @@ public:
                         QGridLayout*, int& );
     virtual int getType() { return 4; }
     virtual ~KeySelectorControl() {};
-    virtual void hide() { table->hide(); label->hide(); }
-    virtual void show() { table->show(); label->show(); }
+    virtual void hide() { table->hide(); if( label ) label->hide(); }
+    virtual void show() { table->show(); if( label ) label->show(); }
     void doApply();
 private:
     void finish();
     QLabel *label;
     QTreeWidget *table;
+    KeyShortcutEdit *shortcutValue;
     QList<module_config_t *> values;
 private slots:
-    void selectKey( QTreeWidgetItem *);
+    void setTheKey();
+    void selectKey( QTreeWidgetItem * = NULL );
+    void select1Key( QTreeWidgetItem *);
 };
 
 #endif