diff --git a/dist/changes-4.9.0.md b/dist/changes-4.9.0.md index 7f9892cf01e..ea2d440d182 100644 --- a/dist/changes-4.9.0.md +++ b/dist/changes-4.9.0.md @@ -46,6 +46,7 @@ All Projects (QTCREATORBUG-20577) * Fixed that dragging file from `Projects` view to desktop moved the file (QTCREATORBUG-14494) +* Fixed regression with `QTC_EXTENSION` environment variable QMake Projects @@ -96,11 +97,13 @@ C++ Support * Added option to format code instead of only indenting code * Added `Open Used .clang-format Configuration File` to editor's context menu + * Fixed indentation issue after empty line (QTCREATORBUG-22238) QML Support * Updated to parser from Qt 5.12, adding support for ECMAScript 7 (QTCREATORBUG-20341, QTCREATORBUG-21301) +* Added Qt 5.13 as option to the wizards * Improved error handling in Qt Quick Application project template (QTBUG-39469) * Fixed crash on `Find Usages` @@ -114,15 +117,19 @@ Nim Support Debugging +* Added pretty printing of `QSizePolicy` * Fixed that debugger toolbar could force large minimum window size (QTCREATORBUG-21885) -* Added pretty printing of `QSizePolicy` +* Fixed restoring of debugger layout (QTCREATORBUG-21083) * Fixed pretty printing of standard maps and sets from `libc++` (QTCREATORBUG-18536) * GDB * Added support for rvalue references in function arguments + * Fixed `Break on Abort` with GDB > 8.1 (QTBUG-73993) * LLDB * Fixed `Source Paths Mappings` functionality (QTCREATORBUG-17468) +* QML + * Fixed loading QML stack (QTCREATORBUG-22209) Clang Analyzer Tools @@ -142,6 +149,8 @@ Qt Quick Designer * Made QML Live Preview integration opensource * Added support for `Dialog` (QTCREATORBUG-22120) +* Fixed layout icons (QDS-538) +* Fixed crash when creating item inside `TabView` tab (QTCREATORBUG-21542) Version Control Systems @@ -192,6 +201,7 @@ Windows * Fixed issue with UNC paths in `.pro` files (QTCREATORBUG-21881) * Fixed language version detections with MSVC and precompiled headers (QTCREATORBUG-21860) +* Fixed submenu arrow styling (QTCREATORBUG-21376) Linux diff --git a/doc/config/qtcreator-project.qdocconf b/doc/config/qtcreator-project.qdocconf index b43166e8ad7..f7659e94d94 100644 --- a/doc/config/qtcreator-project.qdocconf +++ b/doc/config/qtcreator-project.qdocconf @@ -39,7 +39,6 @@ depends += qtwidgets \ qtgui \ qthelp \ qtquickcontrols \ - qtquickcontrols2 \ qtquickextras \ qtlinguist \ qtscxml \ diff --git a/doc/images/qmldesigner-export-item.png b/doc/images/qmldesigner-export-item.png index 4dd43614906..6fb8da4f538 100644 Binary files a/doc/images/qmldesigner-export-item.png and b/doc/images/qmldesigner-export-item.png differ diff --git a/doc/images/qtcreator-text-encoding.png b/doc/images/qtcreator-text-encoding.png new file mode 100644 index 00000000000..1c528e50ec6 Binary files /dev/null and b/doc/images/qtcreator-text-encoding.png differ diff --git a/doc/src/editors/creator-code-syntax.qdoc b/doc/src/editors/creator-code-syntax.qdoc index f38686ed5ee..bf68f1e41a5 100644 --- a/doc/src/editors/creator-code-syntax.qdoc +++ b/doc/src/editors/creator-code-syntax.qdoc @@ -489,7 +489,8 @@ \li M222 \li Error \li Functions are not supported in a Qt Quick UI form. - \li + \li For a list of supported JavaScript functions, see + \l{Supported Methods}. \row \li M223 diff --git a/doc/src/editors/creator-coding-edit-mode.qdoc b/doc/src/editors/creator-coding-edit-mode.qdoc index eed6cef31f1..51695520bc6 100644 --- a/doc/src/editors/creator-coding-edit-mode.qdoc +++ b/doc/src/editors/creator-coding-edit-mode.qdoc @@ -52,6 +52,8 @@ \image studio-edit-mode.png \endif + \section2 Navigating Between Open Files and Symbols + Use the toolbar to navigate between open files and symbols in use. To browse backward or forward through your location history, click \inlineimage prev.png @@ -59,8 +61,12 @@ (\uicontrol {Go Forward}). To go to any open file, select it from the \uicontrol {Open files} drop-down - menu (1). Right-click the menu title and select \uicontrol {Copy Full Path} - to copy the path and name of the current file to the clipboard. + menu (1). To open a context menu that contains commands for managing open + files, right-click the file name or icon on the toolbar. In addition to the + commands also available in the \uicontrol File menu, you can copy the path + and name of the current file and the number of the line where the cursor is + currently located to the clipboard by selecting \uicontrol {Copy Full Path}, + \uicontrol {Copy File Name}, or \uicontrol {Copy Path and Line Number}. To jump to any symbol used in the current file, select it from the \uicontrol Symbols drop-down menu (2). By default, the symbols are displayed @@ -70,10 +76,16 @@ To jump to a line and column in the current file, select the line and column indicator (3) or press \key {Ctrl+K} (or \key {Cmd+K} on \macos) to open the - locator. Enter the line number and column number in the locator, separated - by a colon (:). + \l{Searching with the Locator}{locator}. Enter the line number and column + number in the locator, separated by a colon (:). + + \note Other convenient ways of navigating in \QC are provided + by the \l{Keyboard Shortcuts} {keyboard shortcuts} and the + \l{Browsing Project Contents}{sidebar}. \if defined(qtcreator) + \section2 Selecting Parse Context + Code might be interpreted differently in different contexts. A file can be used by different projects or subprojects with different defines, or it can be included in the context of C, C++, Objective-C, or Objective-C++. To @@ -86,19 +98,22 @@ incorrect, select \uicontrol {Additional Preprocessor Directives} to add preprocessor directives. + \section2 Changing Text Encoding + To show the file encoding of the current file on the editor toolbar (5), select \uicontrol Tools > \uicontrol Options > \uicontrol {Text Editor} > - \uicontrol Display > \uicontrol {Display file encoding}. To change the - encoding, click it on the toolbar and select new encoding in the - \uicontrol {Text Encoding} dialog. To reload the file with the selected - encoding, select \uicontrol {Reload with Encoding}. To save the file with + \uicontrol Display > \uicontrol {Display file encoding}. + + To change the text encoding, click it on the toolbar and select new + encoding in the \uicontrol {Text Encoding} dialog: + + \image qtcreator-text-encoding.png "Text Encoding dialog" + + To reload the file with the selected encoding, select + \uicontrol {Reload with Encoding}. To save the file with the new encoding, select \uicontrol {Save with Encoding}. \endif - \note Other convenient ways of navigating in \QC are provided by the - \l{Searching with the Locator}{locator}, \l{Keyboard Shortcuts} - {keyboard shortcuts}, and the \l{Browsing Project Contents}{sidebar}. - \section1 Splitting the Editor View Split the editor view or open the editor in a new window when you want to diff --git a/doc/src/overview/creator-only/creator-tutorials.qdoc b/doc/src/overview/creator-only/creator-tutorials.qdoc index 2454f4db4b4..003422fef43 100644 --- a/doc/src/overview/creator-only/creator-tutorials.qdoc +++ b/doc/src/overview/creator-only/creator-tutorials.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2018 The Qt Company Ltd. +** Copyright (C) 2019 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Creator documentation. @@ -55,7 +55,7 @@ \li \l{Creating a Mobile Application} - Learn how to create a Qt Quick application using Qt Quick Controls 2 + Learn how to create a Qt Quick application using Qt Quick Controls for Android and iOS devices. \endlist diff --git a/doc/src/projects/creator-only/creator-projects-creating.qdoc b/doc/src/projects/creator-only/creator-projects-creating.qdoc index ba7a3374a43..43b2e39f700 100644 --- a/doc/src/projects/creator-only/creator-projects-creating.qdoc +++ b/doc/src/projects/creator-only/creator-projects-creating.qdoc @@ -118,7 +118,7 @@ Create a Qt Quick application that uses \l{http://doc.qt.io/qt-5/qtquickcontrols2-index.html} - {Qt Quick Controls 2} to implement a scrollable list (requires + {Qt Quick Controls} to implement a scrollable list (requires Qt 5.9 or later) or a set of pages with a stack-based or swipe-based navigation model (requires Qt 5.7 or later). diff --git a/doc/src/projects/creator-only/creator-projects-custom-wizards-json.qdoc b/doc/src/projects/creator-only/creator-projects-custom-wizards-json.qdoc index 9e90847774f..c6dc6a24b4c 100644 --- a/doc/src/projects/creator-only/creator-projects-custom-wizards-json.qdoc +++ b/doc/src/projects/creator-only/creator-projects-custom-wizards-json.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2018 The Qt Company Ltd. +** Copyright (C) 2019 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Creator documentation. @@ -792,7 +792,7 @@ "data": { "wordWrap": true, - "trText": "Creates a deployable Qt Quick 2 application using Qt Quick Controls 2.", + "trText": "Creates a deployable Qt Quick 2 application using Qt Quick Controls.", } }, \endcode diff --git a/doc/src/qtquick/creator-only/creator-mobile-app-tutorial.qdoc b/doc/src/qtquick/creator-only/creator-mobile-app-tutorial.qdoc index fd013f9be3d..380192d9dd7 100644 --- a/doc/src/qtquick/creator-only/creator-mobile-app-tutorial.qdoc +++ b/doc/src/qtquick/creator-only/creator-mobile-app-tutorial.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2018 The Qt Company Ltd. +** Copyright (C) 2019 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Creator documentation. @@ -38,7 +38,7 @@ \title Creating a Mobile Application This tutorial describes developing Qt Quick applications for Android and iOS - devices using Qt Quick Controls 2. + devices using Qt Quick Controls. We use \QC to implement a Qt Quick application that accelerates an SVG (Scalable Vector Graphics) image based on the changing accelerometer values. diff --git a/doc/src/qtquick/creator-only/creator-tutorial-create-qq-project.qdocinc b/doc/src/qtquick/creator-only/creator-tutorial-create-qq-project.qdocinc index 1f6c306efd2..b3f2bc67a12 100644 --- a/doc/src/qtquick/creator-only/creator-tutorial-create-qq-project.qdocinc +++ b/doc/src/qtquick/creator-only/creator-tutorial-create-qq-project.qdocinc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2017 The Qt Company Ltd. +** Copyright (C) 2019 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Creator documentation. @@ -44,7 +44,7 @@ use for building and running the project: \l qmake, \l {Setting Up CMake}{CMake}, or \l {Setting Up Qbs}{Qbs}. - \li In the \uicontrol {Qt Quick Controls 2 Style} field, select one of + \li In the \uicontrol {Qt Quick Controls Style} field, select one of the predefined \l{Styling Qt Quick Controls 2}{UI styles} to use, and then select \uicontrol Next. diff --git a/doc/src/qtquick/creator-only/qtquick-app-development.qdoc b/doc/src/qtquick/creator-only/qtquick-app-development.qdoc index d026049d0d7..698dffa3aed 100644 --- a/doc/src/qtquick/creator-only/qtquick-app-development.qdoc +++ b/doc/src/qtquick/creator-only/qtquick-app-development.qdoc @@ -59,7 +59,7 @@ \li \l {Creating Components} You can use basic QML types to create your own components that you - can combine with ready-made Qt Quick Controls 2 and Layouts + can combine with ready-made Qt Quick Controls and Layouts (available since Qt 5.7). \li \l {Managing Item Hierarchy} diff --git a/doc/src/qtquick/creator-only/qtquick-app-tutorial.qdoc b/doc/src/qtquick/creator-only/qtquick-app-tutorial.qdoc index 829b8aee9c5..6592b10c45b 100644 --- a/doc/src/qtquick/creator-only/qtquick-app-tutorial.qdoc +++ b/doc/src/qtquick/creator-only/qtquick-app-tutorial.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2018 The Qt Company Ltd. +** Copyright (C) 2019 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Creator documentation. @@ -51,8 +51,7 @@ For more information about developing Qt Quick applications in the Design mode, see \l{Developing Qt Quick Applications}. - For examples of using Qt Quick Controls 2, see - \l{Qt Quick Controls 2 Examples}. + For examples of using Qt Quick Controls, see \l{Qt Quick Controls Examples}. \include creator-tutorial-create-qq-project.qdocinc qt quick application diff --git a/doc/src/qtquick/creator-only/qtquick-creating.qdoc b/doc/src/qtquick/creator-only/qtquick-creating.qdoc index 5c29c7e4309..90a6e8d4f5f 100644 --- a/doc/src/qtquick/creator-only/qtquick-creating.qdoc +++ b/doc/src/qtquick/creator-only/qtquick-creating.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2018 The Qt Company Ltd. +** Copyright (C) 2019 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Creator documentation. @@ -120,6 +120,12 @@ support for \l{http://doc.qt.io/qt-5/qtvirtualkeyboard-index.html} {Qt Virtual Keyboard} to the application. + \note If you have not installed the Qt Virtual Keyboard module when + you installed Qt, an error message will appear when you try to open + the \e main.qml in the \uicontrol {Form Editor} in the Design mode. + You can use the \l {Installing Qt}{Qt Maintenance Tool} to install + Qt Virtual Keyboard. + \li Select \uicontrol Next. \li Select \l{glossary-buildandrun-kit}{kits} for running and building @@ -136,7 +142,7 @@ \QC generates a QML file, \e main.qml, that you can modify in the Design mode. - \section1 Creating Qt Quick Controls 2 Applications + \section1 Creating Qt Quick Controls Applications \list 1 @@ -155,7 +161,7 @@ use for building and running the project: \l qmake, \l {Setting Up CMake}{CMake}, or \l {Setting Up Qbs}{Qbs}. - \li In the \uicontrol {Qt Quick Controls 2 Style} field, select one of + \li In the \uicontrol {Qt Quick Controls Style} field, select one of the predefined \l{Styling Qt Quick Controls 2}{UI styles} to use, and then select \uicontrol Next. diff --git a/doc/src/qtquick/creator-only/qtquick-modules-with-plugins.qdoc b/doc/src/qtquick/creator-only/qtquick-modules-with-plugins.qdoc index 118349a0ae7..0601da4e19f 100644 --- a/doc/src/qtquick/creator-only/qtquick-modules-with-plugins.qdoc +++ b/doc/src/qtquick/creator-only/qtquick-modules-with-plugins.qdoc @@ -179,6 +179,6 @@ qmlDesignerImportPaths in your product (for Qbs projects). Modules in the import paths defined in \c{QML_DESIGNER_IMPORT_PATH} will be used only in the Design mode. - For an example, see \l {Qt Quick Controls 2 - Contact List}. + For an example, see \l {Qt Quick Controls - Contact List}. */ diff --git a/doc/src/qtquick/qtquick-components.qdoc b/doc/src/qtquick/qtquick-components.qdoc index 34ee756b434..090f031b801 100644 --- a/doc/src/qtquick/qtquick-components.qdoc +++ b/doc/src/qtquick/qtquick-components.qdoc @@ -92,6 +92,9 @@ You can use the following QML types to create components: \list + \li \l [QML]{AnimatedImage}{Animated Image} provides a way to play + animations stored as images containing a series of frames, such + as those stored in GIF files. \li \l [QML]{BorderImage}{Border Image} uses an image as a border or background. \li \l [QML]{Image} adds a bitmap to the scene. You can stretch and @@ -119,13 +122,13 @@ \li \l{GridView}{Grid View} provides a grid vizualization of a model. \li \l{ListView}{List View} provides a list vizualization of a model. \li \l{PathView}{Path View} visualizes the contents of a model along a - path. - \li \l [QtQuickControls2] {ScrollView}{Scroll View} provides scrolling + path. For more information, see \l{Editing PathView Properties}. + \li \l [QtQuickControls] {ScrollView}{Scroll View} provides scrolling for user-defined content. It can be used instead of a \l Flickable item. - \li \l [QtQuickControls2] {StackView}{Stack View} provides a stack-based + \li \l [QtQuickControls] {StackView}{Stack View} provides a stack-based navigation model. - \li \l[QtQuickControls2] {SwipeView}{Swipe View} enables users to + \li \l[QtQuickControls] {SwipeView}{Swipe View} enables users to navigate pages by swiping sideways. \endlist @@ -333,21 +336,21 @@ \section2 Organizing Items - Since Qt 5.7, you can use the following \l{Qt Quick Controls 2} types to + Since Qt 5.7, you can use the following \l{Qt Quick Controls} types to organize items on screens: \list - \li \l [QtQuickControls2]{Frame} places a logical group of controls + \li \l [QtQuickControls]{Frame} places a logical group of controls within a visual frame. - \li \l [QtQuickControls2]{GroupBox}{Group Box} is used to lay out a + \li \l [QtQuickControls]{GroupBox}{Group Box} is used to lay out a logical group of controls together, within a titled visual frame. - \li \l [QtQuickControls2]{Label} is a text label with inherited styling + \li \l [QtQuickControls]{Label} is a text label with inherited styling and font. - \li \l [QtQuickControls2]{Page} provides a styled page control with + \li \l [QtQuickControls]{Page} provides a styled page control with support for a header and footer. - \li \l [QtQuickControls2]{PageIndicator}{Page Indicator} indicates the + \li \l [QtQuickControls]{PageIndicator}{Page Indicator} indicates the currently active page. - \li \l [QtQuickControls2]{Pane} provides a background matching with the + \li \l [QtQuickControls]{Pane} provides a background matching with the application style and theme. \endlist @@ -365,62 +368,62 @@ \li \l [QML]{MouseArea}{Mouse Area} enables simple mouse handling. \endlist - Since Qt 5.7, you can also use the following \l{Qt Quick Controls 2} types + Since Qt 5.7, you can also use the following \l{Qt Quick Controls} types to inform users about the progress of the application or to gather input from the user: \list - \li \l [QtQuickControls2]{BusyIndicator}{Busy Indicator} indicates + \li \l [QtQuickControls]{BusyIndicator}{Busy Indicator} indicates activity while content is being loaded. - \li \l [QtQuickControls2]{Button} provides a push button that you can + \li \l [QtQuickControls]{Button} provides a push button that you can associate with an action. - \li \l [QtQuickControls2]{CheckBox}{Check Box} provides an option button + \li \l [QtQuickControls]{CheckBox}{Check Box} provides an option button that can be toggled on (checked) or off (unchecked). - \li \l [QtQuickControls2]{CheckDelegate}{Check Delegate} presents an + \li \l [QtQuickControls]{CheckDelegate}{Check Delegate} presents an item delegate that can be toggled on (checked) or off (unchecked). - \li \l [QtQuickControls2]{ComboBox}{Combo Box} is a combined button and + \li \l [QtQuickControls]{ComboBox}{Combo Box} is a combined button and popup list that is populated by using a data model. - \li \l [QtQuickControls2]{DelayButton}{Delay Button} provides an option + \li \l [QtQuickControls]{DelayButton}{Delay Button} provides an option button that is triggered when held down long enough. - \li \l [QtQuickControls2]{Dial} is a circular dial that is rotated to + \li \l [QtQuickControls]{Dial} is a circular dial that is rotated to set a value. - \li \l [QtQuickControls2]{ProgressBar}{Progress Bar} indicates the + \li \l [QtQuickControls]{ProgressBar}{Progress Bar} indicates the progress of an operation. - \li \l [QtQuickControls2]{RadioButton}{Radio Button} provides an option + \li \l [QtQuickControls]{RadioButton}{Radio Button} provides an option button that can be switched on (checked) or off (unchecked). - \li \l [QtQuickControls2]{RadioDelegate}{Radio Delegate} presents an + \li \l [QtQuickControls]{RadioDelegate}{Radio Delegate} presents an item delegate that can be toggled on (checked) or off (unchecked). - \li \l [QtQuickControls2]{RangeSlider}{Range Slider} enables users to + \li \l [QtQuickControls]{RangeSlider}{Range Slider} enables users to select a range of values by sliding two handles along a track. - \li \l [QtQuickControls2]{RoundButton}{Round Button} provides a push + \li \l [QtQuickControls]{RoundButton}{Round Button} provides a push button with rounded corners that you can associate with an action. - \li \l [QtQuickControls2]{Slider} selects a value by sliding a handle + \li \l [QtQuickControls]{Slider} selects a value by sliding a handle along a track. - \li \l [QtQuickControls2]{SpinBox}{Spin Box} enables the user to specify + \li \l [QtQuickControls]{SpinBox}{Spin Box} enables the user to specify a value by clicking the up or down buttons, by pressing up or down on the keyboard, or by entering a value in the box. - \li \l [QtQuickControls2]{Switch} is an option button that can be + \li \l [QtQuickControls]{Switch} is an option button that can be toggled on or off. - \li \l [QtQuickControls2]{SwitchDelegate}{SwitchDelegate} presents an + \li \l [QtQuickControls]{SwitchDelegate}{Switch Delegate} presents an item delegate with a switch indicator that can be toggled on or off. - \li \l [QtQuickControls2] {TabBar}{Tab Bar} enables users to switch + \li \l [QtQuickControls] {TabBar}{Tab Bar} enables users to switch between different views or subtasks. - \li \l [QtQuickControls2]{TabButton}{Tab Button} is a button + \li \l [QtQuickControls]{TabButton}{Tab Button} is a button that is functionally similar to \uicontrol Button, but provides a look that is more suitable for a \uicontrol {Tab Bar}. - \li \l [QtQuickControls2]{TextArea}{Text Area} displays multiple lines + \li \l [QtQuickControls]{TextArea}{Text Area} displays multiple lines of editable formatted text. - \li \l [QtQuickControls2]{TextField}{Text Field} displays a single line + \li \l [QtQuickControls]{TextField}{Text Field} displays a single line of editable plain text. - \li \l [QtQuickControls2]{ToolBar}{Tool Bar} is a container of + \li \l [QtQuickControls]{ToolBar}{Tool Bar} is a container of application-wide and context sensitive actions and controls, such as navigation buttons and search fields. - \li \l [QtQuickControls2]{ToolButton}{Tool Button} is a button + \li \l [QtQuickControls]{ToolButton}{Tool Button} is a button that is functionally similar to \uicontrol Button, but provides a look that is more suitable for a \uicontrol {Tool Bar}. - \li \l [QtQuickControls2]{ToolSeparator}{Tool Separator} separates a + \li \l [QtQuickControls]{ToolSeparator}{Tool Separator} separates a group of items from adjacent items on a \uicontrol {Tool Bar}. - \li \l [QtQuickControls2]{Tumbler} is a spinnable wheel of items that + \li \l [QtQuickControls]{Tumbler} is a spinnable wheel of items that can be selected. \endlist diff --git a/doc/src/qtquick/qtquick-designer.qdoc b/doc/src/qtquick/qtquick-designer.qdoc index a1f2b0455e8..552dc43f402 100644 --- a/doc/src/qtquick/qtquick-designer.qdoc +++ b/doc/src/qtquick/qtquick-designer.qdoc @@ -73,7 +73,7 @@ \li \uicontrol {Library} (2) displays the building blocks that you can use to design applications: predefined QML types, your own - QML components, or Qt Quick Controls 2 that you import to the + QML components, or Qt Quick Controls that you import to the project, and other resources. For more information, see \l {Creating Components}. diff --git a/doc/src/qtquick/qtquick-navigator.qdoc b/doc/src/qtquick/qtquick-navigator.qdoc index 0215df96bec..db8921630cb 100644 --- a/doc/src/qtquick/qtquick-navigator.qdoc +++ b/doc/src/qtquick/qtquick-navigator.qdoc @@ -52,10 +52,9 @@ When you copy an item, all its child items are also copied. When you remove an item, the child items are also removed. - You can show and hide items on the canvas to focus on specific parts of the - application. Click the \inlineimage icon_color_none.png - (\uicontrol Transparent) button to change the visibility of an item on the - canvas. To change the visibility of an item in the application, select the + To show and hide items on the canvas when focusing on specific parts of the + application, click \inlineimage eye_open.png + . To change the visibility of an item in the application code, select the \uicontrol Visibility check box in the \uicontrol Properties pane or select \uicontrol Edit > \uicontrol Visibility in the context menu. @@ -86,16 +85,14 @@ Items with the same stacking value are drawn in the order they are listed, from the last item up. - To raise or lower the stack value of an item, select \inlineimage raise.png - (\uicontrol Raise) or \inlineimage lower.png - (\uicontrol Lower) on the toolbar. - To move an item to the front or back of all its siblings, right-click it in the navigator or the \uicontrol {Form Editor} and select - \uicontrol {Stack (z)}. To remove the \c z property, select + \uicontrol {Stack (z)} > \uicontrol {To Front} or \uicontrol {To Back}. + To raise or lower the stack value of an item, select \uicontrol Raise + or \uicontrol Lower. To remove the \c z property, select \uicontrol {Reset z Property}. - You can also use a \uicontrol StackLayout item (Qt Quick Controls 2) to + You can also use a \uicontrol StackLayout item (Qt Quick Controls) to create a stacked view. For more information, see \l {Using Layouts}. \section1 Switching Parent Items diff --git a/scripts/createDevPackage.py b/scripts/createDevPackage.py index 2bd898a9bd6..1c8b85d1437 100755 --- a/scripts/createDevPackage.py +++ b/scripts/createDevPackage.py @@ -122,7 +122,7 @@ def main(): copy_regexp(build_include_regexp, arguments.build, arguments.target_directory, arguments.verbose) if arguments.sevenzip_target: - subprocess.check_call([arguments.sevenzip, 'a', '-mx9', arguments.sevenzip_target, + subprocess.check_call([arguments.sevenzip, 'a', '-mx9', '-mmt2', arguments.sevenzip_target, os.path.join(arguments.target_directory, '*')]) if __name__ == "__main__": diff --git a/scripts/createDistPackage.py b/scripts/createDistPackage.py index 10207993c17..41c36f9ee97 100755 --- a/scripts/createDistPackage.py +++ b/scripts/createDistPackage.py @@ -58,7 +58,7 @@ def main(): common.codesign(tempdir) # package zip_source = os.path.join(tempdir, '*') if arguments.exclude_toplevel else tempdir - subprocess.check_call([arguments.sevenzip, 'a', + subprocess.check_call([arguments.sevenzip, 'a', '-mmt2', arguments.target_archive, zip_source]) finally: shutil.rmtree(tempdir_base) diff --git a/share/qtcreator/templates/wizards/autotest/wizard.json b/share/qtcreator/templates/wizards/autotest/wizard.json index d9fe6257af5..64e8b8d6af5 100644 --- a/share/qtcreator/templates/wizards/autotest/wizard.json +++ b/share/qtcreator/templates/wizards/autotest/wizard.json @@ -1,13 +1,13 @@ { "version": 1, - "supportedProjectTypes": [ "Qt4ProjectManager.Qt4Project" ], + "supportedProjectTypes": [ "CMakeProjectManager.CMakeProject", "Qbs.QbsProject", "Qt4ProjectManager.Qt4Project" ], "id": "R.AutoTest", "category": "H.Project", "trDescription": "Creates a new unit test project. Unit tests allow you to verify that the code is fit for use and that there are no regressions.", "trDisplayName": "Auto Test Project", "trDisplayCategory": "Other Project", "icon": "autotest.png", - "featuresRequired": [ "QtSupport.Wizards.FeatureQt", "QtSupport.Wizards.FeatureDesktop" ], + "featuresRequired": [ "QtSupport.Wizards.FeatureDesktop" ], "enabled": "%{JS: [ %{Plugins} ].indexOf('AutoTest') >= 0}", "options": @@ -187,7 +187,7 @@ "enabled": "%{IsTopLevelProject}", "data": { "projectFilePath": "%{ProjectFilePath}", - "requiredFeatures": [ "%{JS: (('%{BuildSystem}' === 'cmake' && '%{TestFrameWork}' === 'QtTest') || '%{TestFrameWork}' === 'QtQuickTest') ? 'QtSupport.Wizards.FeatureQt.5' : 'QtSupport.Wizards.FeatureQt' }" ] + "requiredFeatures": [ "%{JS: ('%{TestFrameWork}' === 'QtQuickTest' ? 'QtSupport.Wizards.FeatureQt.5' : (('%{BuildSystem}' === 'qmake' || '%{TestFrameWork}' === 'QtTest') ? 'QtSupport.Wizards.FeatureQt' : 'DeviceType.Desktop' )) }" ] } }, { diff --git a/src/app/app-Info.plist b/src/app/app-Info.plist index 5893f062a8a..2e2614b34a6 100644 --- a/src/app/app-Info.plist +++ b/src/app/app-Info.plist @@ -194,8 +194,6 @@ NSPrincipalClass NSApplication - NSSupportsAutomaticGraphicsSwitching - CFBundleDocumentTypes diff --git a/src/libs/tracing/qml/MainView.qml b/src/libs/tracing/qml/MainView.qml index 03e3fceeada..2e1f97a3baa 100644 --- a/src/libs/tracing/qml/MainView.qml +++ b/src/libs/tracing/qml/MainView.qml @@ -55,19 +55,7 @@ Rectangle { onRangeChanged: { zoomSliderToolBar.updateZoomLevel(); content.scroll(); - - // If you select something in the main view and then resize the current range by some - // other means, the selection should stay where it was. - var oldTimePerPixel = selectionRange.viewTimePerPixel; - selectionRange.viewTimePerPixel = zoomControl.rangeDuration / content.width; - if (selectionRange.creationState === selectionRange.creationFinished && - oldTimePerPixel != selectionRange.viewTimePerPixel) { - var newWidth = selectionRange.rangeWidth * oldTimePerPixel / - selectionRange.viewTimePerPixel; - selectionRange.rangeLeft = selectionRange.rangeLeft * oldTimePerPixel / - selectionRange.viewTimePerPixel; - selectionRange.rangeRight = selectionRange.rangeLeft + newWidth; - } + selectionRange.update(); } onWindowChanged: { content.scroll(); @@ -216,6 +204,8 @@ Rectangle { buttonsBar.updateLockButton(selectionLocked); } + onWidthChanged: selectionRange.update(); + onPropagateSelection: { if (lockItemSelection || (newModel === selectedModel && newItem === selectedItem)) return; @@ -314,6 +304,18 @@ Rectangle { root.selectionRangeMode = false; } + function update() { + // If you select something in the main view and then resize the current range by some + // other means, the selection should stay where it was. + var oldTimePerPixel = viewTimePerPixel; + viewTimePerPixel = zoomControl.rangeDuration / content.width; + if (creationState === creationFinished && oldTimePerPixel != viewTimePerPixel) { + var newWidth = rangeWidth * oldTimePerPixel / viewTimePerPixel; + rangeLeft = rangeLeft * oldTimePerPixel / viewTimePerPixel; + rangeRight = rangeLeft + newWidth; + } + } + } } diff --git a/src/plugins/clangformat/clangformat.qbs b/src/plugins/clangformat/clangformat.qbs index 3e40832c577..e5510b4630c 100644 --- a/src/plugins/clangformat/clangformat.qbs +++ b/src/plugins/clangformat/clangformat.qbs @@ -5,6 +5,7 @@ QtcPlugin { Depends { name: "Core" } Depends { name: "TextEditor" } + Depends { name: "CppEditor" } Depends { name: "CppTools" } Depends { name: "ProjectExplorer" } Depends { name: "Utils" } diff --git a/src/plugins/debugger/breakhandler.cpp b/src/plugins/debugger/breakhandler.cpp index 6e0ac9a7ff3..481c123046a 100644 --- a/src/plugins/debugger/breakhandler.cpp +++ b/src/plugins/debugger/breakhandler.cpp @@ -2031,14 +2031,18 @@ void BreakHandler::setWatchpointAtExpression(const QString &exp) void BreakHandler::releaseAllBreakpoints() { + GlobalBreakpoints gbps; for (Breakpoint bp : breakpoints()) { bp->removeChildren(); bp->destroyMarker(); - if (GlobalBreakpoint gbp = bp->globalBreakpoint()) - gbp->updateMarker(); + gbps.append(bp->globalBreakpoint()); } clear(); - // The now-unclaimed breakpoints are globally visible again. + // Make now-unclaimed breakpoints globally visible again. + for (GlobalBreakpoint gbp: qAsConst(gbps)) { + if (gbp) + gbp->updateMarker(); + } } QString BreakpointItem::msgWatchpointByExpressionTriggered(const QString &expr) const diff --git a/src/plugins/debugger/debuggermainwindow.cpp b/src/plugins/debugger/debuggermainwindow.cpp index ad26012b05d..9fe1a7e546a 100644 --- a/src/plugins/debugger/debuggermainwindow.cpp +++ b/src/plugins/debugger/debuggermainwindow.cpp @@ -444,7 +444,10 @@ void DebuggerMainWindow::restorePersistentSettings() qCDebug(perspectivesLog) << "LOADED DOCKS:" << theMainWindow->d->m_persistentChangedDocks; + QTC_ASSERT(theMainWindow, return); + QTC_ASSERT(theMainWindow->d, return); for (Perspective *perspective : theMainWindow->d->m_perspectives) { + QTC_ASSERT(perspective, continue); qCDebug(perspectivesLog) << "RESTORING PERSPECTIVE" << perspective->d->m_id; for (DockOperation &op : perspective->d->m_dockOperations) { if (op.operationType != Perspective::Raise) { @@ -477,6 +480,7 @@ void DebuggerMainWindow::savePersistentSettings() QSet changedDocks = theMainWindow->d->m_persistentChangedDocks; for (Perspective *perspective : theMainWindow->d->m_perspectives) { + QTC_ASSERT(perspective, continue); qCDebug(perspectivesLog) << "SAVE PERSPECTIVE" << perspective->d->m_id; for (const DockOperation &op : perspective->d->m_dockOperations) { if (op.operationType != Perspective::Raise) { diff --git a/src/plugins/perfprofiler/perfprofilertool.cpp b/src/plugins/perfprofiler/perfprofilertool.cpp index 1770dbbb4d2..fea4aacb9b2 100644 --- a/src/plugins/perfprofiler/perfprofilertool.cpp +++ b/src/plugins/perfprofiler/perfprofilertool.cpp @@ -168,6 +168,7 @@ PerfProfilerTool::PerfProfilerTool() m_delayLabel->setProperty("panelwidget", true); m_perspective.setAboutToActivateCallback([this]() { createViews(); }); + updateRunActions(); } void PerfProfilerTool::createViews() diff --git a/src/plugins/projectexplorer/targetsetuppage.cpp b/src/plugins/projectexplorer/targetsetuppage.cpp index aea75ad9932..501e0efc39a 100644 --- a/src/plugins/projectexplorer/targetsetuppage.cpp +++ b/src/plugins/projectexplorer/targetsetuppage.cpp @@ -382,6 +382,11 @@ void TargetSetupPage::handleKitUpdate(Kit *k) m_importer->makePersistent(k); bool acceptable = !m_requiredPredicate || m_requiredPredicate(k); + const bool wasAcceptable = Utils::contains(m_widgets, [k](const TargetSetupWidget *w) { + return w->kit() == k; + }); + if (acceptable == wasAcceptable) + return; if (!acceptable) removeWidget(k); diff --git a/src/plugins/projectexplorer/toolchainoptionspage.cpp b/src/plugins/projectexplorer/toolchainoptionspage.cpp index 4c93533b9b6..d887d78461b 100644 --- a/src/plugins/projectexplorer/toolchainoptionspage.cpp +++ b/src/plugins/projectexplorer/toolchainoptionspage.cpp @@ -441,8 +441,8 @@ void ToolChainOptionsWidget::toolChainSelectionChanged() ToolChainTreeItem *item = currentTreeItem(); QWidget *currentTcWidget = item ? item->widget : nullptr; - - m_widgetStack->setCurrentWidget(currentTcWidget); + if (currentTcWidget) + m_widgetStack->setCurrentWidget(currentTcWidget); m_container->setVisible(currentTcWidget); updateState(); } diff --git a/src/plugins/qmlprofiler/qmlprofilerstatisticsview.cpp b/src/plugins/qmlprofiler/qmlprofilerstatisticsview.cpp index 4bbf8d2c440..d11c97e0854 100644 --- a/src/plugins/qmlprofiler/qmlprofilerstatisticsview.cpp +++ b/src/plugins/qmlprofiler/qmlprofilerstatisticsview.cpp @@ -298,13 +298,15 @@ void QmlProfilerStatisticsMainView::displayTypeIndex(int typeIndex) QAbstractItemModel *sourceModel = sortModel->sourceModel(); QTC_ASSERT(sourceModel, return); - QModelIndex sourceIndex = sourceModel->index(qMin(typeIndex, sourceModel->rowCount() - 1), - MainCallCount); - QTC_ASSERT(sourceIndex.data(TypeIdRole).toInt() == typeIndex, return); - - setCurrentIndex(sourceIndex.data(SortRole).toInt() > 0 - ? sortModel->mapFromSource(sourceIndex) - : QModelIndex()); + if (typeIndex < sourceModel->rowCount()) { + QModelIndex sourceIndex = sourceModel->index(typeIndex, MainCallCount); + QTC_ASSERT(sourceIndex.data(TypeIdRole).toInt() == typeIndex, return); + setCurrentIndex(sourceIndex.data(SortRole).toInt() > 0 + ? sortModel->mapFromSource(sourceIndex) + : QModelIndex()); + } else { + setCurrentIndex(QModelIndex()); + } } // show in callers/callees subwindow diff --git a/src/shared/qbs b/src/shared/qbs index e0c6f88fe51..1301eb87fd4 160000 --- a/src/shared/qbs +++ b/src/shared/qbs @@ -1 +1 @@ -Subproject commit e0c6f88fe51186eb6fc697ba74f60136bf2106e4 +Subproject commit 1301eb87fd40d200310365f7553ab4b901a855d8 diff --git a/tests/system/objects.map b/tests/system/objects.map index 27cb7429d0c..276ae23b357 100644 --- a/tests/system/objects.map +++ b/tests/system/objects.map @@ -45,7 +45,7 @@ :CppTools__Internal__CompletionSettingsPage.Behavior_QGroupBox {container=':qt_tabwidget_stackedwidget_QScrollArea' name='groupBox' title='Behavior' type='QGroupBox' visible='1'} :DebugModeWidget.Debugger Log_QDockWidget {container=':Qt Creator.DebugModeWidget_QSplitter' name='GlobalLogDockWidget' type='QDockWidget' visible='1'} :DebugModeWidget.Debugger.Docks.BreakDockWidget_QDockWidget {container=':Qt Creator.DebugModeWidget_QSplitter' name='Debugger.Docks.BreakpointManagerDockWidget' type='QDockWidget' visible='1'} -:DebugModeWidget.Debugger.Docks.LocalsAndInspectorDockWidget_QDockWidget {container=':Qt Creator.DebugModeWidget_QSplitter' name='Debugger.Docks.LocalsAndInspectorDockWidget' type='QDockWidget' visible='1'} +:DebugModeWidget.Debugger.Docks.LocalsAndInspectorDockWidget_QDockWidget {container=':Qt Creator.DebugModeWidget_QSplitter' name~='Debugger\\\\.Dock\\\\.LocalsAndInspector\\\\.\\\\d+DockWidget' type='QDockWidget' visible='1'} :DebugModeWidget.OK_QPushButton {container=':Qt Creator.DebugModeWidget_QSplitter' text='OK' type='QPushButton' unnamed='1' visible='1'} :DebugModeWidget.Toolbar_QDockWidget {container=':Qt Creator.DebugModeWidget_QSplitter' name='Toolbar' type='QDockWidget' visible='1'} :DebugModeWidget_Debugger::Internal::ConsoleView {container=':Qt Creator.DebugModeWidget_QSplitter' type='Debugger::Internal::ConsoleView' unnamed='1' visible='1'} @@ -54,7 +54,7 @@ :Debugger Toolbar.Exit Debugger_QToolButton {container=':DebugModeWidget.Toolbar_QDockWidget' text='Stop Debugger' type='QToolButton' unnamed='1' visible='1'} :Debugger Toolbar.StatusText_Utils::StatusLabel {container=':DebugModeWidget.Toolbar_QDockWidget' type='Utils::StatusLabel' unnamed='1'} :Debugger.Docks.BreakDockWidget.Debugger.Docks.Break_QFrame {container=':DebugModeWidget.Debugger.Docks.BreakDockWidget_QDockWidget' name='Debugger.Docks.BreakpointManager' type='QFrame' visible='1'} -:Debugger.Docks.LocalsAndWatchersDockWidget.Inspector_QFrame {container=':DebugModeWidget.Debugger.Docks.LocalsAndInspectorDockWidget_QDockWidget' name='Inspector' type='QFrame' visible='1'} +:Debugger.Docks.LocalsAndWatchersDockWidget.Inspector_QFrame {container=':DebugModeWidget.Debugger.Docks.LocalsAndInspectorDockWidget_QDockWidget' name~='Debugger\\\\.Dock\\\\.Inspector\\\\.\\\\d+' type='QFrame' visible='1'} :Debugger::Internal::ConsoleEdit {columnIndex='0' container=':DebugModeWidget_Debugger::Internal::ConsoleView' rowIndex='0' type='Debugger::Internal::ConsoleEdit' unnamed='1' visible='1'} :Description.description_Utils::CompletingTextEdit {container=':splitter.Description_QGroupBox' name='description' type='Utils::CompletingTextEdit' visible='1'} :Dialog.OK_QPushButton {text='OK' type='QPushButton' unnamed='1' visible='1' window=':Dialog_QmlJSEditor::Internal::ComponentNameDialog'} diff --git a/tests/system/suite_tools/tst_codepasting/test.py b/tests/system/suite_tools/tst_codepasting/test.py index 1a54fb89111..35f85ab9488 100644 --- a/tests/system/suite_tools/tst_codepasting/test.py +++ b/tests/system/suite_tools/tst_codepasting/test.py @@ -34,17 +34,13 @@ def __platformToBeRunToday__(): # for all machines using the same IP-address like you. skipPastingToPastebinCom = platform.system() not in __platformToBeRunToday__() -NAME_KDE = "Paste.KDE.Org" NAME_PBCOM = "Pastebin.Com" NAME_PCXYZ = "Pastecode.Xyz" serverProblems = "Server side problems." def invalidPasteId(protocol): - if protocol == NAME_KDE: - return None - else: - return -1 + return -1 def closeHTTPStatusAndPasterDialog(protocol, pasterDialog): try: @@ -170,7 +166,7 @@ def main(): startQC() if not startedWithoutPluginError(): return - protocolsToTest = [NAME_KDE, NAME_PBCOM, NAME_PCXYZ] + protocolsToTest = [NAME_PBCOM, NAME_PCXYZ] sourceFile = os.path.join(os.getcwd(), "testdata", "main.cpp") # make sure General Messages is open openGeneralMessages() @@ -179,10 +175,7 @@ def main(): with TestSection(protocol): skippedPasting = True description = "Paste from 2017-05-11" - if protocol == NAME_KDE: - pasteId = "pysjk6n2i" - pastedText = readFile(os.path.join(os.getcwd(), "testdata", "main-prepasted.cpp")) - elif skipPastingToPastebinCom and protocol == NAME_PBCOM: + if skipPastingToPastebinCom and protocol == NAME_PBCOM: pasteId = "8XHP0ZgH" pastedText = readFile(os.path.join(os.getcwd(), "testdata", "main-prepasted.cpp")) else: @@ -219,7 +212,7 @@ def main(): clickButton(waitForObject(":*Qt Creator.Clear_QToolButton")) continue test.compare(filenameCombo.currentText, "%s: %s" % (protocol, pasteId), "Verify title of editor") - if protocol in (NAME_KDE, NAME_PBCOM) and pastedText.endswith("\n"): + if protocol == NAME_PBCOM and pastedText.endswith("\n"): pastedText = pastedText[:-1] test.compare(editor.plainText, pastedText, "Verify that pasted and fetched texts are the same") invokeMenuItem("File", "Close All")