#include "input_manager.hpp"
#include "main_interface.hpp"
#include "dialogs/help.hpp" /* update */
+#include "recents.hpp"
#ifdef HAVE_X11_XLIB_H
#include <X11/Xlib.h>
#define PRIVACY_TEXT N_( "Ask for network policy at start" )
+#define RECENTPLAY_TEXT N_( "Save the recently played items in the menu" )
+#define RECENTPLAY_FILTER_TEXT N_( "List of words separated by | to filter" )
+
#define SLIDERCOL_TEXT N_( "Define the colors of the volume slider " )
#define SLIDERCOL_LONGTEXT N_( "Define the colors of the volume slider\n" \
"By specifying the 12 numbers separated by a ';'\n" \
add_bool( "qt-privacy-ask", true, NULL, PRIVACY_TEXT, PRIVACY_TEXT,
false );
+ add_bool( "qt-recentplay", true, NULL, RECENTPLAY_TEXT,
+ RECENTPLAY_TEXT, false );
+ add_string( "qt-recentplay-filter", NULL, NULL,
+ RECENTPLAY_FILTER_TEXT, RECENTPLAY_FILTER_TEXT, false );
change_internal();
set_callbacks( OpenDialogs, Close );
-#if 0
+#if !defined (Q_WS_X11) || HAS_QT43
add_submodule();
set_capability( "vout window", 50 );
set_callbacks( WindowOpen, WindowClose );
#endif
vlc_module_end();
+#if defined(Q_WS_WIN)
+bool WinQtApp::winEventFilter( MSG *msg, long *result )
+{
+ switch( msg->message )
+ {
+ case 0x0319: /* WM_APPCOMMAND 0x0319 */
+ DefWindowProc( msg->hwnd, msg->message, msg->wParam, msg->lParam );
+ break;
+ }
+ return false;
+}
+#endif /* Q_WS_WIN */
+
/*****************************************************************************
* Module callbacks
*****************************************************************************/
/* Access to the playlist */
p_intf->p_sys->p_playlist = pl_Hold( p_intf );
- /* Listen to the messages */
- p_intf->p_sys->p_sub = msg_Subscribe( p_intf );
/* one settings to rule them all */
var_Create( p_this, "window_widget", VLC_VAR_ADDRESS );
}
vlc_object_release( p_intf->p_sys->p_playlist );
- msg_Unsubscribe( p_intf, p_intf->p_sys->p_sub );
free( p_intf->p_sys );
}
}
else
{
- int canc = vlc_savecancel ();
Init( VLC_OBJECT(p_intf) );
- vlc_restorecancel( canc );
}
}
static QMutex windowLock;
static QWaitCondition windowWait;
+static void ThreadCleanup( void *param)
+{
+ intf_thread_t *p_intf = (intf_thread_t *)param;
+ QCloseEvent *event = new QCloseEvent();
+ QApplication::postEvent( p_intf->p_sys->p_mi, event );
+}
+
static void *Init( vlc_object_t *obj )
{
intf_thread_t *p_intf = (intf_thread_t *)obj;
int argc = 1;
int canc = vlc_savecancel ();
+ msg_Dbg( p_intf, "Setting ThreadCleanup");
+ vlc_cleanup_push( ThreadCleanup, (void*)p_intf );
Q_INIT_RESOURCE( vlc );
#if !defined(WIN32) && !defined(__APPLE__)
#endif
/* Start the QApplication here */
+#ifdef WIN32
+ WinQtApp *app = new WinQtApp( argc, argv , true );
+#else
QApplication *app = new QApplication( argc, argv , true );
+#endif
p_intf->p_sys->p_app = app;
p_intf->p_sys->mainSettings = new QSettings(
p_intf->p_sys->psz_filepath = EMPTY_STR( psz_path ) ? config_GetHomeDir()
: psz_path;
+ vlc_restorecancel (canc);
/* Launch */
app->exec();
/* And quit */
+ canc = vlc_savecancel ();
msg_Dbg( p_intf, "Quitting the Qt4 Interface" );
if (miP)
*/
DialogsProvider::killInstance();
+ /* Delete the recentsMRL object before the configuration */
+ RecentsMRL::killInstance();
+
/* Delete the configuration. Application has to be deleted after that. */
delete p_intf->p_sys->mainSettings;
config_PutPsz( p_intf, "qt-filedialog-path", p_intf->p_sys->psz_filepath );
free( psz_path );
vlc_restorecancel (canc);
+ vlc_cleanup_pop();
return NULL;
}