From fcd468076193daf07241d15c59a072e9c7ca3306 Mon Sep 17 00:00:00 2001 From: ck <qt-info@nokia.com> Date: Tue, 10 Aug 2010 15:59:37 +0200 Subject: [PATCH] Maemo: Improve progress reporting of remote process start and shutdown. --- .../qt4projectmanager/qt-maemo/maemoremotemounter.cpp | 10 +++++++--- .../qt4projectmanager/qt-maemo/maemoremotemounter.h | 1 + .../qt4projectmanager/qt-maemo/maemoruncontrol.cpp | 8 +++++++- .../qt4projectmanager/qt-maemo/maemoruncontrol.h | 1 + .../qt4projectmanager/qt-maemo/maemosshrunner.cpp | 9 +++++++-- .../qt4projectmanager/qt-maemo/maemosshrunner.h | 1 + 6 files changed, 24 insertions(+), 6 deletions(-) diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemoremotemounter.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemoremotemounter.cpp index 8085ff2b82d..210a6723eab 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemoremotemounter.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemoremotemounter.cpp @@ -90,6 +90,7 @@ void MaemoRemoteMounter::unmount() m_mountSpecs.at(i).remoteMountPoint); } + emit reportProgress(tr("Unmounting remote mount points...")); m_umountStderr.clear(); m_unmountProcess = m_connection->createRemoteProcess(remoteCall.toUtf8()); connect(m_unmountProcess.data(), SIGNAL(closed(int)), this, @@ -157,6 +158,7 @@ void MaemoRemoteMounter::stop() void MaemoRemoteMounter::deployUtfsClient() { + emit reportProgress(tr("Setting up SFTP connection...")); m_utfsClientUploader = m_connection->createSftpChannel(); connect(m_utfsClientUploader.data(), SIGNAL(initialized()), this, SLOT(handleUploaderInitialized())); @@ -178,14 +180,14 @@ void MaemoRemoteMounter::handleUploaderInitialized() if (m_stop) return; + emit reportProgress(tr("Uploading UTFS client...")); connect(m_utfsClientUploader.data(), SIGNAL(finished(Core::SftpJobId, QString)), this, SLOT(handleUploadFinished(Core::SftpJobId, QString))); const QString localFile = m_toolChain->maddeRoot() + QLatin1String("/madlib/armel/utfs-client"); - m_uploadJobId - = m_utfsClientUploader->uploadFile(localFile, utfsClientOnDevice(), - SftpOverwriteExisting); + m_uploadJobId = m_utfsClientUploader->uploadFile(localFile, + utfsClientOnDevice(), SftpOverwriteExisting); if (m_uploadJobId == SftpInvalidJob) emit error(tr("Could not upload UTFS client (%1).").arg(localFile)); } @@ -231,6 +233,7 @@ void MaemoRemoteMounter::startUtfsClients() remoteCall += andOp + mkdir + andOp + chmod + andOp + utfsClient; } + emit reportProgress(tr("Starting remote UTFS clients...")); m_utfsClientStderr.clear(); m_mountProcess = m_connection->createRemoteProcess(remoteCall.toUtf8()); connect(m_mountProcess.data(), SIGNAL(started()), this, @@ -281,6 +284,7 @@ void MaemoRemoteMounter::handleUtfsClientsFinished(int exitStatus) void MaemoRemoteMounter::startUtfsServers() { + emit reportProgress(tr("Starting UTFS servers...")); for (int i = 0; i < m_mountSpecs.count(); ++i) { const MaemoMountSpecification &mountSpec = m_mountSpecs.at(i); const ProcPtr utfsServerProc(new QProcess); diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemoremotemounter.h b/src/plugins/qt4projectmanager/qt-maemo/maemoremotemounter.h index 080785e4c34..2672e436526 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemoremotemounter.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemoremotemounter.h @@ -70,6 +70,7 @@ signals: void mounted(); void unmounted(); void error(const QString &reason); + void reportProgress(const QString &progressOutput); private slots: void handleUploaderInitialized(); diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemoruncontrol.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemoruncontrol.cpp index 22f38873227..74fbe1d508f 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemoruncontrol.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemoruncontrol.cpp @@ -72,7 +72,6 @@ void MaemoRunControl::start() if (!m_devConfig.isValid()) { handleError(tr("No device configuration set for run configuration.")); } else { - emit appendMessage(this, tr("Preparing remote side ..."), false); m_running = true; emit started(); disconnect(m_runner, 0, this, 0); @@ -88,6 +87,8 @@ void MaemoRunControl::start() SLOT(handleRemoteProcessStarted())); connect(m_runner, SIGNAL(remoteProcessFinished(int)), this, SLOT(handleRemoteProcessFinished(int))); + connect(m_runner, SIGNAL(reportProgress(QString)), this, + SLOT(handleProgressReport(QString))); m_runner->start(); } } @@ -132,6 +133,11 @@ void MaemoRunControl::handleRemoteErrorOutput(const QByteArray &output) emit addToOutputWindowInline(this, QString::fromUtf8(output), true); } +void MaemoRunControl::handleProgressReport(const QString &progressString) +{ + emit appendMessage(this, progressString, false); +} + bool MaemoRunControl::isRunning() const { return m_running; diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemoruncontrol.h b/src/plugins/qt4projectmanager/qt-maemo/maemoruncontrol.h index dd81e29dbdb..3797703cde7 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemoruncontrol.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemoruncontrol.h @@ -60,6 +60,7 @@ private slots: void handleRemoteProcessFinished(int exitCode); void handleRemoteOutput(const QByteArray &output); void handleRemoteErrorOutput(const QByteArray &output); + void handleProgressReport(const QString &progressString); private: virtual void start(); diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemosshrunner.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemosshrunner.cpp index cdebaea777d..d1e183fbd4b 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemosshrunner.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemosshrunner.cpp @@ -66,6 +66,8 @@ MaemoSshRunner::MaemoSshRunner(QObject *parent, connect(m_mounter, SIGNAL(unmounted()), this, SLOT(handleUnmounted())); connect(m_mounter, SIGNAL(error(QString)), this, SLOT(handleMounterError(QString))); + connect(m_mounter, SIGNAL(reportProgress(QString)), this, + SIGNAL(reportProgress(QString))); } MaemoSshRunner::~MaemoSshRunner() {} @@ -96,10 +98,12 @@ void MaemoSshRunner::start() SLOT(handleConnected())); connect(m_connection.data(), SIGNAL(error(SshError)), this, SLOT(handleConnectionFailure())); - if (reUse) + if (reUse) { handleConnected(); - else + } else { + emit reportProgress(tr("Connecting to device...")); m_connection->connectToHost(m_devConfig.server); + } } void MaemoSshRunner::stop() @@ -131,6 +135,7 @@ void MaemoSshRunner::handleConnectionFailure() void MaemoSshRunner::cleanup(bool initialCleanup) { + emit reportProgress(tr("Killing remote process(es)...")); m_shuttingDown = !initialCleanup; QString niceKill; QString brutalKill; diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemosshrunner.h b/src/plugins/qt4projectmanager/qt-maemo/maemosshrunner.h index 8c8f23b2cac..e12f72192b9 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemosshrunner.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemosshrunner.h @@ -73,6 +73,7 @@ signals: void readyForExecution(); void remoteOutput(const QByteArray &output); void remoteErrorOutput(const QByteArray &output); + void reportProgress(const QString &progressOutput); void remoteProcessStarted(); void remoteProcessFinished(int exitCode); -- GitLab