]> git.sesse.net Git - vlc/blobdiff - modules/gui/qt4/dialogs/open.hpp
Rework a bit the OpenDialog calls in order to fix the double-click issue when transco...
[vlc] / modules / gui / qt4 / dialogs / open.hpp
index 9df5d638f443312a7cca7950b6f0ee5b9d6f57c8..73a07e48bb84d8422f0658c8d662ac94d84a58ec 100644 (file)
@@ -2,7 +2,7 @@
  * open.hpp : advanced open dialog
  ****************************************************************************
  * Copyright (C) 2006-2007 the VideoLAN team
- * $Id: streaminfo.hpp 16806 2006-09-23 13:37:50Z zorglub $
+ * $Id$
  *
  * Authors: Jean-Baptiste Kempf <jb@videolan.org>
  *
 #ifndef _OPEN_DIALOG_H_
 #define _OPEN_DIALOG_H_
 
-#include <vlc/vlc.h>
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <vlc_common.h>
 
 #include "util/qvlcframe.hpp"
 #include "dialogs_provider.hpp"
-
 #include "ui/open.h"
-#include "components/open.hpp"
+#include "components/open_panels.hpp"
+
+enum {
+    OPEN_FILE_TAB,
+    OPEN_DISC_TAB,
+    OPEN_NETWORK_TAB,
+    OPEN_CAPTURE_TAB,
+    OPEN_TAB_MAX
+};
+
+enum {
+    OPEN_AND_PLAY,
+    OPEN_AND_ENQUEUE,
+    OPEN_AND_STREAM,
+    OPEN_AND_SAVE,
+    SELECT              /* Special mode to select a MRL (for VLM or similar */
+};
+
 
 class QString;
-class QToolButton;
 class QTabWidget;
 
 class OpenDialog : public QVLCDialog
@@ -41,49 +60,48 @@ class OpenDialog : public QVLCDialog
     Q_OBJECT;
 public:
     static OpenDialog * getInstance( QWidget *parent, intf_thread_t *p_intf,
-                 int _action_flag = 0 )
+                                     bool b_rawInstance = false, int _action_flag = 0, bool b_selectMode = false  );
+
+    static void killInstance()
     {
-        if( !instance)
-            instance = new OpenDialog( parent, p_intf, false, _action_flag );
-        else
-        {
-            instance->i_action_flag = _action_flag;
-            instance->setMenuAction();
-        }
-        return instance;
+        if( instance ) delete instance;
+        instance = NULL;
     }
-    OpenDialog( QWidget *parent, intf_thread_t *, bool modal,
-                int _action_flag = 0 );
     virtual ~OpenDialog();
 
-    void showTab( int );
-
-    QString mrl;
-    QString mainMRL;
+    void showTab( int = OPEN_FILE_TAB );
+    QString getMRL(){ return mrl; }
 
 public slots:
+    void selectSlots();
     void play();
     void stream( bool b_transode_only = false );
     void enqueue();
     void transcode();
+
 private:
+    OpenDialog( QWidget *parent, intf_thread_t *, bool b_selectMode,
+                int _action_flag = 0 );
+
     static OpenDialog *instance;
     input_thread_t *p_input;
 
+    QString mrl;
+    QString mainMRL;
+    QString storedMethod;
+
     Ui::Open ui;
     FileOpenPanel *fileOpenPanel;
     NetOpenPanel *netOpenPanel;
     DiscOpenPanel *discOpenPanel;
     CaptureOpenPanel *captureOpenPanel;
 
-    QString storedMethod;
-    QString mrlSub;
-    int advHeight, mainHeight;
     int i_action_flag;
     QStringList SeparateEntries( QString );
 
-    QPushButton *cancelButton;
-    QToolButton *playButton;
+    QPushButton *cancelButton, *selectButton;
+    QPushButton *playButton;
+
     void finish( bool );
 
 private slots:
@@ -93,7 +111,7 @@ private slots:
     void toggleAdvancedPanel();
     void updateMRL( QString );
     void updateMRL();
-    void newMethod(QString);
+    void newCachingMethod( QString );
     void signalCurrent();
 };