X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fgui%2Fqt4%2Fmenus.hpp;h=f28e03ceb6e9e23380f989f13fe5fae43e2c0dac;hb=afad1bb5c6434271d78cd3b6657f54ff1be87036;hp=3ab5ae08b6f4c1eb90bca472fb33c50cd9a212f6;hpb=f8d66f23e21afdb60bb8e31b2f8fa7bdfba93ad6;p=vlc diff --git a/modules/gui/qt4/menus.hpp b/modules/gui/qt4/menus.hpp index 3ab5ae08b6..f28e03ceb6 100644 --- a/modules/gui/qt4/menus.hpp +++ b/modules/gui/qt4/menus.hpp @@ -22,25 +22,18 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ -#ifndef _MENUS_H_ -#define _MENUS_H_ +#ifndef QVLC_MENUS_H_ +#define QVLC_MENUS_H_ #include "qt4.hpp" #include #include -#include - -/* Folder vs. Directory */ -#if defined( WIN32 ) || defined(__APPLE__) -#define I_OPEN_FOLDER N_("Open &Folder...") -#else -#define I_OPEN_FOLDER N_("Open D&irectory...") -#endif //WIN32 +#include +#include using namespace std; -class QMenu; class QMenuBar; class QSystemTrayIcon; @@ -53,6 +46,8 @@ public: vlc_value_t _val, const char *_var ) : QObject( parent ) { p_obj = _p_obj; + if( p_obj ) + vlc_object_hold( p_obj ); i_val_type = _i_type; val = _val; psz_var = strdup( _var ); @@ -62,6 +57,8 @@ public: free( psz_var ); if( ( i_val_type & VLC_VAR_TYPE) == VLC_VAR_STRING ) free( val.psz_string ); + if( p_obj ) + vlc_object_release( p_obj ); } vlc_object_t *p_obj; @@ -74,7 +71,7 @@ private: class QVLCMenu : public QObject { - Q_OBJECT; + Q_OBJECT friend class MenuFunc; public: @@ -83,12 +80,12 @@ public: /* 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 AudioPopupMenu( intf_thread_t *, bool ); + static void VideoPopupMenu( intf_thread_t *, bool ); + static void MiscPopupMenu( intf_thread_t *, bool ); /* Systray */ - static void updateSystrayMenu( MainInterface *,intf_thread_t *, + static void updateSystrayMenu( MainInterface *, intf_thread_t *, bool b_force_visible = false); /* Actions */ @@ -96,25 +93,32 @@ public: private: /* All main Menus */ - static QMenu *FileMenu( intf_thread_t *, QWidget * ); - static QMenu *SDMenu( intf_thread_t *, QWidget * ); + static QMenu *FileMenu( intf_thread_t *, QWidget *, MainInterface * mi = NULL ); static QMenu *ToolsMenu( QMenu * ); - static QMenu *ToolsMenu( QWidget * ); + static QMenu *ToolsMenu( QWidget *parent ) { return ToolsMenu( new QMenu( parent ) ); } + + static QMenu *ViewMenu( intf_thread_t *, QMenu *, MainInterface * mi = NULL ); - static QMenu *ViewMenu( intf_thread_t *, MainInterface *, - bool with = true ); static QMenu *InterfacesMenu( intf_thread_t *p_intf, QMenu * ); + static void ExtensionsMenu( intf_thread_t *p_intf, QMenu * ); static QMenu *NavigMenu( intf_thread_t *, QMenu * ); - static QMenu *NavigMenu( intf_thread_t *, QWidget * ); + static QMenu *NavigMenu( intf_thread_t *p_intf, QWidget *parent ) { + return NavigMenu( p_intf, new QMenu( parent ) ); + } static QMenu *RebuildNavigMenu( intf_thread_t *, QMenu *); - static QMenu *VideoMenu( intf_thread_t *, QMenu * ); - static QMenu *VideoMenu( intf_thread_t *, QWidget * ); + static QMenu *VideoMenu( intf_thread_t *, QMenu *, bool b_subtitle = true ); + static QMenu *VideoMenu( intf_thread_t *p_intf, QWidget *parent ) { + return VideoMenu( p_intf, new QMenu( parent ) ); + } + static QMenu *SubtitleMenu( QMenu *current); static QMenu *AudioMenu( intf_thread_t *, QMenu * ); - static QMenu *AudioMenu( intf_thread_t *, QWidget * ); + static QMenu *AudioMenu( intf_thread_t *p_intf, QWidget *parent ) { + return AudioMenu( p_intf, new QMenu( parent ) ); + } static QMenu *HelpMenu( QWidget * ); @@ -122,16 +126,16 @@ private: 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 PopupMenuControlEntries( QMenu *menu, intf_thread_t *p_intf, bool b = true ); static void PopupMenuPlaylistControlEntries( QMenu *menu, intf_thread_t *p_intf ); /* Generic automenu methods */ static QMenu * Populate( intf_thread_t *, QMenu *current, - vector&, vector& ); + QVector&, QVector& ); - static void CreateAndConnect( QMenu *, const char *, QString, QString, - int, vlc_object_t *, vlc_value_t, int, - bool c = false ); + static void CreateAndConnect( QMenu *, const char *, const QString&, + const QString&, 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 ); @@ -158,12 +162,12 @@ public: 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; + case 4: QVLCMenu::ViewMenu( p_intf, menu ); break; } } private: - int id; QMenu *menu; + int id; }; #endif