X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fgui%2Fqt4%2Fdialogs_provider.hpp;h=f2ba2113e2dc851f3a3bd0622eaf6af28003aa89;hb=eb85f7afc2685c9973973a8d6c1a4530c6b77972;hp=45e20648ee1f049499f443ed73d9806663ce1003;hpb=b48e3d2890bb6e2b1a35d7c051ef101a50809833;p=vlc diff --git a/modules/gui/qt4/dialogs_provider.hpp b/modules/gui/qt4/dialogs_provider.hpp index 45e20648ee..f2ba2113e2 100644 --- a/modules/gui/qt4/dialogs_provider.hpp +++ b/modules/gui/qt4/dialogs_provider.hpp @@ -1,10 +1,11 @@ /***************************************************************************** * dialogs_provider.hpp : Dialogs provider **************************************************************************** - * Copyright (C) 2006 the VideoLAN team + * Copyright (C) 2006-2007 the VideoLAN team * $Id$ * * Authors: Clément Stenac + * Jean-Baptiste Kempf * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -18,18 +19,79 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. + *****************************************************************************/ #ifndef _DIALOGS_PROVIDER_H_ #define _DIALOGS_PROVIDER_H_ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include +#include + +#include "qt4.hpp" +#include "dialogs/interaction.hpp" + #include #include #include -#include -#include -#include "dialogs/interaction.hpp" -#include + +#define ADD_FILTER_MEDIA( string ) \ + string += qtr( "Media Files" ); \ + string += " ( "; \ + string += EXTENSIONS_MEDIA; \ + string += ");;"; +#define ADD_FILTER_VIDEO( string ) \ + string += qtr( "Video Files" ); \ + string += " ( "; \ + string += EXTENSIONS_VIDEO; \ + string += ");;"; +#define ADD_FILTER_AUDIO( string ) \ + string += qtr( "Audio Files" ); \ + string += " ( "; \ + string += EXTENSIONS_AUDIO; \ + string += ");;"; +#define ADD_FILTER_PLAYLIST( string ) \ + string += qtr( "Playlist Files" ); \ + string += " ( "; \ + string += EXTENSIONS_PLAYLIST; \ + string += ");;"; +#define ADD_FILTER_SUBTITLE( string ) \ + string += qtr( "Subtitles Files" );\ + string += " ( "; \ + string += EXTENSIONS_SUBTITLE; \ + string += ");;"; +#define ADD_FILTER_ALL( string ) \ + string += qtr( "All Files" ); \ + string += " (*.*)"; + +enum { + EXT_FILTER_MEDIA = 0x01, + EXT_FILTER_VIDEO = 0x02, + EXT_FILTER_AUDIO = 0x04, + EXT_FILTER_PLAYLIST = 0x08, + EXT_FILTER_SUBTITLE = 0x10, +}; + +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 +}; class QEvent; class QSignalMapper; @@ -38,8 +100,10 @@ class QVLCMenu; class DialogsProvider : public QObject { Q_OBJECT; + friend class QVLCMenu; + public: - static DialogsProvider *getInstance() + static DialogsProvider *getInstance() { assert( instance ); return instance; @@ -50,35 +114,80 @@ public: instance = new DialogsProvider( p_intf ); return instance; } + static void killInstance() + { + if( instance ) delete instance; + instance = NULL; + } virtual ~DialogsProvider(); - QTimer *idle_timer; 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() ); protected: - friend class QVLCMenu; QSignalMapper *menusMapper; QSignalMapper *menusUpdateMapper; + QSignalMapper *SDMapper; void customEvent( QEvent *); + private: DialogsProvider( intf_thread_t *); intf_thread_t *p_intf; static DialogsProvider *instance; + void addFromSimple( bool, bool ); public slots: + void doInteraction( intf_dialog_args_t * ); + void menuAction( QObject *); + void menuUpdateAction( QObject * ); + void SDMenuAction( QString ); + void playlistDialog(); void bookmarksDialog(); - void streaminfoDialog(); + void mediaInfoDialog(); + void mediaCodecDialog(); void prefsDialog(); + void extendedDialog(); void messagesDialog(); +#ifdef ENABLE_VLM + void vlmDialog(); +#endif + void helpDialog(); +#ifdef UPDATE_CHECK + void updateDialog(); +#endif + void aboutDialog(); + void gotoTimeDialog(); + void podcastConfigureDialog(); + void simpleOpenDialog(); + void simplePLAppendDialog(); + void simpleMLAppendDialog(); + void openDialog(); void openDialog( int ); - void popupMenu( int ); - void doInteraction( intf_dialog_args_t * ); - void menuAction( QObject *); - void menuUpdateAction( QObject *); - void streamingDialog(); + void openDiscDialog(); + void openFileDialog(); + void openNetDialog(); + void openCaptureDialog(); + + void PLAppendDialog(); + void MLAppendDialog(); + void PLAppendDir(); + void MLAppendDir(); + + void streamingDialog( QWidget *parent, QString mrl = "", + bool b_stream = true ); + void openThenStreamingDialogs(); + void openThenTranscodingDialogs(); + + void openAPlaylist(); + void saveAPlaylist(); + void quit(); }; - #endif