diff --git a/share/qtcreator/debugger/dumper.py b/share/qtcreator/debugger/dumper.py index 839e034a417..dac78695228 100644 --- a/share/qtcreator/debugger/dumper.py +++ b/share/qtcreator/debugger/dumper.py @@ -2743,7 +2743,10 @@ class DumperBase: #warn('BITFIELD VALUE: %s %d %s' % (value.name, value.lvalue, typeName)) self.putNumChild(0) if typeobj.ltarget and typeobj.ltarget.code == TypeCodeEnum: - self.putValue(typeobj.ltarget.typeData().enumHexDisplay(value.lvalue, value.laddress)) + if hasattr(typeobj.ltarget.typeData(), 'enumHexDisplay'): + self.putValue(typeobj.ltarget.typeData().enumHexDisplay(value.lvalue, value.laddress)) + else: + self.putValue(typeobj.ltarget.typeData().enumDisplay(value.lvalue, value.laddress)) else: self.putValue(value.lvalue) self.putType(typeName) diff --git a/share/qtcreator/templates/wizards/projects/qtquickapplication/main.cpp b/share/qtcreator/templates/wizards/projects/qtquickapplication/main.cpp index 1cf20043ce8..90e5f5f5d0f 100644 --- a/share/qtcreator/templates/wizards/projects/qtquickapplication/main.cpp +++ b/share/qtcreator/templates/wizards/projects/qtquickapplication/main.cpp @@ -11,7 +11,9 @@ int main(int argc, char *argv[]) qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard")); @endif +#if defined(Q_OS_WIN) QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); +#endif QGuiApplication app(argc, argv); diff --git a/src/libs/qmljs/qmljsimportdependencies.cpp b/src/libs/qmljs/qmljsimportdependencies.cpp index e71fcd99fdd..7fc81ee15d6 100644 --- a/src/libs/qmljs/qmljsimportdependencies.cpp +++ b/src/libs/qmljs/qmljsimportdependencies.cpp @@ -72,7 +72,7 @@ int ImportMatchStrength::compareMatch(const ImportMatchStrength &o) const int v2 = o.m_match.at(i); if (v1 < v2) return -1; - if (v2 > v1) + if (v1 > v2) return 1; } if (len1 < len2) diff --git a/src/libs/qtcreatorcdbext/symbolgroupvalue.cpp b/src/libs/qtcreatorcdbext/symbolgroupvalue.cpp index 6277bb06d92..cd55cc712c5 100644 --- a/src/libs/qtcreatorcdbext/symbolgroupvalue.cpp +++ b/src/libs/qtcreatorcdbext/symbolgroupvalue.cpp @@ -1574,6 +1574,7 @@ static KnownType knownClassTypeHelper(const std::string &type, case 29: if (!type.compare(qPos, 29, "QXmlStreamNotationDeclaration")) return KT_QXmlStreamNotationDeclaration; + break; case 30: if (!type.compare(qPos, 30, "QPatternist::SequenceType::Ptr")) return KT_QPatternist_SequenceType_Ptr; diff --git a/src/plugins/android/androidrunner.cpp b/src/plugins/android/androidrunner.cpp index aae74af3f54..b2952b578e4 100644 --- a/src/plugins/android/androidrunner.cpp +++ b/src/plugins/android/androidrunner.cpp @@ -811,7 +811,7 @@ void AndroidRunner::setRunnable(const AndroidRunnable &runnable) void AndroidRunner::launchAVD() { - if (!m_target && !m_target->project()) + if (!m_target || !m_target->project()) return; int deviceAPILevel = AndroidManager::minimumSDK(m_target); diff --git a/src/plugins/clangcodemodel/clangbackendreceiver.cpp b/src/plugins/clangcodemodel/clangbackendreceiver.cpp index 9d620d6697d..c9bea084258 100644 --- a/src/plugins/clangcodemodel/clangbackendreceiver.cpp +++ b/src/plugins/clangcodemodel/clangbackendreceiver.cpp @@ -140,11 +140,15 @@ void BackendReceiver::reset() m_assistProcessorsTable.clear(); // Clean up futures for references - for (ReferencesEntry &entry : m_referencesTable) + for (ReferencesEntry &entry : m_referencesTable) { entry.futureInterface.cancel(); + entry.futureInterface.reportFinished(); + } m_referencesTable.clear(); - for (QFutureInterface &futureInterface : m_followTable) + for (QFutureInterface &futureInterface : m_followTable) { futureInterface.cancel(); + futureInterface.reportFinished(); + } m_followTable.clear(); } diff --git a/src/plugins/debugger/watchdata.cpp b/src/plugins/debugger/watchdata.cpp index 7c1e727d052..b3e1058a452 100644 --- a/src/plugins/debugger/watchdata.cpp +++ b/src/plugins/debugger/watchdata.cpp @@ -265,6 +265,7 @@ public: case 8: return decodeArrayHelper(encoding.size); } + break; case DebuggerEncoding::HexEncodedUnsignedInteger: switch (encoding.size) { case 1: diff --git a/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp b/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp index cc20c2e8608..236352c6477 100644 --- a/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp +++ b/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp @@ -56,16 +56,21 @@ const char GENERIC_BC_ID[] = "GenericProjectManager.GenericBuildConfiguration"; GenericBuildConfiguration::GenericBuildConfiguration(Target *parent) : BuildConfiguration(parent, Core::Id(GENERIC_BC_ID)) -{ } +{ + updateCacheAndEmitEnvironmentChanged(); +} GenericBuildConfiguration::GenericBuildConfiguration(Target *parent, Core::Id id) : BuildConfiguration(parent, id) -{ } +{ + updateCacheAndEmitEnvironmentChanged(); +} GenericBuildConfiguration::GenericBuildConfiguration(Target *parent, GenericBuildConfiguration *source) : BuildConfiguration(parent, source) { cloneSteps(source); + updateCacheAndEmitEnvironmentChanged(); } NamedWidget *GenericBuildConfiguration::createConfigWidget() diff --git a/src/plugins/projectexplorer/buildconfiguration.cpp b/src/plugins/projectexplorer/buildconfiguration.cpp index 372b0724688..44f883f4546 100644 --- a/src/plugins/projectexplorer/buildconfiguration.cpp +++ b/src/plugins/projectexplorer/buildconfiguration.cpp @@ -339,10 +339,14 @@ bool BuildConfiguration::isActive() const * to provide hints about which compiler to use. */ void BuildConfiguration::prependCompilerPathToEnvironment(Utils::Environment &env) const +{ + return prependCompilerPathToEnvironment(target()->kit(), env); +} + +void BuildConfiguration::prependCompilerPathToEnvironment(Kit *k, Utils::Environment &env) { const ToolChain *tc - = ToolChainKitInformation::toolChain(target()->kit(), - ProjectExplorer::Constants::CXX_LANGUAGE_ID); + = ToolChainKitInformation::toolChain(k, ProjectExplorer::Constants::CXX_LANGUAGE_ID); if (!tc) return; diff --git a/src/plugins/projectexplorer/buildconfiguration.h b/src/plugins/projectexplorer/buildconfiguration.h index 109cc4481ef..08307eae581 100644 --- a/src/plugins/projectexplorer/buildconfiguration.h +++ b/src/plugins/projectexplorer/buildconfiguration.h @@ -91,6 +91,7 @@ public: bool isActive() const override; void prependCompilerPathToEnvironment(Utils::Environment &env) const; + static void prependCompilerPathToEnvironment(Kit *k, Utils::Environment &env); signals: void environmentChanged(); diff --git a/src/plugins/projectexplorer/windebuginterface.cpp b/src/plugins/projectexplorer/windebuginterface.cpp index 45b6f13c6c1..98ece143c8e 100644 --- a/src/plugins/projectexplorer/windebuginterface.cpp +++ b/src/plugins/projectexplorer/windebuginterface.cpp @@ -29,6 +29,7 @@ #include #include +#include #include /*! diff --git a/src/plugins/pythoneditor/pythonscanner.cpp b/src/plugins/pythoneditor/pythonscanner.cpp index cc75259903b..9e80f30e6f7 100644 --- a/src/plugins/pythoneditor/pythonscanner.cpp +++ b/src/plugins/pythoneditor/pythonscanner.cpp @@ -202,7 +202,7 @@ FormatToken Scanner::readIdentifier() // List of python built-in functions and objects static const QSet builtins = { - "range", "xrange", "int", "float", "long", "hex", "oct" "chr", "ord", + "range", "xrange", "int", "float", "long", "hex", "oct", "chr", "ord", "len", "abs", "None", "True", "False" }; diff --git a/src/plugins/qmakeandroidsupport/androidqmakebuildconfigurationfactory.cpp b/src/plugins/qmakeandroidsupport/androidqmakebuildconfigurationfactory.cpp index 1de61ae19f1..3cb4fa73bad 100644 --- a/src/plugins/qmakeandroidsupport/androidqmakebuildconfigurationfactory.cpp +++ b/src/plugins/qmakeandroidsupport/androidqmakebuildconfigurationfactory.cpp @@ -98,6 +98,8 @@ BuildConfiguration *AndroidQmakeBuildConfigurationFactory::restore(Target *paren AndroidQmakeBuildConfiguration::AndroidQmakeBuildConfiguration(Target *target) : QmakeBuildConfiguration(target) { + updateCacheAndEmitEnvironmentChanged(); + auto updateGrade = [this] { AndroidManager::updateGradleProperties(BuildConfiguration::target()); }; auto project = qobject_cast(target->project()); @@ -110,11 +112,13 @@ AndroidQmakeBuildConfiguration::AndroidQmakeBuildConfiguration(Target *target) AndroidQmakeBuildConfiguration::AndroidQmakeBuildConfiguration(Target *target, AndroidQmakeBuildConfiguration *source) : QmakeBuildConfiguration(target, source) { + updateCacheAndEmitEnvironmentChanged(); } AndroidQmakeBuildConfiguration::AndroidQmakeBuildConfiguration(Target *target, Core::Id id) : QmakeBuildConfiguration(target, id) { + updateCacheAndEmitEnvironmentChanged(); } void AndroidQmakeBuildConfiguration::addToEnvironment(Utils::Environment &env) const diff --git a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp index ec014c8fa9a..5d3332b9cb3 100644 --- a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp +++ b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp @@ -152,6 +152,8 @@ bool QmakeBuildConfiguration::fromMap(const QVariantMap &map) void QmakeBuildConfiguration::ctor() { + updateCacheAndEmitEnvironmentChanged(); + connect(this, &BuildConfiguration::environmentChanged, this, &QmakeBuildConfiguration::emitProFileEvaluateNeeded); connect(target(), &Target::kitChanged, @@ -758,9 +760,14 @@ BuildConfiguration::BuildType QmakeBuildConfiguration::buildType() const void QmakeBuildConfiguration::addToEnvironment(Environment &env) const { - prependCompilerPathToEnvironment(env); - const BaseQtVersion *qt = QtKitInformation::qtVersion(target()->kit()); - if (qt) + setupBuildEnvironment(target()->kit(), env); +} + +void QmakeBuildConfiguration::setupBuildEnvironment(Kit *k, Environment &env) +{ + prependCompilerPathToEnvironment(k, env); + const BaseQtVersion *qt = QtKitInformation::qtVersion(k); + if (qt && !qt->binPath().isEmpty()) env.prependOrSetPath(qt->binPath().toString()); } diff --git a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.h b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.h index 87afc6c9376..36ed9288845 100644 --- a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.h +++ b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.h @@ -100,6 +100,7 @@ public: BuildType buildType() const override; void addToEnvironment(Utils::Environment &env) const override; + static void setupBuildEnvironment(ProjectExplorer::Kit *k, Utils::Environment &env); void emitProFileEvaluateNeeded(); diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.cpp b/src/plugins/qmakeprojectmanager/qmakeproject.cpp index a1218a017ef..872585fc80b 100644 --- a/src/plugins/qmakeprojectmanager/qmakeproject.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeproject.cpp @@ -665,6 +665,10 @@ QtSupport::ProFileReader *QmakeProject::createProFileReader(const QmakeProFile * else qmakeArgs = bc->configCommandLineArguments(); } + } else { + // Set up a better default environment without using a build configuration: + QmakeBuildConfiguration::setupBuildEnvironment(k, env); + k->addToEnvironment(env); } QtSupport::BaseQtVersion *qtVersion = QtSupport::QtKitInformation::qtVersion(k); diff --git a/tests/auto/debugger/tst_dumpers.cpp b/tests/auto/debugger/tst_dumpers.cpp index aa1d1aaee6f..ef311bce694 100644 --- a/tests/auto/debugger/tst_dumpers.cpp +++ b/tests/auto/debugger/tst_dumpers.cpp @@ -5457,7 +5457,7 @@ void tst_Dumpers::dumper_data() + Check("s.x", "2", "unsigned int : 3") % NoCdbEngine + Check("s.y", "3", "unsigned int : 4") % NoCdbEngine + Check("s.z", "39", "unsigned int : 18") % NoCdbEngine - + Check("s.e", "V2 (1)", "E : 3") % NoCdbEngine + + Check("s.e", "V2 (1)", "E : 3") % GdbEngine + Check("s.x", "2", "unsigned int") % CdbEngine + Check("s.y", "3", "unsigned int") % CdbEngine + Check("s.z", "39", "unsigned int") % CdbEngine