#include "recents.hpp" /* Recents Item destruction */
#include "util/qvlcapp.hpp" /* QVLCApplication definition */
-#ifdef HAVE_X11_XLIB_H
+#ifdef Q_WS_X11
#include <X11/Xlib.h>
#endif
/*****************************************************************************
* Local prototypes.
*****************************************************************************/
-static int Open ( vlc_object_t * );
-static void Close ( vlc_object_t * );
+static int OpenIntf ( vlc_object_t * );
static int OpenDialogs ( vlc_object_t * );
+static int Open ( vlc_object_t *, bool );
+static void Close ( vlc_object_t * );
static int WindowOpen ( vlc_object_t * );
static void WindowClose ( vlc_object_t * );
static void *Thread ( void * );
#define ADVANCED_OPTIONS_LONGTEXT N_( "Show all the advanced options " \
"in the dialogs." )
-#define OPACITY_TEXT N_( "Windows opacity between 0.1 and 1." )
+#define OPACITY_TEXT N_( "Windows opacity between 0.1 and 1" )
#define OPACITY_LONGTEXT N_( "Sets the windows opacity between 0.1 and 1 " \
"for main interface, playlist and extended panel."\
" This option only works with Windows and " \
"X11 with composite extensions." )
-#define OPACITY_FS_TEXT N_( "Fullscreen controller opacity opacity between 0.1 and 1." )
+#define OPACITY_FS_TEXT N_( "Fullscreen controller opacity opacity between 0.1 and 1" )
#define OPACITY_FS_LONGTEXT N_( "Sets the fullscreen controller opacity between 0.1 and 1 " \
"for main interface, playlist and extended panel."\
" This option only works with Windows and " \
#define FULLSCREEN_NUMBER_LONGTEXT N_( "Screennumber of fullscreen, instead of" \
"same screen where interface is" )
+#define QT_AUTOLOAD_EXTENSIONS_TEXT N_( "Load extensions on startup" )
+#define QT_AUTOLOAD_EXTENSIONS_LONGTEXT N_( "Automatically load the "\
+ "extensions module on startup" )
+
/* Various modes definition */
static const int i_mode_list[] =
{ QT_NORMAL_MODE, QT_ALWAYS_VIDEO_MODE, QT_MINIMAL_MODE };
set_category( CAT_INTERFACE )
set_subcategory( SUBCAT_INTERFACE_MAIN )
set_capability( "interface", 151 )
- set_callbacks( Open, Close )
+ set_callbacks( OpenIntf, Close )
add_shortcut("qt")
add_integer( "qt-display-mode", QT_NORMAL_MODE, NULL,
add_integer( "qt-fullscreen-screennumber", -1, NULL, FULLSCREEN_NUMBER_TEXT,
FULLSCREEN_NUMBER_LONGTEXT, false );
+ add_bool( "qt-autoload-extensions", true, NULL,
+ QT_AUTOLOAD_EXTENSIONS_TEXT, QT_AUTOLOAD_EXTENSIONS_LONGTEXT,
+ false )
+
add_obsolete_bool( "qt-blingbling" ) /* Suppressed since 1.0.0 */
add_submodule ()
/* Ugly, but the Qt4 interface assumes single instance anyway */
static vlc_sem_t ready;
+#ifdef Q_WS_X11
+static char *x11_display = NULL;
+#endif
/*****************************************************************************
* Module callbacks
*****************************************************************************/
/* Open Interface */
-static int Open( vlc_object_t *p_this )
+static int Open( vlc_object_t *p_this, bool isDialogProvider )
{
intf_thread_t *p_intf = (intf_thread_t *)p_this;
#ifdef Q_WS_X11
- char *psz_display = var_CreateGetNonEmptyString( p_intf, "x11-display" );
- Display *p_display = XOpenDisplay( psz_display );
- free( psz_display );
+ x11_display = var_CreateGetNonEmptyString( p_intf, "x11-display" );
+ Display *p_display = XOpenDisplay( x11_display );
if( !p_display )
{
msg_Err( p_intf, "Could not connect to X server" );
/* Allocations of p_sys */
intf_sys_t *p_sys = p_intf->p_sys = new intf_sys_t;
- p_sys->b_isDialogProvider = false;
+ p_intf->p_sys->b_isDialogProvider = isDialogProvider;
p_sys->p_popup_menu = NULL;
p_sys->p_mi = NULL;
- p_sys->p_playlist = pl_Hold( p_intf );
+ p_sys->p_playlist = pl_Get( p_intf );
/* */
vlc_sem_init (&ready, 0);
if( vlc_clone( &p_sys->thread, Thread, p_intf, VLC_THREAD_PRIORITY_LOW ) )
{
- pl_Release (p_sys->p_playlist);
delete p_sys;
return VLC_ENOMEM;
}
return VLC_SUCCESS;
}
+/* Open qt4 interface */
+static int OpenIntf( vlc_object_t *p_this )
+{
+ return Open( p_this, false );
+}
+
/* Open Dialog Provider */
static int OpenDialogs( vlc_object_t *p_this )
{
- intf_thread_t *p_intf = (intf_thread_t *)p_this;
- p_intf->pf_show_dialog = ShowDialog;
-
- int val = Open( p_this );
- if( val )
- return val;
-
- return VLC_SUCCESS;
+ return Open( p_this, true );
}
static void Close( vlc_object_t *p_this )
QVLCApp::triggerQuit();
vlc_join (p_sys->thread, NULL);
- pl_Release (p_this);
delete p_sys;
+#ifdef Q_WS_X11
+ free (x11_display);
+#endif
}
static void *Thread( void *obj )
/* Start the QApplication here */
#ifdef Q_WS_X11
- char *display = var_CreateGetNonEmptyString( p_intf, "x11-display" );
- if( display )
+ if( x11_display != NULL )
{
argv[argc++] = const_cast<char *>("-display");
- argv[argc++] = display;
+ argv[argc++] = x11_display;
argv[argc] = NULL;
}
#endif
-#ifdef WIN32
- QVLCApp app( p_intf, argc, argv );
-#else
+
QVLCApp app( argc, argv );
-#endif
+
p_intf->p_sys->p_app = &app;
#ifdef UPDATE_CHECK
/* Checking for VLC updates */
- if( config_GetInt( p_intf, "qt-updates-notif" ) &&
- !config_GetInt( p_intf, "qt-privacy-ask" ) )
+ if( var_InheritBool( p_intf, "qt-updates-notif" ) &&
+ !var_InheritBool( p_intf, "qt-privacy-ask" ) )
{
- int interval = config_GetInt( p_intf, "qt-updates-days" );
+ int interval = var_InheritInteger( p_intf, "qt-updates-days" );
if( QDate::currentDate() >
getSettings()->value( "updatedate" ).toDate().addDays( interval ) )
{
#endif
/* Create the normal interface in non-DP mode */
- if( !p_intf->pf_show_dialog )
+ if( !p_intf->p_sys->b_isDialogProvider )
p_mi = new MainInterface( p_intf );
else
p_mi = NULL;
+ /* Explain how to show a dialog :D */
+ p_intf->pf_show_dialog = ShowDialog;
+
/* */
p_intf->p_sys->p_mi = p_mi;
- p_intf->p_sys->b_isDialogProvider = p_mi == NULL;
vlc_sem_post (&ready);
- /* Explain to the core how to show a dialog :D */
- p_intf->pf_show_dialog = ShowDialog;
-
/* Last settings */
app.setQuitOnLastWindowClosed( false );
/* Delete the application automatically */
#ifdef Q_WS_X11
- free( display );
+ free( x11_display );
#endif
return NULL;
}
unsigned i_height = p_wnd->cfg->height;
#if defined (Q_WS_X11)
- p_wnd->xid = p_mi->getVideo( &i_x, &i_y, &i_width, &i_height );
- if( !p_wnd->xid )
+ p_wnd->handle.xid = p_mi->getVideo( &i_x, &i_y, &i_width, &i_height );
+ if( !p_wnd->handle.xid )
return VLC_EGENERIC;
+ p_wnd->display.x11 = x11_display;
#elif defined (Q_WS_WIN)
- p_wnd->hwnd = p_mi->getVideo( &i_x, &i_y, &i_width, &i_height );
- if( !p_wnd->hwnd )
+ p_wnd->handle.hwnd = p_mi->getVideo( &i_x, &i_y, &i_width, &i_height );
+ if( !p_wnd->handle.hwnd )
return VLC_EGENERIC;
#else
# error FIXME