[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/kdepim/enterprise4/kdelibs-4.0.83/kdeui/kernel
From: Jaroslaw Staniek <js () iidea ! pl>
Date: 2008-07-02 15:50:52
Message-ID: 1215013852.241740.4077.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 827315 by staniek:
Windows:
depend on dbus_kde_patch smbol in libdbus; if present, use extended semantics with \
.unique-{PID} suffix
M +25 -2 kapplication_win.cpp
M +10 -5 kuniqueapplication.cpp
--- branches/kdepim/enterprise4/kdelibs-4.0.83/kdeui/kernel/kapplication_win.cpp \
#827314:827315 @@ -24,6 +24,7 @@
#include <QTranslator>
#include <QLocale>
#include <QLibraryInfo>
+#include <QLibrary>
/**
* MS Windows-related actions for KApplication startup.
@@ -108,6 +109,12 @@
#define GETPID_PROCESS_OBJECT_INDEX 230
#define GETPID_PROC_ID_COUNTER 784
+QString fromWChar(const wchar_t *string, int size = -1)
+{
+ return (sizeof(wchar_t) == sizeof(QChar)) ? QString::fromUtf16((ushort *)string, \
size) + : QString::fromUcs4((uint *)string, size);
+}
+
void KApplication_getProcessesIdForName( const QString& processName, QList<int>& \
pids ) {
qDebug() << "KApplication_getProcessesIdForName" << processName;
@@ -152,8 +159,8 @@
curCounter = perfCounter;
bstrProcessName = (wchar_t *)((PBYTE)perfInstance + perfInstance->NameOffset);
- qDebug() << "bstrProcessName: " << \
QString::fromWCharArray((LPCWSTR)bstrProcessName);
- if (QString::fromWCharArray((LPCWSTR)bstrProcessName) == processName) {
+ qDebug() << "bstrProcessName: " << fromWChar((LPCWSTR)bstrProcessName);
+ if (fromWChar((LPCWSTR)bstrProcessName) == processName) {
// retrieve the counters
for( uint counter = 0; counter < perfObject->NumCounters; counter++ ) {
if (curCounter->CounterNameTitleIndex == GETPID_PROC_ID_COUNTER) {
@@ -251,3 +258,19 @@
// </copy>
+// returns true if dbus patched for KDE is used
+bool KApplication_dbusIsPatched()
+{
+# ifdef __GNUC__
+# define DBUSLIB_PREFIX "lib"
+# else
+# define DBUSLIB_PREFIX ""
+# endif
+# ifdef _DEBUG
+# define DBUSLIB_SUFFIX "d"
+# else
+# define DBUSLIB_SUFFIX ""
+# endif
+ QLibrary myLib(DBUSLIB_PREFIX "dbus-1" DBUSLIB_SUFFIX);
+ return myLib.resolve("dbus_kde_patch");
+}
--- branches/kdepim/enterprise4/kdelibs-4.0.83/kdeui/kernel/kuniqueapplication.cpp \
#827314:827315 @@ -74,7 +74,9 @@
bool KUniqueApplication::Private::s_handleAutoStarted = false;
#ifdef Q_WS_WIN
QString KUniqueApplication::Private::s_dbusServiceName;
-void KApplication_activateWindowForProcess( const QString& executableName ); /* \
private helper from kapplication_win.cpp */ +/* private helpers from \
kapplication_win.cpp */ +void KApplication_activateWindowForProcess( const QString& \
executableName ); +bool KApplication_dbusIsPatched();
#endif
void
@@ -154,13 +156,16 @@
// Check to make sure that we're actually able to register with the D-Bus \
session // server.
- if (
+ bool registered;
#ifdef Q_WS_WIN
- dbusService->registerService(appName + ".unique-" + pid) != \
QDBusConnectionInterface::ServiceRegistered + if (KApplication_dbusIsPatched())
+ registered = dbusService->registerService(appName + ".unique-" + pid) == \
QDBusConnectionInterface::ServiceRegistered; + else
+ registered = dbusService->registerService(appName) == \
QDBusConnectionInterface::ServiceRegistered; #else
- dbusService->registerService(appName) != \
QDBusConnectionInterface::ServiceRegistered + registered = \
dbusService->registerService(appName) == QDBusConnectionInterface::ServiceRegistered; \
#endif
- )
+ if (!registered)
{
kError() << "KUniqueApplication: Can't setup D-Bus service. Probably already \
running." << endl;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic