summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2017-11-14 11:23:57 +0100
committerEike Ziller <eike.ziller@qt.io>2017-11-14 11:24:03 +0100
commit2d30d3ddd68669f51bd19a0f26811ccfb3234636 (patch)
tree0b9e4c539d42e8adfd019d9fde8a8f3d625a954a /src
parente865261c496030f6a6c214b6525831479ac69e8e (diff)
parentb39687645df5088a8aa72dab91a7072b19f1fa0c (diff)
downloadqt-creator-2d30d3ddd68669f51bd19a0f26811ccfb3234636.tar.gz
Merge remote-tracking branch 'origin/4.5'
Change-Id: Ib6739725e6b251ea962880e4b72700c5be5a192c
Diffstat (limited to 'src')
-rw-r--r--src/plugins/cpptools/cpplocatorfilter.cpp18
-rw-r--r--src/plugins/cpptools/cpplocatorfilter_test.cpp19
-rw-r--r--src/plugins/debugger/cdb/cdbengine.cpp5
-rw-r--r--src/plugins/debugger/debuggerplugin.cpp1
-rw-r--r--src/plugins/debugger/debuggerruncontrol.cpp5
-rw-r--r--src/plugins/debugger/debuggerruncontrol.h1
-rw-r--r--src/plugins/ios/iosrunner.cpp1
-rw-r--r--src/plugins/projectexplorer/targetsetuppage.cpp9
-rw-r--r--src/plugins/qmldesigner/components/formeditor/formeditorview.cpp8
-rw-r--r--src/plugins/qmldesigner/designmodewidget.cpp8
-rw-r--r--src/plugins/qtsupport/baseqtversion.cpp7
m---------src/shared/qbs0
12 files changed, 66 insertions, 16 deletions
diff --git a/src/plugins/cpptools/cpplocatorfilter.cpp b/src/plugins/cpptools/cpplocatorfilter.cpp
index ba31251bf3..a2b94c2df1 100644
--- a/src/plugins/cpptools/cpplocatorfilter.cpp
+++ b/src/plugins/cpptools/cpplocatorfilter.cpp
@@ -73,19 +73,23 @@ QList<Core::LocatorFilterEntry> CppLocatorFilter::matchesFor(
QList<Core::LocatorFilterEntry> betterEntries;
QList<Core::LocatorFilterEntry> 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<Core::LocatorFilterEntry> 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 1b309fbe8a..b5cc9041b1 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>()
+ << 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)"),
+ _("<anonymous namespace>::MyClass (file1.cpp)"))
+ << ResultData(_("functionDefinedOutSideClass(char)"),
+ _("MyNamespace::MyClass (file1.cpp)"))
+ << ResultData(_("functionDefinedOutSideClass(char)"),
+ _("<anonymous namespace>::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 38d5a759f3..4949694ecc 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 657f2f31f2..6707e00b00 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 40b92d0bac..011ab9ae89 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 422756fb48..1795b9bf68 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 7f993865ba..e5707e664d 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 b44cdf8194..0336d83377 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 99dc162f18..1956dadb34 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<ModelNode> &selectedNodeList,
diff --git a/src/plugins/qmldesigner/designmodewidget.cpp b/src/plugins/qmldesigner/designmodewidget.cpp
index f89f88c64d..216ad00074 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 6f38c5deed..8c5c051199 100644
--- a/src/plugins/qtsupport/baseqtversion.cpp
+++ b/src/plugins/qtsupport/baseqtversion.cpp
@@ -486,10 +486,17 @@ QSet<Id> 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
-Subproject 4d4cb193e40ff0dd55b2a201ab4fc783dabe121
+Subproject 2e4d332924e17225d08ac11891828e6fefc3529