From 3419c2561b52ec72d7bf23cd681edd6c783ca968 Mon Sep 17 00:00:00 2001
From: con <qtc-committer@nokia.com>
Date: Thu, 30 Jul 2009 10:32:50 +0200
Subject: [PATCH] Add some progress information.

---
 .../qt-s60/s60devicerunconfiguration.cpp      | 28 ++++++++++++++++++-
 .../qt-s60/s60devicerunconfiguration.h        |  4 +++
 tests/manual/trk/launcher.cpp                 | 25 ++++++++++-------
 tests/manual/trk/launcher.h                   |  5 ++++
 4 files changed, 51 insertions(+), 11 deletions(-)

diff --git a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp
index 79075d50b68..3f9456991e0 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp
@@ -471,7 +471,8 @@ void S60DeviceRunControl::stop()
 {
     m_makesis->kill();
     m_signsis->kill();
-    m_adapter->terminate();
+    if (m_adapter)
+        m_adapter->terminate();
 }
 
 bool S60DeviceRunControl::isRunning() const
@@ -535,6 +536,11 @@ void S60DeviceRunControl::signsisProcessFinished()
     }
     m_adapter = new trk::Adapter;
     connect(m_adapter, SIGNAL(finished()), this, SLOT(runFinished()));
+    connect(m_adapter, SIGNAL(copyingStarted()), this, SLOT(printCopyingNotice()));
+    connect(m_adapter, SIGNAL(installingStarted()), this, SLOT(printInstallingNotice()));
+    connect(m_adapter, SIGNAL(startingApplication()), this, SLOT(printStartingNotice()));
+    connect(m_adapter, SIGNAL(applicationRunning(uint)), this, SLOT(printRunNotice(uint)));
+
     //TODO com selection, sisx destination and file path user definable
     m_adapter->setTrkServerName("COM5");
     const QString copySrc(m_baseFileName + ".sisx");
@@ -546,6 +552,26 @@ void S60DeviceRunControl::signsisProcessFinished()
     m_adapter->startServer();
 }
 
+void S60DeviceRunControl::printCopyingNotice()
+{
+    emit addToOutputWindow(this, tr("Copying install file to device..."));
+}
+
+void S60DeviceRunControl::printInstallingNotice()
+{
+    emit addToOutputWindow(this, tr("Installing application..."));
+}
+
+void S60DeviceRunControl::printStartingNotice()
+{
+    emit addToOutputWindow(this, tr("Starting..."));
+}
+
+void S60DeviceRunControl::printRunNotice(uint pid)
+{
+    emit addToOutputWindow(this, tr("Application started with pid %1.").arg(pid));
+}
+
 void S60DeviceRunControl::runFinished()
 {
     m_adapter->deleteLater();
diff --git a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.h b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.h
index c9896372734..0c2198f4061 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.h
+++ b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.h
@@ -149,6 +149,10 @@ private slots:
     void makesisProcessFinished();
     void signsisProcessFailed();
     void signsisProcessFinished();
+    void printCopyingNotice();
+    void printInstallingNotice();
+    void printStartingNotice();
+    void printRunNotice(uint pid);
     void runFinished();
 
 private:
diff --git a/tests/manual/trk/launcher.cpp b/tests/manual/trk/launcher.cpp
index 7443a4ad17e..83d7648e985 100644
--- a/tests/manual/trk/launcher.cpp
+++ b/tests/manual/trk/launcher.cpp
@@ -109,7 +109,6 @@ void Adapter::installAndRun()
 {
     if (!m_installFileName.isEmpty()) {
         installRemotePackageSilently(m_installFileName);
-        startInferiorIfNeeded();
     } else {
         startInferiorIfNeeded();
     }
@@ -477,10 +476,11 @@ void Adapter::handleCreateProcess(const TrkResult &result)
     m_session.tid = extractInt(data + 5);
     m_session.codeseg = extractInt(data + 9);
     m_session.dataseg = extractInt(data + 13);
-    qDebug() << "    READ PID: " << m_session.pid;
-    qDebug() << "    READ TID: " << m_session.tid;
-    qDebug() << "    READ CODE: " << m_session.codeseg;
-    qDebug() << "    READ DATA: " << m_session.dataseg;
+    logMessage(QString("    READ PID:  %1").arg(m_session.pid));
+    logMessage(QString("    READ TID:  %1").arg(m_session.tid));
+    logMessage(QString("    READ CODE: %1").arg(m_session.codeseg));
+    logMessage(QString("    READ DATA: %1").arg(m_session.dataseg));
+    emit applicationRunning(m_session.pid);
     QByteArray ba;
     appendInt(&ba, m_session.pid);
     appendInt(&ba, m_session.tid);
@@ -564,7 +564,7 @@ void Adapter::cleanUp()
 
 void Adapter::copyFileToRemote()
 {
-    qDebug("Copying file");
+    emit copyingStarted();
     QByteArray ba;
     appendByte(&ba, 0x10);
     appendString(&ba, m_copyDstFileName.toLocal8Bit(), TargetByteOrder, false);
@@ -573,18 +573,23 @@ void Adapter::copyFileToRemote()
 
 void Adapter::installRemotePackageSilently(const QString &fileName)
 {
-    qDebug("Installing file");
+    emit installingStarted();
     QByteArray ba;
     appendByte(&ba, 'C');
     appendString(&ba, fileName.toLocal8Bit(), TargetByteOrder, false);
-    sendTrkMessage(TrkInstallFile, 0, ba);
+    sendTrkMessage(TrkInstallFile, CB(handleInstallPackageFinished), ba);
+}
+
+void Adapter::handleInstallPackageFinished(const TrkResult &)
+{
+    startInferiorIfNeeded();
 }
 
 void Adapter::startInferiorIfNeeded()
 {
-    qDebug("Starting");
+    emit startingApplication();
     if (m_session.pid != 0) {
-        qDebug() << "Process already 'started'";
+        logMessage("Process already 'started'");
         return;
     }
     // It's not started yet
diff --git a/tests/manual/trk/launcher.h b/tests/manual/trk/launcher.h
index 09d2fed4486..42b46a7ad63 100644
--- a/tests/manual/trk/launcher.h
+++ b/tests/manual/trk/launcher.h
@@ -62,6 +62,10 @@ public:
     bool startServer();
 
 signals:
+    void copyingStarted();
+    void installingStarted();
+    void startingApplication();
+    void applicationRunning(uint pid);
     void finished();
 
 public slots:
@@ -106,6 +110,7 @@ private:
 
     void handleFileCreation(const TrkResult &result);
     void handleFileCreated(const TrkResult &result);
+    void handleInstallPackageFinished(const TrkResult &result);
     void handleCpuType(const TrkResult &result);
     void handleCreateProcess(const TrkResult &result);
     void handleWaitForFinished(const TrkResult &result);
-- 
GitLab