From 7d5013cefd55f7edd42c685fa0ddfa2c119605aa Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Wed, 15 Aug 2018 12:42:14 +0200 Subject: [PATCH 01/17] Use Qt::AA_UseOpenGLES instead of QT_OPENGL Environment variables are passed on to user applications, and we should avoid forcing ANGLE on these. Task-number: QTCREATORBUG-20808 Change-Id: Ia6663e4e2bc4f78ec053d100563a0f07d47092be Reviewed-by: Eike Ziller --- src/app/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/main.cpp b/src/app/main.cpp index 1c7c3947607..c498db37593 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -379,7 +379,7 @@ int main(int argc, char **argv) { #ifdef Q_OS_WIN if (!qEnvironmentVariableIsSet("QT_OPENGL")) - qputenv("QT_OPENGL", "angle"); + QCoreApplication::setAttribute(Qt::AA_UseOpenGLES); #endif if (qEnvironmentVariableIsSet("QTCREATOR_DISABLE_NATIVE_MENUBAR") From 4e1a3b0029ee3adcb6ef2cc0e9cec58f8bc69b63 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Mon, 13 Aug 2018 16:18:33 +0200 Subject: [PATCH 02/17] File System View: Fix scroll position and bread crumb in some cases Use a model index from the right model, and update the bread crumb, when updating the scroll position delayed, for the case where the directory for the file was not already loaded in the file system model yet. Broke with introduction of the folder vs alphabetic sorting. Task-number: QTCREATORBUG-20897 Change-Id: Ifc912184b4910ed546c0141044eead3650b98c87 Reviewed-by: David Schulz --- .../projectexplorer/foldernavigationwidget.cpp | 14 +++++++------- .../projectexplorer/foldernavigationwidget.h | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/plugins/projectexplorer/foldernavigationwidget.cpp b/src/plugins/projectexplorer/foldernavigationwidget.cpp index d4c91d32b9d..b0df6203754 100644 --- a/src/plugins/projectexplorer/foldernavigationwidget.cpp +++ b/src/plugins/projectexplorer/foldernavigationwidget.cpp @@ -378,10 +378,7 @@ FolderNavigationWidget::FolderNavigationWidget(QWidget *parent) : QWidget(parent connect(m_listView->selectionModel(), &QItemSelectionModel::currentChanged, this, - [this](const QModelIndex ¤t, const QModelIndex &previous) { - setCrumblePath(m_sortProxyModel->mapToSource(current), - m_sortProxyModel->mapToSource(previous)); - }, + &FolderNavigationWidget::setCrumblePath, Qt::QueuedConnection); connect(m_crumbLabel, &Utils::FileCrumbLabel::pathClicked, [this](const Utils::FileName &path) { const QModelIndex rootIndex = m_sortProxyModel->mapToSource(m_listView->rootIndex()); @@ -618,13 +615,15 @@ void FolderNavigationWidget::selectFile(const Utils::FileName &filePath) // Use magic timer for scrolling. m_listView->setCurrentIndex(fileIndex); QTimer::singleShot(200, this, [this, filePath] { - const QModelIndex fileIndex = m_fileSystemModel->index(filePath.toString()); + const QModelIndex fileIndex = m_sortProxyModel->mapFromSource( + m_fileSystemModel->index(filePath.toString())); if (fileIndex == m_listView->rootIndex()) { m_listView->horizontalScrollBar()->setValue(0); m_listView->verticalScrollBar()->setValue(0); } else { m_listView->scrollTo(fileIndex); } + setCrumblePath(fileIndex); }); } } @@ -700,11 +699,12 @@ void FolderNavigationWidget::createNewFolder(const QModelIndex &parent) m_listView->edit(index); } -void FolderNavigationWidget::setCrumblePath(const QModelIndex &index, const QModelIndex &) +void FolderNavigationWidget::setCrumblePath(const QModelIndex &index) { + const QModelIndex sourceIndex = m_sortProxyModel->mapToSource(index); const int width = m_crumbLabel->width(); const int previousHeight = m_crumbLabel->immediateHeightForWidth(width); - m_crumbLabel->setPath(Utils::FileName::fromString(m_fileSystemModel->filePath(index))); + m_crumbLabel->setPath(Utils::FileName::fromString(m_fileSystemModel->filePath(sourceIndex))); const int currentHeight = m_crumbLabel->immediateHeightForWidth(width); const int diff = currentHeight - previousHeight; if (diff != 0 && m_crumbLabel->isVisible()) { diff --git a/src/plugins/projectexplorer/foldernavigationwidget.h b/src/plugins/projectexplorer/foldernavigationwidget.h index 8f428863eba..f10f69d595d 100644 --- a/src/plugins/projectexplorer/foldernavigationwidget.h +++ b/src/plugins/projectexplorer/foldernavigationwidget.h @@ -131,7 +131,7 @@ private: QStringList projectsInDirectory(const QModelIndex &index) const; void openProjectsInDirectory(const QModelIndex &index); void createNewFolder(const QModelIndex &parent); - void setCrumblePath(const QModelIndex &index, const QModelIndex &); + void setCrumblePath(const QModelIndex &index); Core::IContext *m_context = nullptr; Utils::NavigationTreeView *m_listView = nullptr; From c5777741779ceee54a1761539933642dd1160273 Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Wed, 15 Aug 2018 22:40:46 +0300 Subject: [PATCH 03/17] MimeProvider: Add #include for version check It is required with Qt 5.11. Task-number: QTCREATORBUG-20912 Change-Id: I172caf605a95d560d730d8007f2cf623abc90957 Reviewed-by: Eike Ziller --- src/libs/utils/mimetypes/mimeprovider.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libs/utils/mimetypes/mimeprovider.cpp b/src/libs/utils/mimetypes/mimeprovider.cpp index 151da054586..70bec4e3d69 100644 --- a/src/libs/utils/mimetypes/mimeprovider.cpp +++ b/src/libs/utils/mimetypes/mimeprovider.cpp @@ -50,6 +50,7 @@ #include #include #include +#include using namespace Utils; using namespace Utils::Internal; From 98b6fd26bfb36e297f2a2171f1406acad82f0e4f Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Wed, 1 Aug 2018 15:40:19 +0300 Subject: [PATCH 04/17] Dumper: Fix enum display in nested types When used in SubItem, enums were displayed as "value of type E at address ". Change-Id: Ieecfb791126c6f63f272817afc6c8d05f28b9242 Reviewed-by: David Schulz --- share/qtcreator/debugger/dumper.py | 2 ++ tests/auto/debugger/tst_dumpers.cpp | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/share/qtcreator/debugger/dumper.py b/share/qtcreator/debugger/dumper.py index 4805545d246..b800a5ab24e 100644 --- a/share/qtcreator/debugger/dumper.py +++ b/share/qtcreator/debugger/dumper.py @@ -2924,6 +2924,8 @@ class DumperBase: return str(simple) if self.ldisplay is not None: return self.ldisplay + if self.type.code == TypeCodeEnum: + return self.displayEnum() #if self.ldata is not None: # if sys.version_info[0] == 2 and isinstance(self.ldata, buffer): # return bytes(self.ldata).encode('hex') diff --git a/tests/auto/debugger/tst_dumpers.cpp b/tests/auto/debugger/tst_dumpers.cpp index 9ac49187bae..f004a229bdb 100644 --- a/tests/auto/debugger/tst_dumpers.cpp +++ b/tests/auto/debugger/tst_dumpers.cpp @@ -6836,12 +6836,14 @@ void tst_Dumpers::dumper_data() QTest::newRow("Internal2") - << Data("struct Foo { int bar = 15; }; \n" + << Data("enum E { V1, V2 };\n" + "struct Foo { int bar = 15; E e = V1; };\n" "struct QtcDumperTest_PointerArray {\n" " Foo *foos = new Foo[10];\n" "};\n\n", "QtcDumperTest_PointerArray tc; unused(&tc);\n") + Check("tc.0.bar", "15", "int") + + Check("tc.0.e", "V1 (0)", "E") + Check("tc.1.bar", "15", "int") + Check("tc.2.bar", "15", "int") + Check("tc.3.bar", "15", "int"); From c76db4d085cf9d6bc459fdb26473446aa1bd6296 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Wed, 15 Aug 2018 15:21:48 +0200 Subject: [PATCH 05/17] Doc: Use defines to enable hiding device-related information Currently, only Android and embedded Linux devices are supported by Qt Design Studio. Change-Id: I10005f6a9cfeb93c99447796c1c9e6d47ab578de Reviewed-by: Vikas Pachdha Reviewed-by: Thomas Hartmann --- doc/config/qtcreator-project.qdocconf | 2 ++ doc/src/overview/creator-deployment-overview.qdoc | 4 ++++ doc/src/overview/creator-mobile-targets.qdoc | 6 ++++++ doc/src/projects/creator-projects-running.qdoc | 3 +++ 4 files changed, 15 insertions(+) diff --git a/doc/config/qtcreator-project.qdocconf b/doc/config/qtcreator-project.qdocconf index 983fc3e895e..58fceb2740b 100644 --- a/doc/config/qtcreator-project.qdocconf +++ b/doc/config/qtcreator-project.qdocconf @@ -51,6 +51,8 @@ include(macros.qdocconf) include(qt-cpp-ignore.qdocconf) include(qt-defines.qdocconf) +defines += qtcreator + sources.fileextensions = "*.qdoc" qhp.projects = QtCreator diff --git a/doc/src/overview/creator-deployment-overview.qdoc b/doc/src/overview/creator-deployment-overview.qdoc index 86fbaa54886..73355915804 100644 --- a/doc/src/overview/creator-deployment-overview.qdoc +++ b/doc/src/overview/creator-deployment-overview.qdoc @@ -55,10 +55,14 @@ When you deploy the application to a generic Linux-based device, \QC copies the application files to the connected device. You can test and debug the application on the device. + + \if defined(qtcreator) \li \l{Deploying Applications to QNX Neutrino Devices} When you deploy the application to a QNX Neutrino device, \QC copies the application files to the connected device. You can test and debug the application on the device. + \endif + \endlist */ diff --git a/doc/src/overview/creator-mobile-targets.qdoc b/doc/src/overview/creator-mobile-targets.qdoc index ae7aa0a284a..89398fbf566 100644 --- a/doc/src/overview/creator-mobile-targets.qdoc +++ b/doc/src/overview/creator-mobile-targets.qdoc @@ -59,10 +59,12 @@ 2.3.3, or later. You must install a Qt version targeting Android and the Android SDK and NDK to develop for Android devices. + \if defined(qtcreator) \li \l{Connecting Bare Metal Devices} You can connect bare metal devices to the development PC and use \QC to debug applications on them with GDB or a hardware debugger. + \endif \li \l{Connecting Embedded Linux Devices} @@ -70,6 +72,7 @@ Linux devices installed on the development PC, you can add it and the device to \QC. + \if defined(qtcreator) \li \l{Connecting iOS Devices} You use the tools delivered with Xcode to connect devices to \QC. @@ -82,9 +85,11 @@ debug applications on them from within \QC. This is currently only supported for QNX Neutrino devices, and requires the QNX SDK to be installed on the development PC. + \endif \endlist + \if defined(qtcreator) \section1 Related Topics \list @@ -97,4 +102,5 @@ local Linux PC, remote generic SSH Linux targets, or \l{Embedded Devices}{embedded devices}. \endlist + \endif */ diff --git a/doc/src/projects/creator-projects-running.qdoc b/doc/src/projects/creator-projects-running.qdoc index 5e794f9bfb8..342064856c9 100644 --- a/doc/src/projects/creator-projects-running.qdoc +++ b/doc/src/projects/creator-projects-running.qdoc @@ -76,5 +76,8 @@ \l{Specifying Run Settings}. \include linux-mobile/creator-projects-running-generic-linux.qdocinc running on embedded linux + + \if defined(qtcreator) \include qnx/creator-projects-running-qnx.qdocinc running on qnx + \endif */ From 44776760babe3e3bdf0b00903db91387e2780a42 Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Wed, 15 Aug 2018 22:42:38 +0300 Subject: [PATCH 06/17] Tests: Add #include for version checks It is required with Qt 5.11. Change-Id: Ie6aee4a5d71a370952f908561a40ccc2d34d31c5 Reviewed-by: hjk --- tests/auto/debugger/tst_dumpers.cpp | 1 + tests/auto/debugger/tst_offsets.cpp | 2 ++ tests/helper/qmlapplicationviewer/qmlapplicationviewer.cpp | 1 + 3 files changed, 4 insertions(+) diff --git a/tests/auto/debugger/tst_dumpers.cpp b/tests/auto/debugger/tst_dumpers.cpp index f004a229bdb..06414bff075 100644 --- a/tests/auto/debugger/tst_dumpers.cpp +++ b/tests/auto/debugger/tst_dumpers.cpp @@ -1339,6 +1339,7 @@ void tst_Dumpers::dumper() "\n\n" + data.includes + "\n\n" + (data.useQHash ? "\n#include " + "\n#include " "\n#if QT_VERSION >= 0x050900" "\n#include " "\nvoid initHashSeed() { qSetGlobalQHashSeed(0); }" diff --git a/tests/auto/debugger/tst_offsets.cpp b/tests/auto/debugger/tst_offsets.cpp index 5dca246bcff..8bba5fd529c 100644 --- a/tests/auto/debugger/tst_offsets.cpp +++ b/tests/auto/debugger/tst_offsets.cpp @@ -37,6 +37,8 @@ #endif #endif +#include + #include #include #include diff --git a/tests/helper/qmlapplicationviewer/qmlapplicationviewer.cpp b/tests/helper/qmlapplicationviewer/qmlapplicationviewer.cpp index 0a874318676..5c63c4e432b 100644 --- a/tests/helper/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/tests/helper/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -42,6 +42,7 @@ #include #include +#include #include #include #include From eb0f3997ad46c36622884ac71188dd91937064db Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Thu, 16 Aug 2018 09:29:46 +0200 Subject: [PATCH 07/17] Update macOS requirement for binary packages Qt 5.11 does not support macOS 10.10 Change-Id: I7438b1354c006447d7ba2148ebe616dafe39ef53 Reviewed-by: Leena Miettinen --- README.md | 2 +- doc/src/overview/creator-supported-platforms.qdoc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index cb49a7e024e..f2a481219d2 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ The standalone binary packages support the following platforms: * Windows 7 or later * (K)Ubuntu Linux 16.04 (64-bit) or later -* macOS 10.10 or later +* macOS 10.11 or later ## Compiling Qt Creator diff --git a/doc/src/overview/creator-supported-platforms.qdoc b/doc/src/overview/creator-supported-platforms.qdoc index 8334f9a8001..d6b95f77601 100644 --- a/doc/src/overview/creator-supported-platforms.qdoc +++ b/doc/src/overview/creator-supported-platforms.qdoc @@ -97,7 +97,7 @@ \endlist - \li \macos 10.10 or later with the following: + \li \macos 10.11 or later with the following: \list From 16803bf9ecb548d10124e9056a59fc7ef8e771e7 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Thu, 16 Aug 2018 12:28:51 +0200 Subject: [PATCH 08/17] Add changes file for 4.7.1 Change-Id: I95ec99d566ae77313f7e729d886f7c23ac9ace28 Reviewed-by: Leena Miettinen --- dist/changes-4.7.1.md | 66 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 dist/changes-4.7.1.md diff --git a/dist/changes-4.7.1.md b/dist/changes-4.7.1.md new file mode 100644 index 00000000000..27a79d8aa0b --- /dev/null +++ b/dist/changes-4.7.1.md @@ -0,0 +1,66 @@ +Qt Creator version 4.7.1 contains bug fixes. + +The most important changes are listed in this document. For a complete +list of changes, see the Git log for the Qt Creator sources that +you can check out from the public Git repository. For example: + + git clone git://code.qt.io/qt-creator/qt-creator.git + git log --cherry-pick --pretty=oneline origin/v4.7.0..v4.7.1 + +Editing + +* Fixed that generic highlighting could use unreadable colors + (QTCREATORBUG-20919) + +Qbs Projects + +* Fixed C++ version passed to code model (QTCREATORBUG-20909) + +C++ Support + +* Clang Code Model + * Fixed include order for Clang headers + +Debugging + +* Fixed remote debugging command line argument (QTCREATORBUG-20928) +* GDB + * Fixed GDB built-in pretty printer handling (QTCREATORBUG-20770) +* CDB + * Fixed pretty printing of enums +* QML + * Fixed re-enabling breakpoints (QTCREATORBUG-20795) + * Fixed `Attach to QML Port` (QTCREATORBUG-20168) + +Platform Specific + +Windows + +* Improved resource consumption of MSVC detection, which prompted some + Anti-Virus software to block Qt Creator (QTCREATORBUG-20829) +* Fixed that Qt Creator forced use of ANGLE on user applications + (QTCREATORBUG-20808) +* Fixed MSVC toolchain detection for Windows SKD 7 (QTCREATORBUG-18328) + +Remote Linux + +* Switched SSH support to use Botan 2 (QTCREATORBUG-18802) + +Credits for these changes go to: +Andre Hartmann +André Pönitz +Christian Kandeler +Christian Stenger +David Schulz +Eike Ziller +Hannes Domani +Ivan Donchevskii +Leena Miettinen +Marco Benelli +Orgad Shaneh +Robert Löhning +scootergrisen +Sergey Belyashov +Thomas Hartmann +Tobias Hunger +Ulf Hermann From b70f2b2a697b7483c2dd24a5e1ddd184b8c1fa84 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Mon, 13 Aug 2018 14:27:58 +0200 Subject: [PATCH 09/17] Fix Ctrl+n shortcut in locator widget in some configurations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit With Gnome, Qt seems to send shortcut override events to the CompletionList, and not to the input field, so handle the shortcut override for Ctrl+N/P there too. Technically this is the correct thing to do anyhow, since CompletionList also handles the corresponding key press events. Task-number: QTCREATORBUG-20867 Change-Id: Ia72aae3b085140f18b0f1007991d38864dfe8426 Reviewed-by: André Hartmann --- src/plugins/coreplugin/locator/locatorwidget.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/plugins/coreplugin/locator/locatorwidget.cpp b/src/plugins/coreplugin/locator/locatorwidget.cpp index 55be82072ab..f15f645b7bb 100644 --- a/src/plugins/coreplugin/locator/locatorwidget.cpp +++ b/src/plugins/coreplugin/locator/locatorwidget.cpp @@ -514,6 +514,13 @@ bool CompletionList::eventFilter(QObject *watched, QEvent *event) return true; } break; + case Qt::Key_P: + case Qt::Key_N: + if (ke->modifiers() == Qt::KeyboardModifiers(Utils::HostOsInfo::controlModifier())) { + event->accept(); + return true; + } + break; } } return Utils::TreeView::eventFilter(watched, event); From 8828d79c4ac28d654fa1df8586678d98fa2a316e Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Fri, 10 Aug 2018 16:15:05 +0200 Subject: [PATCH 10/17] Doc: Use defines in navigation links To be able to build Qt Creator Manual and Qt Design Studio Manual from the same sources. Change-Id: I6adbc7b7f23c40f24508a8de7ae9ad5a2a3a103e Reviewed-by: Thomas Hartmann --- doc/src/analyze/qtquick-profiler.qdoc | 7 ++++++- doc/src/android/androiddev.qdoc | 6 +++++- doc/src/debugger/creator-debugger.qdoc | 7 ++++++- doc/src/debugger/qtquick-debugger-example.qdoc | 7 ++++++- doc/src/debugger/qtquick-debugging.qdoc | 7 ++++++- doc/src/editors/creator-coding.qdoc | 7 ++++++- doc/src/editors/creator-editors-options-text.qdoc | 6 +++++- doc/src/howto/creator-keyboard-shortcuts.qdoc | 7 ++++++- .../linux-mobile/creator-deployment-embedded-linux.qdoc | 6 +++++- doc/src/linux-mobile/linuxdev.qdoc | 7 ++++++- doc/src/overview/creator-help-overview.qdoc | 6 +++++- doc/src/overview/creator-mobile-targets.qdoc | 6 +++++- doc/src/projects/creator-projects-builds-customizing.qdoc | 7 ++++++- doc/src/projects/creator-projects-running.qdoc | 6 +++++- .../projects/creator-projects-settings-dependencies.qdoc | 6 +++++- doc/src/qtquick/qtquick-components.qdoc | 7 ++++++- doc/src/qtquick/qtquick-connection-editor-bindings.qdoc | 6 +++++- doc/src/qtquick/qtquick-designer.qdoc | 7 ++++++- doc/src/qtquick/qtquick-iso-icon-browser.qdoc | 7 ++++++- doc/src/qtquick/qtquick-navigator.qdoc | 6 +++++- doc/src/qtquick/qtquick-pathview-editor.qdoc | 7 ++++++- doc/src/qtquick/qtquick-properties.qdoc | 6 +++++- doc/src/qtquick/qtquick-states.qdoc | 7 ++++++- doc/src/qtquick/qtquick-ui-forms.qdoc | 7 ++++++- doc/src/vcs/creator-vcs-git.qdoc | 7 ++++++- 25 files changed, 140 insertions(+), 25 deletions(-) diff --git a/doc/src/analyze/qtquick-profiler.qdoc b/doc/src/analyze/qtquick-profiler.qdoc index 1b0c5fb333d..92fae49a2d9 100644 --- a/doc/src/analyze/qtquick-profiler.qdoc +++ b/doc/src/analyze/qtquick-profiler.qdoc @@ -31,9 +31,14 @@ /*! \contentspage index.html - \previouspage creator-analyze-mode.html \page creator-qml-performance-monitor.html + \if defined(qtdesignstudio) + \previouspage creator-qml-performance-monitor.html + \nextpage creator-help-overview.html + \else + \previouspage creator-analyze-mode.html \nextpage creator-valgrind-overview.html + \endif \title Profiling QML Applications diff --git a/doc/src/android/androiddev.qdoc b/doc/src/android/androiddev.qdoc index d4f3421d5b0..e2317d76178 100644 --- a/doc/src/android/androiddev.qdoc +++ b/doc/src/android/androiddev.qdoc @@ -26,9 +26,13 @@ /*! \contentspage index.html - \previouspage creator-connecting-mobile.html \page creator-developing-android.html + \previouspage creator-connecting-mobile.html + \if defined(qtdesignstudio) + \nextpage creator-developing-generic-linux.html + \else \nextpage creator-developing-baremetal.html + \endif \title Connecting Android Devices diff --git a/doc/src/debugger/creator-debugger.qdoc b/doc/src/debugger/creator-debugger.qdoc index 2fcad93e124..b239fa8a15e 100644 --- a/doc/src/debugger/creator-debugger.qdoc +++ b/doc/src/debugger/creator-debugger.qdoc @@ -353,9 +353,14 @@ /*! \contentspage index.html - \previouspage creator-debugger-operating-modes.html \page creator-debug-mode.html + \if defined(qtdesignstudio) + \previouspage studio-debugging.html + \nextpage creator-debugging-qml.html + \else + \previouspage creator-debugger-operating-modes.html \nextpage creator-debugging-helpers.html + \endif \title Interacting with the Debugger diff --git a/doc/src/debugger/qtquick-debugger-example.qdoc b/doc/src/debugger/qtquick-debugger-example.qdoc index 5643fc3f82d..5f0abb84df6 100644 --- a/doc/src/debugger/qtquick-debugger-example.qdoc +++ b/doc/src/debugger/qtquick-debugger-example.qdoc @@ -31,9 +31,14 @@ /*! \contentspage index.html - \previouspage creator-debugging-example.html \page creator-qml-debugging-example.html + \if defined(qtdesignstudio) + \previouspage creator-qml-debugging-example.html + \nextpage creator-qml-performance-monitor.html + \else + \previouspage creator-debugging-example.html \nextpage creator-troubleshooting-debugging.html + \endif \title Debugging a Qt Quick Example Application diff --git a/doc/src/debugger/qtquick-debugging.qdoc b/doc/src/debugger/qtquick-debugging.qdoc index 5686bb44c69..92c5c43d8b2 100644 --- a/doc/src/debugger/qtquick-debugging.qdoc +++ b/doc/src/debugger/qtquick-debugging.qdoc @@ -31,9 +31,14 @@ /*! \contentspage index.html - \previouspage creator-debugging-helpers.html \page creator-debugging-qml.html + \if defined(qtdesignstudio) + \previouspage creator-debug-mode.html + \nextpage creator-qml-debugging-example.html + \else + \previouspage creator-debugging-helpers.html \nextpage creator-debugging-example.html + \endif \title Debugging Qt Quick Projects diff --git a/doc/src/editors/creator-coding.qdoc b/doc/src/editors/creator-coding.qdoc index 234d203ea47..2f0608f1c4b 100644 --- a/doc/src/editors/creator-coding.qdoc +++ b/doc/src/editors/creator-coding.qdoc @@ -31,8 +31,13 @@ /*! \contentspage index.html - \previouspage creator-usability.html \page creator-coding.html + \if defined(qtdesignstudio) + \previouspage creator-keyboard-shortcuts.html + \nextpage + \else + \previouspage creator-usability.html + \endif \nextpage creator-editor-functions.html \title Coding diff --git a/doc/src/editors/creator-editors-options-text.qdoc b/doc/src/editors/creator-editors-options-text.qdoc index 63401f25b12..4ef6e256fa9 100644 --- a/doc/src/editors/creator-editors-options-text.qdoc +++ b/doc/src/editors/creator-editors-options-text.qdoc @@ -31,9 +31,13 @@ /*! \contentspage index.html - \previouspage creator-editor-options.html \page creator-editor-options-text.html + \previouspage creator-editor-options.html + \if defined(qtdesignstudio) + \nextpage studio-javascript.html + \else \nextpage creator-editor-fakevim.html + \endif \title Specifying Text Editor Settings diff --git a/doc/src/howto/creator-keyboard-shortcuts.qdoc b/doc/src/howto/creator-keyboard-shortcuts.qdoc index 4a6ba7b056a..5a02d1a783b 100644 --- a/doc/src/howto/creator-keyboard-shortcuts.qdoc +++ b/doc/src/howto/creator-keyboard-shortcuts.qdoc @@ -31,9 +31,14 @@ /*! \contentspage index.html - \previouspage creator-cli.html \page creator-keyboard-shortcuts.html + \if defined(qtdesignstudio) + \previouspage studio-advanced.html + \nextpage creator-coding.html + \else + \previouspage creator-cli.html \nextpage creator-editor-external.html + \endif \title Keyboard Shortcuts diff --git a/doc/src/linux-mobile/creator-deployment-embedded-linux.qdoc b/doc/src/linux-mobile/creator-deployment-embedded-linux.qdoc index 346f48a42a3..7733fa62c0d 100644 --- a/doc/src/linux-mobile/creator-deployment-embedded-linux.qdoc +++ b/doc/src/linux-mobile/creator-deployment-embedded-linux.qdoc @@ -31,9 +31,13 @@ /*! \contentspage index.html - \previouspage creator-deploying-android.html \page creator-deployment-embedded-linux.html + \previouspage creator-deploying-android.html + \if defined(qtdesignstudio) + \nextpage creator-connecting-mobile.html + \else \nextpage creator-deployment-qnx.html + \endif \title Deploying Applications to Embedded Linux Devices diff --git a/doc/src/linux-mobile/linuxdev.qdoc b/doc/src/linux-mobile/linuxdev.qdoc index f323e488a7d..2f35517fdc0 100644 --- a/doc/src/linux-mobile/linuxdev.qdoc +++ b/doc/src/linux-mobile/linuxdev.qdoc @@ -26,9 +26,14 @@ /*! \contentspage index.html - \previouspage creator-developing-baremetal.html \page creator-developing-generic-linux.html + \if defined(qtdesignstudio) + \previouspage creator-developing-android.html + \nextpage creator-build-process-customizing.html + \else + \previouspage creator-developing-baremetal.html \nextpage creator-developing-ios.html + \endif \title Connecting Embedded Linux Devices diff --git a/doc/src/overview/creator-help-overview.qdoc b/doc/src/overview/creator-help-overview.qdoc index cb36664bc9f..70eba62c41e 100644 --- a/doc/src/overview/creator-help-overview.qdoc +++ b/doc/src/overview/creator-help-overview.qdoc @@ -31,8 +31,12 @@ /*! \contentspage index.html - \previouspage creator-task-lists.html \page creator-help-overview.html + \if defined(qtdesignstudio) + \previouspage creator-qml-performance-monitor.html + \else + \previouspage creator-task-lists.html + \endif \nextpage creator-help.html \title Getting Help diff --git a/doc/src/overview/creator-mobile-targets.qdoc b/doc/src/overview/creator-mobile-targets.qdoc index 89398fbf566..899323b368e 100644 --- a/doc/src/overview/creator-mobile-targets.qdoc +++ b/doc/src/overview/creator-mobile-targets.qdoc @@ -31,8 +31,12 @@ /*! \contentspage index.html - \previouspage creator-deployment-qnx.html \page creator-connecting-mobile.html + \if defined(qtdesignstudio) + \previouspage creator-deployment-embedded-linux.html + \else + \previouspage creator-deployment-qnx.html + \endif \nextpage creator-developing-android.html \title Connecting Devices diff --git a/doc/src/projects/creator-projects-builds-customizing.qdoc b/doc/src/projects/creator-projects-builds-customizing.qdoc index c59182e2f98..08e894f9194 100644 --- a/doc/src/projects/creator-projects-builds-customizing.qdoc +++ b/doc/src/projects/creator-projects-builds-customizing.qdoc @@ -31,9 +31,14 @@ /*! \contentspage index.html - \previouspage creator-developing-qnx.html \page creator-build-process-customizing.html + \if defined(qtdesignstudio) + \previouspage creator-developing-generic-linux.html + \nextpage studio-advanced.html + \else + \previouspage creator-developing-qnx.html \nextpage creator-testing.html + \endif \title Customizing the Build Process diff --git a/doc/src/projects/creator-projects-running.qdoc b/doc/src/projects/creator-projects-running.qdoc index 342064856c9..57f3a1419f6 100644 --- a/doc/src/projects/creator-projects-running.qdoc +++ b/doc/src/projects/creator-projects-running.qdoc @@ -31,8 +31,12 @@ /*! \contentspage index.html - \previouspage creator-building-targets.html \page creator-running-targets.html + \if defined(qtdesignstudio) + \previouspage studio-live-preview.html + \else + \previouspage creator-building-targets.html + \endif \nextpage creator-deployment.html \title Running on Multiple Platforms diff --git a/doc/src/projects/creator-projects-settings-dependencies.qdoc b/doc/src/projects/creator-projects-settings-dependencies.qdoc index fe6ffe9a018..e576ac9feea 100644 --- a/doc/src/projects/creator-projects-settings-dependencies.qdoc +++ b/doc/src/projects/creator-projects-settings-dependencies.qdoc @@ -31,9 +31,13 @@ /*! \contentspage index.html - \previouspage creator-code-style-settings.html \page creator-build-dependencies.html + \previouspage creator-code-style-settings.html + \if defined(qtdesignstudio) + \nextpage studio-designing.html + \else \nextpage creator-sharing-project-settings.html + \endif \title Specifying Dependencies diff --git a/doc/src/qtquick/qtquick-components.qdoc b/doc/src/qtquick/qtquick-components.qdoc index d0ec40ad074..718d46ca51f 100644 --- a/doc/src/qtquick/qtquick-components.qdoc +++ b/doc/src/qtquick/qtquick-components.qdoc @@ -31,9 +31,14 @@ /*! \contentspage index.html - \previouspage creator-using-qt-quick-designer.html \page quick-components.html + \if defined(qtdesignstudio) + \previouspage studio-designing.html + \nextpage qtquick-navigator.html + \else + \previouspage creator-using-qt-quick-designer.html \nextpage quick-buttons.html + \endif \title Creating Components diff --git a/doc/src/qtquick/qtquick-connection-editor-bindings.qdoc b/doc/src/qtquick/qtquick-connection-editor-bindings.qdoc index 614a3841ea7..2f5c1ec54b3 100644 --- a/doc/src/qtquick/qtquick-connection-editor-bindings.qdoc +++ b/doc/src/qtquick/qtquick-connection-editor-bindings.qdoc @@ -25,9 +25,13 @@ /*! \contentspage {Qt Creator Manual} - \previouspage quick-dynamic-properties.html \page quick-property-bindings.html + \previouspage quick-dynamic-properties.html + \if defined(qtdesignstudio) + \nextpage quick-states.html + \else \nextpage quick-connections-backend.html + \endif \title Adding Bindings Between Properties diff --git a/doc/src/qtquick/qtquick-designer.qdoc b/doc/src/qtquick/qtquick-designer.qdoc index cedbea745f0..10aff2aabc9 100644 --- a/doc/src/qtquick/qtquick-designer.qdoc +++ b/doc/src/qtquick/qtquick-designer.qdoc @@ -31,9 +31,14 @@ /*! \contentspage index.html - \previouspage creator-quick-ui-forms.html \page creator-using-qt-quick-designer.html + \if defined(qtdesignstudio) + \previouspage studio-tutorials.html + \nextpage studio-preview-example.html + \else + \previouspage creator-quick-ui-forms.html \nextpage quick-components.html + \endif \title Editing QML Files in Design Mode diff --git a/doc/src/qtquick/qtquick-iso-icon-browser.qdoc b/doc/src/qtquick/qtquick-iso-icon-browser.qdoc index c4ea2de21dd..efc216a7f6c 100644 --- a/doc/src/qtquick/qtquick-iso-icon-browser.qdoc +++ b/doc/src/qtquick/qtquick-iso-icon-browser.qdoc @@ -25,9 +25,14 @@ /*! \contentspage index.html - \previouspage quick-states.html \page qtquick-iso-icon-browser.html + \if defined(qtdesignstudio) + \previouspage qmldesigner-pathview-editor.html + \nextpage creator-quick-ui-forms.html + \else + \previouspage quick-states.html \nextpage quick-export-to-qml.html + \endif \title Browsing ISO 7000 Icons diff --git a/doc/src/qtquick/qtquick-navigator.qdoc b/doc/src/qtquick/qtquick-navigator.qdoc index 1b4f211ff59..e61e517bac9 100644 --- a/doc/src/qtquick/qtquick-navigator.qdoc +++ b/doc/src/qtquick/qtquick-navigator.qdoc @@ -25,8 +25,12 @@ /*! \contentspage {Qt Creator Manual} - \previouspage quick-scalable-image.html \page qtquick-navigator.html + \if defined(qtdesignstudio) + \previouspage quick-components.html + \else + \previouspage quick-scalable-image.html + \endif \nextpage qtquick-properties.html \title Managing Item Hierarchy diff --git a/doc/src/qtquick/qtquick-pathview-editor.qdoc b/doc/src/qtquick/qtquick-pathview-editor.qdoc index 9ac6ffba6c2..872cd4cd8e7 100644 --- a/doc/src/qtquick/qtquick-pathview-editor.qdoc +++ b/doc/src/qtquick/qtquick-pathview-editor.qdoc @@ -25,9 +25,14 @@ /*! \contentspage index.html - \previouspage qtquick-properties.html \page qmldesigner-pathview-editor.html + \if defined(qtdesignstudio) + \previouspage studio-fonts.html + \nextpage qtquick-iso-icon-browser.html + \else + \previouspage qtquick-properties.html \nextpage qmldesigner-connections.html + \endif \title Editing PathView Properties diff --git a/doc/src/qtquick/qtquick-properties.qdoc b/doc/src/qtquick/qtquick-properties.qdoc index 95b5e41f121..4c78f25cfe4 100644 --- a/doc/src/qtquick/qtquick-properties.qdoc +++ b/doc/src/qtquick/qtquick-properties.qdoc @@ -25,9 +25,13 @@ /*! \contentspage {Qt Creator Manual} - \previouspage qtquick-navigator.html \page qtquick-properties.html + \previouspage qtquick-navigator.html + \if defined(qtdesignstudio) + \nextpage studio-timeline.html + \else \nextpage qmldesigner-pathview-editor.html + \endif \title Specifying Item Properties diff --git a/doc/src/qtquick/qtquick-states.qdoc b/doc/src/qtquick/qtquick-states.qdoc index d9a6ba95e45..e03355a0a5b 100644 --- a/doc/src/qtquick/qtquick-states.qdoc +++ b/doc/src/qtquick/qtquick-states.qdoc @@ -25,9 +25,14 @@ /*! \contentspage {Qt Creator Manual} - \previouspage quick-connections-backend.html \page quick-states.html + \if defined(qtdesignstudio) + \previouspage quick-property-bindings.html + \nextpage studio-fonts.html + \else + \previouspage quick-connections-backend.html \nextpage qtquick-iso-icon-browser.html + \endif \title Adding States diff --git a/doc/src/qtquick/qtquick-ui-forms.qdoc b/doc/src/qtquick/qtquick-ui-forms.qdoc index 09c82ed400c..8a320061db4 100644 --- a/doc/src/qtquick/qtquick-ui-forms.qdoc +++ b/doc/src/qtquick/qtquick-ui-forms.qdoc @@ -32,9 +32,14 @@ /*! \contentspage index.html - \previouspage quick-projects.html \page creator-quick-ui-forms.html + \if defined(qtdesignstudio) + \previouspage qtquick-iso-icon-browser.html + \nextpage studio-live-preview.html + \else + \previouspage quick-projects.html \nextpage creator-using-qt-quick-designer.html + \endif \title Qt Quick UI Forms diff --git a/doc/src/vcs/creator-vcs-git.qdoc b/doc/src/vcs/creator-vcs-git.qdoc index a8c1559748a..1909b1ae43e 100644 --- a/doc/src/vcs/creator-vcs-git.qdoc +++ b/doc/src/vcs/creator-vcs-git.qdoc @@ -31,9 +31,14 @@ /*! \contentspage index.html - \previouspage creator-vcs-cvs.html \page creator-vcs-git.html + \if defined(qtdesignstudio) + \previouspage studio-projects.html + \nextpage studio-designing.html + \else + \previouspage creator-vcs-cvs.html \nextpage creator-vcs-mercurial.html + \endif \title Using Git From a90dd96621ec4d67d6451812cf11580928ee0b32 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Thu, 16 Aug 2018 10:38:54 +0200 Subject: [PATCH 11/17] Doc: Move qtquick-profiler.qdoc to the "qtquick" folder It is needed for the Qt Design Studio Manual, where the "analyze" folder is now excluded from doc sources. Change-Id: Ic5fc97f05ca84e428be6309979e2927563c9e814 Reviewed-by: Eike Ziller --- doc/src/{analyze => qtquick}/qtquick-profiler.qdoc | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename doc/src/{analyze => qtquick}/qtquick-profiler.qdoc (100%) diff --git a/doc/src/analyze/qtquick-profiler.qdoc b/doc/src/qtquick/qtquick-profiler.qdoc similarity index 100% rename from doc/src/analyze/qtquick-profiler.qdoc rename to doc/src/qtquick/qtquick-profiler.qdoc From e885b3066323560ae1dda8397579effe4ce8a41d Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Fri, 17 Aug 2018 08:28:56 +0200 Subject: [PATCH 12/17] Botan: Fix passing sysroot on macOS Change-Id: I6c55947a637b975950edc93ecf6357369e22a13b Reviewed-by: Eike Ziller --- src/libs/botan/botan.pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libs/botan/botan.pro b/src/libs/botan/botan.pro index 48b3b2ea359..c93a6c6a855 100644 --- a/src/libs/botan/botan.pro +++ b/src/libs/botan/botan.pro @@ -30,7 +30,7 @@ mingw { BOTAN_CXX_FLAGS = msvc: BOTAN_CXX_FLAGS += /wd4127 /wd4244 /wd4250 /wd4267 /wd4334 /wd4702 /wd4996 else: BOTAN_CXX_FLAGS += -Wno-unused-parameter -macos: BOTAN_CXX_FLAGS += -mmacosx-version-min=$$QMAKE_MACOSX_DEPLOYMENT_TARGET -isysroot $$shell_quote($$QMAKE_MAC_SDK.macosx.Path) +macos: BOTAN_CXX_FLAGS += -mmacosx-version-min=$$QMAKE_MACOSX_DEPLOYMENT_TARGET -isysroot $$shell_quote($$QMAKE_MAC_SDK_PATH) unix: BOTAN_CXX_FLAGS += -fPIC !isEmpty(BOTAN_CXX_FLAGS): OTHER_FLAGS += --cxxflags=$$shell_quote($$BOTAN_CXX_FLAGS) win32: OTHER_FLAGS += --link-method=hardlink From 6a04f70e5b758989f3111fa88a956a89f1a5cd23 Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Wed, 15 Aug 2018 22:08:36 +0300 Subject: [PATCH 13/17] Botan: Fix build with compiler wrapper When using QMAKE_CXX='ccache g++' the build failed. Change-Id: Ic580d4d6561711d4d871ea242151628ad2678f99 Reviewed-by: Christian Kandeler --- src/libs/botan/botan.pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libs/botan/botan.pro b/src/libs/botan/botan.pro index c93a6c6a855..eb03ffee855 100644 --- a/src/libs/botan/botan.pro +++ b/src/libs/botan/botan.pro @@ -44,7 +44,7 @@ configure.output = $$BOTAN_BUILD_DIR/Makefile configure.variable_out = BOTAN_MAKEFILE configure.commands = cd $$BOTAN_BUILD_DIR_FOR_SHELL && \ python $$CONFIGURE_FILE_PATH_FOR_SHELL \ - --cc=$$BOTAN_CC_TYPE --cc-bin=$$QMAKE_CXX \ + --cc=$$BOTAN_CC_TYPE --cc-bin=$$shell_quote($$QMAKE_CXX) \ $$BOTAN_ARCH_SWITCH $$BOTAN_OS_SWITCH $$OTHER_FLAGS QMAKE_EXTRA_COMPILERS += configure From 656492225432f4da53eeb9f13e0591a0601ce9b7 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Fri, 17 Aug 2018 14:18:57 +0200 Subject: [PATCH 14/17] Doc: Move common debugger functions to an include file Some debugger functions are used for both C++ and QML debugging. Putting them into an include file enables using the descriptions in both the Qt Creator Manual and Qt Design Studio Manual. Change-Id: Ief7e1e1c76a881eb6722161a1b216b3d711c6290 Reviewed-by: hjk --- .../debugger/creator-debugger-common.qdocinc | 361 ++++++++++++++++++ doc/src/debugger/creator-debugger.qdoc | 319 +--------------- .../debugger/qtquick-debugger-example.qdoc | 2 +- doc/src/debugger/qtquick-debugging.qdoc | 9 +- doc/src/qtquick/qtquick-profiler.qdoc | 2 +- 5 files changed, 375 insertions(+), 318 deletions(-) create mode 100644 doc/src/debugger/creator-debugger-common.qdocinc diff --git a/doc/src/debugger/creator-debugger-common.qdocinc b/doc/src/debugger/creator-debugger-common.qdocinc new file mode 100644 index 00000000000..b867818cbef --- /dev/null +++ b/doc/src/debugger/creator-debugger-common.qdocinc @@ -0,0 +1,361 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt Creator documentation. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Free Documentation License Usage +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. Please review the following information to ensure +** the GNU Free Documentation License version 1.3 requirements +** will be met: https://www.gnu.org/licenses/fdl-1.3.html. +** +****************************************************************************/ + +/*! + +//! [debugger-breakpoints] + + \section1 Setting Breakpoints + + A breakpoint represents a position or sets of positions in the code that, + when executed, interrupts the program being debugged and passes the control + to you. You can then examine the state of the interrupted program, or + continue execution either line-by-line or continuously. + + \QC shows breakpoints in the \uicontrol Breakpoints view which is enabled + by default. The \uicontrol Breakpoints view is also accessible when the + debugger and the program being debugged is not running. + + \image qtcreator-debug-breakpoints.png "Breakpoints view" + + You can associate breakpoints with: + + \list + + \li Source code files and lines + + \li Functions + + \li Addresses + + \li Throwing and catching exceptions + + \li Executing and forking processes + + \li Executing some system calls + + \li Changes in a block of memory at a particular address when a + program is running + + \li Emitting QML signals + + \li Throwing JavaScript exceptions + + \endlist + + The interruption of a program by a breakpoint can be restricted with certain + conditions. + + You can set and delete breakpoints before the program starts running or + while it is running under the debugger's control. Breakpoints are saved + together with a session. + + \section2 Adding Breakpoints + + To add breakpoints: + + \list 1 + + \li Add a new breakpoint in one of the following ways: + + \list + + \li In the code editor, click the left margin or press \key F9 + (\key F8 for \macos) at a particular line you want the + program to stop. + + \li In the \uicontrol Breakpoints view, double-click in the empty + part of the view. + + \li In the \uicontrol Breakpoints view, select + \uicontrol {Add Breakpoint} in the context menu. + + \endlist + + \li In the \uicontrol {Breakpoint type} field, select the location in the + program code where you want the program to stop. The other options + to specify depend on the selected location. + + \image qtcreator-add-breakpoint.png "Add Breakpoints" dialog + + \li In the \uicontrol Condition field, set the condition to be evaluated + before stopping at the breakpoint if the condition evaluates as + true. + + \li In the \uicontrol Ignore field, specify the number of times that the + breakpoint is ignored before the program stops. + + \li In the \uicontrol Commands field, specify the commands to execute + when the program stops; one command on a line. GDB executes the + commands in the order in which they are specified. + + \endlist + + For more information on breakpoints, see + \l{http://sourceware.org/gdb/onlinedocs/gdb/Breakpoints.html#Breakpoints} + {Breakpoints, Watchpoints, and Catchpoints} in GDB documentation. + + \section2 Moving Breakpoints + + To move the breakpoint, drag and drop a breakpoint marker to another line. + + \section2 Deleting Breakpoints + + To delete breakpoints: + + \list + + \li Click the breakpoint marker in the text editor. + + \li Select the breakpoint in the \uicontrol Breakpoints view and press + \key Delete. + + \li Select \uicontrol {Delete Breakpoint} in the context menu in the + \uicontrol Breakpoints view. + + \endlist + + \section2 Enabling and Disabling Breakpoints + + To temporarily disable a breakpoint without deleting it and losing associated + data like conditions and commands: + + \list + + \li Right-click the breakpoint marker in the text editor and select + \uicontrol{Disable Breakpoint}. + + \li Select the breakpoint in the \uicontrol Breakpoints view and press + \key Space. + + \li Select \uicontrol {Disabled Breakpoint} in the context menu in the + \uicontrol Breakpoints view. + + \endlist + + A disabled breakpoint is marked with a hollow read circle in the + text editor and the \uicontrol Breakpoint view. + + To re-enable a temporarily disabled breakpoint: + + \list + + \li Right-click the marker of a disabled breakpoint in the text editor and + select \uicontrol{Enable Breakpoint}. + + \li Select a disabled breakpoint in the \uicontrol Breakpoints view and press + \key Space. + + \li Select \uicontrol {Disabled Breakpoint} in the context menu in the + \uicontrol Breakpoints view. + + \endlist + + With the notable exception of data breakpoints, breakpoints retain their + enabled or disabled state when the debugged program is restarted. + + \section2 Setting Data Breakpoints + + A \e {data breakpoint} stops the program when data is read or written at the + specified address. + + To set a data breakpoint at an address: + + \list 1 + + \li Right-click in the \uicontrol Breakpoints view to open the context + menu, and select \uicontrol {Add Breakpoint}. + + \li In the \uicontrol {Breakpoint type} field, select + \uicontrol {Break on data access at fixed address}. + + \li In the \uicontrol Address field, specify the address of the memory + block. + + \li Select \uicontrol OK. + + \endlist + + If the address is displayed in the \uicontrol {Locals} or + \uicontrol {Expressions} view, you can select + \uicontrol {Add Data Breakpoint at Object's Address} in the + context menu to set the data breakpoint. + + Data breakpoints will be disabled when the debugged program exits, as it + is unlikely that the used addresses will stay the same at the next program + launch. If you really want a data breakpoint to be active again, re-enable + it manually. + +//! [debugger-breakpoints] + +//! [debugger-call-stack-trace] + + \section1 Viewing Call Stack Trace + + When the program being debugged is interrupted, \QC displays the nested + function calls leading to the current position as a call stack trace. This + stack trace is built up from call stack frames, each representing a + particular function. For each function, \QC tries to retrieve the file name + and line number of the corresponding source file. This data is shown in the + \uicontrol Stack view. + + \image qtcreator-debug-stack.png + + Since the call stack leading to the current position may originate or go + through code for which no debug information is available, not all stack + frames have corresponding source locations. Stack frames without + corresponding source locations are grayed out in the \uicontrol Stack view. + + If you click a frame with a known source location, the text editor jumps to + the corresponding location and updates the \uicontrol {Locals} and + \uicontrol {Expressions} views, making it seem like the program + was interrupted before entering the function. + + To find out which QML file is causing a Qt Quick 2 application to crash, + select \uicontrol {Load QML Stack} in the context menu in the + \uicontrol Stack view. The debugger tries to retrieve the JavaScript stack + from the stopped executable and prepends the frames to the C++ frames, + should it find any. You can click a frame in the QML stack to open the QML + file in the editor. + +//! [debugger-call-stack-trace] + +//! [debugger-locals] + + \section1 Local Variables and Function Parameters + + The Locals view consists of the \uicontrol Locals pane and the + \uicontrol {Return Value} pane (hidden when empty). + + \image qtcreator-locals.png "Locals view" + + Whenever a program stops under the control of the debugger, it retrieves + information about the topmost stack frame and displays it in the + \uicontrol {Locals} view. The \uicontrol Locals pane shows + information about parameters of the function in that frame as well as the + local variables. If the last operation in the debugger was returning from a + function after pressing \key {Shift+F11}, the \uicontrol {Return Value} + pane displays the value returned by the function. + +//! [debugger-locals] + +//! [debugger-expressions] + + \section1 Evaluating Expressions + + To compute values of arithmetic expressions or function calls, use + expression evaluators in the \uicontrol Expressions view. To insert a new + expression evaluator, either double-click on an empty part of the + \uicontrol {Expressions} or \uicontrol {Locals} view, or select + \uicontrol {Add New Expression Evaluator} from the context menu, or drag and + drop an expression from the code editor. + + \image qtcreator-debugger-expressions.png + + \note Expression evaluators are powerful, but slow down debugger operation + significantly. It is advisable to not use them excessively, and to remove + unneeded expression evaluators as soon as possible. + + Expression evaluators are re-evaluated whenever the current frame changes. + Note that functions used in the expressions are called each time, even if + they have side-effects. + + All backends support simple C and C++ expressions. Functions can be called + only if they are actually compiled into the debugged executable or a library + used by the executable. Most notably, inlined functions such as most + \c{operator[]} implementations of standard containers are typically \e{not} + available. + + When using GDB or LLDB as backend, a special ranged syntax can be used to + display multiple values with one expression. A sub-expression of form + \c{foo[a..b]} is split into a sequence of individually evaluated expressions + \c{foo[a], ..., foo[b]}. + + Compound variables of struct or class type are displayed as expandable in + the view. Expand entries to show all members. Together with the display of + value and type, you can examine and traverse the low-level layout of object + data. + + \table + \row + \li \b{Note:} + + \row + \li GDB and LLDB, and therefore \QC's debugger, also work for optimized + builds on Linux and \macos. Optimization can lead to re-ordering + of instructions or removal of some local variables, causing the + \uicontrol {Locals} and \uicontrol {Expressions} view to show + unexpected data. + \row + \li The debug information provided by GCC does not include enough + information about the time when a variable is initialized. + Therefore, \QC can not tell whether the contents of a local + variable contains "real data", or "initial noise". If a QObject + appears uninitialized, its value is reported as + \uicontrol {not in scope}. Not all uninitialized objects, + however, can be recognized as such. + \endtable + + The \uicontrol {Locals} and \uicontrol {Expressions} views also provide access + to the most powerful feature of the debugger: comprehensive display of data + belonging to Qt's basic objects. For example, in case of QObject, instead of + displaying a pointer to some private data structure, you see a list of + children, signals and slots. + + Similarly, instead of displaying many pointers and integers, \QC's debugger + displays the contents of a QHash or QMap in an orderly manner. Also, the + debugger displays access data for QFileInfo and provides access to the + "real" contents of QVariant. + + Right-click in the \uicontrol {Locals} or the \uicontrol {Expressions} view + to open a context menu that provides additional options for viewing data. The + available options depend on the type of the current items, and are provided + by the \l{Using Debugging Helpers}{Debugging Helpers}. Typically, + string-like data, such as \c{QByteArray} and \c{std::string}, offer a + selection of encodings, as well as the possibility to use a full editor + window. Map-like data, such as \c{QMap}, \c{QHash}, and \c{std::map}, offer + a compact option using the \c{name} column for keys, resulting in a concise + display of containers with short keys, such as numbers or short strings. For + example, to expand all the values of QMap, select + \uicontrol {Change Value Display Format} > \uicontrol Compact. + + You can use the \uicontrol {Locals} and \uicontrol {Expressions} view to change + the contents of variables of simple data types, for example, \c int, \c float, + \c QString and \c std::string when the program is interrupted. To do so, + click the \uicontrol Value column, modify the value with the inplace editor, + and press \key Enter (or \key Return). + + To change the complete contents of QVector or \c std::vector values, type + all values separated by commas into the \uicontrol Value column of the main + entry. + + You can enable tooltips in the main editor displaying this information. + For more information, see \l{Showing Tooltips in Debug Mode}. + + \note The set of evaluated expressions is saved in your session. + +//! [debugger-expressions] + +*/ diff --git a/doc/src/debugger/creator-debugger.qdoc b/doc/src/debugger/creator-debugger.qdoc index b239fa8a15e..194e17e8353 100644 --- a/doc/src/debugger/creator-debugger.qdoc +++ b/doc/src/debugger/creator-debugger.qdoc @@ -477,321 +477,10 @@ It is also possible to continue executing the program until the current function completes or jump to an arbitrary position in the current function. - \section1 Setting Breakpoints - - A breakpoint represents a position or sets of positions in the code that, - when executed, interrupts the program being debugged and passes the control - to you. You can then examine the state of the interrupted program, or - continue execution either line-by-line or continuously. - - \QC shows breakpoints in the \uicontrol Breakpoints view which is enabled - by default. The \uicontrol Breakpoints view is also accessible when the - debugger and the program being debugged is not running. - - \image qtcreator-debug-breakpoints.png "Breakpoints view" - - You can associate breakpoints with: - - \list - - \li Source code files and lines - - \li Functions - - \li Addresses - - \li Throwing and catching exceptions - - \li Executing and forking processes - - \li Executing some system calls - - \li Changes in a block of memory at a particular address when a - program is running - - \endlist - - The interruption of a program by a breakpoint can be restricted with certain - conditions. - - You can set and delete breakpoints before the program starts running or - while it is running under the debugger's control. Breakpoints are saved - together with a session. - - \section2 Adding Breakpoints - - To add breakpoints: - - \list 1 - - \li Add a new breakpoint in one of the following ways: - - \list - - \li In the code editor, click the left margin or press \key F9 - (\key F8 for \macos) at a particular line you want the - program to stop. - - \li In the \uicontrol Breakpoints view, double-click in the empty - part of the view. - - \li In the \uicontrol Breakpoints view, select - \uicontrol {Add Breakpoint} in the context menu. - - \endlist - - \li In the \uicontrol {Breakpoint type} field, select the location in the - program code where you want the program to stop. The other options - to specify depend on the selected location. - - \image qtcreator-add-breakpoint.png "Add Breakpoints" dialog - - \li In the \uicontrol Condition field, set the condition to be evaluated - before stopping at the breakpoint if the condition evaluates as - true. - - \li In the \uicontrol Ignore field, specify the number of times that the - breakpoint is ignored before the program stops. - - \li In the \uicontrol Commands field, specify the commands to execute - when the program stops; one command on a line. GDB executes the - commands in the order in which they are specified. - - \endlist - - For more information on breakpoints, see - \l{http://sourceware.org/gdb/onlinedocs/gdb/Breakpoints.html#Breakpoints} - {Breakpoints, Watchpoints, and Catchpoints} in GDB documentation. - - \section2 Moving Breakpoints - - To move the breakpoint, drag and drop a breakpoint marker to another line. - - \section2 Deleting Breakpoints - - To delete breakpoints: - - \list - - \li Click the breakpoint marker in the text editor. - - \li Select the breakpoint in the \uicontrol Breakpoints view and press - \key Delete. - - \li Select \uicontrol {Delete Breakpoint} in the context menu in the - \uicontrol Breakpoints view. - - \endlist - - \section2 Enabling and Disabling Breakpoints - - To temporarily disable a breakpoint without deleting it and losing associated - data like conditions and commands: - - \list - - \li Right-click the breakpoint marker in the text editor and select - \uicontrol{Disable Breakpoint}. - - \li Select the breakpoint in the \uicontrol Breakpoints view and press - \key Space. - - \li Select \uicontrol {Disabled Breakpoint} in the context menu in the - \uicontrol Breakpoints view. - - \endlist - - A disabled breakpoint is marked with a hollow read circle in the - text editor and the \uicontrol Breakpoint view. - - To re-enable a temporarily disabled breakpoint: - - \list - - \li Right-click the marker of a disabled breakpoint in the text editor and - select \uicontrol{Enable Breakpoint}. - - \li Select a disabled breakpoint in the \uicontrol Breakpoints view and press - \key Space. - - \li Select \uicontrol {Disabled Breakpoint} in the context menu in the - \uicontrol Breakpoints view. - - \endlist - - With the notable exception of data breakpoints, breakpoints retain their - enabled or disabled state when the debugged program is restarted. - - \section2 Setting Data Breakpoints - - A \e {data breakpoint} stops the program when data is read or written at the - specified address. - - To set a data breakpoint at an address: - - \list 1 - - \li Right-click in the \uicontrol Breakpoints view to open the context - menu, and select \uicontrol {Add Breakpoint}. - - \li In the \uicontrol {Breakpoint type} field, select - \uicontrol {Break on data access at fixed address}. - - \li In the \uicontrol Address field, specify the address of the memory - block. - - \li Select \uicontrol OK. - - \endlist - - If the address is displayed in the \uicontrol {Locals} or - \uicontrol {Expressions} view, you can select - \uicontrol {Add Data Breakpoint at Object's Address} in the - context menu to set the data breakpoint. - - Data breakpoints will be disabled when the debugged program exits, as it - is unlikely that the used addresses will stay the same at the next program - launch. If you really want a data breakpoint to be active again, re-enable - it manually. - - \section1 Viewing Call Stack Trace - - When the program being debugged is interrupted, \QC displays the nested - function calls leading to the current position as a call stack trace. This - stack trace is built up from call stack frames, each representing a - particular function. For each function, \QC tries to retrieve the file name - and line number of the corresponding source file. This data is shown in the - \uicontrol Stack view. - - \image qtcreator-debug-stack.png - - Since the call stack leading to the current position may originate or go - through code for which no debug information is available, not all stack - frames have corresponding source locations. Stack frames without - corresponding source locations are grayed out in the \uicontrol Stack view. - - If you click a frame with a known source location, the text editor jumps to - the corresponding location and updates the \uicontrol {Locals} and - \uicontrol {Expressions} views, making it seem like the program - was interrupted before entering the function. - - To find out which QML file is causing a Qt Quick 2 application to crash, - select \uicontrol {Load QML Stack} in the context menu in the - \uicontrol Stack view. The debugger tries to retrieve the JavaScript stack - from the stopped executable and prepends the frames to the C++ frames, - should it find any. You can click a frame in the QML stack to open the QML - file in the editor. - - \section1 Local Variables and Function Parameters - - The Locals view consists of the \uicontrol Locals pane and the - \uicontrol {Return Value} pane (hidden when empty). - - \image qtcreator-locals.png "Locals view" - - Whenever a program stops under the control of the debugger, it retrieves - information about the topmost stack frame and displays it in the - \uicontrol {Locals} view. The \uicontrol Locals pane shows - information about parameters of the function in that frame as well as the - local variables. If the last operation in the debugger was returning from a - function after pressing \key {Shift+F11}, the \uicontrol {Return Value} - pane displays the value returned by the function. - - - \section1 Evaluating Expressions - - To compute values of arithmetic expressions or function calls, use - expression evaluators in the \uicontrol Expressions view. To insert a new - expression evaluator, either double-click on an empty part of the - \uicontrol {Expressions} or \uicontrol {Locals} view, or select - \uicontrol {Add New Expression Evaluator} from the context menu, or drag and - drop an expression from the code editor. - - \image qtcreator-debugger-expressions.png - - \note Expression evaluators are powerful, but slow down debugger operation - significantly. It is advisable to not use them excessively, and to remove - unneeded expression evaluators as soon as possible. - - Expression evaluators are re-evaluated whenever the current frame changes. - Note that functions used in the expressions are called each time, even if - they have side-effects. - - All backends support simple C and C++ expressions. Functions can be called - only if they are actually compiled into the debugged executable or a library - used by the executable. Most notably, inlined functions such as most - \c{operator[]} implementations of standard containers are typically \e{not} - available. - - When using GDB or LLDB as backend, a special ranged syntax can be used to - display multiple values with one expression. A sub-expression of form - \c{foo[a..b]} is split into a sequence of individually evaluated expressions - \c{foo[a], ..., foo[b]}. - - Compound variables of struct or class type are displayed as expandable in - the view. Expand entries to show all members. Together with the display of - value and type, you can examine and traverse the low-level layout of object - data. - - - \table - \row - \li \b{Note:} - - \row - \li GDB and LLDB, and therefore \QC's debugger, also work for optimized - builds on Linux and \macos. Optimization can lead to re-ordering - of instructions or removal of some local variables, causing the - \uicontrol {Locals} and \uicontrol {Expressions} view to show - unexpected data. - \row - \li The debug information provided by GCC does not include enough - information about the time when a variable is initialized. - Therefore, \QC can not tell whether the contents of a local - variable contains "real data", or "initial noise". If a QObject - appears uninitialized, its value is reported as - \uicontrol {not in scope}. Not all uninitialized objects, - however, can be recognized as such. - \endtable - - - The \uicontrol {Locals} and \uicontrol {Expressions} views also provide access - to the most powerful feature of the debugger: comprehensive display of data - belonging to Qt's basic objects. For example, in case of QObject, instead of - displaying a pointer to some private data structure, you see a list of - children, signals and slots. - - Similarly, instead of displaying many pointers and integers, \QC's debugger - displays the contents of a QHash or QMap in an orderly manner. Also, the - debugger displays access data for QFileInfo and provides access to the - "real" contents of QVariant. - - Right-click in the \uicontrol {Locals} or the \uicontrol {Expressions} view - to open a context menu that provides additional options for viewing data. The - available options depend on the type of the current items, and are provided - by the \l{Using Debugging Helpers}{Debugging Helpers}. Typically, - string-like data, such as \c{QByteArray} and \c{std::string}, offer a - selection of encodings, as well as the possibility to use a full editor - window. Map-like data, such as \c{QMap}, \c{QHash}, and \c{std::map}, offer - a compact option using the \c{name} column for keys, resulting in a concise - display of containers with short keys, such as numbers or short strings. For - example, to expand all the values of QMap, select - \uicontrol {Change Value Display Format} > \uicontrol Compact. - - You can use the \uicontrol {Locals} and \uicontrol {Expressions} view to change - the contents of variables of simple data types, for example, \c int, \c float, - \c QString and \c std::string when the program is interrupted. To do so, - click the \uicontrol Value column, modify the value with the inplace editor, - and press \key Enter (or \key Return). - - To change the complete contents of QVector or \c std::vector values, type - all values separated by commas into the \uicontrol Value column of the main - entry. - - You can enable tooltips in the main editor displaying this information. - For more information, see \l{Showing Tooltips in Debug Mode}. - - \note The set of evaluated expressions is saved in your session. + \include creator-debugger-common.qdocinc debugger-breakpoints + \include creator-debugger-common.qdocinc debugger-call-stack-trace + \include creator-debugger-common.qdocinc debugger-locals + \include creator-debugger-common.qdocinc debugger-expressions \section1 Directly Interacting with Native Debuggers diff --git a/doc/src/debugger/qtquick-debugger-example.qdoc b/doc/src/debugger/qtquick-debugger-example.qdoc index 5f0abb84df6..1e1288a5bdd 100644 --- a/doc/src/debugger/qtquick-debugger-example.qdoc +++ b/doc/src/debugger/qtquick-debugger-example.qdoc @@ -33,7 +33,7 @@ \contentspage index.html \page creator-qml-debugging-example.html \if defined(qtdesignstudio) - \previouspage creator-qml-debugging-example.html + \previouspage creator-debugging-qml.html \nextpage creator-qml-performance-monitor.html \else \previouspage creator-debugging-example.html diff --git a/doc/src/debugger/qtquick-debugging.qdoc b/doc/src/debugger/qtquick-debugging.qdoc index 92c5c43d8b2..2bdbb7a8a74 100644 --- a/doc/src/debugger/qtquick-debugging.qdoc +++ b/doc/src/debugger/qtquick-debugging.qdoc @@ -33,7 +33,7 @@ \contentspage index.html \page creator-debugging-qml.html \if defined(qtdesignstudio) - \previouspage creator-debug-mode.html + \previouspage studio-debugging.html \nextpage creator-qml-debugging-example.html \else \previouspage creator-debugging-helpers.html @@ -158,6 +158,13 @@ \endlist + \if defined(qtdesignstudio) + \include creator-debugger-common.qdocinc debugger-breakpoints + \include creator-debugger-common.qdocinc debugger-call-stack-trace + \include creator-debugger-common.qdocinc debugger-locals + \include creator-debugger-common.qdocinc debugger-expressions + \endif + \section1 Executing JavaScript Expressions When the application is interrupted by a breakpoint, you can use the diff --git a/doc/src/qtquick/qtquick-profiler.qdoc b/doc/src/qtquick/qtquick-profiler.qdoc index 92fae49a2d9..f87f429ea4d 100644 --- a/doc/src/qtquick/qtquick-profiler.qdoc +++ b/doc/src/qtquick/qtquick-profiler.qdoc @@ -33,7 +33,7 @@ \contentspage index.html \page creator-qml-performance-monitor.html \if defined(qtdesignstudio) - \previouspage creator-qml-performance-monitor.html + \previouspage creator-qml-debugging-example.html \nextpage creator-help-overview.html \else \previouspage creator-analyze-mode.html From 21bcc7f38b1a08168f98054358574b21f33b49b6 Mon Sep 17 00:00:00 2001 From: Robert Loehning Date: Thu, 2 Aug 2018 20:50:03 +0200 Subject: [PATCH 15/17] Squish: Use sets instead of lists for kits in use They fit our use-case much better. Task-number: QTCREATORBUG-20874 Change-Id: Ifa06ce00f3e6999a99c3bc2bb7e9ba759fa02e94 Reviewed-by: Christian Stenger --- tests/system/shared/classes.py | 10 ++----- tests/system/shared/project.py | 29 +++++++++---------- tests/system/suite_CCOM/tst_CCOM01/test.py | 2 +- .../tst_create_proj_wizard/test.py | 29 +++++++++---------- 4 files changed, 31 insertions(+), 39 deletions(-) diff --git a/tests/system/shared/classes.py b/tests/system/shared/classes.py index cd6facb6ca1..c4be96bed85 100644 --- a/tests/system/shared/classes.py +++ b/tests/system/shared/classes.py @@ -44,7 +44,7 @@ class Targets: @staticmethod def availableTargetClasses(): - availableTargets = list(Targets.ALL_TARGETS) + availableTargets = set(Targets.ALL_TARGETS) if platform.system() in ('Windows', 'Microsoft'): availableTargets.remove(Targets.EMBEDDED_LINUX) elif platform.system() == 'Darwin': @@ -54,8 +54,7 @@ class Targets: @staticmethod def desktopTargetClasses(): desktopTargets = Targets.availableTargetClasses() - if Targets.EMBEDDED_LINUX in desktopTargets: - desktopTargets.remove(Targets.EMBEDDED_LINUX) + desktopTargets.discard(Targets.EMBEDDED_LINUX) return desktopTargets @staticmethod @@ -64,10 +63,7 @@ class Targets: @staticmethod def getTargetsAsStrings(targets): - if not isinstance(targets, (tuple,list)): - test.fatal("Wrong usage... This function handles only tuples or lists.") - return None - return map(Targets.getStringForTarget, targets) + return set(map(Targets.getStringForTarget, targets)) @staticmethod def getIdForTargetName(targetName): diff --git a/tests/system/shared/project.py b/tests/system/shared/project.py index a8305e11a43..3afc7fc2a7f 100644 --- a/tests/system/shared/project.py +++ b/tests/system/shared/project.py @@ -155,8 +155,8 @@ def __createProjectHandleQtQuickSelection__(minimumQtVersion): # withoutQt4 if True Qt4 will get unchecked / not selected while checking the targets def __selectQtVersionDesktop__(checks, available=None, withoutQt4=False): wanted = Targets.desktopTargetClasses() - if withoutQt4 and Targets.DESKTOP_4_8_7_DEFAULT in wanted: - wanted.remove(Targets.DESKTOP_4_8_7_DEFAULT) + if withoutQt4: + wanted.discard(Targets.DESKTOP_4_8_7_DEFAULT) checkedTargets = __chooseTargets__(wanted, available) if checks: for target in checkedTargets: @@ -197,8 +197,7 @@ def __modifyAvailableTargets__(available, requiredQt, asStrings=False): toBeRemoved = Targets.EMBEDDED_LINUX if asStrings: toBeRemoved = Targets.getStringForTarget(toBeRemoved) - if toBeRemoved in available: - available.remove(toBeRemoved) + available.discard(toBeRemoved) for currentItem in tmp: if asStrings: item = currentItem @@ -207,7 +206,7 @@ def __modifyAvailableTargets__(available, requiredQt, asStrings=False): found = versionFinder.search(item) if found: if Qt5Path.toVersionTuple(found.group(1)) < Qt5Path.toVersionTuple(requiredQt): - available.remove(currentItem) + available.discard(currentItem) # Creates a Qt GUI project # param path specifies where to create the project @@ -398,14 +397,14 @@ def __chooseTargets__(targets, availableTargets=None, additionalFunc=None): else: # following targets depend on the build environment - added for further/later tests available = Targets.availableTargetClasses() - checkedTargets = [] + checkedTargets = set() for current in available: mustCheck = current in targets try: ensureChecked("{type='QCheckBox' text='%s' visible='1'}" % Targets.getStringForTarget(current), mustCheck, 3000) if mustCheck: - checkedTargets.append(current) + checkedTargets.add(current) # perform additional function on detailed kits view if additionalFunc: @@ -517,26 +516,26 @@ def __getSupportedPlatforms__(text, templateName, getAsStrings=False): version = None if templateName.startswith("Qt Quick Application - "): if templateName == "Qt Quick Application - Empty": - result = [Targets.DESKTOP_5_6_1_DEFAULT, Targets.DESKTOP_5_10_1_DEFAULT] + result = set([Targets.DESKTOP_5_6_1_DEFAULT, Targets.DESKTOP_5_10_1_DEFAULT]) else: - result = [Targets.DESKTOP_5_10_1_DEFAULT] + result = set([Targets.DESKTOP_5_10_1_DEFAULT]) elif 'Supported Platforms' in text: supports = text[text.find('Supported Platforms'):].split(":")[1].strip().split(" ") - result = [] + result = set() if 'Desktop' in supports: if (version == None or version < "5.0"): - result.append(Targets.DESKTOP_4_8_7_DEFAULT) + result.add(Targets.DESKTOP_4_8_7_DEFAULT) if platform.system() in ("Linux", "Darwin"): - result.append(Targets.EMBEDDED_LINUX) - result.extend([Targets.DESKTOP_5_6_1_DEFAULT, Targets.DESKTOP_5_10_1_DEFAULT]) + result.add(Targets.EMBEDDED_LINUX) + result = result.union(set([Targets.DESKTOP_5_6_1_DEFAULT, Targets.DESKTOP_5_10_1_DEFAULT])) if platform.system() != 'Darwin': - result.append(Targets.DESKTOP_5_4_1_GCC) + result.add(Targets.DESKTOP_5_4_1_GCC) elif 'Platform independent' in text: result = Targets.desktopTargetClasses() else: test.warning("Returning None (__getSupportedPlatforms__())", "Parsed text: '%s'" % text) - return [], None + return set(), None if getAsStrings: result = Targets.getTargetsAsStrings(result) return result, version diff --git a/tests/system/suite_CCOM/tst_CCOM01/test.py b/tests/system/suite_CCOM/tst_CCOM01/test.py index 432c916cb86..d468dca06a1 100755 --- a/tests/system/suite_CCOM/tst_CCOM01/test.py +++ b/tests/system/suite_CCOM/tst_CCOM01/test.py @@ -41,7 +41,7 @@ def main(): return # open example project, supports only Qt 5 targets = Targets.desktopTargetClasses() - targets.remove(Targets.DESKTOP_4_8_7_DEFAULT) + targets.discard(Targets.DESKTOP_4_8_7_DEFAULT) openQmakeProject(examplePath, targets) # build and wait until finished - on all build configurations availableConfigs = iterateBuildConfigs() diff --git a/tests/system/suite_general/tst_create_proj_wizard/test.py b/tests/system/suite_general/tst_create_proj_wizard/test.py index 34878b9566a..cefb8d38444 100644 --- a/tests/system/suite_general/tst_create_proj_wizard/test.py +++ b/tests/system/suite_general/tst_create_proj_wizard/test.py @@ -87,23 +87,20 @@ def main(): def verifyKitCheckboxes(kits, displayedPlatforms): waitForObject("{type='QLabel' unnamed='1' visible='1' text='Kit Selection'}") - availableCheckboxes = filter(visibleCheckBoxExists, kits.keys()) + availableCheckboxes = frozenset(filter(visibleCheckBoxExists, kits.keys())) # verification whether expected, found and configured match - for t in kits: - if t in displayedPlatforms: - if t in availableCheckboxes: - test.passes("Found expected kit '%s' on 'Kit Selection' page." % t) - availableCheckboxes.remove(t) - else: - test.fail("Expected kit '%s' missing on 'Kit Selection' page." % t) - else: - if t in availableCheckboxes: - test.fail("Kit '%s' found on 'Kit Selection' page - but was not expected!" % t) - else: - test.passes("Irrelevant kit '%s' not found on 'Kit Selection' page." % t) - if len(availableCheckboxes) != 0: - test.fail("Found unexpected additional kit(s) %s on 'Kit Selection' page." - % str(availableCheckboxes)) + + expectedShownKits = availableCheckboxes.intersection(displayedPlatforms) + unexpectedShownKits = availableCheckboxes.difference(displayedPlatforms) + missingKits = displayedPlatforms.difference(availableCheckboxes) + + test.log("Expected kits shown on 'Kit Selection' page:\n%s" % "\n".join(expectedShownKits)) + if len(unexpectedShownKits): + test.fail("Kits found on 'Kit Selection' page but not expected:\n%s" + % "\n".join(unexpectedShownKits)) + if len(missingKits): + test.fail("Expected kits missing on 'Kit Selection' page:\n%s" + % "\n".join(missingKits)) def handleBuildSystemVerifyKits(category, template, kits, displayedPlatforms, specialHandlingFunc = None, *args): From 3ff33198bcf8b426022fd4d50ad0affdbc7edd2a Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Thu, 16 Aug 2018 16:40:22 +0200 Subject: [PATCH 16/17] Botan: Fix build with MSVC from Visual Studio 2017 15.8 Task-number: QTCREATORBUG-20955 Change-Id: I7413e73137248bb880fad9b369e05e09101987fd Reviewed-by: David Schulz --- src/libs/botan/botan.pro | 3 ++- src/libs/botan/botan.qbs | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/libs/botan/botan.pro b/src/libs/botan/botan.pro index eb03ffee855..2f238e5d039 100644 --- a/src/libs/botan/botan.pro +++ b/src/libs/botan/botan.pro @@ -28,7 +28,8 @@ mingw { OTHER_FLAGS += --without-stack-protector } BOTAN_CXX_FLAGS = -msvc: BOTAN_CXX_FLAGS += /wd4127 /wd4244 /wd4250 /wd4267 /wd4334 /wd4702 /wd4996 +msvc: BOTAN_CXX_FLAGS += /wd4127 /wd4244 /wd4250 /wd4267 /wd4334 /wd4702 /wd4996 \ + /D_ENABLE_EXTENDED_ALIGNED_STORAGE else: BOTAN_CXX_FLAGS += -Wno-unused-parameter macos: BOTAN_CXX_FLAGS += -mmacosx-version-min=$$QMAKE_MACOSX_DEPLOYMENT_TARGET -isysroot $$shell_quote($$QMAKE_MAC_SDK_PATH) unix: BOTAN_CXX_FLAGS += -fPIC diff --git a/src/libs/botan/botan.qbs b/src/libs/botan/botan.qbs index 3872e900adb..65aa6ebb96a 100644 --- a/src/libs/botan/botan.qbs +++ b/src/libs/botan/botan.qbs @@ -44,7 +44,7 @@ Product { var cxxFlags = []; if (product.qbs.toolchain.contains("msvc")) { cxxFlags.push("/wd4127", "/wd4244", "/wd4250", "/wd4267", "/wd4334", "/wd4702", - "/wd4996"); + "/wd4996", "/D_ENABLE_EXTENDED_ALIGNED_STORAGE"); } else if (product.qbs.toolchain.contains("gcc")) cxxFlags.push("-Wno-unused-parameter"); From 7a8e6b052ee01cfcd20fd0752749349421da719f Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Tue, 14 Aug 2018 08:27:38 +0200 Subject: [PATCH 17/17] AutoTest: Disable run related items while executing tests While executing tests it had been possible to trigger another run when using the context menu on one of the result items inside the results pane. Prohibit it at first hand instead of running into a soft assert later on. Change-Id: Ib5a4ca53a2605d12f6539fd68aee099211f12174 Reviewed-by: David Schulz --- src/plugins/autotest/testresultspane.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/autotest/testresultspane.cpp b/src/plugins/autotest/testresultspane.cpp index 3047e6d7107..66701a0aa4b 100644 --- a/src/plugins/autotest/testresultspane.cpp +++ b/src/plugins/autotest/testresultspane.cpp @@ -547,7 +547,7 @@ void TestResultsPane::onCustomContextMenuRequested(const QPoint &pos) connect(action, &QAction::triggered, this, &TestResultsPane::onSaveWholeTriggered); menu.addAction(action); - const auto correlatingItem = clicked ? clicked->findTestTreeItem() : nullptr; + const auto correlatingItem = (enabled && clicked) ? clicked->findTestTreeItem() : nullptr; action = new QAction(tr("Run This Test"), &menu); action->setEnabled(correlatingItem && correlatingItem->canProvideTestConfiguration()); connect(action, &QAction::triggered, this, [this, clicked] {