aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dist/changes-4.9.0.md17
-rw-r--r--doc/images/qml-script-console.pngbin8057 -> 5334 bytes
-rw-r--r--doc/images/qtcreator-debug-button.pngbin0 -> 235 bytes
-rw-r--r--doc/images/qtcreator-typo-clang.pngbin0 -> 52930 bytes
-rw-r--r--doc/src/debugger/creator-only/creator-debugger-example.qdoc2
-rw-r--r--doc/src/debugger/creator-only/creator-debugger.qdoc21
-rw-r--r--doc/src/debugger/qtquick-debugger-example.qdoc5
-rw-r--r--doc/src/debugger/qtquick-debugging.qdoc17
-rw-r--r--doc/src/editors/creator-code-syntax.qdoc25
-rw-r--r--doc/src/editors/creator-only/creator-clang-codemodel.qdoc3
-rw-r--r--doc/src/editors/creator-only/creator-language-server.qdoc18
-rw-r--r--doc/src/howto/creator-only/creator-ui.qdoc4
-rw-r--r--doc/src/howto/creator-sidebar-views.qdocinc9
-rw-r--r--src/plugins/android/androidrunnerworker.cpp26
-rw-r--r--src/plugins/coreplugin/editortoolbar.cpp6
-rw-r--r--src/plugins/debugger/debuggerdialogs.cpp13
-rw-r--r--src/plugins/perfprofiler/perfconfigwidget.cpp4
-rw-r--r--src/plugins/qmldesigner/components/propertyeditor/gradientmodel.cpp10
-rw-r--r--src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp2
-rw-r--r--src/tools/clangbackend/source/clangfilesystemwatcher.cpp2
-rw-r--r--tests/system/shared/editor_utils.py5
21 files changed, 121 insertions, 68 deletions
diff --git a/dist/changes-4.9.0.md b/dist/changes-4.9.0.md
index 8feed6ec31..f8ab948f9d 100644
--- a/dist/changes-4.9.0.md
+++ b/dist/changes-4.9.0.md
@@ -20,7 +20,8 @@ Editing
* Language Client
* Added support for document outline (QTCREATORBUG-21573)
- * Added support for `Find Usages` (QTCREATORBUG-21577)
+ * Added support for `Find References to Symbol Under Cursor`
+ (QTCREATORBUG-21577)
* Added support for code actions
* Highlighter
* Replaced custom highlighting file parser with `KSyntaxHighlighting`
@@ -75,6 +76,11 @@ Generic Projects
files (QTCREATORBUG-19668)
* Fixed `Apply Filter` when editing file list (QTCREATORBUG-16237)
+Compilation Database Projects
+
+* Fixed that project tree was not updated when database changes on disk
+ (QTCREATORBUG-21733)
+
C++ Support
* Added code snippet for range-based `for` loops
@@ -85,8 +91,11 @@ C++ Support
* Fixed issue with high memory consumption (QTCREATORBUG-19543)
* Fixed inconsistency between `Follow Symbol` and `Ctrl + Click`
(QTCREATORBUG-21637)
+ * Fixed that global completion was shown after comma (QTCREATORBUG-21624)
* Clang Format
* Added option to format code instead of only indenting code
+ * Added `Open Used .clang-format Configuration File` to editor's
+ context menu
QML Support
@@ -108,6 +117,8 @@ Debugging
* Fixed that debugger toolbar could force large minimum window size
(QTCREATORBUG-21885)
* Added pretty printing of `QSizePolicy`
+* Fixed pretty printing of standard maps and sets from `libc++`
+ (QTCREATORBUG-18536)
* GDB
* Added support for rvalue references in function arguments
* LLDB
@@ -130,6 +141,7 @@ Perf Profiler
Qt Quick Designer
* Made QML Live Preview integration opensource
+* Added support for `Dialog` (QTCREATORBUG-22120)
Version Control Systems
@@ -178,6 +190,8 @@ Windows
* Changed toolchain detection to use `vswhere` by default, which is recommended
by Microsoft
* Fixed issue with UNC paths in `.pro` files (QTCREATORBUG-21881)
+* Fixed language version detections with MSVC and precompiled headers
+ (QTCREATORBUG-21860)
Linux
@@ -189,6 +203,7 @@ Android
* Removed separate `QmakeAndroidSupport` plugin and merged functionality into
other plugins
+* Fixed debugging for API level 22 (QTCREATORBUG-22098)
Remote Linux
diff --git a/doc/images/qml-script-console.png b/doc/images/qml-script-console.png
index b1fc61b36d..08679a60b2 100644
--- a/doc/images/qml-script-console.png
+++ b/doc/images/qml-script-console.png
Binary files differ
diff --git a/doc/images/qtcreator-debug-button.png b/doc/images/qtcreator-debug-button.png
new file mode 100644
index 0000000000..c27b11f2dd
--- /dev/null
+++ b/doc/images/qtcreator-debug-button.png
Binary files differ
diff --git a/doc/images/qtcreator-typo-clang.png b/doc/images/qtcreator-typo-clang.png
new file mode 100644
index 0000000000..3e3ad7daea
--- /dev/null
+++ b/doc/images/qtcreator-typo-clang.png
Binary files differ
diff --git a/doc/src/debugger/creator-only/creator-debugger-example.qdoc b/doc/src/debugger/creator-only/creator-debugger-example.qdoc
index 75d6f633d8..9b8a6b5262 100644
--- a/doc/src/debugger/creator-only/creator-debugger-example.qdoc
+++ b/doc/src/debugger/creator-only/creator-debugger-example.qdoc
@@ -53,7 +53,7 @@
\image qtcreator-setting-breakpoint1.png
\li Select \uicontrol Debug > \uicontrol {Start Debugging} >
- \uicontrol {Start Debugging} or press \key F5.
+ \uicontrol {Start Debugging of Startup Project} or press \key F5.
\li To view information about the breakpoint, go to the
\uicontrol Breakpoints view.
diff --git a/doc/src/debugger/creator-only/creator-debugger.qdoc b/doc/src/debugger/creator-only/creator-debugger.qdoc
index cca7b5773b..7be1ab1f98 100644
--- a/doc/src/debugger/creator-only/creator-debugger.qdoc
+++ b/doc/src/debugger/creator-only/creator-debugger.qdoc
@@ -54,10 +54,10 @@
\li \l{Launching the Debugger}
To start an application from an open project under the control
- of a debugger, press the Debug button in the lower left corner
- of the main view, or press \key F5. Other, less common start
- options are available in the \uicontrol Debug >
- \uicontrol {Start Debugging} menu.
+ of a debugger, select the \inlineimage qtcreator-debug-button.png
+ (\uicontrol {Start Debugging of Startup Project}) button or press
+ \key F5. Other, less common start options are available in the
+ \uicontrol Debug > \uicontrol {Start Debugging} menu.
\li \l{Interacting with the Debugger}
@@ -106,13 +106,15 @@
\title Launching the Debugger
To start an application from an open project under the control of a
- debugger, press the \uicontrol Debug button in the lower left corner
- of the main view, or press \key F5.
+ debugger, select the \inlineimage qtcreator-debug-button.png
+ (\uicontrol {Start Debugging of Startup Project}) button or press \key F5.
\QC checks whether the compiled program is up-to-date, and rebuilds and
deploys it if the \uicontrol {Always build project before deploying it} and
\uicontrol {Always deploy before running} options are selected in the
- \uicontrol {Build and Run} options.
+ \uicontrol {Build and Run} options. To debug the program without deploying
+ it, select \uicontrol Debug > \uicontrol {Start Debugging} >
+ \uicontrol {Start Debugging Without Deployment}.
The debugger then takes over and starts the program with suitable
parameters.
@@ -127,7 +129,8 @@
depending on where and how the debugged process is started and run. Some of
the modes are only available for a particular operating system or platform.
- In general, the \key F5 and the \uicontrol Debug button are set up in a
+ In general, \key F5 and the \uicontrol {Start Debugging of Startup Project}
+ button are set up in a
way to start the operating mode that is commonly used in a given context. So
if the current project is set up as a C++ application using the MinGW
toolchain targeting desktop Windows, the GDB engine will be started in Start
@@ -137,7 +140,7 @@
Change the run configuration parameters (such as
\uicontrol {Run in Terminal}) in the run settings of the project, or select
- options from the \uicontrol Debug > \uicontrol {Start Debugging} menu to
+ options from the \uicontrol Debug > \uicontrol {Start Debugging} menu to
select other modes of operation.
The debugger can run in the following modes:
diff --git a/doc/src/debugger/qtquick-debugger-example.qdoc b/doc/src/debugger/qtquick-debugger-example.qdoc
index 1e1288a5bd..51789173c5 100644
--- a/doc/src/debugger/qtquick-debugger-example.qdoc
+++ b/doc/src/debugger/qtquick-debugger-example.qdoc
@@ -65,7 +65,8 @@
The red circle indicates that a breakpoint is now set on that line
number.
- \li Select \uicontrol {Debug > Start Debugging > Start Debugging} or press
+ \li Select \uicontrol Debug > \uicontrol {Start Debugging} >
+ \uicontrol {Start Debugging of Startup Project} or press
\key{F5}.
\li Once the Same Game application starts, select \uicontrol {Puzzle}
@@ -97,7 +98,7 @@
\image qtquick-example-setting-breakpoint3.png
\li To execute JavaScript commands in the current context, open the
- \uicontrol {Debugger Console} output pane.
+ \uicontrol {QML Debugger Console} output pane.
\image qml-script-console.png
diff --git a/doc/src/debugger/qtquick-debugging.qdoc b/doc/src/debugger/qtquick-debugging.qdoc
index 2cda2eb198..4f2dc30e93 100644
--- a/doc/src/debugger/qtquick-debugging.qdoc
+++ b/doc/src/debugger/qtquick-debugging.qdoc
@@ -101,9 +101,10 @@
\section1 Starting QML Debugging
- To start the application, choose \uicontrol {Debug > Start Debugging >
- Start Debugging} or press \key F5. Once the application starts running, it
- behaves and performs as usual. You can then perform the following tasks:
+ To start the application, choose \uicontrol Debug > \uicontrol {Start Debugging}
+ > \uicontrol {Start Debugging of Startup Project} or press \key F5. Once the
+ application starts running, it behaves and performs as usual. You can then
+ perform the following tasks:
\list
@@ -227,11 +228,11 @@
\section1 Executing JavaScript Expressions
When the application is interrupted by a breakpoint, you can use the
- \uicontrol {Debugger Console} to execute JavaScript expressions in the
+ \uicontrol {QML Debugger Console} to execute JavaScript expressions in the
current context. To open it, choose \uicontrol Window >
- \uicontrol {Output Panes} > \uicontrol {Debugger Console}.
+ \uicontrol {Output Panes} > \uicontrol {QML Debugger Console}.
- \image qml-script-console.png "Debugger Console"
+ \image qml-script-console.png "QML Debugger Console"
You can change property values temporarily, without editing the source, and
view the results in the running application. You can change the property
@@ -239,7 +240,7 @@
\section1 Applying QML Changes at Runtime
- When you change property values in the \uicontrol {Debugger Console} or in
- the \uicontrol Locals or \uicontrol Expression view, they are immediately
+ When you change property values in the \uicontrol {QML Debugger Console} or
+ in the \uicontrol Locals or \uicontrol Expression view, they are immediately
updated in the running application, but not in the source code.
*/
diff --git a/doc/src/editors/creator-code-syntax.qdoc b/doc/src/editors/creator-code-syntax.qdoc
index 821fddfba8..f38686ed5e 100644
--- a/doc/src/editors/creator-code-syntax.qdoc
+++ b/doc/src/editors/creator-code-syntax.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2018 The Qt Company Ltd.
+** Copyright (C) 2019 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
@@ -41,27 +41,38 @@
\list
\li Syntax errors are underlined in red.
- In the following figure, a semicolon is missing at the end of the
- line.
+ In the following screenshot, a semicolon is missing at the end
+ of the line.
\image qtcreator-syntaxerror.png
\li Semantic errors and warnings are underlined in olive.
- In the following figure, the variable is not used.
+ In the following screenshot, the variable is not used.
\image qtcreator-semanticerror.png
\endlist
+ \section1 Viewing Annotations
+
When using the Clang code model, errors and warnings are additionally marked
with icons and annotated. If a \l{http://clang.llvm.org/diagnostics.html}
{Clang fix-it} is available, you can execute it by clicking the
\inlineimage refactormarker.png
icon and pressing \key Enter.
- In the following figure, a semicolon is missing at the end of the
+ In the following screenshot, a Qt class name contains a typo:
+
+ \image qtcreator-typo-clang.png
+
+ You can use the icons in the tooltip popup to copy the error or
+ warning message to the clipboard or to ignore and hide it. Select
+ the \uicontrol {Annotation Settings} link to specify the position
+ of the line annotations.
+
+ In the following screenshot, a semicolon is missing at the end of the
line.
\image qtcreator-syntaxerror-clang.png
- In the following figure, the variable is not used.
+ In the following screenshot, the variable is not used.
\image qtcreator-semanticerror-clang.png
@@ -74,6 +85,8 @@
\image qml-syntax-check.png
+ \section2 Specifying Line Annotation Positions
+
To specify the position where the annotations are displayed, select
\uicontrol Tools > \uicontrol Options > \uicontrol {Text Editor} >
\uicontrol Display > \uicontrol {Line annotations}, and then select
diff --git a/doc/src/editors/creator-only/creator-clang-codemodel.qdoc b/doc/src/editors/creator-only/creator-clang-codemodel.qdoc
index 7fd7791209..f8e2b890c1 100644
--- a/doc/src/editors/creator-only/creator-clang-codemodel.qdoc
+++ b/doc/src/editors/creator-only/creator-clang-codemodel.qdoc
@@ -52,7 +52,8 @@
{following symbols}, and so on
\li Inspecting code by using the \l{Browsing Project Contents}
- {class browser}, the \l{Viewing QML Types}{outline}, and so on
+ {class browser}, the \l{Viewing Defined Types and Symbols}
+ {outline}, and so on
\li Diagnostics
diff --git a/doc/src/editors/creator-only/creator-language-server.qdoc b/doc/src/editors/creator-only/creator-language-server.qdoc
index 7bf030f1b0..4b75aae16e 100644
--- a/doc/src/editors/creator-only/creator-language-server.qdoc
+++ b/doc/src/editors/creator-only/creator-language-server.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2018 The Qt Company Ltd.
+** Copyright (C) 2019 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
@@ -34,9 +34,19 @@
For several programming languages, a \e {language server} is available
that provides information about the code to IDEs as long as they support
communication via the language server protocol (LSP). This enables the
- IDE to provide code completion, highlighting of the symbol under cursor,
- and jumping to the symbol definition, as well as to integrate diagnostics
- from the language server.
+ IDE to provide the following services:
+
+ \list
+ \li \l{Completing Code}{Code completion}
+ \li Highlighting the symbol under cursor
+ \li \l{Moving to Symbol Definition or Declaration}
+ {Moving to the symbol definition}
+ \li Inspecting code by viewing the document
+ \l{Viewing Defined Types and Symbols}{outline}
+ \li \l{Finding Symbols}{Finding references to symbols}
+ \li Code actions
+ \li Integrating diagnostics from the language server
+ \endlist
By providing a client for the language server protocol, \QC can support
the above features for several other programming languages besides C++.
diff --git a/doc/src/howto/creator-only/creator-ui.qdoc b/doc/src/howto/creator-only/creator-ui.qdoc
index 7140a4c97a..4ff1334ce3 100644
--- a/doc/src/howto/creator-only/creator-ui.qdoc
+++ b/doc/src/howto/creator-only/creator-ui.qdoc
@@ -137,7 +137,7 @@
\li \uicontrol{Compile Output}
- \li \uicontrol {Debugger Console}
+ \li \uicontrol {QML Debugger Console}
\li \uicontrol {To-Do Entries}
@@ -164,7 +164,7 @@
\uicontrol {Window > Output Panes}. To display the \uicontrol {To-Do Entries} pane,
enable the Todo plugin.
- For more information about the \uicontrol {Debugger Console} view, see
+ For more information about the \uicontrol {QML Debugger Console} view, see
\l{Executing JavaScript Expressions}.
\section2 Issues
diff --git a/doc/src/howto/creator-sidebar-views.qdocinc b/doc/src/howto/creator-sidebar-views.qdocinc
index 5269e5f0ee..bb4daaa72b 100644
--- a/doc/src/howto/creator-sidebar-views.qdocinc
+++ b/doc/src/howto/creator-sidebar-views.qdocinc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2018 The Qt Company Ltd.
+** Copyright (C) 2019 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
@@ -268,14 +268,15 @@
//! [outline view]
- \section2 Viewing QML Types
+ \section2 Viewing Defined Types and Symbols
- The \uicontrol Outline view shows the type hierarchy in a QML file.
+ The \uicontrol Outline view shows an overview of defined types and other
+ symbols, as well as their properties and hierarchy in a source file.
\list
\li To see a complete list of all bindings, select
\uicontrol {Filter Tree} > \uicontrol {Show All Bindings}.
- \li To stop the synchronization with the QML type selected in the
+ \li To stop the synchronization with the type or symbol selected in the
editor, deselect \uicontrol {Synchronize with Editor}.
\endlist
diff --git a/src/plugins/android/androidrunnerworker.cpp b/src/plugins/android/androidrunnerworker.cpp
index 112b899fdb..c1fdb72c33 100644
--- a/src/plugins/android/androidrunnerworker.cpp
+++ b/src/plugins/android/androidrunnerworker.cpp
@@ -99,14 +99,14 @@ static bool isTimedOut(const chrono::high_resolution_clock::time_point &start,
return timedOut;
}
-static qint64 extractPID(const QString &output, const QString &packageName)
+static qint64 extractPID(const QByteArray &output, const QString &packageName)
{
qint64 pid = -1;
foreach (auto tuple, output.split('\n')) {
tuple = tuple.simplified();
if (!tuple.isEmpty()) {
auto parts = tuple.split(':');
- QString commandName = parts.first();
+ QString commandName = QString::fromLocal8Bit(parts.first());
if (parts.length() == 2 && commandName == packageName) {
pid = parts.last().toLongLong();
break;
@@ -125,18 +125,17 @@ static void findProcessPID(QFutureInterface<qint64> &fi, QStringList selector,
qint64 processPID = -1;
chrono::high_resolution_clock::time_point start = chrono::high_resolution_clock::now();
-
- selector.append("shell");
- selector.append(preNougat ? pidScriptPreNougat : pidScript.arg(packageName));
-
do {
QThread::msleep(200);
- SdkToolResult result = AndroidManager::runAdbCommand(selector);
+ QString adbPath = AndroidConfigurations::currentConfig().adbToolPath().toString();
+ selector.append("shell");
+ selector.append(preNougat ? pidScriptPreNougat : pidScript.arg(packageName));
+ const auto out = Utils::SynchronousProcess().runBlocking(adbPath, selector).allRawOutput();
if (preNougat) {
- processPID = extractPID(result.stdOut(), packageName);
+ processPID = extractPID(out, packageName);
} else {
- if (!result.stdOut().isEmpty())
- processPID = result.stdOut().trimmed().toLongLong();
+ if (!out.isEmpty())
+ processPID = out.trimmed().toLongLong();
}
} while (processPID == -1 && !isTimedOut(start) && !fi.isCanceled());
@@ -325,11 +324,8 @@ void AndroidRunnerWorker::forceStop()
runAdb({"shell", "am", "force-stop", m_packageName});
// try killing it via kill -9
- QString out;
- runAdb({"shell", pidScriptPreNougat}, &out);
- qint64 pid = extractPID(out.simplified(), m_packageName);
- if (pid != -1)
- adbKill(pid);
+ if (m_processPID != -1)
+ adbKill(m_processPID);
}
void AndroidRunnerWorker::logcatReadStandardError()
diff --git a/src/plugins/coreplugin/editortoolbar.cpp b/src/plugins/coreplugin/editortoolbar.cpp
index 8f516fc669..c138d9d204 100644
--- a/src/plugins/coreplugin/editortoolbar.cpp
+++ b/src/plugins/coreplugin/editortoolbar.cpp
@@ -272,8 +272,6 @@ void EditorToolBar::addEditor(IEditor *editor)
if (toolBar && !d->m_isStandalone)
addCenterToolBar(toolBar);
-
- updateDocumentStatus(editor->document());
}
void EditorToolBar::addCenterToolBar(QWidget *toolBar)
@@ -408,10 +406,6 @@ void EditorToolBar::updateDocumentStatus(IDocument *document)
return;
}
- const Utils::optional<int> index = DocumentModel::rowOfDocument(document);
- if (QTC_GUARD(index))
- d->m_editorList->setCurrentIndex(*index);
-
if (document->filePath().isEmpty()) {
d->m_lockButton->setIcon(QIcon());
d->m_lockButton->setEnabled(false);
diff --git a/src/plugins/debugger/debuggerdialogs.cpp b/src/plugins/debugger/debuggerdialogs.cpp
index 1b3cacdd9d..aa5cd1b1ab 100644
--- a/src/plugins/debugger/debuggerdialogs.cpp
+++ b/src/plugins/debugger/debuggerdialogs.cpp
@@ -73,6 +73,7 @@ class StartApplicationDialogPrivate
public:
KitChooser *kitChooser;
QLabel *serverPortLabel;
+ QLabel *channelOverrideHintLabel;
QLabel *channelOverrideLabel;
QLineEdit *channelOverrideEdit;
QSpinBox *serverPortSpinBox;
@@ -237,6 +238,12 @@ StartApplicationDialog::StartApplicationDialog(QWidget *parent)
d->serverPortSpinBox = new QSpinBox(this);
d->serverPortSpinBox->setRange(1, 65535);
+ d->channelOverrideHintLabel =
+ new QLabel(tr("Normally, the running server is identified by the IP of the "
+ "device in the kit and the server port selected above.\n"
+ "You can choose another communication channel here, such as "
+ "a serial line or custom ip:port."));
+
d->channelOverrideLabel = new QLabel(tr("Override server channel:"), this);
d->channelOverrideEdit = new QLineEdit(this);
//: "For example, /dev/ttyS0, COM1, 127.0.0.1:1234"
@@ -304,10 +311,7 @@ StartApplicationDialog::StartApplicationDialog(QWidget *parent)
formLayout->addRow(tr("Break at \"&main\":"), d->breakAtMainCheckBox);
formLayout->addRow(d->serverStartScriptLabel, d->serverStartScriptPathChooser);
formLayout->addRow(tr("Debug &information:"), d->debuginfoPathChooser);
- formLayout->addRow(new QLabel(tr("Normally, the running server is identified by the IP of the "
- "device in the kit and the server port selected above.\n"
- "You can choose another communication channel here, such as "
- "a serial line or custom ip:port.")));
+ formLayout->addRow(d->channelOverrideHintLabel);
formLayout->addRow(d->channelOverrideLabel, d->channelOverrideEdit);
formLayout->addRow(line2);
formLayout->addRow(tr("&Recent:"), d->historyComboBox);
@@ -396,6 +400,7 @@ void StartApplicationDialog::run(bool attachRemote)
dialog.d->serverStartScriptLabel->setVisible(false);
dialog.d->serverPortSpinBox->setVisible(false);
dialog.d->serverPortLabel->setVisible(false);
+ dialog.d->channelOverrideHintLabel->setVisible(false);
dialog.d->channelOverrideLabel->setVisible(false);
dialog.d->channelOverrideEdit->setVisible(false);
}
diff --git a/src/plugins/perfprofiler/perfconfigwidget.cpp b/src/plugins/perfprofiler/perfconfigwidget.cpp
index 4a228580d6..5134ee4f6e 100644
--- a/src/plugins/perfprofiler/perfconfigwidget.cpp
+++ b/src/plugins/perfprofiler/perfconfigwidget.cpp
@@ -160,6 +160,10 @@ void PerfConfigWidget::setTarget(ProjectExplorer::Target *target)
QTC_CHECK(!m_process || m_process->state() == QProcess::NotRunning);
m_process.reset(device->createProcess(nullptr));
+ if (!m_process) {
+ m_ui->useTracePointsButton->setEnabled(false);
+ return;
+ }
connect(m_process.get(), &ProjectExplorer::DeviceProcess::finished,
this, &PerfConfigWidget::handleProcessFinished);
diff --git a/src/plugins/qmldesigner/components/propertyeditor/gradientmodel.cpp b/src/plugins/qmldesigner/components/propertyeditor/gradientmodel.cpp
index a6616cf05f..fec1f3bdfd 100644
--- a/src/plugins/qmldesigner/components/propertyeditor/gradientmodel.cpp
+++ b/src/plugins/qmldesigner/components/propertyeditor/gradientmodel.cpp
@@ -38,6 +38,8 @@
#include <utils/qtcassert.h>
+#include <QTimer>
+
GradientModel::GradientModel(QObject *parent) :
QAbstractListModel(parent)
{
@@ -150,6 +152,9 @@ void GradientModel::addGradient()
if (!color.isValid())
color = QColor(Qt::white);
+ if (m_gradientTypeName != "Gradient")
+ ensureShapesImport();
+
QmlDesigner::RewriterTransaction transaction = view()->beginRewriterTransaction(QByteArrayLiteral("GradientModel::addGradient"));
QmlDesigner::ModelNode gradientNode = createGradientNode();
@@ -173,6 +178,8 @@ void GradientModel::addGradient()
}
setupModel();
+ if (m_gradientTypeName != "Gradient")
+ QTimer::singleShot(100, [this](){ view()->resetPuppet(); }); /*Unfortunately required */
emit hasGradientChanged();
emit gradientTypeChanged();
}
@@ -321,7 +328,7 @@ void GradientModel::setAnchorBackend(const QVariant &anchorBackend)
m_itemNode = backendCasted->getItemNode();
if (m_itemNode.isValid()
- && m_itemNode.modelNode().hasProperty(gradientPropertyName().toUtf8()))
+ && m_itemNode.modelNode().hasNodeProperty(gradientPropertyName().toUtf8()))
m_gradientTypeName = m_itemNode.modelNode().nodeProperty(gradientPropertyName().toUtf8()).modelNode().simplifiedTypeName();
setupModel();
@@ -445,7 +452,6 @@ QmlDesigner::ModelNode GradientModel::createGradientNode()
fullTypeName.prepend("QtQuick.");
} else {
fullTypeName.prepend("QtQuick.Shapes.");
- ensureShapesImport();
}
auto metaInfo = model()->metaInfo(fullTypeName);
diff --git a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp
index 7f2279ce4c..821841e218 100644
--- a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp
+++ b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp
@@ -85,7 +85,7 @@ static TypeName resolveTypeName(const ASTPropertyReference *ref, const ContextPt
{
TypeName type = "unknown";
- if (ref->ast()->defaultToken.isValid()) {
+ if (ref->ast()->propertyToken.isValid()) {
type = ref->ast()->memberType->name.toUtf8();
if (type == "alias") {
diff --git a/src/tools/clangbackend/source/clangfilesystemwatcher.cpp b/src/tools/clangbackend/source/clangfilesystemwatcher.cpp
index a51676abe0..bcd03fac61 100644
--- a/src/tools/clangbackend/source/clangfilesystemwatcher.cpp
+++ b/src/tools/clangbackend/source/clangfilesystemwatcher.cpp
@@ -60,7 +60,7 @@ QStringList filterExistingFiles(QStringList &&filePaths)
filePaths.erase(startOfNonExistingFilePaths, filePaths.end());
- return filePaths;
+ return std::move(filePaths);
}
}
diff --git a/tests/system/shared/editor_utils.py b/tests/system/shared/editor_utils.py
index d59280f161..b1ea1bb1bd 100644
--- a/tests/system/shared/editor_utils.py
+++ b/tests/system/shared/editor_utils.py
@@ -78,7 +78,10 @@ def menuVisibleAtEditor(editor, menuInList):
return True
return False
menu = waitForObject("{type='QMenu' unnamed='1' visible='1'}", 500)
- success = menu.visible and widgetContainsPoint(editor, menu.mapToGlobal(QPoint(0, 0)))
+ topLeft = menu.mapToGlobal(QPoint(0, 0))
+ bottomLeft = menu.mapToGlobal(QPoint(0, menu.height))
+ success = menu.visible and (widgetContainsPoint(editor, topLeft)
+ or widgetContainsPoint(editor, bottomLeft))
if success:
menuInList[0] = menu
return success