From cc94fef0d2e0e47e438791a93e8996177a3aa94c Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Fri, 10 Nov 2017 14:14:02 +0100 Subject: [PATCH 01/10] Update qbs submodule To HEAD of 1.10 branch. Change-Id: I7f477b4970310121c6dfe326cca84032c1cf4117 Reviewed-by: Jake Petroules --- src/shared/qbs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/shared/qbs b/src/shared/qbs index 4d4cb193e40..2e4d332924e 160000 --- a/src/shared/qbs +++ b/src/shared/qbs @@ -1 +1 @@ -Subproject commit 4d4cb193e40ff0dd55b2a201ab4fc783dabe1214 +Subproject commit 2e4d332924e17225d08ac11891828e6fefc3529b From 078ced511d230bad06a3af6476225d576b4bb4aa Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Fri, 10 Nov 2017 23:46:07 +0100 Subject: [PATCH 02/10] QmlDesigner: Proper background for crumble bar Using Utils::StyledBar, and getting rid of one stylesheet. Change-Id: Idf4db461e6beb60e15cae9b295f13ec489146f4f Reviewed-by: Tim Jenssen --- src/plugins/qmldesigner/designmodewidget.cpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/plugins/qmldesigner/designmodewidget.cpp b/src/plugins/qmldesigner/designmodewidget.cpp index f89f88c64dc..216ad00074b 100644 --- a/src/plugins/qmldesigner/designmodewidget.cpp +++ b/src/plugins/qmldesigner/designmodewidget.cpp @@ -511,16 +511,12 @@ QWidget *DesignModeWidget::createCenterWidget() QWidget *DesignModeWidget::createCrumbleBarFrame() { - QFrame *frame = new QFrame(this); - frame->setStyleSheet("background-color: #4e4e4e;"); - frame->setFrameShape(QFrame::NoFrame); + auto *frame = new Utils::StyledBar(this); + frame->setSingleRow(false); QHBoxLayout *layout = new QHBoxLayout(frame); layout->setMargin(0); layout->setSpacing(0); - frame->setLayout(layout); layout->addWidget(m_crumbleBar->crumblePath()); - frame->setProperty("panelwidget", true); - frame->setProperty("panelwidget_singlerow", false); return frame; } From d2784c68053ecbaacfced84161cd7750cbbd9f0f Mon Sep 17 00:00:00 2001 From: David Schulz Date: Mon, 13 Nov 2017 11:11:43 +0100 Subject: [PATCH 03/10] Debugger: Set inferior device when attaching to running application The device is needed to properly interrupt the inferior with cdb. Change-Id: I96f3a7393770be9821d8edd7123c458399d4494a Task-nnumber: QTCREATORBUG-19253 Reviewed-by: hjk --- src/plugins/debugger/cdb/cdbengine.cpp | 5 ++++- src/plugins/debugger/debuggerplugin.cpp | 1 + src/plugins/debugger/debuggerruncontrol.cpp | 5 +++++ src/plugins/debugger/debuggerruncontrol.h | 1 + 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/plugins/debugger/cdb/cdbengine.cpp b/src/plugins/debugger/cdb/cdbengine.cpp index 38d5a759f3c..4949694eccd 100644 --- a/src/plugins/debugger/cdb/cdbengine.cpp +++ b/src/plugins/debugger/cdb/cdbengine.cpp @@ -881,7 +881,10 @@ void CdbEngine::doInterruptInferior(SpecialStopMode sm) QTC_ASSERT(!m_signalOperation, notifyInferiorStopFailed(); return;); if (DebuggerRunTool *rt = runTool()) { - if (IDevice::ConstPtr device = rt->device()) + IDevice::ConstPtr device = rt->device(); + if (!device) + device = runParameters().inferior.device; + if (device) m_signalOperation = device->signalOperation(); } m_specialStopMode = sm; diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index 5b56c128a3d..1aeb3f68130 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -2088,6 +2088,7 @@ RunControl *DebuggerPluginPrivate::attachToRunningProcess(Kit *kit, debugger->setAttachPid(ProcessHandle(process.pid)); debugger->setRunControlName(tr("Process %1").arg(process.pid)); debugger->setInferiorExecutable(process.exe); + debugger->setInferiorDevice(device); debugger->setStartMode(AttachExternal); debugger->setCloseMode(DetachAtClose); debugger->setContinueAfterAttach(contAfterAttach); diff --git a/src/plugins/debugger/debuggerruncontrol.cpp b/src/plugins/debugger/debuggerruncontrol.cpp index 93f3473c095..2e65cc320e7 100644 --- a/src/plugins/debugger/debuggerruncontrol.cpp +++ b/src/plugins/debugger/debuggerruncontrol.cpp @@ -436,6 +436,11 @@ void DebuggerRunTool::setInferiorEnvironment(const Utils::Environment &env) m_runParameters.inferior.environment = env; } +void DebuggerRunTool::setInferiorDevice(IDevice::ConstPtr device) +{ + m_runParameters.inferior.device = device; +} + void DebuggerRunTool::setRunControlName(const QString &name) { m_runParameters.displayName = name; diff --git a/src/plugins/debugger/debuggerruncontrol.h b/src/plugins/debugger/debuggerruncontrol.h index 422756fb488..1795b9bf68f 100644 --- a/src/plugins/debugger/debuggerruncontrol.h +++ b/src/plugins/debugger/debuggerruncontrol.h @@ -84,6 +84,7 @@ public: void setInferior(const ProjectExplorer::Runnable &runnable); void setInferiorExecutable(const QString &executable); void setInferiorEnvironment(const Utils::Environment &env); // Used by GammaRay plugin + void setInferiorDevice(ProjectExplorer::IDevice::ConstPtr device); // Used by cdbengine void setRunControlName(const QString &name); void setStartMessage(const QString &msg); void appendInferiorCommandLineArgument(const QString &arg); From 35717ea88e36c737f727f555cda0ebc35d575923 Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Mon, 13 Nov 2017 11:50:17 +0100 Subject: [PATCH 04/10] QtSupport: Add Qt version specific feature versions Qt 5.9: Qt Quick Controls 2.2 Qt 5.10 Qt Quick 2.10 Qt Quick Controls 2.3 Change-Id: If683b6a4ec02128120597a2adbdfa10f111f9680 Reviewed-by: Tim Jenssen --- src/plugins/qtsupport/baseqtversion.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/plugins/qtsupport/baseqtversion.cpp b/src/plugins/qtsupport/baseqtversion.cpp index 459d3b4374c..beb07aa1c5e 100644 --- a/src/plugins/qtsupport/baseqtversion.cpp +++ b/src/plugins/qtsupport/baseqtversion.cpp @@ -478,10 +478,17 @@ QSet BaseQtVersion::availableFeatures() const return features; features.unite(versionedIds(Constants::FEATURE_QT_QUICK_PREFIX, 2, 9)); + features.unite(versionedIds(Constants::FEATURE_QT_QUICK_CONTROLS_2_PREFIX, 2, 2)); if (qtVersion().matches(5, 9)) return features; + features.unite(versionedIds(Constants::FEATURE_QT_QUICK_PREFIX, 2, 10)); + features.unite(versionedIds(Constants::FEATURE_QT_QUICK_CONTROLS_2_PREFIX, 2, 3)); + + if (qtVersion().matches(5, 10)) + return features; + return features; } From 13948f102ca20ed86144834ee34b41880975c008 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Mon, 13 Nov 2017 11:33:29 +0100 Subject: [PATCH 05/10] QmlDesigner: Update id in selection indicator If the id of a selected item is changed we have to update the selection indicator. Task-number: QTCREATORBUG-19267 Change-Id: I1f6b8f93fcf083972471837fd2837386adfabbad Reviewed-by: Tim Jenssen --- .../qmldesigner/components/formeditor/formeditorview.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp index 99dc162f18e..1956dadb342 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp +++ b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp @@ -291,9 +291,15 @@ void FormEditorView::nodeIdChanged(const ModelNode& node, const QString &/*newId if (itemNode.isValid() && node.nodeSourceType() == ModelNode::NodeWithoutSource) { FormEditorItem *item = m_scene->itemForQmlItemNode(itemNode); - if (item) + if (item) { + if (node.isSelected()) { + m_currentTool->setItems(scene()->itemsForQmlItemNodes(toQmlItemNodeList(selectedModelNodes()))); + m_scene->update(); + } item->update(); + } } + } void FormEditorView::selectedNodesChanged(const QList &selectedNodeList, From 1a361a39ad6036bf961eabf94290c2b88ab19e3a Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Mon, 13 Nov 2017 14:41:02 +0100 Subject: [PATCH 06/10] QtQuick Canvas3D wizard: Remove unused variable The variable QtQuick3DVersion is unused. Change-Id: I714948879ce1994812ffcd997e39653081479509 Reviewed-by: Tim Jenssen --- .../wizards/projects/qtquickapplication/canvas3d/wizard.json | 4 ---- 1 file changed, 4 deletions(-) diff --git a/share/qtcreator/templates/wizards/projects/qtquickapplication/canvas3d/wizard.json b/share/qtcreator/templates/wizards/projects/qtquickapplication/canvas3d/wizard.json index 0e5a72bb8ef..44c1af4ea2e 100644 --- a/share/qtcreator/templates/wizards/projects/qtquickapplication/canvas3d/wizard.json +++ b/share/qtcreator/templates/wizards/projects/qtquickapplication/canvas3d/wizard.json @@ -18,7 +18,6 @@ { "key": "CMakeFile", "value": "%{ProjectDirectory}/CMakeLists.txt" }, { "key": "MainCppFileName", "value": "%{JS: 'main.' + Util.preferredSuffix('text/x-c++src')}" }, { "key": "QtQuickVersion", "value": "%{JS: %{QtVersion}.QtQuickVersion}" }, - { "key": "QtQuick3DVersion", "value": "%{JS: %{QtVersion}.QtQuick3DVersion}" }, { "key": "QtQuickWindowVersion", "value": "%{JS: %{QtVersion}.QtQuickWindowVersion}" }, { "key": "QtQuickVirtualKeyboardImport", "value": "%{JS: %{QtVersion}.QtQuickVirtualKeyboardImport}" }, { "key": "QtQuickFeature", "value": "QtSupport.Wizards.FeatureQtQuick.%{QtQuickVersion}" }, @@ -89,7 +88,6 @@ "value": "{ 'QtQuickVersion': '2.9', - 'QtQuick3DVersion': '1.1', 'QtQuickWindowVersion': '2.2', 'QtQuickVirtualKeyboardImport': 'QtQuick.VirtualKeyboard 2.1' }" @@ -99,7 +97,6 @@ "value": "{ 'QtQuickVersion': '2.8', - 'QtQuick3DVersion': '1.1', 'QtQuickWindowVersion': '2.2', 'QtQuickVirtualKeyboardImport': 'QtQuick.VirtualKeyboard 2.1' }" @@ -109,7 +106,6 @@ "value": "{ 'QtQuickVersion': '2.7', - 'QtQuick3DVersion': '1.1', 'QtQuickWindowVersion': '2.2', 'QtQuickVirtualKeyboardImport': 'QtQuick.VirtualKeyboard 2.1' }" From d2b8076fecc00f20e196c944e116865f85f79f2a Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Tue, 31 Oct 2017 08:25:12 +0200 Subject: [PATCH 07/10] CppTools: Fix highlighting when matching with scope MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit class Foo { void funcInside() {} void funcOutside(); }; void Foo::funcOutside() {} Search for Foo::func in the locator. func was not highlighted. Change-Id: I923bd3ef2df47c5fa030b8899d1b4df7437b1820 Reviewed-by: André Hartmann Reviewed-by: Nikolai Kosjar --- src/plugins/cpptools/cpplocatorfilter.cpp | 18 ++++++++++++++---- .../cpptools/cpplocatorfilter_test.cpp | 19 +++++++++++++++++++ 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/src/plugins/cpptools/cpplocatorfilter.cpp b/src/plugins/cpptools/cpplocatorfilter.cpp index ba31251bf37..a2b94c2df17 100644 --- a/src/plugins/cpptools/cpplocatorfilter.cpp +++ b/src/plugins/cpptools/cpplocatorfilter.cpp @@ -73,19 +73,23 @@ QList CppLocatorFilter::matchesFor( QList betterEntries; QList bestEntries; const Qt::CaseSensitivity caseSensitivityForPrefix = caseSensitivity(entry); - bool hasColonColon = entry.contains(QLatin1String("::")); const IndexItem::ItemType wanted = matchTypes(); const QRegularExpression regexp = createRegExp(entry); if (!regexp.isValid()) return goodEntries; + const bool hasColonColon = entry.contains("::"); + const QRegularExpression shortRegexp = + hasColonColon ? createRegExp(entry.mid(entry.lastIndexOf("::") + 2)) : regexp; m_data->filterAllFiles([&](const IndexItem::Ptr &info) -> IndexItem::VisitorResult { if (future.isCanceled()) return IndexItem::Break; const IndexItem::ItemType type = info->type(); if (type & wanted) { - QString matchString = hasColonColon ? info->scopedSymbolName() : info->symbolName(); + const QString symbolName = info->symbolName(); + QString matchString = hasColonColon ? info->scopedSymbolName() : symbolName; + int matchOffset = hasColonColon ? matchString.size() - symbolName.size() : 0; if (type == IndexItem::Function) matchString += info->symbolType(); QRegularExpressionMatch match = regexp.match(matchString); @@ -94,9 +98,15 @@ QList CppLocatorFilter::matchesFor( // Highlight the matched characters, therefore it may be necessary // to update the match if the displayName is different from matchString - if (matchString != filterEntry.displayName) - match = regexp.match(filterEntry.displayName); + if (matchString.midRef(matchOffset) != filterEntry.displayName) { + match = shortRegexp.match(filterEntry.displayName); + matchOffset = 0; + } filterEntry.highlightInfo = highlightInfo(match); + if (matchOffset > 0) { + for (int &start : filterEntry.highlightInfo.starts) + start -= matchOffset; + } if (matchString.startsWith(entry, caseSensitivityForPrefix)) bestEntries.append(filterEntry); diff --git a/src/plugins/cpptools/cpplocatorfilter_test.cpp b/src/plugins/cpptools/cpplocatorfilter_test.cpp index 1b309fbe8ae..b5cc9041b1c 100644 --- a/src/plugins/cpptools/cpplocatorfilter_test.cpp +++ b/src/plugins/cpptools/cpplocatorfilter_test.cpp @@ -231,6 +231,25 @@ void CppToolsPlugin::test_cpplocatorfilters_CppLocatorFilter_data() << ResultData(_("myFunction(bool, int)"), _("MyNamespace (file1.cpp)")) ); + QTest::newRow("CppFunctionsFilter-WithClassPrefix") + << testFile + << cppFunctionsFilter + << _("MyClass::func") + << (QList() + << ResultData(_("functionDefinedInClass(bool, int)"), _("MyClass (file1.cpp)")) + << ResultData(_("functionDefinedOutSideClass(char)"), _("MyClass (file1.cpp)")) + << ResultData(_("functionDefinedInClass(bool, int)"), + _("MyNamespace::MyClass (file1.cpp)")) + << ResultData(_("functionDefinedInClass(bool, int)"), + _("::MyClass (file1.cpp)")) + << ResultData(_("functionDefinedOutSideClass(char)"), + _("MyNamespace::MyClass (file1.cpp)")) + << ResultData(_("functionDefinedOutSideClass(char)"), + _("::MyClass (file1.cpp)")) + << ResultData(_("functionDefinedOutSideClassAndNamespace(float)"), + _("MyNamespace::MyClass (file1.cpp)")) + ); + QTest::newRow("CppClassesFilter") << testFile << cppClassesFilter From 8a5c7966c27023a707c8c64e8f2d260141c321f0 Mon Sep 17 00:00:00 2001 From: Vikas Pachdha Date: Mon, 13 Nov 2017 16:14:23 +0100 Subject: [PATCH 08/10] iOS: Fix missing URL scheme to fix QML profiling in iOS Task-number: QTCREATORBUG-19273 Change-Id: Iddf34493b46ed7afcedcc7d987260e7a744e4082 Reviewed-by: hjk --- src/plugins/ios/iosrunner.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugins/ios/iosrunner.cpp b/src/plugins/ios/iosrunner.cpp index 7f993865ba6..e5707e664db 100644 --- a/src/plugins/ios/iosrunner.cpp +++ b/src/plugins/ios/iosrunner.cpp @@ -406,6 +406,7 @@ void IosQmlProfilerSupport::start() QTcpServer server; QTC_ASSERT(server.listen(QHostAddress::LocalHost) || server.listen(QHostAddress::LocalHostIPv6), return); + serverUrl.setScheme(urlTcpScheme()); serverUrl.setHost(server.serverAddress().toString()); Port qmlPort = m_runner->qmlServerPort(); From cf3640a8827ada829ea3b53fbfca6377d39c18c5 Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Mon, 6 Nov 2017 16:54:56 +0100 Subject: [PATCH 09/10] TargetSetupPage: Use old importer to clean up when switching Use the old importer when cleaning while switching to a new importer. Change-Id: I8fd3af32271b839502571ee3806903abd927ef0a Reviewed-by: Tim Jenssen --- src/plugins/projectexplorer/targetsetuppage.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/plugins/projectexplorer/targetsetuppage.cpp b/src/plugins/projectexplorer/targetsetuppage.cpp index 32a4ec63e08..72e95ca8661 100644 --- a/src/plugins/projectexplorer/targetsetuppage.cpp +++ b/src/plugins/projectexplorer/targetsetuppage.cpp @@ -302,10 +302,11 @@ void TargetSetupPage::setProjectImporter(ProjectImporter *importer) if (importer == m_importer) return; + reset(); // Reset before changing the importer! + m_importer = importer; m_importWidget->setVisible(m_importer); - reset(); setupWidgets(); } From b39687645df5088a8aa72dab91a7072b19f1fa0c Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Mon, 6 Nov 2017 17:15:06 +0100 Subject: [PATCH 10/10] TargetSetupPage: Ignore changes while ProjectImporter is updating This causes the same kit to be processed repeatedly, which should not cause harm, but waste CPU cycles. Change-Id: Ie42272aacec6d8350398b65973570282c0c8d287 Reviewed-by: Tim Jenssen --- src/plugins/projectexplorer/targetsetuppage.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/plugins/projectexplorer/targetsetuppage.cpp b/src/plugins/projectexplorer/targetsetuppage.cpp index 72e95ca8661..c7c37e5e2d4 100644 --- a/src/plugins/projectexplorer/targetsetuppage.cpp +++ b/src/plugins/projectexplorer/targetsetuppage.cpp @@ -344,12 +344,12 @@ void TargetSetupPage::handleKitAddition(Kit *k) void TargetSetupPage::handleKitRemoval(Kit *k) { - if (m_importer) - m_importer->cleanupKit(k); - if (isUpdating()) return; + if (m_importer) + m_importer->cleanupKit(k); + removeWidget(k); updateVisibility(); }