summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2019-09-30 10:36:00 +0200
committerEike Ziller <eike.ziller@qt.io>2019-09-30 10:36:00 +0200
commitf8c8c010961a69def8a21cd15c7cd38d07312cc0 (patch)
tree5f7c3485caa496bb9ced8d501b29aacf3bfad3a6 /src
parentb5b1367b0b37133c9666a5d20c95d53e5e6d6a43 (diff)
parent24dd7be6dbc150131db62921e2b5b922e136b8aa (diff)
downloadqt-creator-f8c8c010961a69def8a21cd15c7cd38d07312cc0.tar.gz
Merge remote-tracking branch 'origin/4.10' into 4.11
Change-Id: Ic05bd53ea060d42c2013884972c05de08ed63f10
Diffstat (limited to 'src')
-rw-r--r--src/plugins/baremetal/sdcctoolchain.cpp48
-rw-r--r--src/plugins/debugger/debuggerengine.cpp4
m---------src/shared/qbs0
3 files changed, 33 insertions, 19 deletions
diff --git a/src/plugins/baremetal/sdcctoolchain.cpp b/src/plugins/baremetal/sdcctoolchain.cpp
index 199d8ef0aa..a7b62686c8 100644
--- a/src/plugins/baremetal/sdcctoolchain.cpp
+++ b/src/plugins/baremetal/sdcctoolchain.cpp
@@ -381,27 +381,41 @@ QList<ToolChain *> SdccToolChainFactory::autoDetect(const QList<ToolChain *> &al
if (Utils::HostOsInfo::isWindowsHost()) {
-#ifdef Q_OS_WIN64
- static const char kRegistryNode[] = "HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\SDCC";
-#else
- static const char kRegistryNode[] = "HKEY_LOCAL_MACHINE\\SOFTWARE\\SDCC";
-#endif
-
- QSettings registry(kRegistryNode, QSettings::NativeFormat);
- QString compilerPath = registry.value("Default").toString();
- if (!compilerPath.isEmpty()) {
+ // Tries to detect the candidate from the 32-bit
+ // or 64-bit system registry format.
+ auto probeCandidate = [](QSettings::Format format) {
+ QSettings registry("HKEY_LOCAL_MACHINE\\SOFTWARE\\SDCC",
+ format);
+ QString compilerPath = registry.value("Default").toString();
+ if (compilerPath.isEmpty())
+ return Candidate{};
// Build full compiler path.
compilerPath += "\\bin\\sdcc.exe";
const FilePath fn = FilePath::fromString(
QFileInfo(compilerPath).absoluteFilePath());
- if (compilerExists(fn)) {
- // Build compiler version.
- const QString version = QString("%1.%2.%3").arg(
- registry.value("VersionMajor").toString(),
- registry.value("VersionMinor").toString(),
- registry.value("VersionRevision").toString());
- candidates.push_back({fn, version});
- }
+ if (!compilerExists(fn))
+ return Candidate{};
+ // Build compiler version.
+ const QString version = QString("%1.%2.%3").arg(
+ registry.value("VersionMajor").toString(),
+ registry.value("VersionMinor").toString(),
+ registry.value("VersionRevision").toString());
+ return Candidate{fn, version};
+ };
+
+ const QSettings::Format allowedFormats[] = {
+ QSettings::NativeFormat,
+#ifdef Q_OS_WIN
+ QSettings::Registry32Format,
+ QSettings::Registry64Format
+#endif
+ };
+
+ for (const QSettings::Format format : allowedFormats) {
+ const auto candidate = probeCandidate(format);
+ if (candidate.compilerPath.isEmpty() || candidates.contains(candidate))
+ continue;
+ candidates.push_back(candidate);
}
}
diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp
index 9d59cc0fe0..8fa02ef988 100644
--- a/src/plugins/debugger/debuggerengine.cpp
+++ b/src/plugins/debugger/debuggerengine.cpp
@@ -2285,8 +2285,8 @@ void DebuggerEngine::openDisassemblerView(const Location &location)
void DebuggerEngine::raiseWatchersWindow()
{
- if (d->m_watchersView) {
- if (auto dock = qobject_cast<QDockWidget *>(d->m_watchersView->parentWidget())) {
+ if (d->m_watchersView && d->m_watchersWindow) {
+ if (auto dock = qobject_cast<QDockWidget *>(d->m_watchersWindow->parentWidget())) {
if (QAction *act = dock->toggleViewAction()) {
if (!act->isChecked())
QTimer::singleShot(1, act, [act] { act->trigger(); });
diff --git a/src/shared/qbs b/src/shared/qbs
-Subproject 94fe404a5a6d7cf91926bcfbd026953994b2581
+Subproject aec975a3f95f905b2d63ea1500ace28eddea7b9