]> git.sesse.net Git - vlc/blobdiff - modules/gui/qt4/dialogs_provider.hpp
Qt: add a new "Open URL" dialog
[vlc] / modules / gui / qt4 / dialogs_provider.hpp
index 7ae78c7a4543f51507ec1636f0920d40998d03d7..997257b0ab1fab11bbd14a30ded40004b43c6ebf 100644 (file)
@@ -1,7 +1,7 @@
 /*****************************************************************************
  * dialogs_provider.hpp : Dialogs provider
  ****************************************************************************
- * Copyright (C) 2006-2007 the VideoLAN team
+ * Copyright (C) 2006-2008 the VideoLAN team
  * $Id$
  *
  * Authors: ClĂ©ment Stenac <zorglub@videolan.org>
 #endif
 
 #include <assert.h>
-#include <vlc/vlc.h>
-#include <vlc_interface.h>
 
 #include "qt4.hpp"
-#include "dialogs/interaction.hpp"
 
 #include <QObject>
-#include <QTimer>
-#include <QApplication>
 
 #define ADD_FILTER_MEDIA( string )     \
     string += qtr( "Media Files" );    \
@@ -67,7 +62,7 @@
     string += ");;";
 #define ADD_FILTER_ALL( string )       \
     string += qtr( "All Files" );      \
-    string += " (*.*)";
+    string += " (*)";
 
 enum {
     EXT_FILTER_MEDIA     =  0x01,
@@ -78,19 +73,10 @@ enum {
 };
 
 enum {
-    OPEN_FILE_TAB,
-    OPEN_DISC_TAB,
-    OPEN_NETWORK_TAB,
-    OPEN_CAPTURE_TAB,
-    OPEN_TAB_MAX
-};
-
-enum {
-    OPEN_AND_PLAY,
-    OPEN_AND_STREAM,
-    OPEN_AND_SAVE,
-    OPEN_AND_ENQUEUE,
-    SELECT
+    DialogEvent_Type = QEvent::User + DialogEventType + 1,
+    //PLUndockEvent_Type = QEvent::User + DialogEventType + 2;
+    //PLDockEvent_Type = QEvent::User + DialogEventType + 3;
+    SetVideoOnTopEvent_Type = QEvent::User + DialogEventType + 4,
 };
 
 class QEvent;
@@ -119,14 +105,18 @@ public:
         if( instance ) delete instance;
         instance = NULL;
     }
+    static bool isAlive()
+    {
+        return ( instance != NULL );
+    }
     virtual ~DialogsProvider();
-    QTimer *fixed_timer;
 
     QStringList showSimpleOpen( QString help = QString(),
                                 int filters = EXT_FILTER_MEDIA |
                                 EXT_FILTER_VIDEO | EXT_FILTER_AUDIO |
                                 EXT_FILTER_PLAYLIST,
                                 QString path = QString() );
+    bool isDying() { return b_isDying; }
 protected:
     QSignalMapper *menusMapper;
     QSignalMapper *menusUpdateMapper;
@@ -137,13 +127,14 @@ private:
     DialogsProvider( intf_thread_t *);
     intf_thread_t *p_intf;
     static DialogsProvider *instance;
+    bool b_isDying;
+
+    void openDialog( int );
     void addFromSimple( bool, bool );
 
 public slots:
     void doInteraction( intf_dialog_args_t * );
-    void menuAction( QObject *);
-    void menuUpdateAction( QObject * );
-    void SDMenuAction( QString );
+    void playMRL( const QString & );
 
     void playlistDialog();
     void bookmarksDialog();
@@ -162,34 +153,61 @@ public slots:
     void aboutDialog();
     void gotoTimeDialog();
     void podcastConfigureDialog();
+    void toolbarDialog();
+    void pluginDialog();
+
+    void openFileGenericDialog( intf_dialog_args_t * );
 
     void simpleOpenDialog();
     void simplePLAppendDialog();
     void simpleMLAppendDialog();
 
     void openDialog();
-    void openDialog( int );
     void openDiscDialog();
     void openFileDialog();
+    void openUrlDialog();
     void openNetDialog();
     void openCaptureDialog();
 
     void PLAppendDialog();
     void MLAppendDialog();
+
+    void PLOpenDir();
     void PLAppendDir();
     void MLAppendDir();
 
     void streamingDialog( QWidget *parent, QString mrl = "",
             bool b_stream = true );
-    void openThenStreamingDialogs();
-    void openThenTranscodingDialogs();
+    void openAndStreamingDialogs();
+    void openAndTranscodingDialogs();
 
     void openAPlaylist();
     void saveAPlaylist();
 
-    void switchToSkins();
-    void switchToWx();
+    void loadSubtitlesFile();
+
     void quit();
+private slots:
+    void menuAction( QObject *);
+    void menuUpdateAction( QObject * );
+    void SDMenuAction( QString );
 };
 
+class DialogEvent : public QEvent
+{
+public:
+    DialogEvent( int _i_dialog, int _i_arg, intf_dialog_args_t *_p_arg ) :
+                 QEvent( (QEvent::Type)(DialogEvent_Type) )
+    {
+        i_dialog = _i_dialog;
+        i_arg = _i_arg;
+        p_arg = _p_arg;
+    };
+    virtual ~DialogEvent() { delete p_arg; };
+
+    int i_arg, i_dialog;
+    intf_dialog_args_t *p_arg;
+};
+
+
 #endif