diff options
author | Robert Loehning <robert.loehning@nokia.com> | 2010-03-17 15:44:43 +0100 |
---|---|---|
committer | Robert Loehning <robert.loehning@nokia.com> | 2010-03-23 15:47:24 +0100 |
commit | 32a056aee05b23dfa2052296b8607a5d033a9c26 (patch) | |
tree | 2ee34124d9aad55f7bb3e40c79bc976daf7a376e /src/tools/qtcdebugger/main.cpp | |
parent | c444fc2adcab1c170c03ae0d678a8ea867d48b47 (diff) | |
download | qt-creator-32a056aee05b23dfa2052296b8607a5d033a9c26.tar.gz |
Added function isRegistered.
Diffstat (limited to 'src/tools/qtcdebugger/main.cpp')
-rw-r--r-- | src/tools/qtcdebugger/main.cpp | 15 |
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, ®isteredDebugger, 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; } |