/*****************************************************************************
* 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>
*
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
******************************************************************************/
-#ifndef _OPEN_DIALOG_H_
-#define _OPEN_DIALOG_H_
+#ifndef QVLC_OPEN_DIALOG_H_
+#define QVLC_OPEN_DIALOG_H_ 1
-#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 "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 InfoTab;
-class OpenDialog : public QVLCFrame
+class QString;
+class QTabWidget;
+
+class OpenDialog : public QVLCDialog
{
Q_OBJECT;
public:
- static OpenDialog * getInstance( 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, bool b_pl = true );
+
+ static void killInstance()
{
- if( !instance)
- instance = new OpenDialog( p_intf);
- return instance;
+ if( instance ) delete instance;
+ instance = NULL;
}
virtual ~OpenDialog();
- void showTab( int);
+ void showTab( int = OPEN_FILE_TAB );
+ QString getMRL( bool b = true );
+
+public slots:
+ void selectSlots();
+ void play();
+ void stream( bool b_transode_only = false );
+ void enqueue();
+ void transcode();
- QString MRL;
private:
- OpenDialog( intf_thread_t * );
+ OpenDialog( QWidget *parent, intf_thread_t *, bool b_selectMode,
+ int _action_flag = 0, bool b_pl = true );
+
static OpenDialog *instance;
input_thread_t *p_input;
- QString mrlSub;
+
+ QString optionsMRL;
+ QString storedMethod;
+ QStringList itemsMRL;
Ui::Open ui;
FileOpenPanel *fileOpenPanel;
NetOpenPanel *netOpenPanel;
- DiskOpenPanel *diskOpenPanel;
-public slots:
+ DiscOpenPanel *discOpenPanel;
+ CaptureOpenPanel *captureOpenPanel;
+
+ int i_action_flag;
+ bool b_pl;
+ QStringList SeparateEntries( QString );
+
+ QPushButton *cancelButton, *selectButton;
+ QPushButton *playButton;
+
+ void finish( bool );
+
+private slots:
+ void setMenuAction();
void cancel();
- void ok();
- void changedTab();
+ void close();
void toggleAdvancedPanel();
- void updateMRL(QString);
+ void updateMRL( QStringList, QString );
+ void updateMRL();
+ void newCachingMethod( QString );
+ void signalCurrent( int );
+ void browseInputSlave();
};
#endif