/*****************************************************************************
* open.hpp : advanced open dialog
****************************************************************************
- * Copyright (C) 2006 the VideoLAN team
- * $Id: streaminfo.hpp 16806 2006-09-23 13:37:50Z zorglub $
+ * Copyright (C) 2006-2007 the VideoLAN team
+ * $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 "ui/open.h"
#include "util/qvlcframe.hpp"
-#include "components/open.hpp"
+#include "dialogs_provider.hpp"
+#include "ui/open.h"
+#include "components/open_panels.hpp"
-#include <QTabWidget>
-#include <QBoxLayout>
-#include <QString>
+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 QTabWidget;
class OpenDialog : public QVLCDialog
{
Q_OBJECT;
public:
- static OpenDialog * getInstance( QWidget *parent, intf_thread_t *p_intf )
+ static OpenDialog * getInstance( QWidget *parent, intf_thread_t *p_intf,
+ bool b_rawInstance = false, int _action_flag = 0, bool b_selectMode = false );
+
+ static void killInstance()
{
- if( !instance)
- instance = new OpenDialog( parent, p_intf, false );
- return instance;
+ if( instance ) delete instance;
+ instance = NULL;
}
- OpenDialog( QWidget *parent, intf_thread_t *, bool modal );
virtual ~OpenDialog();
- void showTab( int );
+ 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();
- QString mrl;
- QString mainMRL;
private:
+ OpenDialog( QWidget *parent, intf_thread_t *, bool b_selectMode,
+ int _action_flag = 0 );
+
static OpenDialog *instance;
input_thread_t *p_input;
- QString mrlSub;
+
+ QString mrl;
+ QString mainMRL;
+ QString storedMethod;
Ui::Open ui;
FileOpenPanel *fileOpenPanel;
NetOpenPanel *netOpenPanel;
- DiskOpenPanel *diskOpenPanel;
+ DiscOpenPanel *discOpenPanel;
CaptureOpenPanel *captureOpenPanel;
- QString storedMethod;
- int advHeight, mainHeight;
+ int i_action_flag;
+ QStringList SeparateEntries( QString );
+
+ QPushButton *cancelButton, *selectButton;
+ QPushButton *playButton;
+
+ void finish( bool );
- void playOrEnqueue( bool );
private slots:
+ void setMenuAction();
void cancel();
- void play();
- void enqueue();
+ void close();
void toggleAdvancedPanel();
void updateMRL( QString );
void updateMRL();
- void newMethod(QString);
+ void newCachingMethod( QString );
void signalCurrent();
+ void browseInputSlave();
};
#endif