X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fgui%2Fqt4%2Fqt4.hpp;h=ef2a7f574fe2b994a483fb79e95e3c95def06db0;hb=7989f86c90d0a65ff82e790a6a88729575a2669f;hp=220fc2822d6d8418c99f10e6be0671b93a23b1fa;hpb=e1bc46e79237729885df3932f488570139fa5052;p=vlc diff --git a/modules/gui/qt4/qt4.hpp b/modules/gui/qt4/qt4.hpp index 220fc2822d..ef2a7f574f 100644 --- a/modules/gui/qt4/qt4.hpp +++ b/modules/gui/qt4/qt4.hpp @@ -1,7 +1,7 @@ /***************************************************************************** * qt4.hpp : QT4 interface **************************************************************************** - * Copyright (C) 2006-2007 the VideoLAN team + * Copyright (C) 2006-2008 the VideoLAN team * $Id$ * * Authors: Clément Stenac @@ -29,7 +29,7 @@ # include "config.h" #endif -#include +#include #include #include @@ -37,39 +37,51 @@ #define HAS_QT43 ( QT_VERSION >= 0x040300 ) -/* Add define for duration, VLC_META_ENGINE doesn't include it */ -#define VLC_META_ENGINE_DURATION 0x00000002 -#define VLC_META_DURATION N_( "Duration" ) +enum { + QT_NORMAL_MODE = 0, + QT_ALWAYS_VIDEO_MODE, + QT_MINIMAL_MODE +}; -#define QT_NORMAL_MODE 0 -#define QT_ALWAYS_VIDEO_MODE 1 -#define QT_MINIMAL_MODE 2 +enum { + DialogEventType = 0, + IMEventType = 100, + PLEventType = 200 +}; + +enum { + DialogEvent_Type = QEvent::User + DialogEventType + 1, + //PLUndockEvent_Type = QEvent::User + DialogEventType + 2; + //PLDockEvent_Type = QEvent::User + DialogEventType + 3; + SetVideoOnTopEvent_Type = QEvent::User + DialogEventType + 4, +}; class QApplication; class QMenu; class MainInterface; class DialogsProvider; class VideoWidget; +class QSettings; struct intf_sys_t { + vlc_thread_t thread; QApplication *p_app; MainInterface *p_mi; + QSettings *mainSettings; + bool b_isDialogProvider; playlist_t *p_playlist; - msg_subscription_t *p_sub; ///< Subscription to the message bank - - VideoWidget *p_video; const char *psz_filepath; QMenu * p_popup_menu; }; #define THEPL p_intf->p_sys->p_playlist -#define QPL_LOCK vlc_mutex_lock( &THEPL->object_lock ); -#define QPL_UNLOCK vlc_mutex_unlock( &THEPL->object_lock ); +#define QPL_LOCK vlc_object_lock( THEPL ); +#define QPL_UNLOCK vlc_object_unlock( THEPL ); #define THEDP DialogsProvider::getInstance() #define THEMIM MainInputManager::getInstance( p_intf ) @@ -81,7 +93,6 @@ struct intf_sys_t #define CONNECT( a, b, c, d ) connect( a, SIGNAL( b ), c, SLOT(d) ) #define BUTTONACT( b, a ) connect( b, SIGNAL( clicked() ), this, SLOT(a) ) -#define ON_TIMEOUT( act ) CONNECT( THEDP->fixed_timer, timeout(), this, act ) #define BUTTON_SET( button, text, tooltip ) \ button->setText( text ); \ @@ -93,7 +104,7 @@ struct intf_sys_t #define BUTTON_SET_IMG( button, text, image, tooltip ) \ BUTTON_SET( button, text, tooltip ); \ - button->setIcon( QIcon( ":/pixmaps/"#image ) ); + button->setIcon( QIcon( ":/"#image ) ); #define BUTTON_SET_ACT_I( button, text, image, tooltip, thisslot ) \ BUTTON_SET_IMG( button, text, image, tooltip ); \ @@ -104,31 +115,36 @@ struct intf_sys_t #define TOGGLEV( x ) { if( x->isVisible() ) x->hide(); \ else x->show(); } -enum { -DialogEventType = 0, -IMEventType = 100, -PLEventType = 200 -}; +#if HAS_QT43 + #define setLayoutMargins( a, b, c, d, e) setContentsMargins( a, b, c, d ) +#else + #define setLayoutMargins( a, b, c, d, e) setMargin( e ) +#endif -static int DialogEvent_Type = QEvent::User + DialogEventType + 1; -//static int PLUndockEvent_Type = QEvent::User + DialogEventType + 2; -//static int PLDockEvent_Type = QEvent::User + DialogEventType + 3; -static int SetVideoOnTopEvent_Type = QEvent::User + DialogEventType + 4; +#define getSettings() p_intf->p_sys->mainSettings -class DialogEvent : public QEvent + +#include +/* Replace separators on Windows because Qt is always using / */ +static inline QString toNativeSeparators( QString s ) { -public: - DialogEvent( int _i_dialog, int _i_arg, intf_dialog_args_t *_p_arg ) : - QEvent( (QEvent::Type)(DialogEvent_Type) ) +#ifdef WIN32 + for (int i=0; i<(int)s.length(); i++) { - i_dialog = _i_dialog; - i_arg = _i_arg; - p_arg = _p_arg; - }; - virtual ~DialogEvent() {}; - - int i_arg, i_dialog; - intf_dialog_args_t *p_arg; -}; + if (s[i] == QLatin1Char('/')) + s[i] = QLatin1Char('\\'); + } +#endif + return s; +} + +static inline QString removeTrailingSlash( QString s ) +{ + if( ( s.length() > 1 ) && ( s[s.length()-1] == QLatin1Char( '/' ) ) ) + s.remove( s.length() - 1, 1 ); + return s; +} + +#define toNativeSepNoSlash( a ) toNativeSeparators( removeTrailingSlash( a ) ) #endif