123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204 |
- /*****************************************************************************
- * dialogs_provider.hpp : Dialogs provider
- ****************************************************************************
- * Copyright (C) 2006-2008 the VideoLAN team
- * $Id$
- *
- * Authors: Clément Stenac <zorglub@videolan.org>
- * Jean-Baptiste Kempf <jb@videolan.org>
- *
- * 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
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * 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.
- *****************************************************************************/
- #ifndef QVLC_DIALOGS_PROVIDER_H_
- #define QVLC_DIALOGS_PROVIDER_H_
- #ifdef HAVE_CONFIG_H
- # include "config.h"
- #endif
- #include <assert.h>
- #include "qt.hpp"
- #include "dialogs/open.hpp"
- #include <QObject>
- #include <QStringList>
- #define TITLE_EXTENSIONS_MEDIA qtr( "Media Files" )
- #define TITLE_EXTENSIONS_VIDEO qtr( "Video Files" )
- #define TITLE_EXTENSIONS_AUDIO qtr( "Audio Files" )
- #define TITLE_EXTENSIONS_PLAYLIST qtr( "Playlist Files" )
- #define TITLE_EXTENSIONS_SUBTITLE qtr( "Subtitle Files" )
- #define TITLE_EXTENSIONS_ALL qtr( "All Files" )
- #define EXTENSIONS_ALL "*"
- #define ADD_EXT_FILTER( string, type ) \
- string = string + QString("%1 ( %2 );;") \
- .arg( TITLE_##type ) \
- .arg( QString( type ) );
- enum {
- EXT_FILTER_MEDIA = 0x01,
- EXT_FILTER_VIDEO = 0x02,
- EXT_FILTER_AUDIO = 0x04,
- EXT_FILTER_PLAYLIST = 0x08,
- EXT_FILTER_SUBTITLE = 0x10,
- };
- class QEvent;
- class QSignalMapper;
- class VLCMenuBar;
- class DialogsProvider : public QObject
- {
- Q_OBJECT
- friend class VLCMenuBar;
- public:
- static DialogsProvider *getInstance()
- {
- assert( instance );
- return instance;
- }
- static DialogsProvider *getInstance( intf_thread_t *p_intf )
- {
- if( !instance )
- instance = new DialogsProvider( p_intf );
- return instance;
- }
- static void killInstance()
- {
- delete instance;
- instance = NULL;
- }
- QStringList showSimpleOpen( const QString& help = QString(),
- int filters = EXT_FILTER_MEDIA |
- EXT_FILTER_VIDEO | EXT_FILTER_AUDIO |
- EXT_FILTER_PLAYLIST,
- const QString& path = QString() );
- bool isDying() { return b_isDying; }
- static QString getDirectoryDialog( intf_thread_t *p_intf);
- protected:
- QSignalMapper *menusMapper;
- QSignalMapper *menusUpdateMapper;
- QSignalMapper *SDMapper;
- void customEvent( QEvent *);
- private:
- DialogsProvider( intf_thread_t *);
- virtual ~DialogsProvider();
- static DialogsProvider *instance;
- intf_thread_t *p_intf;
- QMenu* popupMenu;
- QMenu* videoPopupMenu;
- QMenu* audioPopupMenu;
- QMenu* miscPopupMenu;
- QWidget* root;
- bool b_isDying;
- void openDialog( int );
- void addFromSimple( bool, bool );
- void saveAPlaylist(playlist_t *p_playlist, playlist_item_t *p_node);
- public slots:
- void playlistDialog();
- void bookmarksDialog();
- void mediaInfoDialog();
- void mediaCodecDialog();
- void prefsDialog();
- void extendedDialog();
- #if defined(ENABLE_SOUT)
- void rendererDialog();
- #endif
- void synchroDialog();
- void messagesDialog();
- void sendKey( int key );
- #ifdef ENABLE_VLM
- void vlmDialog();
- #endif
- void helpDialog();
- #ifdef UPDATE_CHECK
- void updateDialog();
- #endif
- void aboutDialog();
- void gotoTimeDialog();
- void podcastConfigureDialog();
- void toolbarDialog();
- void pluginDialog();
- void epgDialog();
- void setPopupMenu();
- void destroyPopupMenu();
- void openFileGenericDialog( intf_dialog_args_t * );
- void simpleOpenDialog();
- void openDialog();
- void openDiscDialog();
- void openFileDialog();
- void openUrlDialog();
- void openNetDialog();
- void openCaptureDialog();
- void PLAppendDialog( int tab = OPEN_FILE_TAB );
- void MLAppendDialog( int tab = OPEN_FILE_TAB );
- void PLOpenDir();
- void PLAppendDir();
- void streamingDialog( QWidget *parent, const QStringList& mrls, bool b_stream = true,
- QStringList options = QStringList("") );
- void openAndStreamingDialogs();
- void openAndTranscodingDialogs();
- void openAPlaylist();
- void savePlayingToPlaylist();
- void saveRecentsToPlaylist();
- void loadSubtitlesFile();
- void quit();
- private slots:
- void menuAction( QObject *);
- void menuUpdateAction( QObject * );
- void SDMenuAction( const QString& );
- signals:
- void toolBarConfUpdated();
- };
- class DialogEvent : public QEvent
- {
- public:
- static const QEvent::Type DialogEvent_Type;
- DialogEvent( int _i_dialog, int _i_arg, intf_dialog_args_t *_p_arg ) :
- QEvent( DialogEvent_Type )
- {
- i_dialog = _i_dialog;
- i_arg = _i_arg;
- p_arg = _p_arg;
- }
- int i_arg, i_dialog;
- intf_dialog_args_t *p_arg;
- };
- #endif
|