]> git.sesse.net Git - vlc/blobdiff - modules/gui/qt4/dialogs/external.hpp
Qt: includes barrier fix.
[vlc] / modules / gui / qt4 / dialogs / external.hpp
index 23aa263c621fadc24467f00cc50ecb89022ec9cd..d2894ef883f0981a89f1596763fd570da6b65fe1 100644 (file)
@@ -18,8 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 
-#ifndef VLC_QT4_DIALOGS_EXTERNAL_H_
-# define VLC_QT4_DIALOGS_EXTERNAL_H 1
+#ifndef QVLC_DIALOGS_EXTERNAL_H_
+#define QVLC_DIALOGS_EXTERNAL_H_ 1
 
 #include <QObject>
 #include <vlc_common.h>
@@ -42,10 +42,14 @@ signals:
 };
 
 struct intf_thread_t;
+class QProgressDialog;
 
 class DialogHandler : public QObject
 {
     Q_OBJECT
+
+    friend class QVLCProgressDialog;
+
 public:
     DialogHandler (intf_thread_t *);
     ~DialogHandler (void);
@@ -55,11 +59,43 @@ private:
     QVLCVariable message;
     QVLCVariable login;
     QVLCVariable question;
+    QVLCVariable progressBar;
+signals:
+    void progressBarDestroyed (QWidget *);
 
 private slots:
     void displayMessage (vlc_object_t *, void *);
     void requestLogin (vlc_object_t *, void *);
     void requestAnswer (vlc_object_t *, void *);
+    void startProgressBar (vlc_object_t *, void *);
+    void stopProgressBar (QWidget *);
+};
+
+/* Put here instead of .cpp because of MOC */
+#include <QProgressDialog>
+
+class QVLCProgressDialog : public QProgressDialog
+{
+    Q_OBJECT
+public:
+    QVLCProgressDialog (DialogHandler *parent,
+                        struct dialog_progress_bar_t *);
+    virtual ~QVLCProgressDialog (void);
+
+private:
+    DialogHandler *handler;
+    bool cancelled;
+
+    static void update (void *, const char *, float);
+    static bool check (void *);
+    static void destroy (void *);
+private slots:
+    void saveCancel (void);
+
+signals:
+    void progressed (int);
+    void described (const QString&);
+    void destroyed (void);
 };
 
 #endif