summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhjk <hjk121@nokiamail.com>2013-09-24 16:47:59 +0200
committerDavid Schulz <david.schulz@digia.com>2013-09-25 15:54:17 +0200
commitc723f2812bda55fcbf47817eb3c4ff9871d38daa (patch)
treedc05644aee0989b2f766f42a21724084e85ffd08
parent712af560401a568ddcab64ed94dbb2b2410eed6f (diff)
downloadqt-creator-c723f2812bda55fcbf47817eb3c4ff9871d38daa.tar.gz
DeviceSupport: Move 'SpecialInterrupt' to base class
Change-Id: Ie8f02128e87744f4260b0defb50473da6d6c508d Reviewed-by: David Schulz <david.schulz@digia.com>
-rw-r--r--src/plugins/projectexplorer/devicesupport/desktopprocesssignaloperation.cpp29
-rw-r--r--src/plugins/projectexplorer/devicesupport/desktopprocesssignaloperation.h6
-rw-r--r--src/plugins/projectexplorer/devicesupport/idevice.cpp5
-rw-r--r--src/plugins/projectexplorer/devicesupport/idevice.h7
4 files changed, 19 insertions, 28 deletions
diff --git a/src/plugins/projectexplorer/devicesupport/desktopprocesssignaloperation.cpp b/src/plugins/projectexplorer/devicesupport/desktopprocesssignaloperation.cpp
index 1033214fa5..861cb23b71 100644
--- a/src/plugins/projectexplorer/devicesupport/desktopprocesssignaloperation.cpp
+++ b/src/plugins/projectexplorer/devicesupport/desktopprocesssignaloperation.cpp
@@ -73,22 +73,10 @@ void DesktopProcessSignalOperation::interruptProcess(int pid)
void DesktopProcessSignalOperation::interruptProcess(const QString &filePath)
{
- interruptProcess(filePath, NoSpecialInterrupt);
-}
-
-void DesktopProcessSignalOperation::interruptProcess(int pid, SpecialInterrupt specialInterrupt)
-{
- m_errorMessage.clear();
- interruptProcessSilently(pid, specialInterrupt);
-}
-
-void DesktopProcessSignalOperation::interruptProcess(const QString &filePath,
- SpecialInterrupt specialInterrupt)
-{
m_errorMessage.clear();
foreach (const DeviceProcessItem &process, Internal::LocalProcessList::getLocalProcesses()) {
if (process.cmdLine == filePath)
- interruptProcessSilently(process.pid, specialInterrupt);
+ interruptProcessSilently(process.pid);
}
emit finished(m_errorMessage);
}
@@ -128,8 +116,7 @@ void DesktopProcessSignalOperation::killProcessSilently(int pid)
#endif // Q_OS_WIN
}
-void DesktopProcessSignalOperation::interruptProcessSilently(
- int pid, SpecialInterrupt specialInterrupt)
+void DesktopProcessSignalOperation::interruptProcessSilently(int pid)
{
#ifdef Q_OS_WIN
/*
@@ -174,17 +161,16 @@ GDB 32bit | Api | Api | N/A | Win32
}
bool creatorIs64Bit = Utils::winIs64BitBinary(qApp->applicationFilePath());
if (!Utils::winIs64BitSystem() ||
- specialInterrupt == NoSpecialInterrupt ||
- specialInterrupt == Win64Interrupt && creatorIs64Bit ||
- specialInterrupt == Win32Interrupt && !creatorIs64Bit) {
+ m_specialInterrupt == NoSpecialInterrupt ||
+ m_specialInterrupt == Win64Interrupt && creatorIs64Bit ||
+ m_specialInterrupt == Win32Interrupt && !creatorIs64Bit) {
if (!DebugBreakProcess(inferior)) {
appendMsgCannotInterrupt(pid, tr("DebugBreakProcess failed: ")
+ Utils::winErrorMessage(GetLastError()));
}
- } else if (specialInterrupt == Win32Interrupt
- || specialInterrupt == Win64Interrupt) {
+ } else if (m_specialInterrupt == Win32Interrupt || m_specialInterrupt == Win64Interrupt) {
QString executable = QCoreApplication::applicationDirPath();
- executable += specialInterrupt == Win32Interrupt
+ executable += m_specialInterrupt == Win32Interrupt
? QLatin1String("/win32interrupt.exe")
: QLatin1String("/win64interrupt.exe");
if (!QFile::exists(executable)) {
@@ -211,7 +197,6 @@ GDB 32bit | Api | Api | N/A | Win32
if (inferior != NULL)
CloseHandle(inferior);
#else
- Q_UNUSED(specialInterrupt)
if (pid <= 0)
appendMsgCannotInterrupt(pid, tr("Invalid process id."));
else if (kill(pid, SIGINT))
diff --git a/src/plugins/projectexplorer/devicesupport/desktopprocesssignaloperation.h b/src/plugins/projectexplorer/devicesupport/desktopprocesssignaloperation.h
index b6d61f220b..cca2018442 100644
--- a/src/plugins/projectexplorer/devicesupport/desktopprocesssignaloperation.h
+++ b/src/plugins/projectexplorer/devicesupport/desktopprocesssignaloperation.h
@@ -39,19 +39,15 @@ class PROJECTEXPLORER_EXPORT DesktopProcessSignalOperation : public DeviceProces
{
Q_OBJECT
public:
- enum SpecialInterrupt { NoSpecialInterrupt, Win32Interrupt, Win64Interrupt };
-
~DesktopProcessSignalOperation() {}
void killProcess(int pid);
void killProcess(const QString &filePath);
void interruptProcess(int pid);
void interruptProcess(const QString &filePath);
- void interruptProcess(int pid, SpecialInterrupt specialInterrupt);
- void interruptProcess(const QString &filePath, SpecialInterrupt specialInterrupt);
private:
void killProcessSilently(int pid);
- void interruptProcessSilently(int pid, SpecialInterrupt = NoSpecialInterrupt);
+ void interruptProcessSilently(int pid);
void appendMsgCannotKill(int pid, const QString &why);
void appendMsgCannotInterrupt(int pid, const QString &why);
diff --git a/src/plugins/projectexplorer/devicesupport/idevice.cpp b/src/plugins/projectexplorer/devicesupport/idevice.cpp
index 81a819b7e2..11044fba2e 100644
--- a/src/plugins/projectexplorer/devicesupport/idevice.cpp
+++ b/src/plugins/projectexplorer/devicesupport/idevice.cpp
@@ -424,4 +424,9 @@ QString IDevice::defaultPublicKeyFilePath()
return defaultPrivateKeyFilePath() + QLatin1String(".pub");
}
+DeviceProcessSignalOperation::DeviceProcessSignalOperation()
+ : m_specialInterrupt(NoSpecialInterrupt)
+{
+}
+
} // namespace ProjectExplorer
diff --git a/src/plugins/projectexplorer/devicesupport/idevice.h b/src/plugins/projectexplorer/devicesupport/idevice.h
index 3da578b90e..9b0df7453c 100644
--- a/src/plugins/projectexplorer/devicesupport/idevice.h
+++ b/src/plugins/projectexplorer/devicesupport/idevice.h
@@ -59,6 +59,8 @@ class PROJECTEXPLORER_EXPORT DeviceProcessSignalOperation : public QObject
{
Q_OBJECT
public:
+ enum SpecialInterrupt { NoSpecialInterrupt, Win32Interrupt, Win64Interrupt };
+
~DeviceProcessSignalOperation() {}
typedef QSharedPointer<DeviceProcessSignalOperation> Ptr;
@@ -67,13 +69,16 @@ public:
virtual void interruptProcess(int pid) = 0;
virtual void interruptProcess(const QString &filePath) = 0;
+ void setSpecialInterrupt(SpecialInterrupt si);
+
signals:
// If the error message is empty the operation was successful
void finished(const QString &errorMessage);
protected:
- explicit DeviceProcessSignalOperation() {}
+ explicit DeviceProcessSignalOperation();
QString m_errorMessage;
+ SpecialInterrupt m_specialInterrupt;
};
class PROJECTEXPLORER_EXPORT PortsGatheringMethod