diff options
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 Binary files differindex b1fc61b36d..08679a60b2 100644 --- a/doc/images/qml-script-console.png +++ b/doc/images/qml-script-console.png diff --git a/doc/images/qtcreator-debug-button.png b/doc/images/qtcreator-debug-button.png Binary files differnew file mode 100644 index 0000000000..c27b11f2dd --- /dev/null +++ b/doc/images/qtcreator-debug-button.png diff --git a/doc/images/qtcreator-typo-clang.png b/doc/images/qtcreator-typo-clang.png Binary files differnew file mode 100644 index 0000000000..3e3ad7daea --- /dev/null +++ b/doc/images/qtcreator-typo-clang.png 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 |