X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fgui%2Fqt4%2Fmenus.hpp;h=76b65f695dba39ac7e79005180421071074f5c89;hb=9f0375cd8d66f314f46dc6e720d23b6451b8d6fc;hp=b23da2b524cc72cb0b2b8bfb0186f319d4ed0a51;hpb=7326fad1f18a82b58db09d0a0ddc7c086c60c62e;p=vlc diff --git a/modules/gui/qt4/menus.hpp b/modules/gui/qt4/menus.hpp index b23da2b524..76b65f695d 100644 --- a/modules/gui/qt4/menus.hpp +++ b/modules/gui/qt4/menus.hpp @@ -28,13 +28,14 @@ #include "qt4.hpp" #include +#include #include /* Folder vs. Directory */ #if defined( WIN32 ) || defined(__APPLE__) -#define I_OPEN_FOLDER "Open &Folder..." +#define I_OPEN_FOLDER N_("Open &Folder...") #else -#define I_OPEN_FOLDER "Open D&irectory..." +#define I_OPEN_FOLDER N_("Open D&irectory...") #endif //WIN32 using namespace std; @@ -45,13 +46,13 @@ class QSystemTrayIcon; class MenuItemData : public QObject { - -Q_OBJECT + Q_OBJECT public: - MenuItemData( int i_id, int _i_type, vlc_value_t _val, const char *_var ) + MenuItemData( QObject* parent, vlc_object_t *_p_obj, int _i_type, + vlc_value_t _val, const char *_var ) : QObject( parent ) { - i_object_id = i_id; + p_obj = _p_obj; i_val_type = _i_type; val = _val; psz_var = strdup( _var ); @@ -62,72 +63,111 @@ public: if( ( i_val_type & VLC_VAR_TYPE) == VLC_VAR_STRING ) free( val.psz_string ); } - int i_object_id; - int i_val_type; + + vlc_object_t *p_obj; vlc_value_t val; char *psz_var; + +private: + int i_val_type; }; class QVLCMenu : public QObject { Q_OBJECT; + friend class MenuFunc; + public: - static void createMenuBar( MainInterface *mi, intf_thread_t *, bool ); - - /* Menus */ - static QMenu *FileMenu(); - static QMenu *SDMenu( intf_thread_t * ); - static QMenu *PlaylistMenu( intf_thread_t *, MainInterface * ); - static QMenu *ToolsMenu( intf_thread_t *, MainInterface *, bool, bool with = true ); - static QMenu *NavigMenu( intf_thread_t * , QMenu * ); - static QMenu *VideoMenu( intf_thread_t * , QMenu * ); - static QMenu *AudioMenu( intf_thread_t * , QMenu * ); - static QMenu *InterfacesMenu( intf_thread_t *p_intf, QMenu * ); - static QMenu *HelpMenu(); + /* Main bar creation */ + static void createMenuBar( MainInterface *mi, intf_thread_t * ); /* Popups Menus */ + static void PopupMenu( intf_thread_t *, bool ); static void AudioPopupMenu( intf_thread_t * ); static void VideoPopupMenu( intf_thread_t * ); static void MiscPopupMenu( intf_thread_t * ); - static void PopupMenu( intf_thread_t *, bool ); - static void PopupMenuStaticEntries( intf_thread_t *p_intf, QMenu *menu ); - static void PopupMenuControlEntries( QMenu *menu, intf_thread_t *p_intf, - input_thread_t *p_input ); + /* Systray */ static void updateSystrayMenu( MainInterface *,intf_thread_t *, bool b_force_visible = false); /* Actions */ - static void DoAction( intf_thread_t *, QObject * ); + static void DoAction( QObject * ); + + /* HACK for minimalView */ + static QAction *minimalViewAction; + static QAction *fullscreenViewAction; + private: + /* All main Menus */ + static QMenu *FileMenu( intf_thread_t *, QWidget * ); + static QMenu *SDMenu( intf_thread_t *, QWidget * ); + + static QMenu *ToolsMenu( QMenu * ); + static QMenu *ToolsMenu( QWidget * ); + + static QMenu *ViewMenu( intf_thread_t *, MainInterface *, + bool with = true ); + static QMenu *InterfacesMenu( intf_thread_t *p_intf, QMenu * ); + + static QMenu *NavigMenu( intf_thread_t *, QMenu * ); + static QMenu *NavigMenu( intf_thread_t *, QWidget * ); + static QMenu *RebuildNavigMenu( intf_thread_t *, QMenu *); + + static QMenu *VideoMenu( intf_thread_t *, QMenu * ); + static QMenu *VideoMenu( intf_thread_t *, QWidget * ); + + static QMenu *AudioMenu( intf_thread_t *, QMenu * ); + static QMenu *AudioMenu( intf_thread_t *, QWidget * ); + + static QMenu *HelpMenu( QWidget * ); + + /* Popups Menus */ + static void PopupMenuStaticEntries( QMenu *menu ); + static void PopupPlayEntries( QMenu *menu, intf_thread_t *p_intf, + input_thread_t *p_input ); + static void PopupMenuControlEntries( QMenu *menu, intf_thread_t *p_intf ); + static void PopupMenuPlaylistControlEntries( QMenu *menu, intf_thread_t *p_intf ); + /* Generic automenu methods */ static QMenu * Populate( intf_thread_t *, QMenu *current, - vector&, vector&, - bool append = false ); + vector&, vector& ); static void CreateAndConnect( QMenu *, const char *, QString, QString, - int, int, vlc_value_t, int, bool c = false ); - static void CreateItem( QMenu *, const char *, vlc_object_t *, bool ); + int, vlc_object_t *, vlc_value_t, int, + bool c = false ); + static void UpdateItem( intf_thread_t *, QMenu *, const char *, + vlc_object_t *, bool ); static int CreateChoicesMenu( QMenu *,const char *, vlc_object_t *, bool ); + + /* recentMRL menu */ + static QMenu *recentsMenu; + +public slots: + static void updateRecents( intf_thread_t * ); }; class MenuFunc : public QObject { -Q_OBJECT + Q_OBJECT public: - MenuFunc( QMenu *_menu, int _id ) { menu = _menu; id = _id; }; + MenuFunc( QMenu *_menu, int _id ) : QObject( (QObject *)_menu ), + menu( _menu ), id( _id ){} + void doFunc( intf_thread_t *p_intf) { switch( id ) { - case 1: QVLCMenu::VideoMenu( p_intf, menu ); break; - case 2: QVLCMenu::AudioMenu( p_intf, menu ); break; - case 3: QVLCMenu::NavigMenu( p_intf, menu ); break; - case 4: QVLCMenu::InterfacesMenu( p_intf, menu ); break; + case 1: QVLCMenu::AudioMenu( p_intf, menu ); break; + case 2: QVLCMenu::VideoMenu( p_intf, menu ); break; + case 3: QVLCMenu::RebuildNavigMenu( p_intf, menu ); break; + case 4: QVLCMenu::InterfacesMenu( p_intf, menu ); break; } - }; - int id; QMenu *menu; + } +private: + int id; + QMenu *menu; }; #endif