summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/tools/quicklauncher/config.in2
-rw-r--r--core/tools/quicklauncher/dropins.h6
-rw-r--r--core/tools/quicklauncher/main.cpp3
-rw-r--r--core/tools/quicklauncher/quicklauncher.pro2
4 files changed, 7 insertions, 6 deletions
diff --git a/core/tools/quicklauncher/config.in b/core/tools/quicklauncher/config.in
index c105e94..eacbcf6 100644
--- a/core/tools/quicklauncher/config.in
+++ b/core/tools/quicklauncher/config.in
@@ -1,4 +1,4 @@
config QUICKLAUNCHER
boolean "The Quick Launcher Loader"
default "y"
- depends ( LIBQPE || LIBQPE-X11 ) && LIBOPIE
+ depends ( LIBQPE || LIBQPE-X11 ) && LIBOPIEUI2 && LIBOPIECORE2
diff --git a/core/tools/quicklauncher/dropins.h b/core/tools/quicklauncher/dropins.h
index 3e2b5fd..7acace9 100644
--- a/core/tools/quicklauncher/dropins.h
+++ b/core/tools/quicklauncher/dropins.h
@@ -1,70 +1,68 @@
#include <qstring.h>
#include <qtopia/qcom.h>
#include <qtopia/qlibrary.h>
#include <qtopia/applicationinterface.h>
#include <qtopia/resource.h>
-#include <opie/owait.h>
+#include <opie2/owait.h>
#include <qmetaobject.h>
#include <qmap.h>
-namespace Opie {
+namespace QuickPrivate {
struct PluginLoader {
PluginLoader( const char* ) {
}
QRESULT queryInterface( const QString& app, const QUuid&, QUnknownInterface** );
void releaseInterface( QUnknownInterface* );
QMap<QUnknownInterface*, QLibrary*> libs;
};
/*
* We can skip installing a Translator here because Opies QPEApplication
* will do that in initApp for us as well
*/
QRESULT PluginLoader::queryInterface( const QString& libFile, const QUuid& uuid, QUnknownInterface** iface ) {
QRESULT res = QS_FALSE;
*iface = 0;
// This code is very platform specific.. We should find better
// solutions to handle names.. Maybe one central function would be
// better than checking this ".so" stuff all around in the sources..
// (eilers)
// Below lines from TT then mine again
QString name = libFile;
if ( libFile.findRev(".so") == (int)libFile.length()-3 ) {
name = libFile.left( libFile.length()-3 );
if ( name.find( "lib" ) == 0 )
name = name.mid( 3 );
}
#ifdef Q_OS_MACX
QString path = QPEApplication::qpeDir() + "/plugins/application/lib"+name+".dylib";
#else
QString path = QPEApplication::qpeDir() + "/plugins/application/lib"+name+".so";
#endif
QLibrary *lib = new QLibrary( path );
if ( lib->queryInterface( uuid, iface ) == QS_OK && iface ) {
libs.insert( *iface, lib );
res = QS_OK;
}
return res;
}
void PluginLoader::releaseInterface( QUnknownInterface* iface ) {
if ( libs.contains( iface ) ) {
iface->release();
delete libs[iface];
libs.remove( iface ); // we only handle pointers so even if the object is not valid the address-space is
}
}
}
-/* small hack ;) */
-using namespace Opie;
diff --git a/core/tools/quicklauncher/main.cpp b/core/tools/quicklauncher/main.cpp
index 1d6774c..f3055cc 100644
--- a/core/tools/quicklauncher/main.cpp
+++ b/core/tools/quicklauncher/main.cpp
@@ -1,150 +1,153 @@
/**********************************************************************
** Copyright (C) 2000-2003 Trolltech AS. All rights reserved.
**
** This file is part of the Qtopia Environment.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#include <qpainter.h>
#include <qstrlist.h>
#include <qtimer.h>
#include <qguardedptr.h>
#include <qcopchannel_qws.h>
#define QTOPIA_INTERNAL_INITAPP
#ifdef private
# undef private
#endif
#define private public
#include <qtopia/qpeapplication.h>
#undef private
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include "dropins.h"
+using QuickPrivate::PluginLoader;
+
static QPEApplication *app = 0;
static PluginLoader *loader = 0;
static ApplicationInterface *appIface = 0;
static QGuardedPtr<QWidget> mainWindow;
#ifdef _OS_LINUX_
static char **argv0 = 0;
static int argv_lth;
extern char **environ;
#ifndef SPT_BUFSIZE
#define SPT_BUFSIZE 2048
#endif
#include <stdarg.h>
+using namespace Opie::Ui;
void setproctitle (const char *fmt,...) {
int i;
char buf[SPT_BUFSIZE];
va_list ap;
if (!argv0)
return;
va_start(ap, fmt);
(void) vsnprintf(buf, SPT_BUFSIZE, fmt, ap);
va_end(ap);
i = strlen (buf);
if (i > argv_lth - 2) {
i = argv_lth - 2;
buf[i] = '\0';
}
memset(argv0[0], '\0', argv_lth); /* clear the memory area */
(void) strcpy (argv0[0], buf);
argv0[1] = NULL;
}
#endif
class QuickLauncher : public QObject
{
Q_OBJECT
public:
QuickLauncher() : QObject()
{
QCString ch("QPE/QuickLauncher-");
ch += QString::number(getpid());
qlChannel = new QCopChannel( ch, this);
connect( qlChannel, SIGNAL(received(const QCString&,const QByteArray&)),
this, SLOT(message(const QCString&,const QByteArray&)) );
}
static void exec( int /*argc*/, char **argv )
{
QString appName = argv[0];
int sep = appName.findRev( '/' );
if ( sep > 0 )
appName = appName.mid( sep+1 );
appIface = 0;
if ( loader->queryInterface(appName, IID_QtopiaApplication, (QUnknownInterface**)&appIface) == QS_OK ) {
mainWindow = appIface->createMainWindow( appName );
}
if ( mainWindow ) {
if ( mainWindow->metaObject()->slotNames().contains("setDocument(const QString&)") ) {
app->showMainDocumentWidget( mainWindow );
} else {
app->showMainWidget( mainWindow );
}
} else {
qWarning( "Could not create application main window" );
exit(-1);
}
}
private slots:
void message(const QCString &msg, const QByteArray & data)
{
QStrList argList;
if ( msg == "execute(QStrList)" ) {
delete qlChannel;
QDataStream stream( data, IO_ReadOnly );
QStrList argList;
stream >> argList;
qDebug( "QuickLauncher execute: %s", argList.at(0) );
doQuickLaunch( argList );
delete this;
} else if ( msg == "execute(QString)" ) {
delete qlChannel;
QDataStream stream( data, IO_ReadOnly );
QString arg;
stream >> arg;
qDebug( "QuickLauncher execute: %s", arg.latin1() );
QStrList argList;
argList.append( arg.utf8() );
doQuickLaunch( argList );
delete this;
}
}
private:
void doQuickLaunch( QStrList &argList )
{
static int myargc = argList.count();
static char **myargv = new char *[myargc + 1];
for ( int j = 0; j < myargc; j++ ) {
myargv[j] = new char [strlen(argList.at(j))+1];
strcpy( myargv[j], argList.at(j) );
}
diff --git a/core/tools/quicklauncher/quicklauncher.pro b/core/tools/quicklauncher/quicklauncher.pro
index 6ab5fc8..ae390e5 100644
--- a/core/tools/quicklauncher/quicklauncher.pro
+++ b/core/tools/quicklauncher/quicklauncher.pro
@@ -1,15 +1,15 @@
TEMPLATE = app
CONFIG += qtopia warn_on release
DESTDIR = $(OPIEDIR)/bin
HEADERS = dropins.h
SOURCES = main.cpp
INTERFACES =
INCLUDEPATH += $(OPIEDIR)/include
-LIBS += -lqpe -lopie
+LIBS += -lqpe -lopiecore2 -lopieui2
TARGET = quicklauncher
include ( $(OPIEDIR)/include.pro ) \ No newline at end of file