modules/gui/kde/interface.cpp: made the kde interface look for the rc

file in DATA_PATH
 modules/gui/kde/kde.cpp and interface.h: removed a stupid class, moved
stuff from open() to run() to make the kde interface start without
segfaults.
parent 0ace3bb2
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
#include <qdragobject.h> #include <qdragobject.h>
#include <qtimer.h> #include <qtimer.h>
#include <kdialog.h> #include <kdialog.h>
#include <kstatusbar.h>
#define ID_STATUS_MSG 1 #define ID_STATUS_MSG 1
#define ID_DATE 2 #define ID_DATE 2
...@@ -117,7 +118,7 @@ void KInterface::initActions() ...@@ -117,7 +118,7 @@ void KInterface::initActions()
next->setStatusText( i18n( "Next" ) ); next->setStatusText( i18n( "Next" ) );
// use the absolute path to your ktestui.rc file for testing purpose in createGUI(); // use the absolute path to your ktestui.rc file for testing purpose in createGUI();
createGUI("modules/gui/kde/ui.rc"); createGUI( DATA_PATH "/vlc_kde_ui.rc" );
} }
void KInterface::initStatusBar() void KInterface::initStatusBar()
......
...@@ -44,10 +44,14 @@ class KInterface : public KMainWindow ...@@ -44,10 +44,14 @@ class KInterface : public KMainWindow
void slotFileOpen(); void slotFileOpen();
/** opens a file from the recent files menu */ /** opens a file from the recent files menu */
void slotFileOpenRecent(const KURL& url); void slotFileOpenRecent(const KURL& url);
/** asks for saving if the file is modified, then closes the actual file and window*/ /** asks for saving if the file is modified, then closes the
* actual file and window*/
void slotFileClose(); void slotFileClose();
/** closes all open windows by calling close() on each memberList item until the list is empty, then quits the application. /** closes all open windows by calling close() on each
* If queryClose() returns false because the user canceled the saveModified() dialog, the closing breaks. * memberList item until the list is empty, then quits the
* application. If queryClose() returns false because the
* user canceled the saveModified() dialog, the closing
* breaks.
*/ */
void slotFileQuit(); void slotFileQuit();
void slotShowPreferences(); void slotShowPreferences();
...@@ -58,7 +62,8 @@ class KInterface : public KMainWindow ...@@ -58,7 +62,8 @@ class KInterface : public KMainWindow
/** toggles the statusbar /** toggles the statusbar
*/ */
void slotViewStatusBar(); void slotViewStatusBar();
/** changes the statusbar contents for the standard label permanently, used to indicate current actions. /** changes the statusbar contents for the standard label
* permanently, used to indicate current actions.
* @param text the text that is displayed in the statusbar * @param text the text that is displayed in the statusbar
*/ */
void slotStatusMsg( const QString &text ); void slotStatusMsg( const QString &text );
...@@ -138,8 +143,6 @@ class KInterface : public KMainWindow ...@@ -138,8 +143,6 @@ class KInterface : public KMainWindow
*****************************************************************************/ *****************************************************************************/
struct intf_sys_t struct intf_sys_t
{ {
KThread *p_thread;
KApplication *p_app; KApplication *p_app;
KInterface *p_window; KInterface *p_window;
KAboutData *p_about; KAboutData *p_about;
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* kde.cpp : KDE plugin for vlc * kde.cpp : KDE plugin for vlc
***************************************************************************** *****************************************************************************
* Copyright (C) 2001 VideoLAN * Copyright (C) 2001 VideoLAN
* $Id: kde.cpp,v 1.1 2002/08/04 17:23:43 sam Exp $ * $Id: kde.cpp,v 1.2 2002/08/18 13:14:39 sigmunau Exp $
* *
* Authors: Andres Krapf <dae@chez.com> Sun Mar 25 2001 * Authors: Andres Krapf <dae@chez.com> Sun Mar 25 2001
* *
...@@ -37,28 +37,14 @@ ...@@ -37,28 +37,14 @@
#include <qwidget.h> #include <qwidget.h>
/***************************************************************************** /*****************************************************************************
* The local class. * The local class and prototypes
*****************************************************************************/ *****************************************************************************/
class KInterface; class KInterface;
class KAboutData; class KAboutData;
class KThread static int open( vlc_object_t * p_this );
{ static void close( vlc_object_t * p_this );
private: static void run(intf_thread_t *p_intf);
KThread ( KThread &thread ) { };
KThread &operator= ( KThread &thread ) { return ( *this ); };
intf_thread_t *p_intf;
public:
KThread(intf_thread_t *p_intf);
~KThread();
// These methods get exported to the core
static int open ( vlc_object_t * );
static void close ( vlc_object_t * );
static void run ( intf_thread_t * );
};
/***************************************************************************** /*****************************************************************************
* Module descriptor * Module descriptor
...@@ -73,65 +59,13 @@ vlc_module_begin(); ...@@ -73,65 +59,13 @@ vlc_module_begin();
set_capability( "interface", i ); set_capability( "interface", i );
set_program( "kvlc" ); set_program( "kvlc" );
//set_callbacks( E_(Open), E_(Close) ); //set_callbacks( E_(Open), E_(Close) );
set_callbacks( KThread::open, KThread::close ); set_callbacks( open, close );
vlc_module_end(); vlc_module_end();
/*****************************************************************************
* KThread::KThread: KDE interface constructor
*****************************************************************************/
KThread::KThread(intf_thread_t *p_intf)
{
this->p_intf = p_intf;
p_intf->p_sys->p_about =
new KAboutData( "VideoLAN Client", I18N_NOOP("Kvlc"), VERSION,
_("This is the VideoLAN client, a DVD and MPEG player. It can play "
"MPEG and MPEG 2 files from a file or from a network source."),
KAboutData::License_GPL,
_("(C) 1996, 1997, 1998, 1999, 2000, 2001, 2002 - the VideoLAN Team"),
0, 0, "");
char *authors[][2] = {
{ "the VideoLAN Team", "<videolan@videolan.org>" },
{ NULL, NULL },
};
for ( int i = 0; NULL != authors[i][0]; i++ ) {
p_intf->p_sys->p_about->addAuthor( authors[i][0], 0, authors[i][1] );
}
int argc = 1;
char *argv[] = { p_intf->p_vlc->psz_object_name, NULL };
KCmdLineArgs::init( argc, argv, p_intf->p_sys->p_about );
p_intf->p_sys->p_app = new KApplication();
p_intf->p_sys->p_window = new KInterface(p_intf);
p_intf->p_sys->p_window->setCaption( VOUT_TITLE " (KDE interface)" );
p_intf->p_sys->p_input = NULL;
}
/*****************************************************************************
* KThread::~KThread: KDE interface destructor
*****************************************************************************/
KThread::~KThread()
{
if( p_intf->p_sys->p_input )
{
vlc_object_release( p_intf->p_sys->p_input );
}
/* XXX: can be deleted if the user closed the window ! */
//delete p_intf->p_sys->p_window;
delete p_intf->p_sys->p_app;
delete p_intf->p_sys->p_about;
}
/***************************************************************************** /*****************************************************************************
* KThread::open: initialize and create window * KThread::open: initialize and create window
*****************************************************************************/ *****************************************************************************/
int KThread::open(vlc_object_t *p_this) static int open(vlc_object_t *p_this)
{ {
intf_thread_t *p_intf = (intf_thread_t *)p_this; intf_thread_t *p_intf = (intf_thread_t *)p_this;
...@@ -143,20 +77,23 @@ int KThread::open(vlc_object_t *p_this) ...@@ -143,20 +77,23 @@ int KThread::open(vlc_object_t *p_this)
return( 1 ); return( 1 );
} }
p_intf->pf_run = KThread::run; p_intf->pf_run = run;
p_intf->p_sys->p_thread = new KThread(p_intf);
return ( 0 ); return ( 0 );
} }
/***************************************************************************** /*****************************************************************************
* KThread::close: destroy interface window * KThread::close: destroy interface window
*****************************************************************************/ *****************************************************************************/
void KThread::close(vlc_object_t *p_this) static void close(vlc_object_t *p_this)
{ {
intf_thread_t *p_intf = (intf_thread_t *)p_this; intf_thread_t *p_intf = (intf_thread_t *)p_this;
if( p_intf->p_sys->p_input )
delete p_intf->p_sys->p_thread; {
vlc_object_release( p_intf->p_sys->p_input );
}
delete p_intf->p_sys->p_app;
delete p_intf->p_sys->p_about;
free( p_intf->p_sys ); free( p_intf->p_sys );
} }
...@@ -166,8 +103,35 @@ void KThread::close(vlc_object_t *p_this) ...@@ -166,8 +103,35 @@ void KThread::close(vlc_object_t *p_this)
* This part of the interface is in a separate thread so that we can call * This part of the interface is in a separate thread so that we can call
* exec() from within it without annoying the rest of the program. * exec() from within it without annoying the rest of the program.
*****************************************************************************/ *****************************************************************************/
void KThread::run(intf_thread_t *p_intf) void run(intf_thread_t *p_intf)
{ {
p_intf->p_sys->p_about =
new KAboutData( "VideoLAN Client", I18N_NOOP("Kvlc"), VERSION,
_("This is the VideoLAN client, a DVD and MPEG player. It can play "
"MPEG and MPEG 2 files from a file or from a network source."),
KAboutData::License_GPL,
_("(C) 1996, 1997, 1998, 1999, 2000, 2001, 2002 - the VideoLAN Team"),
0, 0, "");
char *authors[][2] = {
{ "the VideoLAN Team", "<videolan@videolan.org>" },
{ NULL, NULL },
};
for ( int i = 0; NULL != authors[i][0]; i++ ) {
p_intf->p_sys->p_about->addAuthor( authors[i][0], 0, authors[i][1] );
}
int argc = 1;
char *argv[] = { p_intf->p_vlc->psz_object_name, NULL };
KCmdLineArgs::init( argc, argv, p_intf->p_sys->p_about );
p_intf->p_sys->p_app = new KApplication();
p_intf->p_sys->p_window = new KInterface(p_intf);
p_intf->p_sys->p_window->setCaption( VOUT_TITLE " (KDE interface)" );
p_intf->p_sys->p_input = NULL;
p_intf->p_sys->p_window->show(); p_intf->p_sys->p_window->show();
p_intf->p_sys->p_app->exec(); p_intf->p_sys->p_app->exec();
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment