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' }" 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 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 657f2f31f2a..6707e00b009 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -2087,6 +2087,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 40b92d0bacb..011ab9ae899 100644 --- a/src/plugins/debugger/debuggerruncontrol.cpp +++ b/src/plugins/debugger/debuggerruncontrol.cpp @@ -437,6 +437,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); 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(); diff --git a/src/plugins/projectexplorer/targetsetuppage.cpp b/src/plugins/projectexplorer/targetsetuppage.cpp index b44cdf8194f..0336d83377d 100644 --- a/src/plugins/projectexplorer/targetsetuppage.cpp +++ b/src/plugins/projectexplorer/targetsetuppage.cpp @@ -317,10 +317,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(); } @@ -358,12 +359,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(); } 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, 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; } diff --git a/src/plugins/qtsupport/baseqtversion.cpp b/src/plugins/qtsupport/baseqtversion.cpp index 6f38c5deedc..8c5c0511993 100644 --- a/src/plugins/qtsupport/baseqtversion.cpp +++ b/src/plugins/qtsupport/baseqtversion.cpp @@ -486,10 +486,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; } 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