OSDN Git Service

Maemo: Fix Qemu file path once instead of at every start.
authorChristian Kandeler <christian.kandeler@nokia.com>
Tue, 30 Nov 2010 15:42:30 +0000 (16:42 +0100)
committerChristian Kandeler <christian.kandeler@nokia.com>
Tue, 30 Nov 2010 16:57:23 +0000 (17:57 +0100)
Reviewed-by: kh1
src/plugins/qt4projectmanager/qt-maemo/maemoqemumanager.cpp
src/plugins/qt4projectmanager/qt-maemo/maemoqemuruntimeparser.cpp

index 36e1c17..785e8dc 100644 (file)
@@ -352,12 +352,12 @@ void MaemoQemuManager::startRuntime()
     }
 
     m_runningQtId = version->uniqueId();
-    const QString root
-        = QDir::toNativeSeparators(MaemoGlobal::maddeRoot(version->qmakeCommand())
-            + QLatin1Char('/'));
     const MaemoQemuRuntime rt = m_runtimes.value(version->uniqueId());
     QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
 #ifdef Q_OS_WIN
+    const QString root
+        = QDir::toNativeSeparators(MaemoGlobal::maddeRoot(version->qmakeCommand())
+            + QLatin1Char('/'));
     const QLatin1Char colon(';');
     const QLatin1String key("PATH");
     env.insert(key, root % QLatin1String("bin") % colon % env.value(key));
@@ -369,22 +369,7 @@ void MaemoQemuManager::startRuntime()
     m_qemuProcess->setProcessEnvironment(env);
     m_qemuProcess->setWorkingDirectory(rt.m_root);
 
-    // This is complex because of extreme MADDE weirdness.
-    const bool pathIsRelative = QFileInfo(rt.m_bin).isRelative();
-    const QString app =
-#ifdef Q_OS_WIN
-        root % (pathIsRelative
-            ? QLatin1String("madlib/") % rt.m_bin // Fremantle.
-            : rt.m_bin)                           // Haramattan.
-            % QLatin1String(".exe");
-#else
-        pathIsRelative
-            ? root % QLatin1String("madlib/") % rt.m_bin // Fremantle.
-            : rt.m_bin;                                  // Haramattan.
-#endif
-
-    m_qemuProcess->start(app % QLatin1Char(' ') % rt.m_args,
-        QIODevice::ReadWrite);
+    m_qemuProcess->start(rt.m_bin % QLatin1Char(' ') % rt.m_args);
     if (!m_qemuProcess->waitForStarted())
         return;
 
index b64370a..ac0f5a3 100644 (file)
@@ -192,7 +192,21 @@ void MaemoQemuRuntimeParserV1::fillRuntimeInformation(MaemoQemuRuntime *runtime)
                     break;
                 runtime->m_freePorts.addPort(port.toInt());
             }
-            return;
+
+            // This is complex because of extreme MADDE weirdness.
+            const QString root = m_maddeRoot + QLatin1Char('/');
+            const bool pathIsRelative = QFileInfo(runtime->m_bin).isRelative();
+            runtime->m_bin =
+        #ifdef Q_OS_WIN
+                root + (pathIsRelative
+                    ? QLatin1String("madlib/") + runtime->m_bin // Fremantle.
+                    : runtime->m_bin)                           // Harmattan.
+                    + QLatin1String(".exe");
+        #else
+                pathIsRelative
+                    ? root + QLatin1String("madlib/") + runtime->m_bin // Fremantle.
+                    : runtime->m_bin;                                  // Harmattan.
+        #endif
         }
     }
 }