From 19d464dd72f3058810de186bfd2a1586adcb9a22 Mon Sep 17 00:00:00 2001 From: Fawzi Mohamed Date: Thu, 3 Apr 2014 10:16:48 +0200 Subject: [PATCH 01/33] qmakeproject: fix crash when qtVersion is null While it is not possible to create a qmake kit without qt, the qt version might become invalid and be removed. Change-Id: I99484c86d731ab5a47bff9bb1958158504617004 Reviewed-by: Friedemann Kleint Reviewed-by: Eike Ziller --- src/plugins/qmakeprojectmanager/qmakeproject.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.cpp b/src/plugins/qmakeprojectmanager/qmakeproject.cpp index 21fa44ede63..d78f8064675 100644 --- a/src/plugins/qmakeprojectmanager/qmakeproject.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeproject.cpp @@ -1001,7 +1001,7 @@ QtSupport::ProFileReader *QmakeProject::createProFileReader(const QmakeProFileNo // It is important to override the spec file only for the creator evaluator, // and not the qmake buildstep used to build the app (as we use the makefiles). const char IOSQT[] = "Qt4ProjectManager.QtVersion.Ios"; // from Ios::Constants - if (qtVersion->type() == QLatin1String(IOSQT)) + if (qtVersion && qtVersion->type() == QLatin1String(IOSQT)) m_qmakeGlobals->xqmakespec = QLatin1String("macx-xcode"); } ++m_qmakeGlobalsRefCnt; From eabf4628c93dfeb6ee8a86b99182fdabbf71e286 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Thu, 3 Apr 2014 11:20:15 +0200 Subject: [PATCH 02/33] Debugger: Use tested offsets in QFile dumper Change-Id: I6c45d9ebcfa7705ba0913cd1c3ff30798758c473 Reviewed-by: hjk --- share/qtcreator/debugger/qttypes.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/share/qtcreator/debugger/qttypes.py b/share/qtcreator/debugger/qttypes.py index 760dded9df9..0b7a6f553d9 100644 --- a/share/qtcreator/debugger/qttypes.py +++ b/share/qtcreator/debugger/qttypes.py @@ -409,12 +409,19 @@ def qdump__QDir(d, value): def qdump__QFile(d, value): # 9fc0965 changes the layout of the private structure qtVersion = d.qtVersion() - if qtVersion >= 0x050200: - offset = 176 if d.is32bit() else 272 + is32bit = d.is32bit() + if qtVersion > 0x050200: + if d.isWindowsTarget(): + offset = 180 if is32bit else 272 + else: + offset = 176 if is32bit else 272 elif qtVersion >= 0x050000: - offset = 180 if d.is32bit() else 280 + offset = 176 if is32bit else 280 else: - offset = 140 if d.is32bit() else 232 + if d.isWindowsTarget(): + offset = 144 if is32bit else 232 + else: + offset = 140 if is32bit else 232 privAddress = d.extractPointer(d.addressOf(value) + d.ptrSize()) fileNameAddress = privAddress + offset d.putStringValueByAddress(fileNameAddress) From 46d9b4ee3604e06c69220bfcd9577f58bd97b75b Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Thu, 3 Apr 2014 11:02:48 +0300 Subject: [PATCH 03/33] Fix keytool parameters. Task-number: QTCREATORBUG-11417 Change-Id: If9de1dd40b6f43f020d6d5fef59519b0946b3888 Reviewed-by: Daniel Teske --- src/plugins/android/androiddeployqtstep.cpp | 2 +- src/plugins/android/androidpackagecreationstep.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/android/androiddeployqtstep.cpp b/src/plugins/android/androiddeployqtstep.cpp index 7335f5b69e4..3b506c38b69 100644 --- a/src/plugins/android/androiddeployqtstep.cpp +++ b/src/plugins/android/androiddeployqtstep.cpp @@ -527,7 +527,7 @@ QAbstractItemModel *AndroidDeployQtStep::keystoreCertificates() if (!m_keystorePasswd.length()) return 0; params << m_keystorePasswd; - params << QLatin1String("-J\"-Duser.language=en\""); + params << QLatin1String("-J-Duser.language=en"); keytoolProc.start(AndroidConfigurations::currentConfig().keytoolPath().toString(), params); if (!keytoolProc.waitForStarted() || !keytoolProc.waitForFinished()) { QMessageBox::critical(0, tr("Error"), diff --git a/src/plugins/android/androidpackagecreationstep.cpp b/src/plugins/android/androidpackagecreationstep.cpp index d9a6f66151b..075a89bd95b 100644 --- a/src/plugins/android/androidpackagecreationstep.cpp +++ b/src/plugins/android/androidpackagecreationstep.cpp @@ -364,7 +364,7 @@ QAbstractItemModel *AndroidPackageCreationStep::keystoreCertificates() if (!m_keystorePasswd.length()) return 0; params << m_keystorePasswd; - params << QLatin1String("-J\"-Duser.language=en\""); + params << QLatin1String("-J-Duser.language=en"); keytoolProc.start(AndroidConfigurations::currentConfig().keytoolPath().toString(), params); if (!keytoolProc.waitForStarted() || !keytoolProc.waitForFinished()) { QMessageBox::critical(0, tr("Error"), From 460acc370dc2a7ba15d7ce958adc26f8ff45bfad Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Thu, 3 Apr 2014 12:09:45 +0200 Subject: [PATCH 04/33] Avoid removing the shortcut settings of older Qt Creator versions The format has changed in 3.1, but keep the old settings around for a while, in case that people switch back to 3.0 (or earlier). Task-number: QTCREATORBUG-11947 Change-Id: I3ad6075c93f614364aae53e8291e937050277140 Reviewed-by: Shawn Rutledge Reviewed-by: Eike Ziller --- .../coreplugin/actionmanager/actionmanager.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/plugins/coreplugin/actionmanager/actionmanager.cpp b/src/plugins/coreplugin/actionmanager/actionmanager.cpp index 271b883f032..04383a8b322 100644 --- a/src/plugins/coreplugin/actionmanager/actionmanager.cpp +++ b/src/plugins/coreplugin/actionmanager/actionmanager.cpp @@ -49,6 +49,7 @@ namespace { } static const char kKeyboardSettingsKey[] = "KeyboardShortcuts"; +static const char kKeyboardSettingsTransferredKey[] = "OldSettingsTransferred"; using namespace Core; using namespace Core::Internal; @@ -603,10 +604,16 @@ static const char oldSequenceKey[] = "Keysequence"; void ActionManagerPrivate::initialize() { // TODO remove me after some period after 3.1 + // TODO also remove the old settings after some period after 3.1 + // settings->remove(QLatin1String(oldSettingsGroup)); + // settings->contains(QLatin1String(kKeyboardSettingsKey) + QLatin1Char('/') + // + QLatin1String(kKeyboardSettingsTransferredKey)) // check if settings in old style (pre 3.1) exist QSettings *settings = Core::ICore::settings(); - if (settings->contains(QLatin1String(kKeyboardSettingsKey))) + if (settings->contains(QLatin1String(kKeyboardSettingsKey) + QLatin1Char('/') + + QLatin1String(kKeyboardSettingsTransferredKey))) { return; + } // move old settings style to new settings style QMap shortcutMap; const int shortcuts = settings->beginReadArray(QLatin1String(oldSettingsGroup)); @@ -619,14 +626,13 @@ void ActionManagerPrivate::initialize() settings->endArray(); // write settings in new style settings->beginGroup(QLatin1String(kKeyboardSettingsKey)); + settings->setValue(QLatin1String(kKeyboardSettingsTransferredKey), true); QMapIterator it(shortcutMap); while (it.hasNext()) { it.next(); settings->setValue(it.key().toString(), it.value().toString()); } settings->endGroup(); - // remove old settings - settings->remove(QLatin1String(oldSettingsGroup)); } void ActionManagerPrivate::saveSettings(QSettings *settings) From 88549467b065bde0d74df4893844daa8b905c31c Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Mon, 31 Mar 2014 12:14:55 +0200 Subject: [PATCH 05/33] Test: Fix filename offset tests on Win Change-Id: Id0cc5e4f23a8bd67b9ff1052d7fcabed92c192bd Reviewed-by: David Schulz --- tests/auto/debugger/tst_offsets.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/auto/debugger/tst_offsets.cpp b/tests/auto/debugger/tst_offsets.cpp index 40f8909bbc2..b78374f2b7f 100644 --- a/tests/auto/debugger/tst_offsets.cpp +++ b/tests/auto/debugger/tst_offsets.cpp @@ -78,11 +78,19 @@ void tst_offsets::offsets_data() QTestData &data = QTest::newRow("QFilePrivate::fileName") << int((char *)&p->fileName - (char *)p); if (qtVersion > 0x50200) +#ifdef Q_OS_WIN + data << 180 << 272; +#else data << 176 << 272; +#endif else if (qtVersion >= 0x50000) data << 176 << 280; else +#ifdef Q_OS_WIN + data << 144 << 232; +#else data << 140 << 232; +#endif } { From 579da1faf1124a0d1ea42ac878d61b8d5171a533 Mon Sep 17 00:00:00 2001 From: Daniel Teske Date: Thu, 27 Mar 2014 13:12:28 +0100 Subject: [PATCH 06/33] Android: Ensure that ANDROID_NDK_ROOT is set while parsing the mkspec Task-number: QTCREATORBUG-11821 Change-Id: Icbf8d6dd84da6ddba7d9c9e540916a804fb962f1 Reviewed-by: Alessandro Portale --- src/plugins/android/androidqtversion.cpp | 7 +++++++ src/plugins/android/androidqtversion.h | 1 + 2 files changed, 8 insertions(+) diff --git a/src/plugins/android/androidqtversion.cpp b/src/plugins/android/androidqtversion.cpp index dc63f0aaaf9..45bfef0152b 100644 --- a/src/plugins/android/androidqtversion.cpp +++ b/src/plugins/android/androidqtversion.cpp @@ -125,6 +125,13 @@ void AndroidQtVersion::addToEnvironment(const ProjectExplorer::Kit *k, Utils::En AndroidConfigurations::currentConfig().bestNdkPlatformMatch(AndroidManager::buildTargetSDK(target))); } +Utils::Environment AndroidQtVersion::qmakeRunEnvironment() const +{ + Utils::Environment env = Utils::Environment::systemEnvironment(); + env.set(QLatin1String("ANDROID_NDK_ROOT"), AndroidConfigurations::currentConfig().ndkLocation().toUserOutput()); + return env; +} + QString AndroidQtVersion::description() const { //: Qt Version is meant for Android diff --git a/src/plugins/android/androidqtversion.h b/src/plugins/android/androidqtversion.h index 0d6d7ee52b3..9e9a7b94aa5 100644 --- a/src/plugins/android/androidqtversion.h +++ b/src/plugins/android/androidqtversion.h @@ -53,6 +53,7 @@ public: QList detectQtAbis() const; void addToEnvironment(const ProjectExplorer::Kit *k, Utils::Environment &env) const; + Utils::Environment qmakeRunEnvironment() const; Core::FeatureSet availableFeatures() const; QString platformName() const; From b5f46788461ec96803d48797abe229ab57d996bc Mon Sep 17 00:00:00 2001 From: hjk Date: Thu, 3 Apr 2014 11:23:31 +0200 Subject: [PATCH 07/33] Debugger: Handle failing inferior calls more gracefully At least for GDB on Windows that's a rather typical situation due to GDB's "Internal error: pc in read in psymtab, but not in symtab" Task-number: QTCREATORBUG-11164 Change-Id: If79d586b59e2c1ee37558e8a811091fefc69ac2d Reviewed-by: Christian Stenger --- share/qtcreator/debugger/dumper.py | 12 ++++++++++++ share/qtcreator/debugger/gdbbridge.py | 10 +--------- share/qtcreator/debugger/lldbbridge.py | 10 +--------- share/qtcreator/debugger/qttypes.py | 11 +++++++++++ 4 files changed, 25 insertions(+), 18 deletions(-) diff --git a/share/qtcreator/debugger/dumper.py b/share/qtcreator/debugger/dumper.py index c4f061f813d..326d34fd390 100644 --- a/share/qtcreator/debugger/dumper.py +++ b/share/qtcreator/debugger/dumper.py @@ -500,6 +500,18 @@ class DumperBase: self.putType(type) self.putNumChild(0) + def putCallItem(self, name, value, func, *args): + try: + result = self.callHelper(value, func, args) + with SubItem(self, name): + self.putItem(result) + except: + with SubItem(self, name): + self.putValue("") + self.putNumChild(0) + + def call(self, value, func, *args): + return self.callHelper(value, func, args) def putMapName(self, value, index = -1): ns = self.qtNamespace() diff --git a/share/qtcreator/debugger/gdbbridge.py b/share/qtcreator/debugger/gdbbridge.py index 3593f8c75bd..5ff97fdbf68 100644 --- a/share/qtcreator/debugger/gdbbridge.py +++ b/share/qtcreator/debugger/gdbbridge.py @@ -575,7 +575,7 @@ class Dumper(DumperBase): def parseAndEvaluate(self, exp): return gdb.parse_and_eval(exp) - def call2(self, value, func, args): + def callHelper(self, value, func, args): # args is a tuple. arg = "" for i in range(len(args)): @@ -602,9 +602,6 @@ class Dumper(DumperBase): gdb.parse_and_eval("free(0x%x)" % ptr) return result - def call(self, value, func, *args): - return self.call2(value, func, args) - def childWithName(self, value, name): try: return value[name] @@ -1054,11 +1051,6 @@ class Dumper(DumperBase): i = toInteger(i) self.putSubItem(i, (base + i).dereference()) - def putCallItem(self, name, value, func, *args): - result = self.call2(value, func, args) - with SubItem(self, name): - self.putItem(result) - def isFunctionType(self, type): return type.code == MethodCode or type.code == FunctionCode diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py index feda3ec82b0..31065cdb775 100644 --- a/share/qtcreator/debugger/lldbbridge.py +++ b/share/qtcreator/debugger/lldbbridge.py @@ -372,7 +372,7 @@ class Dumper(DumperBase): return ns + "Qt::" + enumType + "(" \ + ns + "Qt::" + enumType + "::" + enumValue + ")" - def call2(self, value, func, args): + def callHelper(self, value, func, args): # args is a tuple. arg = ','.join(args) #warn("CALL: %s -> %s(%s)" % (value, func, arg)) @@ -398,9 +398,6 @@ class Dumper(DumperBase): frame = thread.GetFrameAtIndex(0) return frame.EvaluateExpression(expr) - def call(self, value, func, *args): - return self.call2(value, func, args) - def checkPointer(self, p, align = 1): if not self.isNull(p): p.Dereference() @@ -604,11 +601,6 @@ class Dumper(DumperBase): addr = int(address) & 0xFFFFFFFFFFFFFFFF return self.context.CreateValueFromAddress(None, addr, referencedType) - def putCallItem(self, name, value, func, *args): - result = self.call2(value, func, args) - with SubItem(self, name): - self.putItem(result) - def childRange(self): if self.currentMaxNumChild is None: return xrange(0, self.currentNumChild) diff --git a/share/qtcreator/debugger/qttypes.py b/share/qtcreator/debugger/qttypes.py index 0b7a6f553d9..0f45f3156ee 100644 --- a/share/qtcreator/debugger/qttypes.py +++ b/share/qtcreator/debugger/qttypes.py @@ -179,6 +179,7 @@ def qdump__QModelIndex(d, value): % (mm_, row, column, mi_)) d.putItem(mi2) i = i + 1 + d.putFields(value) #d.putCallItem("parent", val, "parent") #with SubItem(d, "model"): # d.putValue(m) @@ -203,6 +204,7 @@ def qdump__QDate(d, value): d.enumExpression("DateFormat", "SystemLocaleDate")) d.putCallItem("(Locale)", value, "toString", d.enumExpression("DateFormat", "LocaleDate")) + d.putFields(value) else: d.putValue("(invalid)") d.putNumChild(0) @@ -224,6 +226,7 @@ def qdump__QTime(d, value): d.enumExpression("DateFormat", "SystemLocaleDate")) d.putCallItem("(Locale)", value, "toString", d.enumExpression("DateFormat", "LocaleDate")) + d.putFields(value) else: d.putValue("(invalid)") d.putNumChild(0) @@ -312,6 +315,7 @@ def qdump__QDateTime(d, value): d.enumExpression("TimeSpec", "UTC")) d.putCallItem("toLocalTime", value, "toTimeSpec", d.enumExpression("TimeSpec", "LocalTime")) + d.putFields(value) else: d.putValue("(invalid)") d.putNumChild(0) @@ -404,6 +408,7 @@ def qdump__QDir(d, value): with SubItem(d, "entryList"): typ = d.lookupType(ns + "QStringList") d.putItem(d.createValue(privAddress + filesOffset, typ)) + d.putFields(value) def qdump__QFile(d, value): @@ -510,6 +515,7 @@ def qdump__QFileInfo(d, value): d.putCallItem("created", value, "created") d.putCallItem("lastModified", value, "lastModified") d.putCallItem("lastRead", value, "lastRead") + d.putFields(value) def qdump__QFixed(d, value): @@ -919,6 +925,7 @@ def qdump__QLocale(d, value): d.putCallItem("zeroDigit", value, "zeroDigit") d.putCallItem("groupSeparator", value, "groupSeparator") d.putCallItem("negativeSign", value, "negativeSign") + d.putFields(value) def qdump__QMapNode(d, value): @@ -1804,6 +1811,7 @@ def qdump__QTextCodec(d, value): with Children(d): d.putCallItem("name", value, "name") d.putCallItem("mibEnum", value, "mibEnum") + d.putFields(value) def qdump__QTextCursor(d, value): @@ -1821,6 +1829,7 @@ def qdump__QTextCursor(d, value): d.putIntItem("position", d.extractInt(positionAddress)) d.putIntItem("anchor", d.extractInt(positionAddress + d.intSize())) d.putCallItem("selected", value, "selectedText") + d.putFields(value) def qdump__QTextDocument(d, value): @@ -1833,6 +1842,7 @@ def qdump__QTextDocument(d, value): d.putCallItem("lineCount", value, "lineCount") d.putCallItem("revision", value, "revision") d.putCallItem("toPlainText", value, "toPlainText") + d.putFields(value) def qform__QUrl(): @@ -1861,6 +1871,7 @@ def qdump__QUrl(d, value): d.putCallItem("query", value, "encodedQuery") d.putCallItem("fragment", value, "fragment") d.putCallItem("port", value, "port") + d.putFields(value) else: # QUrlPrivate: # - QAtomicInt ref; From 78d2e274b73d10fce04e96884427792026be2d68 Mon Sep 17 00:00:00 2001 From: hjk Date: Thu, 3 Apr 2014 12:12:38 +0200 Subject: [PATCH 08/33] Debugger: Robustify QSet and QHash dumpers Change-Id: I6d4df7f00719e5f7c4ee2f41c890348ab9aeaa8a Reviewed-by: Christian Stenger --- share/qtcreator/debugger/qttypes.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/share/qtcreator/debugger/qttypes.py b/share/qtcreator/debugger/qttypes.py index 0f45f3156ee..f05d73845bb 100644 --- a/share/qtcreator/debugger/qttypes.py +++ b/share/qtcreator/debugger/qttypes.py @@ -617,13 +617,16 @@ def qdump__QHash(d, value): d.putNumChild(size) if d.isExpanded(): numBuckets = int(d_ptr.dereference()["numBuckets"]) - nodePtr = hashDataFirstNode(d_ptr, numBuckets) innerType = e_ptr.dereference().type isCompact = d.isMapCompact(keyType, valueType) childType = valueType if isCompact else innerType with Children(d, size, maxNumChild=1000, childType=childType): for i in d.childRange(): - it = nodePtr.dereference().cast(innerType) + if i == 0: + node = hashDataFirstNode(d_ptr, numBuckets) + else: + node = hashDataNextNode(node, numBuckets) + it = node.dereference().cast(innerType) with SubItem(d, i): if isCompact: key = it["key"] @@ -636,7 +639,6 @@ def qdump__QHash(d, value): d.putType(valueType) else: d.putItem(it) - nodePtr = hashDataNextNode(nodePtr, numBuckets) def qdump__QHashNode(d, value): @@ -1690,10 +1692,13 @@ def qdump__QSet(d, value): hashDataType = d_ptr.type nodeTypePtr = d_ptr.dereference()["fakeNext"].type numBuckets = int(d_ptr.dereference()["numBuckets"]) - node = hashDataFirstNode(d_ptr, numBuckets) innerType = e_ptr.dereference().type with Children(d, size, maxNumChild=1000, childType=innerType): for i in d.childRange(): + if i == 0: + node = hashDataFirstNode(d_ptr, numBuckets) + else: + node = hashDataNextNode(node, numBuckets) it = node.dereference().cast(innerType) with SubItem(d, i): key = it["key"] @@ -1702,7 +1707,6 @@ def qdump__QSet(d, value): # for Qt4 optimized int keytype key = it[1]["key"] d.putItem(key) - node = hashDataNextNode(node, numBuckets) def qdump__QSharedData(d, value): From ee3d38c16f9323d8dad9ddb1f917076934b29b5f Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Wed, 26 Mar 2014 16:49:40 +0100 Subject: [PATCH 09/33] Do not fully qualify types in ProjectExplorer namespace Rely on using namespace ProjectExplorer that got introduced in a previous commit. Change-Id: I83cfc7387d8e5329b588d6d841cd9c2322270363 Reviewed-by: hjk --- .../debugger/debuggerrunconfigurationaspect.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/plugins/debugger/debuggerrunconfigurationaspect.cpp b/src/plugins/debugger/debuggerrunconfigurationaspect.cpp index e00f459a37a..b1271d8825c 100644 --- a/src/plugins/debugger/debuggerrunconfigurationaspect.cpp +++ b/src/plugins/debugger/debuggerrunconfigurationaspect.cpp @@ -67,7 +67,7 @@ namespace Internal { // //////////////////////////////////////////////////////////////////////// -class DebuggerRunConfigWidget : public ProjectExplorer::RunConfigWidget +class DebuggerRunConfigWidget : public RunConfigWidget { Q_OBJECT @@ -215,7 +215,7 @@ void DebuggerRunConfigWidget::useMultiProcessToggled(bool on) */ DebuggerRunConfigurationAspect::DebuggerRunConfigurationAspect( - ProjectExplorer::RunConfiguration *rc) : + RunConfiguration *rc) : IRunConfigurationAspect(rc), m_useCppDebugger(AutoEnabledLanguage), m_useQmlDebugger(AutoEnabledLanguage), @@ -292,8 +292,8 @@ void DebuggerRunConfigurationAspect::setUseMultiProcess(bool value) bool DebuggerRunConfigurationAspect::isQmlDebuggingSpinboxSuppressed() const { - ProjectExplorer::Kit *k = runConfiguration()->target()->kit(); - ProjectExplorer::IDevice::ConstPtr dev = ProjectExplorer::DeviceKitInformation::device(k); + Kit *k = runConfiguration()->target()->kit(); + IDevice::ConstPtr dev = DeviceKitInformation::device(k); if (dev.isNull()) return false; return dev->canAutoDetectPorts(); @@ -327,12 +327,12 @@ void DebuggerRunConfigurationAspect::fromMap(const QVariantMap &map) } DebuggerRunConfigurationAspect *DebuggerRunConfigurationAspect::create - (ProjectExplorer::RunConfiguration *runConfiguration) const + (RunConfiguration *runConfiguration) const { return new DebuggerRunConfigurationAspect(runConfiguration); } -ProjectExplorer::RunConfigWidget *DebuggerRunConfigurationAspect::createConfigurationWidget() +RunConfigWidget *DebuggerRunConfigurationAspect::createConfigurationWidget() { return new Internal::DebuggerRunConfigWidget(this); } From d8adc10fbe2d662fefacd3f348da532ce847c619 Mon Sep 17 00:00:00 2001 From: hjk Date: Thu, 3 Apr 2014 17:44:48 +0200 Subject: [PATCH 10/33] Debugger: More direct way to extract dynamic QObject properties This avoids the address == -1 problem for generated values with LLDB. Change-Id: I13cfc7387d8e5329b588d6d841cd9c2322270363 Reviewed-by: Christian Stenger --- share/qtcreator/debugger/dumper.py | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/share/qtcreator/debugger/dumper.py b/share/qtcreator/debugger/dumper.py index 326d34fd390..3d9f6bcd793 100644 --- a/share/qtcreator/debugger/dumper.py +++ b/share/qtcreator/debugger/dumper.py @@ -1037,15 +1037,15 @@ class DumperBase: addr += 1 return result - def generateQListChildren(self, value): - base = self.extractPointer(value) + def listChildrenGenerator(self, addr, typeName): + innerType = self.lookupType(self.qtNamespace() + typeName) + base = self.extractPointer(addr) begin = self.extractInt(base + 8) end = self.extractInt(base + 12) array = base + 16 if self.qtVersion() < 0x50000: array += self.ptrSize() size = end - begin - innerType = self.templateArgument(value.type, 0) innerSize = innerType.sizeof stepSize = self.ptrSize() addr = array + begin * stepSize @@ -1084,19 +1084,9 @@ class DumperBase: # Dynamic properties. if extraData: - propertyNames = extraData + ptrSize - propertyValues = extraData + 2 * ptrSize - - ns = self.qtNamespace() - - typ = self.lookupType(ns + "QList<" + ns + "QByteArray>") - names = self.createValue(propertyNames, typ) - - typ = self.lookupType(ns + "QList<" + ns + "QVariant>") - values = self.createValue(propertyValues, typ) - - for (k, v) in zip(self.generateQListChildren(names), - self.generateQListChildren(values)) : + names = self.listChildrenGenerator(extraData + ptrSize, "QByteArray") + values = self.listChildrenGenerator(extraData + 2 * ptrSize, "QVariant") + for (k, v) in zip(names, values): with SubItem(self, propertyCount): self.put('key="%s",' % self.encodeByteArray(k)) self.put('keyencoded="%s",' % Hex2EncodedLatin1) From 12f5bbccebc82b49291bf8d4c432a88454c60e58 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Thu, 3 Apr 2014 12:33:14 +0200 Subject: [PATCH 11/33] QmlProfiler: Guess the trace end time if we don't receive EndTrace Task-number: QTCREATORBUG-11952 Change-Id: Ie55b616a1fc54e0cccac5560ec66fb7cc496c8e2 Reviewed-by: Robert Loehning Reviewed-by: Kai Koehne Reviewed-by: Eike Ziller --- src/libs/qmldebug/qmlprofilertraceclient.cpp | 2 +- src/libs/qmldebug/qmlprofilertraceclient.h | 2 +- src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp | 8 +++++--- src/plugins/qmlprofiler/qmlprofilerclientmanager.h | 2 +- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/libs/qmldebug/qmlprofilertraceclient.cpp b/src/libs/qmldebug/qmlprofilertraceclient.cpp index 7866b3cfaa0..05ffcab3a55 100644 --- a/src/libs/qmldebug/qmlprofilertraceclient.cpp +++ b/src/libs/qmldebug/qmlprofilertraceclient.cpp @@ -186,7 +186,7 @@ void QmlProfilerTraceClient::messageReceived(const QByteArray &data) d->maximumTime = qMax(time, d->maximumTime); } } else if (messageType == Complete) { - emit complete(); + emit complete(d->maximumTime); } else if (messageType == SceneGraphFrame) { int sgEventType; int count = 0; diff --git a/src/libs/qmldebug/qmlprofilertraceclient.h b/src/libs/qmldebug/qmlprofilertraceclient.h index 8705207321b..6d38ecd2823 100644 --- a/src/libs/qmldebug/qmlprofilertraceclient.h +++ b/src/libs/qmldebug/qmlprofilertraceclient.h @@ -97,7 +97,7 @@ public slots: void sendRecordingStatus(); signals: - void complete(); + void complete(qint64 maximumTime); void gap(qint64 time); void event(int event, qint64 time); void traceFinished( qint64 time ); diff --git a/src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp b/src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp index ace876168d9..2955832505e 100644 --- a/src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp +++ b/src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp @@ -172,8 +172,8 @@ void QmlProfilerClientManager::connectClientSignals() { QTC_ASSERT(d->profilerState, return); if (d->qmlclientplugin) { - connect(d->qmlclientplugin.data(), SIGNAL(complete()), - this, SLOT(qmlComplete())); + connect(d->qmlclientplugin.data(), SIGNAL(complete(qint64)), + this, SLOT(qmlComplete(qint64))); connect(d->qmlclientplugin.data(), SIGNAL(rangedEvent(int,int,qint64,qint64,QStringList,QmlDebug::QmlEventLocation, qint64,qint64,qint64,qint64,qint64)), @@ -354,8 +354,10 @@ void QmlProfilerClientManager::retryMessageBoxFinished(int result) } } -void QmlProfilerClientManager::qmlComplete() +void QmlProfilerClientManager::qmlComplete(qint64 maximumTime) { + if (maximumTime > d->modelManager->traceTime()->endTime()) + d->modelManager->traceTime()->setEndTime(maximumTime); d->qmlDataReady = true; if (!d->v8clientplugin || d->v8clientplugin.data()->status() != QmlDebug::Enabled || d->v8DataReady) { emit dataReadyForProcessing(); diff --git a/src/plugins/qmlprofiler/qmlprofilerclientmanager.h b/src/plugins/qmlprofiler/qmlprofilerclientmanager.h index a1c6791ce15..a96c2a909de 100644 --- a/src/plugins/qmlprofiler/qmlprofilerclientmanager.h +++ b/src/plugins/qmlprofiler/qmlprofilerclientmanager.h @@ -72,7 +72,7 @@ private slots: void connectionStateChanged(); void retryMessageBoxFinished(int result); - void qmlComplete(); + void qmlComplete(qint64 maximumTime); void v8Complete(); void profilerStateChanged(); From b455518c383495d4e2c377978b7193816f362a0f Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Fri, 4 Apr 2014 09:43:14 +0200 Subject: [PATCH 12/33] Fix warning about converting enumeration to bool in Android manifest editor. Change-Id: Ib4b51080d878daf96709b77293604eada6555b69 Reviewed-by: Daniel Teske --- src/plugins/android/androidmanifesteditorwidget.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/android/androidmanifesteditorwidget.cpp b/src/plugins/android/androidmanifesteditorwidget.cpp index 4dbf9185735..a0d75a6cbac 100644 --- a/src/plugins/android/androidmanifesteditorwidget.cpp +++ b/src/plugins/android/androidmanifesteditorwidget.cpp @@ -1291,7 +1291,7 @@ void AndroidManifestEditorWidget::setHDPIIcon() void AndroidManifestEditorWidget::defaultPermissionCheckBoxClicked() { if (m_defaultPermissonsCheckBox->checkState() == Qt::PartiallyChecked) - m_defaultPermissonsCheckBox->setChecked(Qt::Checked); + m_defaultPermissonsCheckBox->setChecked(true); setDirty(true); } From df5d9f99fbff91c4bea44264db1a3e4f56848ac1 Mon Sep 17 00:00:00 2001 From: Przemyslaw Gorszkowski Date: Mon, 31 Mar 2014 13:10:06 +0200 Subject: [PATCH 13/33] C++: fix findusage for member of typedefed anonymous struct Task-number: QTCREATORBUG-11859 Task-number: QTCREATORBUG-11860 Change-Id: I7484b3b88daefbb3c76bb86a9b573e8291072872 Reviewed-by: Orgad Shaneh Reviewed-by: Nikolai Kosjar (cherry picked from commit 5416557a0b9247e911180a7cce4a5ed3b0c0f351) Reviewed-by: Przemyslaw Gorszkowski Reviewed-by: Eike Ziller --- src/libs/cplusplus/LookupContext.cpp | 7 +-- src/libs/cplusplus/LookupContext.h | 2 +- .../cplusplus/findusages/tst_findusages.cpp | 44 +++++++++++++++++++ 3 files changed, 49 insertions(+), 4 deletions(-) diff --git a/src/libs/cplusplus/LookupContext.cpp b/src/libs/cplusplus/LookupContext.cpp index a1a2eeb8227..05f5900edc3 100644 --- a/src/libs/cplusplus/LookupContext.cpp +++ b/src/libs/cplusplus/LookupContext.cpp @@ -686,7 +686,7 @@ void ClassOrNamespace::lookup_helper(const Name *name, ClassOrNamespace *binding for (; cit != citEnd; ++cit) { const AnonymousNameId *anonymousNameId = cit.key(); ClassOrNamespace *a = cit.value(); - if (!binding->_declaredAnonymouses.contains(anonymousNameId)) + if (!binding->_declaredOrTypedefedAnonymouses.contains(anonymousNameId)) lookup_helper(name, a, result, processed, binding->_templateId); } } @@ -1591,10 +1591,11 @@ bool CreateBindings::visit(Declaration *decl) } } } - } else if (Class *clazz = decl->type()->asClassType()) { + } + if (Class *clazz = decl->type()->asClassType()) { if (const Name *name = clazz->name()) { if (const AnonymousNameId *anonymousNameId = name->asAnonymousNameId()) - _currentClassOrNamespace->_declaredAnonymouses.insert(anonymousNameId); + _currentClassOrNamespace->_declaredOrTypedefedAnonymouses.insert(anonymousNameId); } } return false; diff --git a/src/libs/cplusplus/LookupContext.h b/src/libs/cplusplus/LookupContext.h index 11c7bc6268a..3bd37079c1b 100644 --- a/src/libs/cplusplus/LookupContext.h +++ b/src/libs/cplusplus/LookupContext.h @@ -140,7 +140,7 @@ private: TemplateNameIdTable _specializations; QMap _instantiations; Anonymouses _anonymouses; - QSet _declaredAnonymouses; + QSet _declaredOrTypedefedAnonymouses; QHash *_scopeLookupCache; diff --git a/tests/auto/cplusplus/findusages/tst_findusages.cpp b/tests/auto/cplusplus/findusages/tst_findusages.cpp index 7287cd154b6..a19351d4801 100644 --- a/tests/auto/cplusplus/findusages/tst_findusages.cpp +++ b/tests/auto/cplusplus/findusages/tst_findusages.cpp @@ -104,6 +104,7 @@ private Q_SLOTS: void templateFunctionParameters(); void anonymousClass_QTCREATORBUG8963(); + void anonymousClass_QTCREATORBUG11859(); void using_insideGlobalNamespace(); void using_insideNamespace(); void using_insideFunction(); @@ -562,6 +563,49 @@ void tst_FindUsages::anonymousClass_QTCREATORBUG8963() QCOMPARE(findUsages.usages().size(), 2); } +void tst_FindUsages::anonymousClass_QTCREATORBUG11859() +{ + const QByteArray src = + "struct Foo {\n" + "};\n" + "typedef struct {\n" + " int Foo;\n" + "} Struct;\n" + "void foo()\n" + "{\n" + " Struct s;\n" + " s.Foo;\n" + "}\n" + ; + + Document::Ptr doc = Document::create("anonymousClass_QTCREATORBUG11859"); + doc->setUtf8Source(src); + doc->parse(); + doc->check(); + + QVERIFY(doc->diagnosticMessages().isEmpty()); + QCOMPARE(doc->globalSymbolCount(), 4U); + + Snapshot snapshot; + snapshot.insert(doc); + + Class *fooAsStruct = doc->globalSymbolAt(0)->asClass(); + QVERIFY(fooAsStruct); + Class *structSymbol = doc->globalSymbolAt(1)->asClass(); + QVERIFY(structSymbol); + QCOMPARE(structSymbol->memberCount(), 1U); + Declaration *fooAsMemberOfAnonymousStruct = structSymbol->memberAt(0)->asDeclaration(); + QVERIFY(fooAsMemberOfAnonymousStruct); + QCOMPARE(fooAsMemberOfAnonymousStruct->name()->identifier()->chars(), "Foo"); + + FindUsages findUsages(src, doc, snapshot); + findUsages(fooAsStruct); + QCOMPARE(findUsages.references().size(), 1); + + findUsages(fooAsMemberOfAnonymousStruct); + QCOMPARE(findUsages.references().size(), 2); +} + void tst_FindUsages::using_insideGlobalNamespace() { const QByteArray src = From 5d76b4339a717cd944c4a3c27eac860b8111d645 Mon Sep 17 00:00:00 2001 From: Przemyslaw Gorszkowski Date: Tue, 1 Apr 2014 10:32:13 +0200 Subject: [PATCH 14/33] C++: nested class with enclosing template class The parent of instantiation of nested class of template class should be the instantiation of enclosing template class. Task-number: QTCREATORBUG-11752 Change-Id: I8875c738848b85731f5ea88a60da190b4b0ad18f Reviewed-by: Orgad Shaneh Reviewed-by: Nikolai Kosjar Reviewed-by: Eike Ziller --- src/libs/cplusplus/LookupContext.cpp | 1 + src/plugins/cpptools/cppcompletion_test.cpp | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/libs/cplusplus/LookupContext.cpp b/src/libs/cplusplus/LookupContext.cpp index 05f5900edc3..b80ca122bdf 100644 --- a/src/libs/cplusplus/LookupContext.cpp +++ b/src/libs/cplusplus/LookupContext.cpp @@ -1268,6 +1268,7 @@ void ClassOrNamespace::NestedClassInstantiator::instantiate(ClassOrNamespace *en } } + nestedClassOrNamespaceInstantiation->_parent = enclosingTemplateClassInstantiation; instantiate(nestedClassOrNamespace, nestedClassOrNamespaceInstantiation); enclosingTemplateClassInstantiation->_classOrNamespaces[nestedName] = diff --git a/src/plugins/cpptools/cppcompletion_test.cpp b/src/plugins/cpptools/cppcompletion_test.cpp index d87f6719512..2b729b254f0 100644 --- a/src/plugins/cpptools/cppcompletion_test.cpp +++ b/src/plugins/cpptools/cppcompletion_test.cpp @@ -2233,6 +2233,22 @@ void CppToolsPlugin::test_completion_data() " double val = @\n" "}\n" ) << _("d.constBegin()->") << (QStringList()); + + QTest::newRow("nested_class_in_template_class_QTCREATORBUG-11752") << _( + "template \n" + "struct Temp\n" + "{\n" + " struct Nested1 { T t; };\n" + " struct Nested2 { Nested1 n1; };\n" + "};\n" + "struct Foo { int foo; };\n" + "void fun() {\n" + " Temp::Nested2 n2;\n" + " @\n" + "}\n" + ) << _("n2.n1.t.") << (QStringList() + << QLatin1String("foo") + << QLatin1String("Foo")); } void CppToolsPlugin::test_completion_member_access_operator() From 0369e2a11437a96b8c1c41ffacc1ea4e82ec97d4 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Thu, 3 Apr 2014 08:58:19 +0200 Subject: [PATCH 15/33] Squish: Remove workaround QTCREATORBUG-11548 has a quick fix now. Change-Id: Ia9f38f58bf5d11d5ece4779fd7527fbf8ae65fb1 Reviewed-by: Robert Loehning --- tests/system/shared/workarounds.py | 54 ---------------------- tests/system/suite_QMLS/tst_QMLS04/test.py | 32 ++++++------- 2 files changed, 13 insertions(+), 73 deletions(-) diff --git a/tests/system/shared/workarounds.py b/tests/system/shared/workarounds.py index 26441bf418b..44074ed0dac 100644 --- a/tests/system/shared/workarounds.py +++ b/tests/system/shared/workarounds.py @@ -260,7 +260,6 @@ class JIRA: def __initBugDict__(self): self.__bugs__= { 'QTCREATORBUG-6853':self._workaroundCreator6853_, - 'QTCREATORBUG-11548':self._workaroundCreator11548_ } # helper function - will be called if no workaround for the requested bug is deposited def _exitFatal_(self, bugType, number): @@ -271,56 +270,3 @@ class JIRA: def _workaroundCreator6853_(self, *args): if "Release" in args[0] and platform.system() == "Linux": snooze(2) - - def _workaroundCreator11548_(self, *args): - if len(args) != 3: - test.fatal("Need 3 arguments (project directory, project name, path to the file to " - "be added to the qrc file) to perform workaround.") - raise JIRA.JiraException("Wrong invocation of _workaroundCreator11548_().") - (pDir, pName, fPath) = args - try: - selectFromCombo(":Qt Creator_Core::Internal::NavComboBox", "Projects") - navigator = waitForObject(":Qt Creator_Utils::NavigationTreeView") - try: - openItemContextMenu(navigator, "%s.Resources.qml\.qrc" % pName, 5, 5, 0) - except: - treeElement = addBranchWildcardToRoot("%s.Resources.qml\.qrc" % pName) - openItemContextMenu(navigator, treeElement, 5, 5, 0) - if platform.system() == 'Darwin': - waitFor("macHackActivateContextMenuItem('Add Existing Files...')", 6000) - else: - activateItem(waitForObjectItem(":Qt Creator.Project.Menu.Folder_QMenu", - "Add Existing Files...")) - selectFromFileDialog(fPath) - # handle version control if necessary - try: - dlg = ("{name='Core__Internal__AddToVcsDialog' type='Core::Internal::AddToVcsDialog' " - "visible='1' windowTitle='Add to Version Control'}") - waitForObject(dlg, 3000) - clickButton(waitForObject("{text='No' type='QPushButton' unnamed='1' " - "visible='1' window=%s}" % dlg)) - except: - pass - try: - openItemContextMenu(navigator, "%s.Resources.qml\.qrc" % pName, 5, 5, 0) - except: - treeElement = addBranchWildcardToRoot("%s.Resources.qml\.qrc" % pName) - openItemContextMenu(navigator, treeElement, 5, 5, 0) - if platform.system() == 'Darwin': - waitFor("macHackActivateContextMenuItem('Open in Editor')", 6000) - else: - activateItem(waitForObjectItem(":Qt Creator.Project.Menu.Folder_QMenu", - "Open in Editor")) - resourceEditorView = waitForObject("{type='ResourceEditor::Internal::ResourceView' " - "unnamed='1' visible='1'}") - fileName = os.path.basename(fPath) - doubleClick(waitForObjectItem(resourceEditorView, "/.qml/%s" - % fileName.replace(".", "\\.").replace("_", "\\_"))) - mainWindow = waitForObject(":Qt Creator_Core::Internal::MainWindow") - if not waitFor("fileName in str(mainWindow.windowTitle)", 3000): - raise JIRA.Exception("Could not open %s." % fileName) - else: - test.passes("%s has been added to the qrc file." % fileName) - except: - test.fatal("Failed to perform workaround for QTCREATORBUG-11548") - raise JIRA.JiraException("Failed to perform workaround for QTCREATORBUG-11548") diff --git a/tests/system/suite_QMLS/tst_QMLS04/test.py b/tests/system/suite_QMLS/tst_QMLS04/test.py index 59011f90c19..2c57f9b368b 100644 --- a/tests/system/suite_QMLS/tst_QMLS04/test.py +++ b/tests/system/suite_QMLS/tst_QMLS04/test.py @@ -57,7 +57,6 @@ def main(): else: test.fail("Refactoring of Text to MyComponent failed in source file. Content of editor:\n%s" % codeText) myCompTE = "SampleApp.Resources.qml\\.qrc./.qml/MyComponent\\.qml" - filePath = os.path.join(projectDir, "SampleApp", "qml", "MyComponent.qml") # there should be new QML file generated with name "MyComponent.qml" try: waitForObjectItem(":Qt Creator_Utils::NavigationTreeView", myCompTE, 3000) @@ -65,23 +64,18 @@ def main(): try: waitForObjectItem(":Qt Creator_Utils::NavigationTreeView", addBranchWildcardToRoot(myCompTE), 1000) except: - test.xverify(False, "Refactoring failed - file MyComponent.qml was not generated " - "properly in project explorer (QTCREATORBUG-11548") - try: - JIRA.performWorkaroundForBug(11548, JIRA.Bug.CREATOR, projectDir, "SampleApp", filePath) - except JIRA.JiraException: - #save and exit - invokeMenuItem("File", "Save All") - invokeMenuItem("File", "Exit") - return -# following section is done by the workaround for 11548 already - uncomment when removing workaround -# test.passes("Refactoring - file MyComponent.qml was generated properly in project explorer") -# # open MyComponent.qml file for verification -# if not openDocument(myCompTE): -# test.fatal("Could not open MyComponent.qml.") -# invokeMenuItem("File", "Save All") -# invokeMenuItem("File", "Exit") -# return + test.fail("Refactoring failed - file MyComponent.qml was not generated properly in project explorer") + #save and exit + invokeMenuItem("File", "Save All") + invokeMenuItem("File", "Exit") + return + test.passes("Refactoring - file MyComponent.qml was generated properly in project explorer") + # open MyComponent.qml file for verification + if not openDocument(myCompTE): + test.fatal("Could not open MyComponent.qml.") + invokeMenuItem("File", "Save All") + invokeMenuItem("File", "Exit") + return editorArea = waitForObject(":Qt Creator_QmlJSEditor::QmlJSTextEditorWidget") codeText = str(editorArea.plainText) # there should be Text item in new file @@ -92,6 +86,6 @@ def main(): #save and exit invokeMenuItem("File", "Save All") # check if new file was created in file system - test.verify(os.path.exists(filePath), + test.verify(os.path.exists(os.path.join(projectDir, "SampleApp", "qml", "MyComponent.qml")), "Verifying if MyComponent.qml exists in file system after save") invokeMenuItem("File", "Exit") From 54bed74549d4366aaedb035c370bf0ed331d4922 Mon Sep 17 00:00:00 2001 From: Adam Strzelecki Date: Thu, 3 Apr 2014 18:06:27 +0200 Subject: [PATCH 16/33] Make Enter Find String enabled regardless of Find Previously Enter Find String (Ctrl+E) required opening Find toolbar at least once, which is minor but noticeable annoyance. With this change it always opens Find without focus, so it lines up with Find Next Selected behavior and also with default Mac behavior. It does also show yellow highlight for all occurrences without moving cursor. Task-number: QTCREATORBUG-8993 Change-Id: I1eb8f151d5482895cc49fa5281e7d4e66cf31545 Reviewed-by: Eike Ziller --- src/plugins/coreplugin/find/findtoolbar.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/plugins/coreplugin/find/findtoolbar.cpp b/src/plugins/coreplugin/find/findtoolbar.cpp index 2d2e0d4595d..01965ef654d 100644 --- a/src/plugins/coreplugin/find/findtoolbar.cpp +++ b/src/plugins/coreplugin/find/findtoolbar.cpp @@ -353,6 +353,8 @@ void FindToolBar::updateFindAction() m_findInDocumentAction->setEnabled(enabled); m_findNextSelectedAction->setEnabled(enabled); m_findPreviousSelectedAction->setEnabled(enabled); + if (QApplication::clipboard()->supportsFindBuffer()) + m_enterFindStringAction->setEnabled(enabled); } void FindToolBar::updateToolBar() @@ -371,8 +373,6 @@ void FindToolBar::updateToolBar() m_wholeWordAction->setEnabled(enabled); m_regularExpressionAction->setEnabled(enabled); m_preserveCaseAction->setEnabled(replaceEnabled && !hasFindFlag(FindRegularExpression)); - if (QApplication::clipboard()->supportsFindBuffer()) - m_enterFindStringAction->setEnabled(enabled); bool replaceFocus = m_ui.replaceEdit->hasFocus(); m_ui.findEdit->setEnabled(enabled); m_ui.findLabel->setEnabled(enabled); @@ -529,6 +529,7 @@ void FindToolBar::invokeResetIncrementalSearch() void FindToolBar::putSelectionToFindClipboard() { + openFind(false); const QString text = m_currentDocumentFind->currentFindString(); QApplication::clipboard()->setText(text, QClipboard::FindBuffer); setFindText(text); From 8864d053299f36be288883c061c3f23f4257fa0f Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Fri, 4 Apr 2014 13:14:41 +0200 Subject: [PATCH 17/33] Version bump Change-Id: I0c690e5010ade7f3ebbb4a94163d7b44da13c10d --- qtcreator.pri | 4 ++-- qtcreator.qbs | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/qtcreator.pri b/qtcreator.pri index 4aacea5a0f2..65073ea6332 100644 --- a/qtcreator.pri +++ b/qtcreator.pri @@ -1,8 +1,8 @@ !isEmpty(QTCREATOR_PRI_INCLUDED):error("qtcreator.pri already included") QTCREATOR_PRI_INCLUDED = 1 -QTCREATOR_VERSION = 3.0.84 -QTCREATOR_COMPAT_VERSION = 3.0.84 +QTCREATOR_VERSION = 3.1.0 +QTCREATOR_COMPAT_VERSION = 3.1.0 BINARY_ARTIFACTS_BRANCH = 3.1 # enable c++11 on everything but mac/release (breaks 10.6) diff --git a/qtcreator.qbs b/qtcreator.qbs index 6ed7254434a..d1d2c55e7a4 100644 --- a/qtcreator.qbs +++ b/qtcreator.qbs @@ -3,12 +3,12 @@ import qbs 1.0 Project { property bool withAutotests: qbs.buildVariant === "debug" property string ide_version_major: '3' - property string ide_version_minor: '0' - property string ide_version_release: '84' + property string ide_version_minor: '1' + property string ide_version_release: '0' property string qtcreator_version: ide_version_major + '.' + ide_version_minor + '.' + ide_version_release property string ide_compat_version_major: '3' - property string ide_compat_version_minor: '0' - property string ide_compat_version_release: '84' + property string ide_compat_version_minor: '1' + property string ide_compat_version_release: '0' property string qtcreator_compat_version: ide_compat_version_major + '.' + ide_compat_version_minor + '.' + ide_compat_version_release property path ide_source_tree: path property string ide_app_path: qbs.targetOS.contains("osx") ? "" : "bin" From 92239b6753e6766706a525771974306cc5d6e262 Mon Sep 17 00:00:00 2001 From: Robert Loehning Date: Fri, 4 Apr 2014 14:13:21 +0200 Subject: [PATCH 18/33] Squish: Verify elapsed time from QML Profiler Task-number: QTCREATORBUG-11952 Change-Id: I1ef4b5ec7dfcf56cb7c07882b8e091fd84b26121 Reviewed-by: Christian Stenger --- .../suite_debugger/tst_simple_analyze/test.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/tests/system/suite_debugger/tst_simple_analyze/test.py b/tests/system/suite_debugger/tst_simple_analyze/test.py index 4490d0320dd..9ac28b149bd 100644 --- a/tests/system/suite_debugger/tst_simple_analyze/test.py +++ b/tests/system/suite_debugger/tst_simple_analyze/test.py @@ -66,6 +66,9 @@ def main(): invokeMenuItem("File", "Exit") def performTest(workingDir, projectName, targetCount, availableConfigs, disableOptimizer): + def __elapsedTime__(elapsedTimeLabelText): + return float(re.search("Elapsed:\s+(-?\d+\.\d+) s", elapsedTimeLabelText).group(1)) + for kit, config in availableConfigs: # switching from MSVC to MinGW build will fail on the clean step of 'Rebuild All' because # of differences between MSVC's and MinGW's Makefile (so clean before switching kits) @@ -91,11 +94,19 @@ def performTest(workingDir, projectName, targetCount, availableConfigs, disableO if not test.verify(recordButton.checked, "Verifying recording is enabled."): test.log("Enabling recording for the test run") clickButton(recordButton) - clickButton(waitForObject(":Analyzer Toolbar.Start_QToolButton")) + startButton = waitForObject(":Analyzer Toolbar.Start_QToolButton") + clickButton(startButton) stopButton = waitForObject(":Qt Creator.Stop_QToolButton") elapsedLabel = waitForObject(":Analyzer Toolbar.Elapsed:_QLabel", 3000) waitFor('"Elapsed: 5" in str(elapsedLabel.text)', 20000) clickButton(stopButton) + test.verify(waitFor("not stopButton.enabled", 5000), "stopButton should be disabled") + test.verify(waitFor("startButton.enabled", 2000), "startButton should be enabled") + try: + test.verify(waitFor("__elapsedTime__(str(elapsedLabel.text)) > 0", 2000), + "Elapsed time should be positive in string '%s'" % str(elapsedLabel.text)) + except: + test.fatal("Could not read elapsed time from '%s'" % str(elapsedLabel.text)) if safeClickTab("JavaScript"): model = findObject(":JavaScript.QmlProfilerEventsTable_QmlProfiler::" "Internal::QV8ProfilerEventsMainView").model() From 4dbfd2883d9fcdccf28937170fc4271808a07685 Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Thu, 3 Apr 2014 16:43:01 +0200 Subject: [PATCH 19/33] SDKtool: Fix test case and compiler warning Do check for toolchains not defined in the toolchains.xml file again, but also allow for toolchain IDs to be ABIs. This partially reverts a commit from Kai made earlier. Change-Id: Idad004f0bff655bc136bc43de5837d61a045e311 Reviewed-by: Kai Koehne Reviewed-by: Eike Ziller --- src/tools/sdktool/addkitoperation.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/tools/sdktool/addkitoperation.cpp b/src/tools/sdktool/addkitoperation.cpp index 588b33bb8de..ec32e4b9a98 100644 --- a/src/tools/sdktool/addkitoperation.cpp +++ b/src/tools/sdktool/addkitoperation.cpp @@ -40,6 +40,8 @@ #include "settings.h" +#include + #include // Qt version file stuff: @@ -298,6 +300,15 @@ bool AddKitOperation::test() const KeyValuePairList() << KeyValuePair(QLatin1String("PE.Profile.Data/extraData"), QVariant(QLatin1String("extraValue")))); if (!empty.isEmpty()) return false; + // Do not fail if TC is an ABI: + empty = addKit(map, tcMap, qtMap, devMap, + QLatin1String("testId"), QLatin1String("Test Kit"), QLatin1String("/tmp/icon.png"), + QString(), 1, QLatin1String("/usr/bin/gdb-test"), + QByteArray("Desktop"), QLatin1String("{dev-id}"), QString(), + QLatin1String("x86-linux-generic-elf-64bit"), QLatin1String("{qt-id}"), QLatin1String("unsupported/mkspec"), + KeyValuePairList() << KeyValuePair(QLatin1String("PE.Profile.Data/extraData"), QVariant(QLatin1String("extraValue")))); + if (empty.isEmpty()) + return false; // Fail if Qt is not there: empty = addKit(map, tcMap, qtMap, devMap, QLatin1String("testId"), QLatin1String("Test Kit"), QLatin1String("/tmp/icon.png"), @@ -498,6 +509,14 @@ QVariantMap AddKitOperation::addKit(const QVariantMap &map, const QVariantMap &t return QVariantMap(); } + if (!tc.isEmpty() && !AddToolChainOperation::exists(tcMap, tc)) { + QRegExp abiRegExp = QRegExp(QLatin1String("[a-z0-9]+-[a-z0-9]+-[a-z0-9]+-[a-z0-9]+-(8|16|32|64|128)bit")); + if (!abiRegExp.exactMatch(tc)) { + std::cerr << "Error: Toolchain " << qPrintable(tc) << " does not exist." << std::endl; + return QVariantMap(); + } + } + QString qtId = qt; if (!qtId.isEmpty() && !qtId.startsWith(QLatin1String("SDK."))) qtId = QString::fromLatin1("SDK.") + qt; From bc4dadd6c083999282426a17f14497fd52af20f7 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Fri, 4 Apr 2014 15:31:30 +0200 Subject: [PATCH 20/33] Tests: Fix fileName offset auto test on Win Change-Id: I7eae2ffbee284720b23c33c353a2a0aaae0a11f5 Reviewed-by: hjk --- tests/auto/debugger/tst_offsets.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/auto/debugger/tst_offsets.cpp b/tests/auto/debugger/tst_offsets.cpp index b78374f2b7f..3abba3aa3c8 100644 --- a/tests/auto/debugger/tst_offsets.cpp +++ b/tests/auto/debugger/tst_offsets.cpp @@ -79,7 +79,11 @@ void tst_offsets::offsets_data() << int((char *)&p->fileName - (char *)p); if (qtVersion > 0x50200) #ifdef Q_OS_WIN +# ifdef Q_CC_MSVC + data << 184 << 272; +# else // MinGW data << 180 << 272; +# endif #else data << 176 << 272; #endif From 26d5059961d5b8bd25d3156c5004468b5fb160a8 Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 4 Apr 2014 15:37:55 +0200 Subject: [PATCH 21/33] Debugger: More robust Qt version extraction with LLDB Change-Id: I1c690e5010ade7f3ebbb4a94163d7b44da13c10d Reviewed-by: Christian Stenger --- share/qtcreator/debugger/lldbbridge.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py index 31065cdb775..3cd37e1c60d 100644 --- a/share/qtcreator/debugger/lldbbridge.py +++ b/share/qtcreator/debugger/lldbbridge.py @@ -446,13 +446,21 @@ class Dumper(DumperBase): qtNamespace = name[:name.find('qVersion')] self.qtNamespace = lambda: qtNamespace - res = "" - try: - res = self.parseAndEvaluate(name + '()') - except: - res = self.parseAndEvaluate('((const char*())%s)()' % name) - version = str(res) + options = lldb.SBExpressionOptions() + res = self.target.EvaluateExpression(name + '()', options) + if not res.IsValid() or not res.GetType().IsPointerType(): + exp = '((const char*())%s)()' % name + res = self.target.EvaluateExpression(exp, options) + + if not res.IsValid() or not res.GetType().IsPointerType(): + exp = '((const char*())_Z8qVersionv)()' + res = self.target.EvaluateExpression(exp, options) + + if not res.IsValid() or not res.GetType().IsPointerType(): + continue + + version = str(res) if version.count('.') != 2: continue From 65e1923fb0a8c8dba9c94e30d574354e7480286d Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Fri, 4 Apr 2014 09:43:47 +0200 Subject: [PATCH 22/33] Fix warning about unused variable in IOS. Convert Q_PID to int using utility function. Change-Id: Iab18b1b4044e323e14e63f9159a82ad5040117ce Reviewed-by: Fawzi Mohamed --- src/plugins/ios/iosdebugsupport.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/plugins/ios/iosdebugsupport.cpp b/src/plugins/ios/iosdebugsupport.cpp index dfc747b3513..4c4dd9c87c2 100644 --- a/src/plugins/ios/iosdebugsupport.cpp +++ b/src/plugins/ios/iosdebugsupport.cpp @@ -47,6 +47,7 @@ #include #include #include +#include #include #include @@ -216,9 +217,7 @@ void IosDebugSupport::handleGotInferiorPid(Q_PID pid, int qmlPort) { if (pid > 0) { //m_runControl->engine()->notifyInferiorPid(pid); -#ifndef Q_OS_WIN // Q_PID might be 64 bit pointer... - m_runControl->engine()->notifyEngineRemoteSetupDone(int(pid), qmlPort); -#endif + m_runControl->engine()->notifyEngineRemoteSetupDone(int(Utils::qPidToPid(pid)), qmlPort); } else { m_runControl->engine()->notifyEngineRemoteSetupFailed( tr("Got an invalid process id.")); From 254ecd19b2e6402dfb04170e90b28c09fdeb0b75 Mon Sep 17 00:00:00 2001 From: Daniel Teske Date: Fri, 4 Apr 2014 12:29:51 +0200 Subject: [PATCH 23/33] ResourceNodes: Fix adding to prefix '/' node Change-Id: I663fd2ae419e6bad990223dd5c2c38dd62e2f35c Reviewed-by: Eike Ziller --- src/plugins/resourceeditor/resourcenode.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/plugins/resourceeditor/resourcenode.cpp b/src/plugins/resourceeditor/resourcenode.cpp index 3aeb932e603..c2ca90a436f 100644 --- a/src/plugins/resourceeditor/resourcenode.cpp +++ b/src/plugins/resourceeditor/resourcenode.cpp @@ -252,6 +252,12 @@ ProjectExplorer::FolderNode::AddNewInformation ResourceTopLevelNode::addNewInfor p = 125; else if (projectNode() == context) p = 150; // steal from our project node + // The ResourceFolderNode '/' defers to us, as otherwise + // two nodes would be responsible for '/' + // Thus also return a high priority for it + if (ResourceFolderNode *rfn = qobject_cast(context)) + if (rfn->prefix() == QLatin1String("/")) + p = 150; } return AddNewInformation(name, p); From 453d191d0f351d4588fa5840fe94684c93088f25 Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Fri, 4 Apr 2014 13:03:40 +0200 Subject: [PATCH 24/33] Prevent 'qmake -query' from bringing up modal message dialog on startup Temporarily set the ErrorMode so that no Windows error message box will show up in case qmake fails to run (e.g. because of missing .dll's). The error mode will automatically be inherited by child processes. This fixes an issue that actually became virulent by another bug fix ( cbb053068ccc6399dc7a39 ). Task-number: QTCREATORBUG-11962 Change-Id: I5baccf52baee46f3d45b69ea0a13d77e4e113fbd Reviewed-by: Friedemann Kleint Reviewed-by: Tobias Hunger --- src/libs/utils/winutils.cpp | 18 ++++++++++++++++++ src/libs/utils/winutils.h | 17 +++++++++++++++++ src/plugins/qtsupport/baseqtversion.cpp | 4 ++++ 3 files changed, 39 insertions(+) diff --git a/src/libs/utils/winutils.cpp b/src/libs/utils/winutils.cpp index 4e75d1eeeee..dfdb0cadd95 100644 --- a/src/libs/utils/winutils.cpp +++ b/src/libs/utils/winutils.cpp @@ -172,4 +172,22 @@ QTCREATOR_UTILS_EXPORT bool is64BitWindowsBinary(const QString &binaryIn) #endif } +WindowsCrashDialogBlocker::WindowsCrashDialogBlocker() +#ifdef Q_OS_WIN + : silenceErrorMode(SEM_NOGPFAULTERRORBOX | SEM_NOOPENFILEERRORBOX | SEM_FAILCRITICALERRORS), + originalErrorMode(SetErrorMode(silenceErrorMode)) +#endif +{ +} + +WindowsCrashDialogBlocker::~WindowsCrashDialogBlocker() +{ +#ifdef Q_OS_WIN + unsigned int errorMode = SetErrorMode(originalErrorMode); + // someone else messed with the error mode in between? Better not touch ... + QTC_ASSERT(errorMode == silenceErrorMode, SetErrorMode(errorMode)); +#endif +} + + } // namespace Utils diff --git a/src/libs/utils/winutils.h b/src/libs/utils/winutils.h index 9b5358791a4..4fa59c67ab4 100644 --- a/src/libs/utils/winutils.h +++ b/src/libs/utils/winutils.h @@ -49,6 +49,23 @@ QTCREATOR_UTILS_EXPORT bool is64BitWindowsSystem(); // Check for a 64bit binary. QTCREATOR_UTILS_EXPORT bool is64BitWindowsBinary(const QString &binary); +// +// RAII class to temporarily prevent windows crash messages from popping up using the +// application-global (!) error mode. +// +// Useful primarily for QProcess launching, since the setting will be inherited. +// +class QTCREATOR_UTILS_EXPORT WindowsCrashDialogBlocker { +public: + WindowsCrashDialogBlocker(); + ~WindowsCrashDialogBlocker(); +#ifdef Q_OS_WIN +private: + const unsigned int silenceErrorMode; + const unsigned int originalErrorMode; +#endif // Q_OS_WIN +}; + } // namespace Utils #endif // WINUTILS_H diff --git a/src/plugins/qtsupport/baseqtversion.cpp b/src/plugins/qtsupport/baseqtversion.cpp index 7a405484357..3ded2c6b24b 100644 --- a/src/plugins/qtsupport/baseqtversion.cpp +++ b/src/plugins/qtsupport/baseqtversion.cpp @@ -48,6 +48,7 @@ #include #include #include +#include #include #include @@ -1206,6 +1207,9 @@ static QByteArray runQmakeQuery(const FileName &binary, const Environment &env, const int timeOutMS = 30000; // Might be slow on some machines. + // Prevent e.g. qmake 4.x on MinGW to show annoying errors about missing dll's. + WindowsCrashDialogBlocker crashDialogBlocker; + QProcess process; process.setEnvironment(env.toStringList()); process.start(binary.toString(), QStringList(QLatin1String("-query")), QIODevice::ReadOnly); From 161a1eb3ae440b35fe37f27cdbc5136d05ab4816 Mon Sep 17 00:00:00 2001 From: hjk Date: Thu, 3 Apr 2014 17:44:48 +0200 Subject: [PATCH 25/33] Debugger: Compile fix in manual test for latest Qt base The #define COMMA trick doesn't work anymore after the latest Q_DECLARE_METATYPE changes. Change-Id: I15cfc7387d8e5329b588d6d841cd9c2322270363 Reviewed-by: Eike Ziller --- tests/manual/debugger/simple/simple_test_app.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/manual/debugger/simple/simple_test_app.cpp b/tests/manual/debugger/simple/simple_test_app.cpp index f054b39bda4..3a8449d8a81 100644 --- a/tests/manual/debugger/simple/simple_test_app.cpp +++ b/tests/manual/debugger/simple/simple_test_app.cpp @@ -4285,8 +4285,9 @@ namespace qthread { Q_DECLARE_METATYPE(QHostAddress) Q_DECLARE_METATYPE(QList) Q_DECLARE_METATYPE(QStringList) -#define COMMA , -Q_DECLARE_METATYPE(QMap) + +typedef QMap QMapUIntQStringList; +Q_DECLARE_METATYPE(QMapUIntQStringList) namespace qvariant { From c5129ecc7bb2b3131de21df058e61428de858d67 Mon Sep 17 00:00:00 2001 From: Sergio Ahumada Date: Mon, 7 Apr 2014 10:51:35 +0200 Subject: [PATCH 26/33] QNX: Add qnx-armle-v7-qcc to the list of mkspecs This was recently introduced in qtbase/9ce697f2d54be6d94381c72af28dda79cbc027d4 Change-Id: Ied71c5d6a3571342153737ccb62de1424931fd51 Reviewed-by: Mehdi Fekari Reviewed-by: Daniel Teske Reviewed-by: Eike Ziller --- src/plugins/qnx/qnxtoolchain.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugins/qnx/qnxtoolchain.cpp b/src/plugins/qnx/qnxtoolchain.cpp index 77372d9bb15..b6e214fb419 100644 --- a/src/plugins/qnx/qnxtoolchain.cpp +++ b/src/plugins/qnx/qnxtoolchain.cpp @@ -106,6 +106,7 @@ QList QnxToolChain::suggestedMkspecList() const { QList mkspecList; mkspecList << Utils::FileName::fromLatin1("qnx-armv7le-qcc"); + mkspecList << Utils::FileName::fromLatin1("qnx-armle-v7-qcc"); mkspecList << Utils::FileName::fromLatin1("qnx-x86-qcc"); mkspecList << Utils::FileName::fromLatin1("blackberry-armv7le-qcc"); mkspecList << Utils::FileName::fromLatin1("blackberry-armle-v7-qcc"); From 8332e665292bf52d3dcad64512631fdfe3a3a9dd Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Mon, 7 Apr 2014 11:11:17 +0200 Subject: [PATCH 27/33] SDKtool: Correctly handle mac ABIs Task-number: QTCREATORBUG-11983 Change-Id: Id70bd18b1b5494db19adb9928277356c4d4a4688 Reviewed-by: Kai Koehne Reviewed-by: Eike Ziller --- src/tools/sdktool/addkitoperation.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/tools/sdktool/addkitoperation.cpp b/src/tools/sdktool/addkitoperation.cpp index ec32e4b9a98..5bb87326dbe 100644 --- a/src/tools/sdktool/addkitoperation.cpp +++ b/src/tools/sdktool/addkitoperation.cpp @@ -309,6 +309,16 @@ bool AddKitOperation::test() const KeyValuePairList() << KeyValuePair(QLatin1String("PE.Profile.Data/extraData"), QVariant(QLatin1String("extraValue")))); if (empty.isEmpty()) return false; + // QTCREATORBUG-11983, mach_o was not covered by the first attempt to fix this. + empty = addKit(map, tcMap, qtMap, devMap, + QLatin1String("testId"), QLatin1String("Test Kit"), QLatin1String("/tmp/icon.png"), + QString(), 1, QLatin1String("/usr/bin/gdb-test"), + QByteArray("Desktop"), QLatin1String("{dev-id}"), QString(), + QLatin1String("x86-macos-generic-mach_o-64bit"), QLatin1String("{qt-id}"), QLatin1String("unsupported/mkspec"), + KeyValuePairList() << KeyValuePair(QLatin1String("PE.Profile.Data/extraData"), QVariant(QLatin1String("extraValue")))); + if (empty.isEmpty()) + return false; + // Fail if Qt is not there: empty = addKit(map, tcMap, qtMap, devMap, QLatin1String("testId"), QLatin1String("Test Kit"), QLatin1String("/tmp/icon.png"), @@ -510,7 +520,7 @@ QVariantMap AddKitOperation::addKit(const QVariantMap &map, const QVariantMap &t } if (!tc.isEmpty() && !AddToolChainOperation::exists(tcMap, tc)) { - QRegExp abiRegExp = QRegExp(QLatin1String("[a-z0-9]+-[a-z0-9]+-[a-z0-9]+-[a-z0-9]+-(8|16|32|64|128)bit")); + QRegExp abiRegExp = QRegExp(QLatin1String("[a-z0-9_]+-[a-z0-9_]+-[a-z0-9_]+-[a-z0-9_]+-(8|16|32|64|128)bit")); if (!abiRegExp.exactMatch(tc)) { std::cerr << "Error: Toolchain " << qPrintable(tc) << " does not exist." << std::endl; return QVariantMap(); From ef4388d43b1c0759d04c1a64c6acd1382f4aa3ae Mon Sep 17 00:00:00 2001 From: hjk Date: Mon, 7 Apr 2014 12:15:07 +0200 Subject: [PATCH 28/33] Debugger: Fix pointer arithmetic in lldbbridge.py Cut-and-past-o in a currently unused code path. Change-Id: I2c690e5010ade7f3ebbb4a94163d7b44da13c10d Reviewed-by: Christian Stenger --- share/qtcreator/debugger/lldbbridge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py index 3cd37e1c60d..fc08421654e 100644 --- a/share/qtcreator/debugger/lldbbridge.py +++ b/share/qtcreator/debugger/lldbbridge.py @@ -144,7 +144,7 @@ def impl_SBValue__add__(self, offset): def impl_SBValue__sub__(self, other): if self.GetType().IsPointerType(): if isinstance(other, int) or isinstance(other, long): - address = self.GetValueAsUnsigned() - offset.GetValueAsSigned() + address = self.GetValueAsUnsigned() - other address = address & 0xFFFFFFFFFFFFFFFF # Force unsigned return self.CreateValueFromAddress(None, address, self.GetType()) if other.GetType().IsPointerType(): From 59b60317351c7f3c8c5ed2422fdfc75936f1b6fb Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Mon, 7 Apr 2014 12:44:45 +0200 Subject: [PATCH 29/33] Doc: update QML Profiler information The JavaScript events are integrated into the Timeline and Events views for apps that use the V4 engine and are built with Qt 5.3. Updated the Events view screenshot and removed the JavaScript view screenshot. Change-Id: Id7e74d91343ff049df580d487e729fdb20c57b0e Reviewed-by: Ulf Hermann --- doc/images/qml-profiler-javascript.png | Bin 7038 -> 0 bytes .../qtcreator-qml-performance-monitor.png | Bin 82849 -> 82390 bytes doc/src/analyze/qtquick-profiler.qdoc | 46 ++++++++++++------ 3 files changed, 32 insertions(+), 14 deletions(-) delete mode 100644 doc/images/qml-profiler-javascript.png mode change 100755 => 100644 doc/images/qtcreator-qml-performance-monitor.png diff --git a/doc/images/qml-profiler-javascript.png b/doc/images/qml-profiler-javascript.png deleted file mode 100644 index b731eb5290f062f099be85fff5038a28484d4c19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7038 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 z zZxn7+eq<|Laqjm&lV^4>C5~q=Gqs;=cWa{TvrXaC)t~gZc-zap3yeQ6nb~M;WVy;X zso+xLVsFped#*R$XRi9wsb0GKgWB%hs=)If-d?MO9fQjk}7Ei_Z1hEz{FB-TSc)Xi3Qf z9fLX@fsJV`@mrq?zqlZA^atba~dbgi> zZ*yaR%b6S3ug?^?yTK)*=JvgNjj~}!4^P^`0d7GvrZ?7}XA(TeA+ERV?3`Bh^B)5H zYyGzt9Qm+*gWE!P@u@|uaU#aeES zJ66AsiC*7+LGU5>*EfQjYnk^tzl1q>4y)3fiEk?wXXMAPFG(tV`p?AbPwfsps1WJ$ Date: Mon, 7 Apr 2014 13:46:04 +0200 Subject: [PATCH 30/33] QmlDesigner: Always warn asynchronously in exceptions Exceptions are likely to be triggered from QML code. Calling QMessageBox::warning() results in a call to exec() and exec() returns back into the Qt event loop. This is dangerous, because QML might have scheduled a deleteLater which is then executed by exec(). This can crash the application, because the object is supposed to be "deleted later" and not directly as a side effect of the signal that was emmited by QML. Task-number: QTCREATORBUG-11946 Change-Id: Icb884847633bd421d3dc7bc034d598ef84d39429 Reviewed-by: Marco Bubke --- .../qmldesigner/designercore/exceptions/exception.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/plugins/qmldesigner/designercore/exceptions/exception.cpp b/src/plugins/qmldesigner/designercore/exceptions/exception.cpp index c00b52f0246..29d820683d7 100644 --- a/src/plugins/qmldesigner/designercore/exceptions/exception.cpp +++ b/src/plugins/qmldesigner/designercore/exceptions/exception.cpp @@ -39,6 +39,13 @@ #include #include +static void showAsyncWarning(const QString &title, const QString &desciption) +{ + QMessageBox *messageBox = new QMessageBox(QMessageBox::Warning, title, desciption, QMessageBox::Ok, Core::ICore::dialogParent()); + messageBox->setAttribute(Qt::WA_DeleteOnClose); + messageBox->setModal(true); + messageBox->show(); +} /*! \defgroup CoreExceptions @@ -156,7 +163,7 @@ QString Exception::description() const void Exception::showException(const QString &title) const { QString t = title.isEmpty() ? QCoreApplication::translate("QmlDesigner", "Error") : title; - QMessageBox::warning(Core::ICore::dialogParent(), t, description()); + showAsyncWarning(t, description()); } /*! From b50b7d20d94b92e3af60c99bb88cecee2e0a28a4 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Mon, 7 Apr 2014 16:14:36 +0200 Subject: [PATCH 31/33] QmlDesigner.PropertyEditor: Give more space to color LineEdit Task-number: QTCREATORBUG-11992 Change-Id: Icb884847633bd421e3dc7bc034d598ef84d33422 Reviewed-by: Marco Bubke Reviewed-by: Leena Miettinen --- .../propertyEditorQmlSources/HelperWidgets/ColorEditor.qml | 2 +- .../propertyEditorQmlSources/HelperWidgets/LineEdit.qml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/HelperWidgets/ColorEditor.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/HelperWidgets/ColorEditor.qml index 168925f6fbd..37f9b63266d 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/HelperWidgets/ColorEditor.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/HelperWidgets/ColorEditor.qml @@ -138,7 +138,7 @@ Column { onAccepted: { colorEditor.color = textField.text } - Layout.preferredWidth: 80 + Layout.fillWidth: true } ColorCheckButton { id: checkButton diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/HelperWidgets/LineEdit.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/HelperWidgets/LineEdit.qml index bcdc246062c..1360264d996 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/HelperWidgets/LineEdit.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/HelperWidgets/LineEdit.qml @@ -86,7 +86,7 @@ Controls.TextField { padding.top: 3 padding.bottom: 1 padding.left: 16 - padding.right: 16 + padding.right: lineEdit.showTranslateCheckBox ? 16 : 1 placeholderTextColor: "gray" background: Rectangle { implicitWidth: 100 From 042c176a000d9f0bc07d18d7f18bd43a2a0bf386 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Thu, 3 Apr 2014 10:42:50 +0200 Subject: [PATCH 32/33] Doc: change filename and page name to match title The Android app tutorial is now a more generic mobile app tutorial, so it was moved to qtquick folder and renamed as creator-mobile-app-tutorial.qdoc. The page name (HTML) was also changed accordingly. Change-Id: I749f45a611b32204e5551884238f79d3d3b639fa Reviewed-by: Sergio Ahumada Reviewed-by: Leena Miettinen (cherry picked from commit 3e0ffdcba46e37dac07080b94e01cbd3de71df47) Reviewed-by: Eike Ziller --- doc/src/projects/creator-projects-overview.qdoc | 2 +- .../creator-mobile-app-tutorial.qdoc} | 2 +- doc/src/widgets/qtdesigner-app-tutorial.qdoc | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) rename doc/src/{android/creator-android-app-tutorial.qdoc => qtquick/creator-mobile-app-tutorial.qdoc} (99%) diff --git a/doc/src/projects/creator-projects-overview.qdoc b/doc/src/projects/creator-projects-overview.qdoc index b8f8b55c96b..586b8620802 100644 --- a/doc/src/projects/creator-projects-overview.qdoc +++ b/doc/src/projects/creator-projects-overview.qdoc @@ -24,7 +24,7 @@ /*! \contentspage {Qt Creator Manual} - \previouspage creator-android-app-tutorial.html + \previouspage creator-mobile-app-tutorial.html \page creator-project-managing.html \nextpage creator-project-creating.html diff --git a/doc/src/android/creator-android-app-tutorial.qdoc b/doc/src/qtquick/creator-mobile-app-tutorial.qdoc similarity index 99% rename from doc/src/android/creator-android-app-tutorial.qdoc rename to doc/src/qtquick/creator-mobile-app-tutorial.qdoc index c86a54b204c..483f9cd6651 100644 --- a/doc/src/android/creator-android-app-tutorial.qdoc +++ b/doc/src/qtquick/creator-mobile-app-tutorial.qdoc @@ -25,7 +25,7 @@ /*! \contentspage {Qt Creator Manual} \previouspage creator-writing-program.html - \page creator-android-app-tutorial.html + \page creator-mobile-app-tutorial.html \nextpage creator-project-managing.html \title Creating a Mobile Application diff --git a/doc/src/widgets/qtdesigner-app-tutorial.qdoc b/doc/src/widgets/qtdesigner-app-tutorial.qdoc index 1ab5c664973..de1046e4727 100644 --- a/doc/src/widgets/qtdesigner-app-tutorial.qdoc +++ b/doc/src/widgets/qtdesigner-app-tutorial.qdoc @@ -26,7 +26,7 @@ \contentspage {Qt Creator Manual} \previouspage creator-qml-application.html \page creator-writing-program.html - \nextpage creator-android-app-tutorial.html + \nextpage creator-mobile-app-tutorial.html \title Creating a Qt Widget Based Application From 780c21a1c3b5ac6b759b7423588011c89b2dad34 Mon Sep 17 00:00:00 2001 From: hjk Date: Mon, 7 Apr 2014 14:15:40 +0200 Subject: [PATCH 33/33] Debugger: Make autotests runnable with MinGW Change-Id: I0bdeadbad547b8351f3e1521c269e882a46edcb9 Reviewed-by: hjk --- tests/auto/debugger/README.txt | 6 +++++- tests/auto/debugger/tst_dumpers.cpp | 21 ++++++++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/tests/auto/debugger/README.txt b/tests/auto/debugger/README.txt index 7e1a7702d59..b5c151a786c 100644 --- a/tests/auto/debugger/README.txt +++ b/tests/auto/debugger/README.txt @@ -8,8 +8,12 @@ conditions by using environment variables as follows: QTC_QMAKE_PATH_FOR_TEST - path to a Qt version + QTC_MAKE_PATH_FOR_TEST - path to a "make". + Used for GDB only, defaults to "make" except on Windows, + where it defaults to "mingw32-make" + QTC_USE_GLIBCXXDEBUG_FOR_TEST - (0/1) to switch between GCC's - "normal" standard library, and the "debug" version + "normal" standard library, and the "debug" version (this will add DEFINES += _GLIBCXX_DEBUG) to the .pro (QTC_MSVC_ENV_BAT - to set up MSVC) diff --git a/tests/auto/debugger/tst_dumpers.cpp b/tests/auto/debugger/tst_dumpers.cpp index 3c442e63aee..e83783e52b1 100644 --- a/tests/auto/debugger/tst_dumpers.cpp +++ b/tests/auto/debugger/tst_dumpers.cpp @@ -811,7 +811,22 @@ void tst_Dumpers::initTestCase() extractGdbVersion(version, &m_gdbVersion, &m_gdbBuildVersion, &m_isMacGdb, &m_isQnxGdb); m_env = QProcessEnvironment::systemEnvironment(); - m_makeBinary = QLatin1String("make"); + m_makeBinary = QString::fromLocal8Bit(qgetenv("QTC_MAKE_PATH_FOR_TEST")); +#ifdef Q_OS_WIN + if (m_makeBinary.isEmpty()) { + m_makeBinary = QLatin1String("mingw32-make"); + // if qmake is not in PATH make sure the correct libs for inferior are prepended to PATH + if (m_qmakeBinary != "qmake") { + Utils::Environment env = Utils::Environment::systemEnvironment(); + env.prependOrSetPath(QDir::toNativeSeparators(QFileInfo(QLatin1String(m_qmakeBinary)).absolutePath())); + m_env = env.toProcessEnvironment(); + } +#else + if (m_makeBinary.isEmpty()) { + m_makeBinary = QLatin1String("make"); +#endif + } + qDebug() << "Make path : " << m_makeBinary; qDebug() << "Gdb version : " << m_gdbVersion; } else if (m_debuggerEngine == CdbEngine) { setupCdb(&m_makeBinary, &m_env); @@ -1081,7 +1096,11 @@ void tst_Dumpers::dumper() QByteArray nograb = "-nograb"; cmds = "set confirm off\n" +#ifdef Q_OS_WIN + "file debug/doit\n" +#else "file doit\n" +#endif "set print object on\n" "set auto-load python-scripts off\n";