summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md2
-rw-r--r--dist/changes-4.7.1.md66
-rw-r--r--doc/config/qtcreator-project.qdocconf2
-rw-r--r--doc/src/android/androiddev.qdoc6
-rw-r--r--doc/src/debugger/creator-debugger-common.qdocinc361
-rw-r--r--doc/src/debugger/creator-debugger.qdoc326
-rw-r--r--doc/src/debugger/qtquick-debugger-example.qdoc7
-rw-r--r--doc/src/debugger/qtquick-debugging.qdoc14
-rw-r--r--doc/src/editors/creator-coding.qdoc7
-rw-r--r--doc/src/editors/creator-editors-options-text.qdoc6
-rw-r--r--doc/src/howto/creator-keyboard-shortcuts.qdoc7
-rw-r--r--doc/src/linux-mobile/creator-deployment-embedded-linux.qdoc6
-rw-r--r--doc/src/linux-mobile/linuxdev.qdoc7
-rw-r--r--doc/src/overview/creator-deployment-overview.qdoc4
-rw-r--r--doc/src/overview/creator-help-overview.qdoc6
-rw-r--r--doc/src/overview/creator-mobile-targets.qdoc12
-rw-r--r--doc/src/overview/creator-supported-platforms.qdoc2
-rw-r--r--doc/src/projects/creator-projects-builds-customizing.qdoc7
-rw-r--r--doc/src/projects/creator-projects-running.qdoc9
-rw-r--r--doc/src/projects/creator-projects-settings-dependencies.qdoc6
-rw-r--r--doc/src/qtquick/qtquick-components.qdoc7
-rw-r--r--doc/src/qtquick/qtquick-connection-editor-bindings.qdoc6
-rw-r--r--doc/src/qtquick/qtquick-designer.qdoc7
-rw-r--r--doc/src/qtquick/qtquick-iso-icon-browser.qdoc7
-rw-r--r--doc/src/qtquick/qtquick-navigator.qdoc6
-rw-r--r--doc/src/qtquick/qtquick-pathview-editor.qdoc7
-rw-r--r--doc/src/qtquick/qtquick-profiler.qdoc (renamed from doc/src/analyze/qtquick-profiler.qdoc)7
-rw-r--r--doc/src/qtquick/qtquick-properties.qdoc6
-rw-r--r--doc/src/qtquick/qtquick-states.qdoc7
-rw-r--r--doc/src/qtquick/qtquick-ui-forms.qdoc7
-rw-r--r--doc/src/vcs/creator-vcs-git.qdoc7
-rw-r--r--share/qtcreator/debugger/dumper.py2
-rw-r--r--src/app/main.cpp2
-rw-r--r--src/libs/botan/botan.pro7
-rw-r--r--src/libs/botan/botan.qbs2
-rw-r--r--src/libs/utils/mimetypes/mimeprovider.cpp1
-rw-r--r--src/plugins/autotest/testresultspane.cpp2
-rw-r--r--src/plugins/coreplugin/locator/locatorwidget.cpp7
-rw-r--r--src/plugins/projectexplorer/foldernavigationwidget.cpp14
-rw-r--r--src/plugins/projectexplorer/foldernavigationwidget.h2
-rw-r--r--tests/auto/debugger/tst_dumpers.cpp5
-rw-r--r--tests/auto/debugger/tst_offsets.cpp2
-rw-r--r--tests/helper/qmlapplicationviewer/qmlapplicationviewer.cpp1
-rw-r--r--tests/system/shared/classes.py10
-rw-r--r--tests/system/shared/project.py29
-rwxr-xr-xtests/system/suite_CCOM/tst_CCOM01/test.py2
-rw-r--r--tests/system/suite_general/tst_create_proj_wizard/test.py29
47 files changed, 658 insertions, 396 deletions
diff --git a/README.md b/README.md
index 744f78dd11..0e63faee54 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/dist/changes-4.7.1.md b/dist/changes-4.7.1.md
new file mode 100644
index 0000000000..27a79d8aa0
--- /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
diff --git a/doc/config/qtcreator-project.qdocconf b/doc/config/qtcreator-project.qdocconf
index 983fc3e895..58fceb2740 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/android/androiddev.qdoc b/doc/src/android/androiddev.qdoc
index d4f3421d5b..e2317d7617 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-common.qdocinc b/doc/src/debugger/creator-debugger-common.qdocinc
new file mode 100644
index 0000000000..b867818cbe
--- /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 2fcad93e12..194e17e835 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
@@ -472,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 5643fc3f82..1e1288a5bd 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-debugging-qml.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 5686bb44c6..2bdbb7a8a7 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 studio-debugging.html
+ \nextpage creator-qml-debugging-example.html
+ \else
+ \previouspage creator-debugging-helpers.html
\nextpage creator-debugging-example.html
+ \endif
\title Debugging Qt Quick Projects
@@ -153,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/editors/creator-coding.qdoc b/doc/src/editors/creator-coding.qdoc
index 234d203ea4..2f0608f1c4 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 63401f25b1..4ef6e256fa 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 4a6ba7b056..5a02d1a783 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 346f48a42a..7733fa62c0 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 f323e488a7..2f35517fdc 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-deployment-overview.qdoc b/doc/src/overview/creator-deployment-overview.qdoc
index 86fbaa5488..7335591580 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-help-overview.qdoc b/doc/src/overview/creator-help-overview.qdoc
index cb36664bc9..70eba62c41 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 ae7aa0a284..899323b368 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
@@ -59,10 +63,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 +76,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 +89,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 +106,5 @@
local Linux PC, remote generic SSH Linux targets, or
\l{Embedded Devices}{embedded devices}.
\endlist
+ \endif
*/
diff --git a/doc/src/overview/creator-supported-platforms.qdoc b/doc/src/overview/creator-supported-platforms.qdoc
index 8334f9a800..d6b95f7760 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
diff --git a/doc/src/projects/creator-projects-builds-customizing.qdoc b/doc/src/projects/creator-projects-builds-customizing.qdoc
index c59182e2f9..08e894f919 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 5e794f9bfb..57f3a1419f 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
@@ -76,5 +80,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
*/
diff --git a/doc/src/projects/creator-projects-settings-dependencies.qdoc b/doc/src/projects/creator-projects-settings-dependencies.qdoc
index fe6ffe9a01..e576ac9fee 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 d0ec40ad07..718d46ca51 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 614a3841ea..2f5c1ec54b 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 cedbea745f..10aff2aabc 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 c4ea2de21d..efc216a7f6 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 1b4f211ff5..e61e517bac 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 9ac6ffba6c..872cd4cd8e 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/analyze/qtquick-profiler.qdoc b/doc/src/qtquick/qtquick-profiler.qdoc
index 1b0c5fb333..f87f429ea4 100644
--- a/doc/src/analyze/qtquick-profiler.qdoc
+++ b/doc/src/qtquick/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-debugging-example.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/qtquick/qtquick-properties.qdoc b/doc/src/qtquick/qtquick-properties.qdoc
index 95b5e41f12..4c78f25cfe 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 d9a6ba95e4..e03355a0a5 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 09c82ed400..8a320061db 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 a8c1559748..1909b1ae43 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
diff --git a/share/qtcreator/debugger/dumper.py b/share/qtcreator/debugger/dumper.py
index 7e46132096..45ea4d6d76 100644
--- a/share/qtcreator/debugger/dumper.py
+++ b/share/qtcreator/debugger/dumper.py
@@ -2928,6 +2928,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/src/app/main.cpp b/src/app/main.cpp
index 1c7c394760..c498db3759 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")
diff --git a/src/libs/botan/botan.pro b/src/libs/botan/botan.pro
index 48b3b2ea35..2f238e5d03 100644
--- a/src/libs/botan/botan.pro
+++ b/src/libs/botan/botan.pro
@@ -28,9 +28,10 @@ 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.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
@@ -44,7 +45,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
diff --git a/src/libs/botan/botan.qbs b/src/libs/botan/botan.qbs
index 3872e900ad..65aa6ebb96 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");
diff --git a/src/libs/utils/mimetypes/mimeprovider.cpp b/src/libs/utils/mimetypes/mimeprovider.cpp
index 3d14b971ce..d444aa899c 100644
--- a/src/libs/utils/mimetypes/mimeprovider.cpp
+++ b/src/libs/utils/mimetypes/mimeprovider.cpp
@@ -50,6 +50,7 @@
#include <QDebug>
#include <QDateTime>
#include <QtEndian>
+#include <QtGlobal>
using namespace Utils;
using namespace Utils::Internal;
diff --git a/src/plugins/autotest/testresultspane.cpp b/src/plugins/autotest/testresultspane.cpp
index 3047e6d710..66701a0aa4 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] {
diff --git a/src/plugins/coreplugin/locator/locatorwidget.cpp b/src/plugins/coreplugin/locator/locatorwidget.cpp
index 33a66f77ec..efddf72a73 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);
diff --git a/src/plugins/projectexplorer/foldernavigationwidget.cpp b/src/plugins/projectexplorer/foldernavigationwidget.cpp
index 07ff03be6a..1b6abf740c 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 &current, 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 8f428863eb..f10f69d595 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;
diff --git a/tests/auto/debugger/tst_dumpers.cpp b/tests/auto/debugger/tst_dumpers.cpp
index 9ac49187ba..06414bff07 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 <QByteArray>"
+ "\n#include <QtGlobal>"
"\n#if QT_VERSION >= 0x050900"
"\n#include <QHash>"
"\nvoid initHashSeed() { qSetGlobalQHashSeed(0); }"
@@ -6836,12 +6837,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");
diff --git a/tests/auto/debugger/tst_offsets.cpp b/tests/auto/debugger/tst_offsets.cpp
index 5dca246bcf..8bba5fd529 100644
--- a/tests/auto/debugger/tst_offsets.cpp
+++ b/tests/auto/debugger/tst_offsets.cpp
@@ -37,6 +37,8 @@
#endif
#endif
+#include <QtGlobal>
+
#include <private/qdatetime_p.h>
#include <private/qfile_p.h>
#include <private/qfileinfo_p.h>
diff --git a/tests/helper/qmlapplicationviewer/qmlapplicationviewer.cpp b/tests/helper/qmlapplicationviewer/qmlapplicationviewer.cpp
index 0a87431867..5c63c4e432 100644
--- a/tests/helper/qmlapplicationviewer/qmlapplicationviewer.cpp
+++ b/tests/helper/qmlapplicationviewer/qmlapplicationviewer.cpp
@@ -42,6 +42,7 @@
#include <QtCore/QDir>
#include <QtCore/QFileInfo>
+#include <QtCore/QtGlobal>
#include <QtDeclarative/QDeclarativeComponent>
#include <QtDeclarative/QDeclarativeEngine>
#include <QtDeclarative/QDeclarativeContext>
diff --git a/tests/system/shared/classes.py b/tests/system/shared/classes.py
index cd6facb6ca..c4be96bed8 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 a8305e11a4..3afc7fc2a7 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 432c916cb8..d468dca06a 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 34878b9566..cefb8d3844 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):