[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdelibs/kdecore/kernel
From:       Andreas Holzammer <andy () kdab ! com>
Date:       2010-08-02 7:16:17
Message-ID: 20100802071617.66F35AC7A9 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1158158 by aholzammer:

- added lookup of kde4prefixUtf16 if the the standard path doesn't exists for wince
- value saved in the registry at \HKLM\Software\kde in the Key KDEDIRS

 M  +27 -3     kkernel_win.cpp  
 M  +1 -2      kstandarddirs.cpp  


--- trunk/KDE/kdelibs/kdecore/kernel/kkernel_win.cpp #1158157:1158158
@@ -61,10 +61,9 @@
 static HANDLE kdecoreDllInstance = NULL;
 #endif
 #ifdef KDELIBS_STATIC_LIBS
-static wchar_t kde4prefixUtf16[] = STATIC_INSTALL_PATH;
-#else
-static wchar_t kde4prefixUtf16[MAX_PATH + 2];
+static bool kde4prefixInitialized = false;
 #endif
+static wchar_t kde4prefixUtf16[MAX_PATH + 2] = L"";
 
 static QString *kde4Prefix = NULL;
 
@@ -97,8 +96,33 @@
 // don't have an instantiated QCoreApplication
 QString getKde4Prefix()
 {
+#ifdef _WIN32_WCE
+    if (kde4prefixInitialized)
+        return QString::fromUtf16((ushort*) kde4prefixUtf16);
+    
+    QDir kde4prefixDir(QString::fromUtf16((ushort*) STATIC_INSTALL_PATH));
+    if (kde4prefixDir.exists()){
+        wcscpy(kde4prefixUtf16, STATIC_INSTALL_PATH);
+        kde4prefixUtf16[wcslen(kde4prefixUtf16)] = 0;       
+        kde4prefixInitialized = true;
+        return QString::fromUtf16((ushort*) kde4prefixUtf16);
+    } else {
+        bool ok;
+        QString retval = getWin32RegistryValue(HKEY_LOCAL_MACHINE, "Software\\kde", "KDEDIRS", &ok);
+        if (!ok){
+            return QString();
+        } else {
+            retval = QDir::fromNativeSeparators(retval);
+            wcscpy(kde4prefixUtf16, retval.utf16());
+            kde4prefixUtf16[wcslen(kde4prefixUtf16)] = 0;
+            kde4prefixInitialized = true;
+            return retval;
+        }
+    }
+#else
   // we can get called after DLL_PROCESS_DETACH!
   return kde4Prefix ? *kde4Prefix : QString::fromUtf16((ushort*) kde4prefixUtf16);
+#endif
 }
 
 #ifndef KDELIBS_STATIC_LIBS
--- trunk/KDE/kdelibs/kdecore/kernel/kstandarddirs.cpp #1158157:1158158
@@ -1600,8 +1600,7 @@
         return QString();
 #else
     bool ok;
-    QString retval;
-    getWin32RegistryValue(HKEY_LOCAL_MACHINE, "Software\\kde", retval, &ok);
+    QString retval = getWin32RegistryValue(HKEY_LOCAL_MACHINE, "Software\\kde", "KDEDIRS", &ok);
     if (!ok){
         return QString();
     } else {
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic