summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Loehning <robert.loehning@nokia.com>2010-03-17 15:44:43 +0100
committerRobert Loehning <robert.loehning@nokia.com>2010-03-23 15:47:24 +0100
commit32a056aee05b23dfa2052296b8607a5d033a9c26 (patch)
tree2ee34124d9aad55f7bb3e40c79bc976daf7a376e
parentc444fc2adcab1c170c03ae0d678a8ea867d48b47 (diff)
downloadqt-creator-32a056aee05b23dfa2052296b8607a5d033a9c26.tar.gz
Added function isRegistered.
-rw-r--r--src/tools/qtcdebugger/main.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/tools/qtcdebugger/main.cpp b/src/tools/qtcdebugger/main.cpp
index 0f966fca3a..c054664bc9 100644
--- a/src/tools/qtcdebugger/main.cpp
+++ b/src/tools/qtcdebugger/main.cpp
@@ -471,6 +471,15 @@ static QString debuggerCall(const QString &additionalOption = QString())
return rc;
}
+static bool isRegistered(HKEY handle, const QString &call, QString *errorMessage, QString *oldDebugger = 0)
+{
+ QString registeredDebugger;
+ registryReadStringKey(handle, debuggerRegistryValueNameC, &registeredDebugger, errorMessage);
+ if (oldDebugger)
+ *oldDebugger = registeredDebugger;
+ return !registeredDebugger.compare(call, Qt::CaseInsensitive);
+}
+
// registration helper: Register ourselves in a debugger registry key.
// Make a copy of the old value as "Debugger.Default" and have the
// "Debug" key point to us.
@@ -486,8 +495,7 @@ static bool registerDebuggerKey(const WCHAR *key,
break;
// Save old key, which might be missing
QString oldDebugger;
- registryReadStringKey(handle, debuggerRegistryValueNameC, &oldDebugger, errorMessage);
- if (!oldDebugger.compare(call, Qt::CaseInsensitive)) {
+ if (isRegistered(handle, call, errorMessage, &oldDebugger)) {
*errorMessage = QLatin1String("The program is already registered as post mortem debugger.");
break;
}
@@ -527,8 +535,7 @@ static bool unregisterDebuggerKey(const WCHAR *key,
if (!openRegistryKey(HKEY_LOCAL_MACHINE, key, true, &handle, errorMessage))
break;
QString debugger;
- registryReadStringKey(handle, debuggerRegistryValueNameC, &debugger, errorMessage);
- if (!debugger.isEmpty() && debugger.compare(call, Qt::CaseInsensitive)) {
+ if (!isRegistered(handle, call, errorMessage, &debugger) && !debugger.isEmpty()) {
*errorMessage = QLatin1String("The program is not registered as post mortem debugger.");
break;
}