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

List:       kde-commits
Subject:    kdesupport/kdewin-installer/shared
From:       Ralf Habacker <Ralf.Habacker () freenet ! de>
Date:       2010-07-30 15:56:07
Message-ID: 20100730155607.DDF7BAC7A9 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1157275 by habacker:

refactored

 M  +45 -10    installercallconfig.cpp  
 M  +6 -1      installercallconfig.h  


--- trunk/kdesupport/kdewin-installer/shared/installercallconfig.cpp #1157274:1157275
@@ -28,34 +28,69 @@
 #include <QCoreApplication>
 #include <QStringList>
 
-InstallerCallConfig::InstallerCallConfig(const QString &fileName) : isLoaded(false)
+InstallerCallConfig::InstallerCallConfig(const QString &fileName)
+    : isLoaded(false), hasMirror(false), hasVersion(false), hasReleaseType(false)
 {
     QFileInfo fi(!fileName.isEmpty() ? fileName : QCoreApplication::applicationFilePath());
     installerBaseName = fi.completeBaseName();
     QStringList a = installerBaseName.split("-");
-    if (a.size() >= 5)
+    releaseType = Stable;
+    compilerType = MSVC9;
+    version = "latest";
+    mirror = "www.winkde.org";
+
+    // setup-<packagename>.exe
+    if (a.size() >= 2)
     {
         key = a[0];
-
         packageName = a[1].isEmpty() || a[1] == "*" ? "" : a[1];
+        packageName.replace('_','-');
+    }
 
+    // setup-<packagename>-<compiler>.exe
+    if (a.size() >= 3)
+    {
         compilerType = toCompilerType(a[2]);
         if (compilerType == Unspecified)
             compilerType = MSVC9;
+    }
 
-        version = a[3].isEmpty() || a[3] == QLatin1String("*") ? "latest" : a[3]; 
-
-        releaseType = toReleaseType(a[4]);
+    // setup-<packagename>-<compiler>-<releasetype>.exe
+    if (a.size() >= 4)
+    {
+        if (!a[3].isEmpty() && a[3] != QLatin1String("*"))
+        {
+            releaseType = toReleaseType(a[3]);
         if (releaseType == Unspecified)
             releaseType = Stable;
+            else
+                hasReleaseType = true;
+        }
+        else
+            releaseType == Unspecified;
+    }
 
-        if (a.size() == 5 || a[5].isEmpty())
-            mirror = "www.winkde.org";
-        else if (a[5] != QLatin1String("*"))
+    // setup-<packagename>-<compiler>-<releasetype>-<version>.exe
+    if (a.size() >= 5)
+    {
+        if (!a[4].isEmpty() && a[4] != QLatin1String("*"))
+        {
+            version = a[4];
+            hasVersion = true;
+        }
+    }
+
+    // setup-<packagename>-<compiler>-<releasetype>-<version>-<mirror>.exe
+    if (a.size() >= 6)
+    {
+        if (!a[5].isEmpty() && a[5] != QLatin1String("*"))
+        {
             mirror = a[5];
+            hasMirror = true;
+        }
+    }
         isLoaded = true;
     }
-}
 
 InstallerCallConfig &InstallerCallConfig::instance()
 {
--- trunk/kdesupport/kdewin-installer/shared/installercallconfig.h #1157274:1157275
@@ -40,8 +40,10 @@
  
  The filename has to build in the following manner: 
 
-    setup-<packageName>-<compiler>-<version>-<releaseType>[-<mirror>].exe
+    setup-<packageName>-<compiler>-<releaseType>-<version>[-<mirror>].exe
 
+ '-' in packagenames has to be replaced by '_'
+
   parts in [] are optional
 */
 
@@ -57,6 +59,9 @@
     QString version; 
     QString mirror; 
     CompilerType compilerType;
+    bool hasReleaseType;
+    bool hasVersion;
+    bool hasMirror;
 
 protected:
     bool isLoaded; 
[prev in list] [next in list] [prev in thread] [next in thread] 

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