X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fgui%2Fqt4%2Fqt4.hpp;h=6c42a73e57f40b4fe82585b9acd6a7258cced9dc;hb=3b2502986923eb8ebf0bdcd7cc7ded6291af2587;hp=6b8c1137b9b7f23117c74de824fe0527d4ce904a;hpb=f4f357d27e36425875bfb02c1164e6f837724cbf;p=vlc diff --git a/modules/gui/qt4/qt4.hpp b/modules/gui/qt4/qt4.hpp index 6b8c1137b9..6c42a73e57 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-2009 the VideoLAN team * $Id$ * * Authors: Clément Stenac @@ -22,65 +22,76 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ -#ifndef _QVLC_H_ -#define _QVLC_H_ +#ifndef QVLC_H_ +#define QVLC_H_ #ifdef HAVE_CONFIG_H # include "config.h" #endif -#include -#include -#include +#include /* VLC_COMMON_MEMBERS for vlc_interface.h */ +#include /* intf_thread_t */ +#include /* playlist_t */ +#include /* AOUT_VOLUME_ */ -#include +#define QT_NO_CAST_TO_ASCII +#include -#define HAS_QT43 ( QT_VERSION >= 0x040300 ) +#if ( QT_VERSION < 0x040400 ) +# error Update your Qt version to at least 4.4.0 +#endif +#if QT_VERSION == 0x040500 +# error Please update Qt version to 4.5.1. 4.5.0 is too buggy +#endif -#define QT_NORMAL_MODE 0 -#define QT_ALWAYS_VIDEO_MODE 1 -#define QT_MINIMAL_MODE 2 +#define HAS_QT45 ( QT_VERSION >= 0x040500 ) -class QApplication; +enum { + DialogEventType = 0, + IMEventType = 100, + PLEventType = 200, + MsgEventType = 300, +}; + +class QVLCApp; class QMenu; class MainInterface; -class DialogsProvider; -class VideoWidget; class QSettings; struct intf_sys_t { - QApplication *p_app; - MainInterface *p_mi; + vlc_thread_t thread; + + QVLCApp *p_app; /* Main Qt Application */ + MainInterface *p_mi; /* Main Interface, NULL if DialogProvider Mode */ - QSettings *mainSettings; + QSettings *mainSettings; /* Qt State settings not messing main VLC ones */ - bool b_isDialogProvider; + bool b_isDialogProvider; /* Qt mode or Skins mode */ - playlist_t *p_playlist; - msg_subscription_t *p_sub; ///< Subscription to the message bank + int i_screenHeight; /* Detection of Small screens */ - VideoWidget *p_video; + QString filepath; /* Last path used in dialogs */ - const char *psz_filepath; - QMenu * p_popup_menu; }; -#define THEPL p_intf->p_sys->p_playlist -#define QPL_LOCK vlc_object_lock( THEPL ); -#define QPL_UNLOCK vlc_object_unlock( THEPL ); +#define THEPL pl_Get(p_intf) +#define QPL_LOCK playlist_Lock( THEPL ); +#define QPL_UNLOCK playlist_Unlock( THEPL ); #define THEDP DialogsProvider::getInstance() #define THEMIM MainInputManager::getInstance( p_intf ) +#define THEAM ActionsManager::getInstance( p_intf ) #define qfu( i ) QString::fromUtf8( i ) -#define qtr( i ) QString::fromUtf8( _(i) ) -#define qtu( i ) (i).toUtf8().data() -#define qta( i ) (i).toAscii().data() +#define qtr( i ) QString::fromUtf8( vlc_gettext(i) ) +#define qtu( i ) ((i).toUtf8().constData()) -#define CONNECT( a, b, c, d ) connect( a, SIGNAL( b ), c, SLOT(d) ) +#define CONNECT( a, b, c, d ) \ + connect( a, SIGNAL( b ), c, SLOT(d) ) +#define DCONNECT( a, b, c, d ) \ + connect( a, SIGNAL( b ), c, SLOT(d), Qt::DirectConnection ) #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 ); \ @@ -103,54 +114,19 @@ struct intf_sys_t #define TOGGLEV( x ) { if( x->isVisible() ) x->hide(); \ else x->show(); } -#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 - #define getSettings() p_intf->p_sys->mainSettings -enum { - DialogEventType = 0, - IMEventType = 100, - PLEventType = 200 -}; - +#define QT_VOLUME_DEFAULT AOUT_VOLUME_DEFAULT +#define QT_VOLUME_MAX (AOUT_VOLUME_DEFAULT * 2) -#include -/* Replace separators on Windows because Qt is always using / */ -static inline QString toNativeSeparators( QString s ) +static inline QString QVLCUserDir( vlc_userdir_t type ) { -#ifdef WIN32 - for (int i=0; i<(int)s.length(); i++) - { - if (s[i] == QLatin1Char('/')) - s[i] = QLatin1Char('\\'); - } -#endif - return s; + char *dir = config_GetUserDir( type ); + if( !dir ) + return ""; + QString res = qfu( dir ); + free( dir ); + return res; } -static const int DialogEvent_Type = QEvent::User + DialogEventType + 1; -//static const int PLUndockEvent_Type = QEvent::User + DialogEventType + 2; -//static const int PLDockEvent_Type = QEvent::User + DialogEventType + 3; -static const int SetVideoOnTopEvent_Type = QEvent::User + DialogEventType + 4; - -class DialogEvent : public QEvent -{ -public: - DialogEvent( int _i_dialog, int _i_arg, intf_dialog_args_t *_p_arg ) : - QEvent( (QEvent::Type)(DialogEvent_Type) ) - { - 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; -}; - #endif