summaryrefslogtreecommitdiff
path: root/src/plugins/qt4projectmanager
diff options
context:
space:
mode:
authorPawel Polanski <pawel.3.polanski@nokia.com>2011-01-21 17:30:02 +0100
committerPawel Polanski <pawel.3.polanski@nokia.com>2011-01-21 17:44:45 +0100
commit53e72b0becf02a59ec984492eef98664c31774c3 (patch)
tree714d55f23c56c446fe2b487717a4e7fd98ab3ac3 /src/plugins/qt4projectmanager
parent119c6e80faedfab563eee3a2182d754a3abb68f5 (diff)
downloadqt-creator-53e72b0becf02a59ec984492eef98664c31774c3.tar.gz
Symbian: process detection added to CODA
Diffstat (limited to 'src/plugins/qt4projectmanager')
-rw-r--r--src/plugins/qt4projectmanager/qt-s60/codaruncontrol.cpp30
-rw-r--r--src/plugins/qt4projectmanager/qt-s60/codaruncontrol.h2
-rw-r--r--src/plugins/qt4projectmanager/qt-s60/s60deploystep.cpp2
-rw-r--r--src/plugins/qt4projectmanager/qt-s60/s60runcontrolbase.cpp5
-rw-r--r--src/plugins/qt4projectmanager/qt-s60/s60runcontrolbase.h1
5 files changed, 16 insertions, 24 deletions
diff --git a/src/plugins/qt4projectmanager/qt-s60/codaruncontrol.cpp b/src/plugins/qt4projectmanager/qt-s60/codaruncontrol.cpp
index ed4e0c4314..279b847e19 100644
--- a/src/plugins/qt4projectmanager/qt-s60/codaruncontrol.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/codaruncontrol.cpp
@@ -64,20 +64,6 @@ using namespace tcftrk;
enum { debug = 0 };
-static inline bool isProcessRunning(const TcfTrkCommandResult &result, const QString &processName)
-{
- if (result.values.size() && result.values.at(0).type() == JsonValue::Array) {
- foreach(const JsonValue &threadValue, result.values.at(0).children()) {
- for (int i = threadValue.children().count()-1; i >= 0; --i) { //Usually our process will be near the end of the list
- const JsonValue &value(threadValue.childAt(i));
- if (value.hasName("p_name") && QString::fromLatin1(value.data()).startsWith(processName, Qt::CaseInsensitive))
- return true;
- }
- }
- }
- return false;
-}
-
CodaRunControl::CodaRunControl(RunConfiguration *runConfiguration, const QString &mode) :
S60RunControlBase(runConfiguration, mode),
m_tcfTrkDevice(0),
@@ -275,20 +261,20 @@ void CodaRunControl::handleLogging(const TcfTrkEvent &event)
void CodaRunControl::handleAddListener(const TcfTrkCommandResult &result)
{
Q_UNUSED(result)
- m_tcfTrkDevice->sendSymbianOsDataGetThreadsCommand(TcfTrkCallback(this, &CodaRunControl::handleGetThreads));
+ m_tcfTrkDevice->sendSymbianOsDataFindProcessesCommand(TcfTrkCallback(this, &CodaRunControl::handleFindProcesses), executableName().toLatin1(), "0");
}
-void CodaRunControl::handleGetThreads(const TcfTrkCommandResult &result)
+void CodaRunControl::handleFindProcesses(const TcfTrkCommandResult &result)
{
- if (isProcessRunning(result, targetName())) {
+ if (result.values.size() && result.values.at(0).type() == JsonValue::Array && result.values.at(0).children().count()) {
+ //there are processes running. Cannot run mine
appendMessage(tr("The process is already running on the device. Please first close it."), ErrorMessageFormat);
finishRunControl();
} else {
setProgress(maxProgress()*0.90);
- const QString runFileName = QString::fromLatin1("%1.exe").arg(targetName());
m_tcfTrkDevice->sendProcessStartCommand(TcfTrkCallback(this, &CodaRunControl::handleCreateProcess),
- runFileName, executableUid(), commandLineArguments().split(" "), QString(), true);
- appendMessage(tr("Launching: %1").arg(runFileName), NormalMessageFormat);
+ executableName(), executableUid(), commandLineArguments().split(" "), QString(), true);
+ appendMessage(tr("Launching: %1").arg(executableName()), NormalMessageFormat);
}
}
@@ -327,7 +313,7 @@ QMessageBox *CodaRunControl::createCodaWaitingMessageBox(QWidget *parent)
void CodaRunControl::checkForTimeout()
{
- if (m_state >= StateConnected)
+ if (m_state != StateConnecting)
return;
QMessageBox *mb = createCodaWaitingMessageBox(Core::ICore::instance()->mainWindow());
@@ -338,7 +324,7 @@ void CodaRunControl::checkForTimeout()
void CodaRunControl::cancelConnection()
{
- if (m_state >= StateConnected)
+ if (m_state != StateConnecting)
return;
stop();
diff --git a/src/plugins/qt4projectmanager/qt-s60/codaruncontrol.h b/src/plugins/qt4projectmanager/qt-s60/codaruncontrol.h
index 952974e4ff..7c364cf83f 100644
--- a/src/plugins/qt4projectmanager/qt-s60/codaruncontrol.h
+++ b/src/plugins/qt4projectmanager/qt-s60/codaruncontrol.h
@@ -89,7 +89,7 @@ private:
private:
void handleCreateProcess(const tcftrk::TcfTrkCommandResult &result);
void handleAddListener(const tcftrk::TcfTrkCommandResult &result);
- void handleGetThreads(const tcftrk::TcfTrkCommandResult &result);
+ void handleFindProcesses(const tcftrk::TcfTrkCommandResult &result);
private:
enum State {
diff --git a/src/plugins/qt4projectmanager/qt-s60/s60deploystep.cpp b/src/plugins/qt4projectmanager/qt-s60/s60deploystep.cpp
index 6ded00677b..45992dd7ef 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60deploystep.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/s60deploystep.cpp
@@ -594,7 +594,7 @@ void S60DeployStep::handleFileSystemClose(const tcftrk::TcfTrkCommandResult &res
void S60DeployStep::checkForTimeout()
{
- if (m_state >= StateConnected)
+ if (m_state != StateConnecting)
return;
const QString title = tr("Waiting for CODA");
diff --git a/src/plugins/qt4projectmanager/qt-s60/s60runcontrolbase.cpp b/src/plugins/qt4projectmanager/qt-s60/s60runcontrolbase.cpp
index 9bd3e4646a..717cdf862b 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60runcontrolbase.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/s60runcontrolbase.cpp
@@ -220,6 +220,11 @@ quint32 S60RunControlBase::executableUid() const
return m_executableUid;
}
+QString S60RunControlBase::executableName() const
+{
+ return QString::fromLatin1("%1.exe").arg(targetName());
+}
+
const QString &S60RunControlBase::targetName() const
{
return m_targetName;
diff --git a/src/plugins/qt4projectmanager/qt-s60/s60runcontrolbase.h b/src/plugins/qt4projectmanager/qt-s60/s60runcontrolbase.h
index aa83249396..00a61c3cf4 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60runcontrolbase.h
+++ b/src/plugins/qt4projectmanager/qt-s60/s60runcontrolbase.h
@@ -63,6 +63,7 @@ protected:
protected:
ProjectExplorer::ToolChainType toolChain() const;
quint32 executableUid() const;
+ QString executableName() const;
const QString &targetName() const;
const QString &commandLineArguments() const;
const QString &executableFileName() const;