From ef40f8445e1fee91753659e88d81cbf5c8045f1a Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Mon, 25 Jun 2018 10:28:12 +0200 Subject: [PATCH 01/48] Doc: Make info about managing projects more generic The details are described in the listed topics. Change-Id: I243eb8dc102ef42030a1a2e1b28af2679e6ca631 Reviewed-by: Tobias Hunger --- .../projects/creator-projects-overview.qdoc | 23 +++++++------------ .../creator-projects-settings-build.qdoc | 5 ++++ 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/doc/src/projects/creator-projects-overview.qdoc b/doc/src/projects/creator-projects-overview.qdoc index acef8158ebe..b002fae0e91 100644 --- a/doc/src/projects/creator-projects-overview.qdoc +++ b/doc/src/projects/creator-projects-overview.qdoc @@ -39,9 +39,9 @@ \image creator_managingprojects.png - One of the major advantages of \QC is that it allows a team of developers - to share a project across different development platforms with a common tool - for development and debugging. + One of the major advantages of \QC is that it allows a team of designers and + developers to share a project across different development platforms with a + common tool for design, development, and debugging. \list @@ -55,21 +55,14 @@ \li \l{Using Version Control Systems} The recommended way to set up a project is to use a version control - system. Store and edit only project source files and build system - configuration files (for example, .pro and .pri files for qmake). - Do not store files generated by the build system or \QC, such as - makefiles, .pro.user, and object files. + system. Store and edit only project source files and configuration + files. Do not store generated files. \li \l{Configuring Projects} - \QC allows you to specify separate build settings for each - development platform. By default, \l{glossary-shadow-build} - {shadow builds} are used to keep the build specific files separate - from the source. You can create separate versions of project files - to keep platform-dependent code separate. You can use qmake - \l{Adding Platform Specific Source Files} - {scopes} to select the file to process depending on which platform - qmake is run on. + Installation programs and project wizards create default + configurations for \QC and your projects. You can modify + the settings in the Projects mode. \li \l{Managing Sessions} diff --git a/doc/src/projects/creator-projects-settings-build.qdoc b/doc/src/projects/creator-projects-settings-build.qdoc index 8eaf3dbb826..81471b2cc72 100644 --- a/doc/src/projects/creator-projects-settings-build.qdoc +++ b/doc/src/projects/creator-projects-settings-build.qdoc @@ -75,6 +75,11 @@ \uicontrol General, and enter a period (.) in the \uicontrol {Default build directory} field. + You can create separate versions of project files to keep platform-dependent + code separate. You can use qmake \l{Adding Platform Specific Source Files} + {scopes} to select the file to process depending on which platform qmake is + run on. + \include creator-projects-cmake-building.qdocinc cmake build configuration \section1 Starting External Processes From e2e55a2f88934aa3956915ffacf1f2228c902af0 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Mon, 25 Jun 2018 17:46:23 +0200 Subject: [PATCH 02/48] Doc: Replace "Qt Quick Designer" with "Design mode" or \QMLD To make source text usable also for Qt Design Studio manual. Change-Id: I7a5090ea2308a3091c34193cce3a8b57da1eb498 Reviewed-by: Leena Miettinen --- doc/src/editors/creator-editors.qdoc | 25 ++++----- doc/src/howto/creator-keyboard-shortcuts.qdoc | 5 +- doc/src/howto/creator-ui.qdoc | 5 +- doc/src/howto/qtcreator-faq.qdoc | 2 +- .../overview/creator-commercial-overview.qdoc | 2 +- doc/src/overview/creator-design-overview.qdoc | 8 +-- doc/src/overview/creator-issues.qdoc | 4 +- doc/src/overview/creator-overview.qdoc | 3 +- doc/src/overview/creator-tutorials.qdoc | 2 +- .../projects/creator-projects-creating.qdoc | 2 +- doc/src/qtcreator-toc.qdoc | 2 +- .../qtquick/creator-mobile-app-tutorial.qdoc | 7 +-- doc/src/qtquick/qtquick-app-development.qdoc | 4 +- doc/src/qtquick/qtquick-app-tutorial.qdoc | 6 +-- doc/src/qtquick/qtquick-components.qdoc | 8 +-- doc/src/qtquick/qtquick-creating.qdoc | 7 +-- doc/src/qtquick/qtquick-designer.qdoc | 52 ++++++++++--------- doc/src/qtquick/qtquick-exporting-qml.qdoc | 6 +-- .../qtquick/qtquick-modules-with-plugins.qdoc | 29 ++++++----- doc/src/qtquick/qtquick-screens.qdoc | 17 +++--- 20 files changed, 104 insertions(+), 92 deletions(-) diff --git a/doc/src/editors/creator-editors.qdoc b/doc/src/editors/creator-editors.qdoc index 21e5506f937..b7297ed7d7e 100644 --- a/doc/src/editors/creator-editors.qdoc +++ b/doc/src/editors/creator-editors.qdoc @@ -570,44 +570,45 @@ \row \li M203 \li Warning - \li Imperative code is not supported in the Qt Quick Designer + \li Imperative code is not supported in the Design mode \li \row \li M204 \li Warning - \li This QML type is not supported in the Qt Quick Designer + \li This QML type is not supported in the Design mode \li \row \li M205 \li Warning - \li Reference to parent QML type cannot be resolved correctly by the Qt - Quick Designer + \li Reference to parent QML type cannot be resolved correctly by the + Design mode \li \row \li M206 \li Warning \li This visual property binding cannot be evaluated in the local - context and might not show up in Qt Quick Designer as expected + context and might not show up in Design mode as expected \li \row \li M207 \li Warning - \li Qt Quick Designer only supports states in the root QML type + \li Design mode only supports states in the root QML type \li \row \li M208 \li Error - \li This id might be ambiguous and is not supported in the \QMLD. + \li This id might be ambiguous and is not supported in the Design mode. \li \row \li M209 \li Error - \li This type (type name) is not supported as a root element by \QMLD. + \li This type (type name) is not supported as a root element in the + Design mode. \li \row @@ -813,15 +814,15 @@ instead of Qt Quick 2}. You can see the error message when you move the mouse pointer over code that - \QC underlines in the code editor or when you open a QML file in the - \uicontrol Design mode. + \QC underlines in the code editor or when you open a QML file in the Design + mode. To reset the code model, select \uicontrol Tools > \uicontrol {QML/JS} > \uicontrol {Reset Code Model}. If this does not help, try changing the QML emulation layer to the one that was built with the same Qt version as the one selected in the build and run - kit. For more information, see \l{Running QML Modules in Qt Quick Designer}. + kit. For more information, see \l{Running QML Modules in Design Mode}. \section1 Inspecting QML and JavaScript @@ -2729,7 +2730,7 @@ \image qtcreator-move-component-into-separate-file.png \li QML type name. This action is also available in the - \uicontrol {Form Editor} in \QMLD. + \uicontrol {Form Editor} in the Design mode. \row \li Split Initializer \li Reformats a one-line type into a multi-line type. For example, diff --git a/doc/src/howto/creator-keyboard-shortcuts.qdoc b/doc/src/howto/creator-keyboard-shortcuts.qdoc index 1247e9986bf..75ee2adae99 100644 --- a/doc/src/howto/creator-keyboard-shortcuts.qdoc +++ b/doc/src/howto/creator-keyboard-shortcuts.qdoc @@ -539,7 +539,10 @@ \li Ctrl+0 \endtable - \section2 Qt Quick Designer Keyboard Shortcuts + \section2 Design Mode Keyboard Shortcuts + + You can use the following keyboard shortcuts when editing QML files in the + Design mode. \table \header diff --git a/doc/src/howto/creator-ui.qdoc b/doc/src/howto/creator-ui.qdoc index 8437d5e35b2..5cb7a65a8fa 100644 --- a/doc/src/howto/creator-ui.qdoc +++ b/doc/src/howto/creator-ui.qdoc @@ -152,8 +152,9 @@ \endlist - For more information about the sidebar views that are only available in - \QMLD, see \l{Using Qt Quick Designer}. + For more information about the sidebar views that are only + available when editing QML files in the Design mode, see + \l{Editing QML Files in Design Mode}. You can change the view of the sidebars in the following ways: diff --git a/doc/src/howto/qtcreator-faq.qdoc b/doc/src/howto/qtcreator-faq.qdoc index 3bd14807ad4..915f2c0c1a2 100644 --- a/doc/src/howto/qtcreator-faq.qdoc +++ b/doc/src/howto/qtcreator-faq.qdoc @@ -104,7 +104,7 @@ \b {What should I do when \QC complains about missing OpenGL support?} - Some parts of \QC, such as \QMLD and QML Profiler, use Qt Quick 2, which + Some parts of \QC, such as the Design mode and QML Profiler, use Qt Quick 2, which relies on OpenGL API for drawing. Unfortunately, the use of OpenGL can cause problems, especially in remote setups and with outdated drivers. In these cases, \QC displays OpenGL-related error messages on the console or records diff --git a/doc/src/overview/creator-commercial-overview.qdoc b/doc/src/overview/creator-commercial-overview.qdoc index a1e59b4c3a0..ea1d7aa32fe 100644 --- a/doc/src/overview/creator-commercial-overview.qdoc +++ b/doc/src/overview/creator-commercial-overview.qdoc @@ -42,7 +42,7 @@ \list \li \l{Analyzing CPU Usage}{Performance Analyzer} - \li \l{Browsing ISO 7000 Icons} in \QMLD + \li \l{Browsing ISO 7000 Icons} in the Design mode \li \l{http://doc.qt.io/QtForDeviceCreation/index.html}{Developing for embedded devices} \li \l{http://doc.qt.io/qtcreator/creator-overview-qtasam.html} diff --git a/doc/src/overview/creator-design-overview.qdoc b/doc/src/overview/creator-design-overview.qdoc index bf2391db00b..29c229c632b 100644 --- a/doc/src/overview/creator-design-overview.qdoc +++ b/doc/src/overview/creator-design-overview.qdoc @@ -39,16 +39,16 @@ \image creator_designinguserinterface.png - \QC provides two integrated visual editors, \QMLD and \QD. The integration + \QC provides integrated visual editors for designing Qt Quick and + widget-based applications in the Design mode. The integration includes project management and code completion. \list \li \l{Developing Qt Quick Applications} - You can use wizards to create Qt Quick projects that contain - boiler-plate code. You can use \QMLD to develop Qt Quick - applications in the \uicontrol Design mode. + You can use wizards to create Qt Quick projects containing + boiler-plate code that you can edit in the Design mode. \li \l{Developing Widget Based Applications} diff --git a/doc/src/overview/creator-issues.qdoc b/doc/src/overview/creator-issues.qdoc index 474657e989b..f91f214c93a 100644 --- a/doc/src/overview/creator-issues.qdoc +++ b/doc/src/overview/creator-issues.qdoc @@ -149,11 +149,11 @@ \endlist - \section1 Qt Quick Designer Issues + \section1 Design Mode Issues \list - \li \QMLD uses a QML emulation layer (QML Puppet) to render and preview + \li The Design mode uses a QML emulation layer (QML Puppet) to render and preview images and to collect data. Executing C++ code might cause the QML emulation layer to crash. If it crashes, an error message is displayed and you can continue editing the QML file in the code editor. diff --git a/doc/src/overview/creator-overview.qdoc b/doc/src/overview/creator-overview.qdoc index 9d2a60c6f72..def22ce883c 100644 --- a/doc/src/overview/creator-overview.qdoc +++ b/doc/src/overview/creator-overview.qdoc @@ -64,7 +64,8 @@ \l{Managing Projects}. \li \b {\l{Designing User Interfaces}} - \QC provides two integrated visual editors, \QMLD and \QD. + \QC provides integrated visual editors for creating Qt Quick and + widget-based applications in the Design mode. To create intuitive, modern-looking, fluid user interfaces, you can use \l{Qt Quick}. If you need a traditional user interface that is clearly diff --git a/doc/src/overview/creator-tutorials.qdoc b/doc/src/overview/creator-tutorials.qdoc index 31055026776..65a151a7536 100644 --- a/doc/src/overview/creator-tutorials.qdoc +++ b/doc/src/overview/creator-tutorials.qdoc @@ -47,7 +47,7 @@ \li \l{Creating a Qt Quick Application} - Learn how to use \QMLD to create a Qt Quick application. + Learn how to use the Design mode to create a Qt Quick application. \li \l{Creating a Qt Widget Based Application} diff --git a/doc/src/projects/creator-projects-creating.qdoc b/doc/src/projects/creator-projects-creating.qdoc index 019ac432f33..991f409c501 100644 --- a/doc/src/projects/creator-projects-creating.qdoc +++ b/doc/src/projects/creator-projects-creating.qdoc @@ -90,7 +90,7 @@ files, as defined by the wizard. For example, if you choose to create a Qt Quick application, \QC generates a - QML file that you can modify with the integrated \QMLD. + QML file that you can modify in the Design mode. \section1 Selecting Project Type diff --git a/doc/src/qtcreator-toc.qdoc b/doc/src/qtcreator-toc.qdoc index f9e3907665e..65bac506994 100644 --- a/doc/src/qtcreator-toc.qdoc +++ b/doc/src/qtcreator-toc.qdoc @@ -87,7 +87,7 @@ \list \li \l {Creating Qt Quick Projects} \li \l {Qt Quick UI Forms} - \li \l {Using Qt Quick Designer} + \li \l {Editing QML Files in Design Mode} \li \l {Editing PathView Properties} \li \l {Adding Connections} \li \l {Creating Components} diff --git a/doc/src/qtquick/creator-mobile-app-tutorial.qdoc b/doc/src/qtquick/creator-mobile-app-tutorial.qdoc index f0fddbacfd4..f580ea7d063 100644 --- a/doc/src/qtquick/creator-mobile-app-tutorial.qdoc +++ b/doc/src/qtquick/creator-mobile-app-tutorial.qdoc @@ -78,12 +78,12 @@ The image appears in \uicontrol Resources. You can also use any other image or a QML type, instead. - To create the UI in the \uicontrol Design mode: + To create the UI in the Design mode: \list 1 \li In the \uicontrol Projects view, double-click the \e Page1Form.ui.qml - file to open it in \QMLD. + file to open it in the Design mode. \li In the \uicontrol Navigator, select \uicontrol Label and press \key Delete to delete it. @@ -119,7 +119,8 @@ \endlist We want to modify the properties of the bubble in ways that are not - supported by \QMLD, and therefore we create a custom QML type for it: + supported in the Design mode, and therefore we create a custom QML + type for it: \list 1 diff --git a/doc/src/qtquick/qtquick-app-development.qdoc b/doc/src/qtquick/qtquick-app-development.qdoc index 8d373449e19..855f2c7150c 100644 --- a/doc/src/qtquick/qtquick-app-development.qdoc +++ b/doc/src/qtquick/qtquick-app-development.qdoc @@ -50,10 +50,10 @@ (.ui.qml files). The forms use a purely declarative subset of the QML language and you can edit them in the Design mode. - \li \l {Using Qt Quick Designer} + \li \l {Editing QML Files in Design Mode} You can use the \uicontrol {Form Editor} or the - \uicontrol {Text Editor} of \QMLD in the \uicontrol Design mode to + \uicontrol {Text Editor} in the Design mode to develop Qt Quick applications. \li \l {Editing PathView Properties} diff --git a/doc/src/qtquick/qtquick-app-tutorial.qdoc b/doc/src/qtquick/qtquick-app-tutorial.qdoc index 147df44a432..7809916e823 100644 --- a/doc/src/qtquick/qtquick-app-tutorial.qdoc +++ b/doc/src/qtquick/qtquick-app-tutorial.qdoc @@ -48,8 +48,8 @@ \image qmldesigner-tutorial.png "States and transitions example" - For more information about using \QMLD, see - \l{Developing Qt Quick Applications}. + 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}. @@ -69,7 +69,7 @@ \list 1 \li In the \uicontrol Projects view, double-click the \e Page1Form.ui.qml - file to open it in \QMLD. + file to open it in the Design mode. \image qmldesigner-tutorial-design-mode.png "Transitions project in Design Mode" diff --git a/doc/src/qtquick/qtquick-components.qdoc b/doc/src/qtquick/qtquick-components.qdoc index 81897f0a5dd..7ddfecf0733 100644 --- a/doc/src/qtquick/qtquick-components.qdoc +++ b/doc/src/qtquick/qtquick-components.qdoc @@ -92,13 +92,13 @@ Qt Quick Controls 2 achieve improved efficiency by employing a simplified \l {Styling Qt Quick Controls 2}{styling architecture} when compared to - Qt Quick Controls, on which the module is based. \QMLD reads the + Qt Quick Controls, on which the module is based. The visual editor reads the \c qtquickcontrols2.conf file that specifies the preferred style and some style-specific arguments. To change the style, select another style from the list on the toolbar. This enables you to check how your UI looks when using the available styles. - For an example of defining your own style and using it in \QMLD, see + For an example of defining your own style and using it in the Design mode, see \l {Qt Quick Controls 2 - Flat Style}. Qt Quick Controls 2 work in conjunction with Qt Quick and Qt Quick Layouts. @@ -112,7 +112,7 @@ Some ready-made controls, such as a gauge, dial, status indicator, and tumbler, are provided by the \l {Qt Quick Extras} module. - \section1 Creating Components in Qt Quick Designer + \section1 Creating Components in Design Mode \list 1 @@ -125,7 +125,7 @@ the \uicontrol Library only if the filename begins with a capital letter. - \li Click \uicontrol Design to open the .qml file in \QMLD. + \li Click \uicontrol Design to open the .qml file in the Design mode. \li Drag and drop a QML type from the \uicontrol Library to the \uicontrol Navigator or \uicontrol {Form Editor}. diff --git a/doc/src/qtquick/qtquick-creating.qdoc b/doc/src/qtquick/qtquick-creating.qdoc index 1dd045093fa..db6397fa16a 100644 --- a/doc/src/qtquick/qtquick-creating.qdoc +++ b/doc/src/qtquick/qtquick-creating.qdoc @@ -137,7 +137,8 @@ \endlist - \QC generates a QML file, \e main.qml, that you can modify in \QMLD. + \QC generates a QML file, \e main.qml, that you can modify in the Design + mode. \section1 Creating Qt Quick Controls 2 Applications @@ -184,11 +185,11 @@ \endlist For the Scroll application, \QC creates a QML file, \e main.qml, that you - can modify in \QMLD. + can modify in the Design mode. For the Stack and Swipe applications, \QC generates two UI files, \e Page1Form.ui.qml and \e Page2Form.ui.qml, that you can modify in the - \QMLD \uicontrol {Form Editor} and a QML file, \e main.qml, that you can + \uicontrol {Form Editor} and a QML file, \e main.qml, that you can modify in the \uicontrol {Text Editor} to add the application logic. \section1 Creating Qt Quick UI Projects diff --git a/doc/src/qtquick/qtquick-designer.qdoc b/doc/src/qtquick/qtquick-designer.qdoc index 8c835d12c07..62e66312cc9 100644 --- a/doc/src/qtquick/qtquick-designer.qdoc +++ b/doc/src/qtquick/qtquick-designer.qdoc @@ -35,16 +35,16 @@ \page creator-using-qt-quick-designer.html \nextpage qmldesigner-pathview-editor.html - \title Using Qt Quick Designer + \title Editing QML Files in Design Mode - You can edit \l{Qt Quick UI Forms} (ui.qml files) in \QMLD. \QC opens the - UI forms in the \uicontrol {Form Editor} tab in the \uicontrol Design mode. - It is recommended that you use UI forms for components that you want to - design in \QMLD. + \QC opens \l{Qt Quick UI Forms}{UI forms} (ui.qml files) in the + \uicontrol {Form Editor} tab in the Design mode. It is + recommended that you use UI forms for components that you want to + edit in the Design mode. \image qmldesigner-visual-editor.png "Visual editor" - Use \QMLD to manage your project: + To manage your project in the Design mode: \list @@ -170,9 +170,9 @@ \section2 Switching Parent Items - When you drag and drop instances of QML types to the canvas, Qt Quick Designer - adds the new item as a child of the item beneath it. - When you move items on the canvas, Qt Quick Designer cannot determine + When you drag and drop instances of QML types to the canvas, the new item + is added as a child of the item beneath it. When you move items on the + canvas, it is not possible to determine whether you want to adjust their position or attach them to a new parent item. Therefore, the parent item is not automatically changed. To change the parent of the item, press down the \key Shift @@ -307,7 +307,7 @@ If you use text IDs instead of plain text, change the default call to \c qsTrId(). Select \uicontrol Tools > \uicontrol Options > - \uicontrol {Qt Quick} > \uicontrol {Qt Quick Designer}, and then select the + \uicontrol {Qt Quick} > \uicontrol {\QMLD}, and then select the \uicontrol {qsTrId()} radio button in the \uicontrol Internationalization group. For more information about text ID based translations, see \l {Qt Linguist Manual: Text ID Based Translations}. @@ -321,19 +321,20 @@ \section2 Loading Placeholder Data - \QMLD supports views, models, and delegates, so that when you add a Grid - View, List View, or Path View item, the ListModel and the delegate + The Design mode supports views, models, and delegates, so that when you add + a Grid View, List View, or Path View item, the ListModel and the delegate item are added automatically. - However, the missing context of the application presents a challenge for - \QMLD. Specific models defined in C++ are the most obvious case. Often, + However, the missing context of the application presents a challenge. + Specific models defined in C++ are the most obvious case. Often, the context is missing simple properties, which are either defined in C++, or in other QML files. A typical example is an item that uses the properties of its parent, such as \c parent.width. \section3 Using Dummy Models - If you open a file in \QMLD that references a C++ model, you see nothing on + If you open a file in the Design mode that references a C++ model, you see + nothing on the canvas. If the data in the model is fetched from the internet, you have no control over it. To get reliable data, \e {dummy data} was introduced. @@ -387,8 +388,8 @@ } \endqml - This works nicely for applications but \QMLD displays a zero-sized item. - A parent for the opened file does not exist, because the context is + This works nicely for applications but the Design mode displays a zero-sized + item. A parent for the opened file does not exist, because the context is missing. To get around the missing context, the idea of a \e {dummy context} is introduced. If you place a file with the same name as the application (here, example.qml) in the \c {dummydata/context} directory, @@ -462,7 +463,7 @@ \endlist The \uicontrol State pane displays the different \l{State}{states} - of the component in the Qt Quick Designer. The \uicontrol State pane is + of the component in the Design mode. The \uicontrol State pane is collapsed by default to save space. Select \uicontrol Expand in the context menu to view the whole pane. @@ -502,8 +503,9 @@ Click the \inlineimage snapping_and_anchoring.png button to anchor the item to the items that you snap to. - Choose \uicontrol {Tools > Options > Qt Quick > Qt Quick Designer} to specify - settings for snapping. In the \uicontrol {Parent item padding} field, specify the + Choose \uicontrol Tools > \uicontrol Options > \uicontrol {Qt Quick} > + \uicontrol {\QMLD} to specify settings for snapping. In the + \uicontrol {Parent item padding} field, specify the distance in pixels between the parent item and the snapping lines. In the \uicontrol {Sibling item spacing} field, specify the distance in pixels between sibling items and the snapping lines. @@ -515,7 +517,7 @@ \section2 Hiding Item Boundaries - \QMLD displays the boundaries of items on the canvas. To hide + The Design mode displays the boundaries of items on the canvas. To hide the boundaries, click the \inlineimage boundingrect.png button. @@ -549,14 +551,14 @@ \section2 Specifying Canvas Size - To change the canvas size, select \uicontrol {Tools > Options > Qt Quick - > Qt Quick Designer} and + To change the canvas size, select \uicontrol Tools > \uicontrol Options > + \uicontrol {Qt Quick} > \uicontrol {\QMLD} and specify the canvas width and height in the \uicontrol Canvas group. \section2 Refreshing the Canvas - When you open QML files in \QMLD, the items in the file are drawn on - the canvas. When you edit the item properties in \QMLD, the QML file and + When you open QML files in the Design mode, the items in the file are drawn + on the canvas. When you edit the item properties, the QML file and the image on the canvas might get out of sync. For example, when you change the position of an item within a column or a row, the new position might not be displayed correctly on the canvas. diff --git a/doc/src/qtquick/qtquick-exporting-qml.qdoc b/doc/src/qtquick/qtquick-exporting-qml.qdoc index d9ad262c81b..c4ecf06c010 100644 --- a/doc/src/qtquick/qtquick-exporting-qml.qdoc +++ b/doc/src/qtquick/qtquick-exporting-qml.qdoc @@ -66,7 +66,7 @@ development PC. Each layer is exported as an item. You can open the QML file in \QC for editing. By default, the export scripts - generate Qt Quick 1 files. To edit the files in \QMLD, change the import + generate Qt Quick 1 files. To edit the files in the Design mode, change the import statements in the export scripts to import Qt Quick 2. Or, you can change the import statement in each file after generating the files. @@ -146,8 +146,8 @@ On Linux, run the following command: \c {chmod u+rx} - \li To generate QML files that you can edit in \QMLD, edit the import - statement in \e qmlexporter.py. For example: + \li To generate QML files that you can edit in the Design mode, edit the + import statement in \e qmlexporter.py. For example: \code f.write('import QtQuick 2.5\n') diff --git a/doc/src/qtquick/qtquick-modules-with-plugins.qdoc b/doc/src/qtquick/qtquick-modules-with-plugins.qdoc index 816c6c934de..b3b70c0013b 100644 --- a/doc/src/qtquick/qtquick-modules-with-plugins.qdoc +++ b/doc/src/qtquick/qtquick-modules-with-plugins.qdoc @@ -43,7 +43,7 @@ information for code completion and the semantic checks to work correctly. To create a QML module and make it appear in the \uicontrol Library in - \QMLD: + the Design mode: \list 1 @@ -69,15 +69,15 @@ .pro file: \c {QML_IMPORT_PATH += path/to/module}. For more information, see \l {Importing QML Modules}. - \li Make sure that the QML emulation layer of \QMLD is built with + \li Make sure that the QML emulation layer used in the Design mode is built with the same Qt version as your QML modules. For more information, see - \l {Running QML Modules in Qt Quick Designer}. You can also try + \l {Running QML Modules in Design Mode}. You can also try skipping this step and take it later, if necessary. \endlist Your module should now appear in the \uicontrol Imports tab in the - \uicontrol Library in \QMLD. Your components should appear in the + \uicontrol Library in the Design mode. Your components should appear in the \uicontrol {QML Types} tab if a valid \c .metainfo file is in place. \section1 Registering QML Types @@ -93,7 +93,7 @@ for QML modules with plugins before distributing them. Classes registered with \c qmlRegisterType() can be used as backend objects - in the \QMLD. For more information, see \l {Adding Connections}. + in the Design mode. For more information, see \l {Adding Connections}. \section1 Generating qmltypes Files @@ -150,10 +150,10 @@ The import path affects all the targets built by the CMake project. - \section1 Running QML Modules in Qt Quick Designer + \section1 Running QML Modules in Design Mode - \QMLD uses a QML emulation layer (also called QML Puppet) to render and - preview images and to collect data. To be able to render custom types + A QML emulation layer (also called QML Puppet) is used in the Design mode to + render and preview images and to collect data. To be able to render custom types correctly from QML modules, the emulation layer must be built with the same Qt version as the QML modules. @@ -163,20 +163,21 @@ To use an emulation layer that is built with the Qt configured in the build and run kit for the project, select \uicontrol Tools > - \uicontrol Options > \uicontrol {Qt Quick} > \uicontrol {Qt Quick Designer} > + \uicontrol Options > \uicontrol {Qt Quick} > \uicontrol {\QMLD} > \uicontrol {Use QML emulation layer which is built by the selected Qt} radio button. - \QC builds the emulation layer when you select the \uicontrol Design mode. + \QC builds the emulation layer when you select the Design mode. A plugin should behave differently depending on whether it is run by the emulation layer or an application. For example, animations should not be run - in the \uicontrol Design mode. You can use the value of the QML_PUPPET_MODE + in the Design mode. You can use the value of the QML_PUPPET_MODE environment variable to check whether the plugin is currently being run - by an application or edited in the \uicontrol Design mode. + by an application or edited in the Design mode. - If you want to use a different module in \QMLD than in your actual + If you want to use a different module in the Design mode than in your actual application for example to mockup C++ items, then you can use \c{QML_DESIGNER_IMPORT_PATH} in the \c{.pro} file. - Modules in the import paths defined in \c{QML_DESIGNER_IMPORT_PATH} will be used only in \QMLD. + 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}. */ diff --git a/doc/src/qtquick/qtquick-screens.qdoc b/doc/src/qtquick/qtquick-screens.qdoc index 17dd3c2d392..fd035049ca9 100644 --- a/doc/src/qtquick/qtquick-screens.qdoc +++ b/doc/src/qtquick/qtquick-screens.qdoc @@ -120,8 +120,8 @@ Property bindings are created implicitly in QML whenever a property is assigned a JavaScript expression. To set JavaScript expressions as values of - properties in \QMLD, click the circle icon next to a property to open a - context menu, and select \uicontrol {Set Binding}. + properties in the Design mode, click the circle icon next to a property to + open a context menu, and select \uicontrol {Set Binding}. \image qmldesigner-set-expression.png "Type properties context menu" @@ -141,7 +141,8 @@ For more information on the JavaScript environment provided by QML, see \l{Integrating QML and JavaScript}. - Bindings are a black box for \QMLD and using them might have a negative impact on + Bindings are a black box for the Design mode and using them might have a + negative impact on performance, so consider setting anchors and margins for items, instead. For example, instead of setting \c {parent.width} for an item, you could anchor the item to its sibling items on the left and the right. @@ -167,8 +168,8 @@ (\uicontrol {Reset Anchors}) button to reset the anchors to their saved state. - Specifying the baseline anchor in \QMLD is not supported. You can specify it - in the \uicontrol {Text Editor}. + You can specify the baseline anchor in the \uicontrol {Text Editor} in the + Design mode. For performance reasons, you can only anchor an item to its siblings and direct parent. By default, an item is anchored to its parent when you @@ -393,9 +394,9 @@ \section2 Using SCXML State Machines - To use QML and \QMLD together with an SCXML state machine, add states and - bind them to the state machine in the \uicontrol Backends tab, as described - in \l {Managing C++ Backend Objects}. + To use QML together with an SCXML state machine, add states and bind them to + the state machine in the \uicontrol Backends tab in the Design mode, as + described in \l {Managing C++ Backend Objects}. In the \uicontrol States pane, you can edit the \c when condition of states to map QML states to the states of the SCXML state machine. For an example, From 7ed1ca0fac707c03a6d327bf0b3dc8ca5d061bcf Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Mon, 25 Jun 2018 14:52:52 +0200 Subject: [PATCH 03/48] AutoTest: Fix finding corresponding item for data tags Change-Id: I95518b69f0a60206a45318586d7ba033d101d1d6 Reviewed-by: David Schulz --- src/plugins/autotest/qtest/qttestresult.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/plugins/autotest/qtest/qttestresult.cpp b/src/plugins/autotest/qtest/qttestresult.cpp index 8655f690cd7..f3ca1ebe0ed 100644 --- a/src/plugins/autotest/qtest/qttestresult.cpp +++ b/src/plugins/autotest/qtest/qttestresult.cpp @@ -205,7 +205,8 @@ bool QtTestResult::matchesTestFunction(const TestTreeItem *item) const } if (type == TestTreeItem::TestDataTag) { TestTreeItem *grandParentItem = parentItem->parentItem(); - return parentItem->name() == m_function && grandParentItem->name() == name(); + return parentItem->name() == m_function && grandParentItem->name() == name() + && item->name() == m_dataTag; } return item->name() == m_function && parentItem->name() == name(); } From 629b5abd7efa169981f9a27ae454f27d2227443c Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Tue, 26 Jun 2018 07:16:08 +0200 Subject: [PATCH 04/48] Bump to 4.7-rc1 Change-Id: I071ef81b3285102eeedba7d475aabfda762926d3 Reviewed-by: Eike Ziller --- qbs/modules/qtc/qtc.qbs | 6 +++--- qtcreator.pri | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/qbs/modules/qtc/qtc.qbs b/qbs/modules/qtc/qtc.qbs index e95ceeac91c..fd2cd3f2da8 100644 --- a/qbs/modules/qtc/qtc.qbs +++ b/qbs/modules/qtc/qtc.qbs @@ -4,16 +4,16 @@ import qbs.FileInfo import "qtc.js" as HelperFunctions Module { - property string qtcreator_display_version: '4.7.0-beta2' + property string qtcreator_display_version: '4.7.0-rc1' property string ide_version_major: '4' property string ide_version_minor: '6' - property string ide_version_release: '83' + property string ide_version_release: '84' property string qtcreator_version: ide_version_major + '.' + ide_version_minor + '.' + ide_version_release property string ide_compat_version_major: '4' property string ide_compat_version_minor: '6' - property string ide_compat_version_release: '83' + property string ide_compat_version_release: '84' property string qtcreator_compat_version: ide_compat_version_major + '.' + ide_compat_version_minor + '.' + ide_compat_version_release diff --git a/qtcreator.pri b/qtcreator.pri index 210a503d72e..b79249c045f 100644 --- a/qtcreator.pri +++ b/qtcreator.pri @@ -1,12 +1,12 @@ !isEmpty(QTCREATOR_PRI_INCLUDED):error("qtcreator.pri already included") QTCREATOR_PRI_INCLUDED = 1 -QTCREATOR_VERSION = 4.6.83 -QTCREATOR_COMPAT_VERSION = 4.6.83 +QTCREATOR_VERSION = 4.6.84 +QTCREATOR_COMPAT_VERSION = 4.6.84 VERSION = $$QTCREATOR_VERSION -QTCREATOR_DISPLAY_VERSION = 4.7.0-beta2 +QTCREATOR_DISPLAY_VERSION = 4.7.0-rc1 QTCREATOR_COPYRIGHT_YEAR = 2018 -BINARY_ARTIFACTS_BRANCH = 4.6 +BINARY_ARTIFACTS_BRANCH = 4.7 isEmpty(IDE_DISPLAY_NAME): IDE_DISPLAY_NAME = Qt Creator isEmpty(IDE_ID): IDE_ID = qtcreator From 5b95d912944a37a0f97a3cf1108e00b7de710e66 Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Tue, 26 Jun 2018 08:20:42 +0300 Subject: [PATCH 05/48] TextEditor: Fix crash Happens when closing an editor while tooltip processing is in progress. Change-Id: I023f62ab6ba1e8b1bbe207da08c1e526fb99430a Reviewed-by: David Schulz --- src/plugins/texteditor/texteditor.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp index 71818d1e937..8ad2cacf564 100644 --- a/src/plugins/texteditor/texteditor.cpp +++ b/src/plugins/texteditor/texteditor.cpp @@ -351,6 +351,8 @@ public: void onHandlerFinished(int documentRevision, int position, int priority) { + if (!m_widget) + return; QTC_ASSERT(m_currentHandlerIndex < m_handlers.size(), return); QTC_ASSERT(documentRevision == m_documentRevision, return); QTC_ASSERT(position == m_position, return); @@ -376,7 +378,7 @@ public: } private: - TextEditorWidget *m_widget = nullptr; + QPointer m_widget; const QList &m_handlers; struct LastHandlerInfo { From 64b8f98a351a4af2e3e98c57e60d4eb0402b278d Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Mon, 25 Jun 2018 23:56:41 +0300 Subject: [PATCH 06/48] FancyTabWidget: Set focus on widget change If the locator popup is open, and the user changes mode using the keyboard (Ctrl+num), the popup was not closed. Change-Id: I7d5cb93229715dd293b6eb4d36cf2a9cb4467123 Reviewed-by: Eike Ziller --- src/plugins/coreplugin/fancytabwidget.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/plugins/coreplugin/fancytabwidget.cpp b/src/plugins/coreplugin/fancytabwidget.cpp index a9050029217..4fad26bc12c 100644 --- a/src/plugins/coreplugin/fancytabwidget.cpp +++ b/src/plugins/coreplugin/fancytabwidget.cpp @@ -29,6 +29,7 @@ #include "fancyactionbar.h" #include +#include #include #include #include @@ -599,6 +600,12 @@ void FancyTabWidget::showWidget(int index) { emit currentAboutToShow(index); m_modesStack->setCurrentIndex(index); + QWidget *w = m_modesStack->currentWidget(); + if (QTC_GUARD(w)) { + if (QWidget *focusWidget = w->focusWidget()) + w = focusWidget; + w->setFocus(); + } emit currentChanged(index); } From 4b13170565595ed64e89589f5a54a756920a6ec0 Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Fri, 22 Jun 2018 15:11:29 +0200 Subject: [PATCH 07/48] =?UTF-8?q?qmljs:=20Use=20C++11=E2=80=99s=20override?= =?UTF-8?q?=20and=20remove=20virtual=20where=20applicable?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes warning: prefer using 'override' or (rarely) 'final' instead of 'virtual' [modernize-use-override] Change-Id: I17955fd0fdb052678228f1bda32cd8d3b4298998 Reviewed-by: Marco Benelli --- src/libs/qmljs/qmljscheck.cpp | 44 ++--- src/libs/qmljs/qmljsfindexportedcpptypes.cpp | 4 +- src/libs/qmljs/qmljsinterpreter.cpp | 20 +-- src/libs/qmljs/qmljsreformatter.cpp | 174 +++++++++---------- 4 files changed, 121 insertions(+), 121 deletions(-) diff --git a/src/libs/qmljs/qmljscheck.cpp b/src/libs/qmljs/qmljscheck.cpp index 805700f9428..e4ff7047ebe 100644 --- a/src/libs/qmljs/qmljscheck.cpp +++ b/src/libs/qmljs/qmljscheck.cpp @@ -70,7 +70,7 @@ public: _message = Message(type, _location); } - virtual void visit(const NumberValue *value) + void visit(const NumberValue *value) override { if (const QmlEnumValue *enumValue = value_cast(value)) { if (StringLiteral *stringLiteral = cast(_ast)) { @@ -90,7 +90,7 @@ public: } } - virtual void visit(const BooleanValue *) + void visit(const BooleanValue *) override { UnaryMinusExpression *unaryMinus = cast(_ast); @@ -101,7 +101,7 @@ public: } } - virtual void visit(const StringValue *value) + void visit(const StringValue *value) override { UnaryMinusExpression *unaryMinus = cast(_ast); @@ -132,7 +132,7 @@ public: } } - virtual void visit(const ColorValue *) + void visit(const ColorValue *) override { if (StringLiteral *stringLiteral = cast(_ast)) { if (!toQColor(stringLiteral->value.toString()).isValid()) @@ -142,7 +142,7 @@ public: } } - virtual void visit(const AnchorLineValue *) + void visit(const AnchorLineValue *) override { if (! (_rhsValue->asAnchorLineValue() || _rhsValue->asUnknownValue())) setMessage(ErrAnchorLineExpected); @@ -189,7 +189,7 @@ protected: return _state; } - virtual bool preVisit(Node *ast) + bool preVisit(Node *ast) override { if (ast->expressionCast()) return false; @@ -204,7 +204,7 @@ protected: return false; } - virtual bool visit(LabelledStatement *ast) + bool visit(LabelledStatement *ast) override { // get the target statement Statement *end = ast->statement; @@ -219,7 +219,7 @@ protected: return true; } - virtual bool visit(BreakStatement *ast) + bool visit(BreakStatement *ast) override { _state = Break; if (!ast->label.isEmpty()) { @@ -232,12 +232,12 @@ protected: } // labelled continues don't change control flow... - virtual bool visit(ContinueStatement *) { _state = Continue; return false; } + bool visit(ContinueStatement *) override { _state = Continue; return false; } - virtual bool visit(ReturnStatement *) { _state = ReturnOrThrow; return false; } - virtual bool visit(ThrowStatement *) { _state = ReturnOrThrow; return false; } + bool visit(ReturnStatement *) override { _state = ReturnOrThrow; return false; } + bool visit(ThrowStatement *) override { _state = ReturnOrThrow; return false; } - virtual bool visit(IfStatement *ast) + bool visit(IfStatement *ast) override { State ok = check(ast->ok); State ko = check(ast->ko); @@ -256,7 +256,7 @@ protected: } } - virtual bool visit(SwitchStatement *ast) + bool visit(SwitchStatement *ast) override { if (!ast->block) return false; @@ -282,7 +282,7 @@ protected: return false; } - virtual bool visit(TryStatement *ast) + bool visit(TryStatement *ast) override { State tryBody = check(ast->statement); State catchBody = ReturnOrThrow; @@ -303,13 +303,13 @@ protected: return false; } - virtual bool visit(WhileStatement *ast) { return preconditionLoopStatement(ast, ast->statement); } - virtual bool visit(ForStatement *ast) { return preconditionLoopStatement(ast, ast->statement); } - virtual bool visit(ForEachStatement *ast) { return preconditionLoopStatement(ast, ast->statement); } - virtual bool visit(LocalForStatement *ast) { return preconditionLoopStatement(ast, ast->statement); } - virtual bool visit(LocalForEachStatement *ast) { return preconditionLoopStatement(ast, ast->statement); } + bool visit(WhileStatement *ast) override { return preconditionLoopStatement(ast, ast->statement); } + bool visit(ForStatement *ast) override { return preconditionLoopStatement(ast, ast->statement); } + bool visit(ForEachStatement *ast) override { return preconditionLoopStatement(ast, ast->statement); } + bool visit(LocalForStatement *ast) override { return preconditionLoopStatement(ast, ast->statement); } + bool visit(LocalForEachStatement *ast) override { return preconditionLoopStatement(ast, ast->statement); } - virtual bool visit(DoWhileStatement *ast) + bool visit(DoWhileStatement *ast) override { check(ast->statement); // not necessarily an infinite loop due to labelled breaks @@ -335,7 +335,7 @@ public: } protected: - virtual State check(Node *node) + State check(Node *node) override { bool oldwarning = _emittedWarning; _emittedWarning = false; @@ -344,7 +344,7 @@ protected: return s; } - virtual void onUnreachable(Node *node) + void onUnreachable(Node *node) override { if (_emittedWarning) return; diff --git a/src/libs/qmljs/qmljsfindexportedcpptypes.cpp b/src/libs/qmljs/qmljsfindexportedcpptypes.cpp index 84ada6a0d63..6bf17505d68 100644 --- a/src/libs/qmljs/qmljsfindexportedcpptypes.cpp +++ b/src/libs/qmljs/qmljsfindexportedcpptypes.cpp @@ -119,7 +119,7 @@ public: } protected: - virtual bool visit(CompoundStatementAST *ast) + bool visit(CompoundStatementAST *ast) override { CompoundStatementAST *old = _compound; _compound = ast; @@ -128,7 +128,7 @@ protected: return false; } - virtual bool visit(CallAST *ast) + bool visit(CallAST *ast) override { if (checkForQmlRegisterType(ast)) return false; diff --git a/src/libs/qmljs/qmljsinterpreter.cpp b/src/libs/qmljs/qmljsinterpreter.cpp index eaf27d433e7..d8df6ed570f 100644 --- a/src/libs/qmljs/qmljsinterpreter.cpp +++ b/src/libs/qmljs/qmljsinterpreter.cpp @@ -103,27 +103,27 @@ public: const Value *value() const { return m_value; } - virtual bool processProperty(const QString &name, const Value *value, const PropertyInfo &) + bool processProperty(const QString &name, const Value *value, const PropertyInfo &) override { return process(name, value); } - virtual bool processEnumerator(const QString &name, const Value *value) + bool processEnumerator(const QString &name, const Value *value) override { return process(name, value); } - virtual bool processSignal(const QString &name, const Value *value) + bool processSignal(const QString &name, const Value *value) override { return process(name, value); } - virtual bool processSlot(const QString &name, const Value *value) + bool processSlot(const QString &name, const Value *value) override { return process(name, value); } - virtual bool processGeneratedSlot(const QString &name, const Value *value) + bool processGeneratedSlot(const QString &name, const Value *value) override { return process(name, value); } @@ -2574,31 +2574,31 @@ class MemberDumper: public MemberProcessor public: MemberDumper() {} - virtual bool processProperty(const QString &name, const Value *, const PropertyInfo &pInfo) + bool processProperty(const QString &name, const Value *, const PropertyInfo &pInfo) override { qCDebug(qmljsLog) << "property: " << name << " flags:" << pInfo.toString(); return true; } - virtual bool processEnumerator(const QString &name, const Value *) + bool processEnumerator(const QString &name, const Value *) override { qCDebug(qmljsLog) << "enumerator: " << name; return true; } - virtual bool processSignal(const QString &name, const Value *) + bool processSignal(const QString &name, const Value *) override { qCDebug(qmljsLog) << "signal: " << name; return true; } - virtual bool processSlot(const QString &name, const Value *) + bool processSlot(const QString &name, const Value *) override { qCDebug(qmljsLog) << "slot: " << name; return true; } - virtual bool processGeneratedSlot(const QString &name, const Value *) + bool processGeneratedSlot(const QString &name, const Value *) override { qCDebug(qmljsLog) << "generated slot: " << name; return true; diff --git a/src/libs/qmljs/qmljsreformatter.cpp b/src/libs/qmljs/qmljsreformatter.cpp index 10bd46fd8b0..2116fa74676 100644 --- a/src/libs/qmljs/qmljsreformatter.cpp +++ b/src/libs/qmljs/qmljsreformatter.cpp @@ -53,12 +53,12 @@ protected: BlockData data; }; - virtual void saveBlockData(QTextBlock *block, const BlockData &data) const + void saveBlockData(QTextBlock *block, const BlockData &data) const override { block->setUserData(new FormatterData(data)); } - virtual bool loadBlockData(const QTextBlock &block, BlockData *data) const + bool loadBlockData(const QTextBlock &block, BlockData *data) const override { if (!block.userData()) return false; @@ -67,12 +67,12 @@ protected: return true; } - virtual void saveLexerState(QTextBlock *block, int state) const + void saveLexerState(QTextBlock *block, int state) const override { block->setUserState(state); } - virtual int loadLexerState(const QTextBlock &block) const + int loadLexerState(const QTextBlock &block) const override { return block.userState(); } @@ -464,7 +464,7 @@ protected: loc.length += 2; } - virtual bool preVisit(Node *ast) + bool preVisit(Node *ast) override { SourceLocation firstLoc; if (ExpressionNode *expr = ast->expressionCast()) @@ -486,7 +486,7 @@ protected: return true; } - virtual void postVisit(Node *ast) + void postVisit(Node *ast) override { SourceLocation lastLoc; if (ExpressionNode *expr = ast->expressionCast()) @@ -525,14 +525,14 @@ protected: } } - virtual bool visit(UiPragma *ast) + bool visit(UiPragma *ast) override { out("pragma ", ast->pragmaToken); accept(ast->pragmaType); return false; } - virtual bool visit(UiImport *ast) + bool visit(UiImport *ast) override { out("import ", ast->importToken); if (!ast->fileName.isNull()) @@ -550,7 +550,7 @@ protected: return false; } - virtual bool visit(UiObjectDefinition *ast) + bool visit(UiObjectDefinition *ast) override { accept(ast->qualifiedTypeNameId); out(" "); @@ -558,7 +558,7 @@ protected: return false; } - virtual bool visit(UiObjectInitializer *ast) + bool visit(UiObjectInitializer *ast) override { out(ast->lbraceToken); if (ast->members) @@ -568,7 +568,7 @@ protected: return false; } - virtual bool visit(UiParameterList *list) + bool visit(UiParameterList *list) override { for (UiParameterList *it = list; it; it = it->next) { out(it->propertyTypeToken); @@ -580,7 +580,7 @@ protected: return false; } - virtual bool visit(UiPublicMember *ast) + bool visit(UiPublicMember *ast) override { if (ast->type == UiPublicMember::Property) { if (ast->isDefaultMember) @@ -618,7 +618,7 @@ protected: return false; } - virtual bool visit(UiObjectBinding *ast) + bool visit(UiObjectBinding *ast) override { if (ast->hasOnToken) { accept(ast->qualifiedTypeNameId); @@ -634,7 +634,7 @@ protected: return false; } - virtual bool visit(UiScriptBinding *ast) + bool visit(UiScriptBinding *ast) override { accept(ast->qualifiedId); out(": ", ast->colonToken); @@ -642,7 +642,7 @@ protected: return false; } - virtual bool visit(UiArrayBinding *ast) + bool visit(UiArrayBinding *ast) override { accept(ast->qualifiedId); out(ast->colonToken); @@ -654,16 +654,16 @@ protected: return false; } - virtual bool visit(ThisExpression *ast) { out(ast->thisToken); return true; } - virtual bool visit(NullExpression *ast) { out(ast->nullToken); return true; } - virtual bool visit(TrueLiteral *ast) { out(ast->trueToken); return true; } - virtual bool visit(FalseLiteral *ast) { out(ast->falseToken); return true; } - virtual bool visit(IdentifierExpression *ast) { out(ast->identifierToken); return true; } - virtual bool visit(StringLiteral *ast) { out(ast->literalToken); return true; } - virtual bool visit(NumericLiteral *ast) { out(ast->literalToken); return true; } - virtual bool visit(RegExpLiteral *ast) { out(ast->literalToken); return true; } + bool visit(ThisExpression *ast) override { out(ast->thisToken); return true; } + bool visit(NullExpression *ast) override { out(ast->nullToken); return true; } + bool visit(TrueLiteral *ast) override { out(ast->trueToken); return true; } + bool visit(FalseLiteral *ast) override { out(ast->falseToken); return true; } + bool visit(IdentifierExpression *ast) override { out(ast->identifierToken); return true; } + bool visit(StringLiteral *ast) override { out(ast->literalToken); return true; } + bool visit(NumericLiteral *ast) override { out(ast->literalToken); return true; } + bool visit(RegExpLiteral *ast) override { out(ast->literalToken); return true; } - virtual bool visit(ArrayLiteral *ast) + bool visit(ArrayLiteral *ast) override { out(ast->lbracketToken); if (ast->elements) @@ -676,7 +676,7 @@ protected: return false; } - virtual bool visit(ObjectLiteral *ast) + bool visit(ObjectLiteral *ast) override { out(ast->lbraceToken); lnAcceptIndented(ast->properties); @@ -685,7 +685,7 @@ protected: return false; } - virtual bool visit(ElementList *ast) + bool visit(ElementList *ast) override { for (ElementList *it = ast; it; it = it->next) { if (it->elision) @@ -700,7 +700,7 @@ protected: return false; } - virtual bool visit(PropertyAssignmentList *ast) + bool visit(PropertyAssignmentList *ast) override { for (PropertyAssignmentList *it = ast; it; it = it->next) { PropertyNameAndValue *assignment = AST::cast(it->assignment); @@ -739,7 +739,7 @@ protected: return false; } - virtual bool visit(NestedExpression *ast) + bool visit(NestedExpression *ast) override { out(ast->lparenToken); accept(ast->expression); @@ -747,11 +747,11 @@ protected: return false; } - virtual bool visit(IdentifierPropertyName *ast) { out(ast->id.toString()); return true; } - virtual bool visit(StringLiteralPropertyName *ast) { out(ast->id.toString()); return true; } - virtual bool visit(NumericLiteralPropertyName *ast) { out(QString::number(ast->id)); return true; } + bool visit(IdentifierPropertyName *ast) override { out(ast->id.toString()); return true; } + bool visit(StringLiteralPropertyName *ast) override { out(ast->id.toString()); return true; } + bool visit(NumericLiteralPropertyName *ast) override { out(QString::number(ast->id)); return true; } - virtual bool visit(ArrayMemberExpression *ast) + bool visit(ArrayMemberExpression *ast) override { accept(ast->base); out(ast->lbracketToken); @@ -760,7 +760,7 @@ protected: return false; } - virtual bool visit(FieldMemberExpression *ast) + bool visit(FieldMemberExpression *ast) override { accept(ast->base); out(ast->dotToken); @@ -768,7 +768,7 @@ protected: return false; } - virtual bool visit(NewMemberExpression *ast) + bool visit(NewMemberExpression *ast) override { out("new ", ast->newToken); accept(ast->base); @@ -778,14 +778,14 @@ protected: return false; } - virtual bool visit(NewExpression *ast) + bool visit(NewExpression *ast) override { out("new ", ast->newToken); accept(ast->expression); return false; } - virtual bool visit(CallExpression *ast) + bool visit(CallExpression *ast) override { accept(ast->base); out(ast->lparenToken); @@ -795,84 +795,84 @@ protected: return false; } - virtual bool visit(PostIncrementExpression *ast) + bool visit(PostIncrementExpression *ast) override { accept(ast->base); out(ast->incrementToken); return false; } - virtual bool visit(PostDecrementExpression *ast) + bool visit(PostDecrementExpression *ast) override { accept(ast->base); out(ast->decrementToken); return false; } - virtual bool visit(PreIncrementExpression *ast) + bool visit(PreIncrementExpression *ast) override { out(ast->incrementToken); accept(ast->expression); return false; } - virtual bool visit(PreDecrementExpression *ast) + bool visit(PreDecrementExpression *ast) override { out(ast->decrementToken); accept(ast->expression); return false; } - virtual bool visit(DeleteExpression *ast) + bool visit(DeleteExpression *ast) override { out("delete ", ast->deleteToken); accept(ast->expression); return false; } - virtual bool visit(VoidExpression *ast) + bool visit(VoidExpression *ast) override { out("void ", ast->voidToken); accept(ast->expression); return false; } - virtual bool visit(TypeOfExpression *ast) + bool visit(TypeOfExpression *ast) override { out("typeof ", ast->typeofToken); accept(ast->expression); return false; } - virtual bool visit(UnaryPlusExpression *ast) + bool visit(UnaryPlusExpression *ast) override { out(ast->plusToken); accept(ast->expression); return false; } - virtual bool visit(UnaryMinusExpression *ast) + bool visit(UnaryMinusExpression *ast) override { out(ast->minusToken); accept(ast->expression); return false; } - virtual bool visit(TildeExpression *ast) + bool visit(TildeExpression *ast) override { out(ast->tildeToken); accept(ast->expression); return false; } - virtual bool visit(NotExpression *ast) + bool visit(NotExpression *ast) override { out(ast->notToken); accept(ast->expression); return false; } - virtual bool visit(BinaryExpression *ast) + bool visit(BinaryExpression *ast) override { ++_binaryExpDepth; accept(ast->left); @@ -893,7 +893,7 @@ protected: return false; } - virtual bool visit(ConditionalExpression *ast) + bool visit(ConditionalExpression *ast) override { accept(ast->expression); out(" ? ", ast->questionToken); @@ -903,7 +903,7 @@ protected: return false; } - virtual bool visit(Block *ast) + bool visit(Block *ast) override { out(ast->lbraceToken); lnAcceptIndented(ast->statements); @@ -912,14 +912,14 @@ protected: return false; } - virtual bool visit(VariableStatement *ast) + bool visit(VariableStatement *ast) override { out("var ", ast->declarationKindToken); accept(ast->declarations); return false; } - virtual bool visit(VariableDeclaration *ast) + bool visit(VariableDeclaration *ast) override { out(ast->identifierToken); if (ast->expression) { @@ -929,13 +929,13 @@ protected: return false; } - virtual bool visit(EmptyStatement *ast) + bool visit(EmptyStatement *ast) override { out(ast->semicolonToken); return false; } - virtual bool visit(IfStatement *ast) + bool visit(IfStatement *ast) override { out(ast->ifToken); out(" "); @@ -955,7 +955,7 @@ protected: return false; } - virtual bool visit(DoWhileStatement *ast) + bool visit(DoWhileStatement *ast) override { out(ast->doToken); acceptBlockOrIndented(ast->statement, true); @@ -967,7 +967,7 @@ protected: return false; } - virtual bool visit(WhileStatement *ast) + bool visit(WhileStatement *ast) override { out(ast->whileToken); out(" "); @@ -978,7 +978,7 @@ protected: return false; } - virtual bool visit(ForStatement *ast) + bool visit(ForStatement *ast) override { out(ast->forToken); out(" "); @@ -993,7 +993,7 @@ protected: return false; } - virtual bool visit(LocalForStatement *ast) + bool visit(LocalForStatement *ast) override { out(ast->forToken); out(" "); @@ -1010,7 +1010,7 @@ protected: return false; } - virtual bool visit(ForEachStatement *ast) + bool visit(ForEachStatement *ast) override { out(ast->forToken); out(" "); @@ -1023,7 +1023,7 @@ protected: return false; } - virtual bool visit(LocalForEachStatement *ast) + bool visit(LocalForEachStatement *ast) override { out(ast->forToken); out(" "); @@ -1038,7 +1038,7 @@ protected: return false; } - virtual bool visit(ContinueStatement *ast) + bool visit(ContinueStatement *ast) override { out(ast->continueToken); if (!ast->label.isNull()) { @@ -1048,7 +1048,7 @@ protected: return false; } - virtual bool visit(BreakStatement *ast) + bool visit(BreakStatement *ast) override { out(ast->breakToken); if (!ast->label.isNull()) { @@ -1058,7 +1058,7 @@ protected: return false; } - virtual bool visit(ReturnStatement *ast) + bool visit(ReturnStatement *ast) override { out(ast->returnToken); if (ast->expression) { @@ -1068,7 +1068,7 @@ protected: return false; } - virtual bool visit(ThrowStatement *ast) + bool visit(ThrowStatement *ast) override { out(ast->throwToken); if (ast->expression) { @@ -1078,7 +1078,7 @@ protected: return false; } - virtual bool visit(WithStatement *ast) + bool visit(WithStatement *ast) override { out(ast->withToken); out(" "); @@ -1089,7 +1089,7 @@ protected: return false; } - virtual bool visit(SwitchStatement *ast) + bool visit(SwitchStatement *ast) override { out(ast->switchToken); out(" "); @@ -1101,7 +1101,7 @@ protected: return false; } - virtual bool visit(CaseBlock *ast) + bool visit(CaseBlock *ast) override { out(ast->lbraceToken); newLine(); @@ -1117,7 +1117,7 @@ protected: return false; } - virtual bool visit(CaseClause *ast) + bool visit(CaseClause *ast) override { out("case ", ast->caseToken); accept(ast->expression); @@ -1127,7 +1127,7 @@ protected: return false; } - virtual bool visit(DefaultClause *ast) + bool visit(DefaultClause *ast) override { out(ast->defaultToken); out(ast->colonToken); @@ -1135,7 +1135,7 @@ protected: return false; } - virtual bool visit(LabelledStatement *ast) + bool visit(LabelledStatement *ast) override { out(ast->identifierToken); out(": ", ast->colonToken); @@ -1143,7 +1143,7 @@ protected: return false; } - virtual bool visit(TryStatement *ast) + bool visit(TryStatement *ast) override { out("try ", ast->tryToken); accept(ast->statement); @@ -1158,7 +1158,7 @@ protected: return false; } - virtual bool visit(Catch *ast) + bool visit(Catch *ast) override { out(ast->catchToken); out(" "); @@ -1169,19 +1169,19 @@ protected: return false; } - virtual bool visit(Finally *ast) + bool visit(Finally *ast) override { out("finally ", ast->finallyToken); accept(ast->statement); return false; } - virtual bool visit(FunctionDeclaration *ast) + bool visit(FunctionDeclaration *ast) override { return visit(static_cast(ast)); } - virtual bool visit(FunctionExpression *ast) + bool visit(FunctionExpression *ast) override { out("function ", ast->functionToken); if (!ast->name.isNull()) @@ -1200,7 +1200,7 @@ protected: } - virtual bool visit(UiHeaderItemList *ast) + bool visit(UiHeaderItemList *ast) override { for (UiHeaderItemList *it = ast; it; it = it->next) { accept(it->headerItem); @@ -1210,7 +1210,7 @@ protected: return false; } - virtual bool visit(UiObjectMemberList *ast) + bool visit(UiObjectMemberList *ast) override { for (UiObjectMemberList *it = ast; it; it = it->next) { accept(it->member); @@ -1220,7 +1220,7 @@ protected: return false; } - virtual bool visit(UiArrayMemberList *ast) + bool visit(UiArrayMemberList *ast) override { for (UiArrayMemberList *it = ast; it; it = it->next) { accept(it->member); @@ -1232,7 +1232,7 @@ protected: return false; } - virtual bool visit(UiQualifiedId *ast) + bool visit(UiQualifiedId *ast) override { for (UiQualifiedId *it = ast; it; it = it->next) { out(it->identifierToken); @@ -1242,13 +1242,13 @@ protected: return false; } - virtual bool visit(UiQualifiedPragmaId *ast) + bool visit(UiQualifiedPragmaId *ast) override { out(ast->identifierToken); return false; } - virtual bool visit(Elision *ast) + bool visit(Elision *ast) override { for (Elision *it = ast; it; it = it->next) { if (it->next) @@ -1257,7 +1257,7 @@ protected: return false; } - virtual bool visit(ArgumentList *ast) + bool visit(ArgumentList *ast) override { for (ArgumentList *it = ast; it; it = it->next) { accept(it->expression); @@ -1269,7 +1269,7 @@ protected: return false; } - virtual bool visit(StatementList *ast) + bool visit(StatementList *ast) override { for (StatementList *it = ast; it; it = it->next) { // ### work around parser bug: skip empty statements with wrong tokens @@ -1285,7 +1285,7 @@ protected: return false; } - virtual bool visit(SourceElements *ast) + bool visit(SourceElements *ast) override { for (SourceElements *it = ast; it; it = it->next) { accept(it->element); @@ -1295,7 +1295,7 @@ protected: return false; } - virtual bool visit(VariableDeclarationList *ast) + bool visit(VariableDeclarationList *ast) override { for (VariableDeclarationList *it = ast; it; it = it->next) { accept(it->declaration); @@ -1305,7 +1305,7 @@ protected: return false; } - virtual bool visit(CaseClauses *ast) + bool visit(CaseClauses *ast) override { for (CaseClauses *it = ast; it; it = it->next) { accept(it->clause); @@ -1315,7 +1315,7 @@ protected: return false; } - virtual bool visit(FormalParameterList *ast) + bool visit(FormalParameterList *ast) override { for (FormalParameterList *it = ast; it; it = it->next) { if (it->commaToken.isValid()) From 922c73ad675a4dc38ceff74e883e68c166da2771 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Tue, 26 Jun 2018 09:13:25 +0200 Subject: [PATCH 08/48] Squish: Add VS2017 as expected compiler on Windows Change-Id: If68d6a143f4c1f9b96fe7c561977ab481a31ecb4 Reviewed-by: Robert Loehning --- .../tst_default_settings/testdata/win_compiler_paths.tsv | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/system/suite_general/tst_default_settings/testdata/win_compiler_paths.tsv b/tests/system/suite_general/tst_default_settings/testdata/win_compiler_paths.tsv index b26671f2acc..8e6d9d64ea3 100644 --- a/tests/system/suite_general/tst_default_settings/testdata/win_compiler_paths.tsv +++ b/tests/system/suite_general/tst_default_settings/testdata/win_compiler_paths.tsv @@ -25,3 +25,4 @@ "VS140COMNTOOLS" "..\..\VC" "vcvarsall.bat" "Microsoft Visual C++ Compiler 14.0" "x86,amd64,x86_amd64,x86_arm,amd64_arm,amd64_x86" "x86,amd64,x86_amd64,x86_arm,amd64_arm,amd64_x86" "false" "..\IDE\devenv.exe" "ProgramFiles" "Microsoft Visual C++ Build Tools" "vcbuildtools.bat" "Microsoft Visual C++ Build Tools" "x86,x64,x86_arm,x64_arm" "x86,amd64,x86_arm,amd64_arm" "false" "" "ProgramFiles(x86)" "Microsoft Visual C++ Build Tools" "vcbuildtools.bat" "Microsoft Visual C++ Build Tools" "x86,x64,x86_arm,x64_arm" "x86,amd64,x86_arm,amd64_arm" "false" "" +"ProgramFiles(x86)" "Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build" "vcvarsall.bat" "Microsoft Visual C++ Compiler 15.0" "x86,amd64_x86,amd64,x86_amd64" "x86,amd64_x86,amd64,x86_amd64" "false" "" From cd45ce5f391cd3006d35b6dbeccebd808514f493 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Fri, 22 Jun 2018 10:44:22 +0200 Subject: [PATCH 09/48] Squish: Remove Qt4 from expected kits for widget application wizard Change-Id: I747b47a5adb684f9ef3c245427707ead9ffba20a Reviewed-by: Robert Loehning --- tests/system/shared/project.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/system/shared/project.py b/tests/system/shared/project.py index 5219d675dd2..f48f261f67d 100644 --- a/tests/system/shared/project.py +++ b/tests/system/shared/project.py @@ -548,6 +548,8 @@ def __getSupportedPlatforms__(text, templateName, getAsStrings=False): result.extend([Targets.DESKTOP_5_6_1_DEFAULT, Targets.DESKTOP_5_10_1_DEFAULT]) if platform.system() != 'Darwin': result.append(Targets.DESKTOP_5_4_1_GCC) + if templateName == "Qt Widgets Application": + result.remove(Targets.DESKTOP_4_8_7_DEFAULT) elif 'Platform independent' in text: result = Targets.desktopTargetClasses() else: From caff9f9aacd5190b1e067a2ca0a56a14f2fe6996 Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Fri, 22 Jun 2018 15:08:09 +0200 Subject: [PATCH 10/48] =?UTF-8?q?Use=20C++11=E2=80=99s=20override=20and=20?= =?UTF-8?q?remove=20virtual=20where=20applicable?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes warning: prefer using 'override' or (rarely) 'final' instead of 'virtual' [modernize-use-override] Change-Id: I4b8b8ecce028dfd051fe14984b40115e92057a40 Reviewed-by: hjk --- src/libs/tracing/timelineitemsrenderpass.cpp | 10 +++++----- src/libs/tracing/timelinenotesrenderpass.cpp | 8 ++++---- src/libs/utils/fancylineedit.cpp | 2 +- src/libs/utils/pathchooser.cpp | 2 +- src/libs/utils/pathlisteditor.cpp | 2 +- src/libs/utils/synchronousprocess.cpp | 2 +- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/libs/tracing/timelineitemsrenderpass.cpp b/src/libs/tracing/timelineitemsrenderpass.cpp index 7dd88406e5b..a4f89dc64d0 100644 --- a/src/libs/tracing/timelineitemsrenderpass.cpp +++ b/src/libs/tracing/timelineitemsrenderpass.cpp @@ -342,7 +342,7 @@ void TimelineItemsGeometry::updateCurrentNode(float itemRight, float itemTop) class TimelineExpandedRowNode : public QSGNode { public: TimelineItemsMaterial material; - virtual ~TimelineExpandedRowNode() {} + ~TimelineExpandedRowNode() override {} }; static qint64 startTime(const TimelineModel *model, const TimelineRenderState *parentState, int i) @@ -436,12 +436,12 @@ class TimelineItemsMaterialShader : public QSGMaterialShader public: TimelineItemsMaterialShader(); - virtual void updateState(const RenderState &state, QSGMaterial *newEffect, - QSGMaterial *oldEffect); - virtual char const *const *attributeNames() const; + void updateState(const RenderState &state, QSGMaterial *newEffect, + QSGMaterial *oldEffect) override; + char const *const *attributeNames() const override; private: - virtual void initialize(); + void initialize() override; int m_matrix_id; int m_scale_id; diff --git a/src/libs/tracing/timelinenotesrenderpass.cpp b/src/libs/tracing/timelinenotesrenderpass.cpp index 932473183de..0aa36a17623 100644 --- a/src/libs/tracing/timelinenotesrenderpass.cpp +++ b/src/libs/tracing/timelinenotesrenderpass.cpp @@ -220,12 +220,12 @@ class NotesMaterialShader : public QSGMaterialShader public: NotesMaterialShader(); - virtual void updateState(const RenderState &state, QSGMaterial *newEffect, - QSGMaterial *oldEffect); - virtual char const *const *attributeNames() const; + void updateState(const RenderState &state, QSGMaterial *newEffect, + QSGMaterial *oldEffect) override; + char const *const *attributeNames() const override; private: - virtual void initialize(); + void initialize() override; int m_matrix_id; int m_z_range_id; diff --git a/src/libs/utils/fancylineedit.cpp b/src/libs/utils/fancylineedit.cpp index 07de1d799c6..93d9830d152 100644 --- a/src/libs/utils/fancylineedit.cpp +++ b/src/libs/utils/fancylineedit.cpp @@ -85,7 +85,7 @@ class FancyLineEditPrivate : public QObject public: explicit FancyLineEditPrivate(FancyLineEdit *parent); - virtual bool eventFilter(QObject *obj, QEvent *event); + bool eventFilter(QObject *obj, QEvent *event) override; FancyLineEdit *m_lineEdit; IconButton *m_iconbutton[2]; diff --git a/src/libs/utils/pathchooser.cpp b/src/libs/utils/pathchooser.cpp index 4bcd45767e7..7fde56993e4 100644 --- a/src/libs/utils/pathchooser.cpp +++ b/src/libs/utils/pathchooser.cpp @@ -147,7 +147,7 @@ public: BinaryVersionToolTipEventFilter(pe->lineEdit()), m_pathChooser(pe) {} private: - virtual QString defaultToolTip() const + QString defaultToolTip() const override { return m_pathChooser->errorMessage(); } const PathChooser *m_pathChooser = nullptr; diff --git a/src/libs/utils/pathlisteditor.cpp b/src/libs/utils/pathlisteditor.cpp index bdafb43edc3..c4691d8585f 100644 --- a/src/libs/utils/pathlisteditor.cpp +++ b/src/libs/utils/pathlisteditor.cpp @@ -70,7 +70,7 @@ class PathListPlainTextEdit : public QPlainTextEdit { public: explicit PathListPlainTextEdit(QWidget *parent = 0); protected: - virtual void insertFromMimeData (const QMimeData *source); + void insertFromMimeData (const QMimeData *source) override; }; PathListPlainTextEdit::PathListPlainTextEdit(QWidget *parent) : diff --git a/src/libs/utils/synchronousprocess.cpp b/src/libs/utils/synchronousprocess.cpp index b4b2cfc2b36..732a8e2a30c 100644 --- a/src/libs/utils/synchronousprocess.cpp +++ b/src/libs/utils/synchronousprocess.cpp @@ -90,7 +90,7 @@ public: void setFlags(unsigned tc) { m_flags = tc; } protected: - virtual void setupChildProcess(); + void setupChildProcess() override; private: unsigned m_flags; From b82ffb917b914411962213ca9ff6412e0551a46b Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Tue, 26 Jun 2018 07:58:04 +0300 Subject: [PATCH 11/48] VcsCommand: Block auto reload while a command is running Git rebase is executed in the background, and it can change a file multiple times in a short period. If we reparse a file while this happens on Windows, Git fails to replace it, the rebase action fails and the repository becomes unstable (remains with a modified file). See discussion at https://github.com/git-for-windows/git/pull/1666 Task-number: QTCREATORBUG-15449 Change-Id: Iba40a770a1df2dfff0dd1c874c491dfbe1cceb58 Reviewed-by: Eike Ziller --- src/libs/utils/shellcommand.cpp | 1 + src/libs/utils/shellcommand.h | 1 + src/plugins/coreplugin/documentmanager.cpp | 10 +++++++++- src/plugins/coreplugin/documentmanager.h | 2 ++ src/plugins/vcsbase/vcscommand.cpp | 9 +++++++++ 5 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/libs/utils/shellcommand.cpp b/src/libs/utils/shellcommand.cpp index 2c0cdee7337..05c515eabff 100644 --- a/src/libs/utils/shellcommand.cpp +++ b/src/libs/utils/shellcommand.cpp @@ -276,6 +276,7 @@ void ShellCommand::run(QFutureInterface &future) QString stdOut; QString stdErr; + emit started(); if (d->m_progressParser) d->m_progressParser->setFuture(&future); else diff --git a/src/libs/utils/shellcommand.h b/src/libs/utils/shellcommand.h index c8bf38af111..eb3161e3a1e 100644 --- a/src/libs/utils/shellcommand.h +++ b/src/libs/utils/shellcommand.h @@ -154,6 +154,7 @@ public: signals: void stdOutText(const QString &); void stdErrText(const QString &); + void started(); void finished(bool ok, int exitCode, const QVariant &cookie); void success(const QVariant &cookie); diff --git a/src/plugins/coreplugin/documentmanager.cpp b/src/plugins/coreplugin/documentmanager.cpp index 28542f7e5ec..f8222a36821 100644 --- a/src/plugins/coreplugin/documentmanager.cpp +++ b/src/plugins/coreplugin/documentmanager.cpp @@ -157,6 +157,7 @@ public: QFileSystemWatcher *m_fileWatcher = nullptr; // Delayed creation. QFileSystemWatcher *m_linkWatcher = nullptr; // Delayed creation (only UNIX/if a link is seen). + bool m_postponeAutoReload = false; bool m_blockActivated = false; bool m_checkOnFocusChange = false; QString m_lastVisitedDirectory = QDir::currentPath(); @@ -597,6 +598,13 @@ void DocumentManager::unexpectFileChange(const QString &fileName) updateExpectedState(filePathKey(fileName, ResolveLinks)); } +void DocumentManager::setAutoReloadPostponed(bool postponed) +{ + d->m_postponeAutoReload = postponed; + if (!postponed) + QTimer::singleShot(500, m_instance, &DocumentManager::checkForReload); +} + static bool saveModifiedFilesHelper(const QList &documents, const QString &message, bool *cancelled, bool silently, const QString &alwaysSaveMessage, bool *alwaysSave, @@ -990,7 +998,7 @@ void DocumentManager::changedFile(const QString &fileName) void DocumentManager::checkForReload() { - if (d->m_changedFiles.isEmpty()) + if (d->m_postponeAutoReload || d->m_changedFiles.isEmpty()) return; if (QApplication::applicationState() != Qt::ApplicationActive) return; diff --git a/src/plugins/coreplugin/documentmanager.h b/src/plugins/coreplugin/documentmanager.h index b76e65d9627..b74734ac3c4 100644 --- a/src/plugins/coreplugin/documentmanager.h +++ b/src/plugins/coreplugin/documentmanager.h @@ -69,6 +69,8 @@ public: static void expectFileChange(const QString &fileName); static void unexpectFileChange(const QString &fileName); + static void setAutoReloadPostponed(bool enabled); + // recent files static void addToRecentFiles(const QString &fileName, Id editorId = Id()); Q_SLOT void clearRecentFiles(); diff --git a/src/plugins/vcsbase/vcscommand.cpp b/src/plugins/vcsbase/vcscommand.cpp index cf107697110..26db328083c 100644 --- a/src/plugins/vcsbase/vcscommand.cpp +++ b/src/plugins/vcsbase/vcscommand.cpp @@ -27,6 +27,7 @@ #include "vcsbaseplugin.h" #include "vcsoutputwindow.h" +#include #include #include @@ -56,6 +57,14 @@ VcsCommand::VcsCommand(const QString &workingDirectory, return proxy; }); + connect(this, &VcsCommand::started, this, [this] { + if (flags() & ExpectRepoChanges) + Core::DocumentManager::setAutoReloadPostponed(true); + }); + connect(this, &VcsCommand::finished, this, [this] { + if (flags() & ExpectRepoChanges) + Core::DocumentManager::setAutoReloadPostponed(false); + }); } const QProcessEnvironment VcsCommand::processEnvironment() const From afe0a73f91ed3ee1977991c7c5d32b253cc89789 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Wed, 27 Jun 2018 08:48:11 +0200 Subject: [PATCH 12/48] WinRt: restrict WinRt deployment steps to WinRt devices Task-number: QTCREATORBUG-20647 Change-Id: I8bc4cf8b4cce66f062ef7523f5c0cdeef759ea9d Reviewed-by: hjk --- src/plugins/winrt/winrtdeployconfiguration.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/plugins/winrt/winrtdeployconfiguration.cpp b/src/plugins/winrt/winrtdeployconfiguration.cpp index b959cdadf5d..a1693051730 100644 --- a/src/plugins/winrt/winrtdeployconfiguration.cpp +++ b/src/plugins/winrt/winrtdeployconfiguration.cpp @@ -87,6 +87,9 @@ WinRtDeployStepFactory::WinRtDeployStepFactory() setDisplayName(QCoreApplication::translate("WinRt::Internal::WinRtDeployStepFactory", "Run windeployqt")); setFlags(BuildStepInfo::Unclonable); setSupportedStepList(ProjectExplorer::Constants::BUILDSTEPS_DEPLOY); + setSupportedDeviceTypes({Constants::WINRT_DEVICE_TYPE_LOCAL, + Constants::WINRT_DEVICE_TYPE_EMULATOR, + Constants::WINRT_DEVICE_TYPE_PHONE}); setRepeatable(false); } From dad5e41ca9b1532bb44cac78887b86a51cf0800c Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Tue, 26 Jun 2018 19:08:59 +0200 Subject: [PATCH 13/48] Utils: Separate the filter icon from the expand arrow ...so that the filter funnel can be used stand-alone Change-Id: Ic8675954edd4234f84de8caffedd1a67b67b2edd Reviewed-by: Christian Stenger --- src/libs/utils/images/filtericon.png | Bin 127 -> 164 bytes src/libs/utils/images/filtericon@2x.png | Bin 170 -> 193 bytes .../utils/images/toolbuttonexpandarrow.png | Bin 0 -> 110 bytes .../utils/images/toolbuttonexpandarrow@2x.png | Bin 0 -> 128 bytes src/libs/utils/utils.qrc | 2 ++ src/libs/utils/utilsicons.cpp | 3 +- src/plugins/autotest/gtest/gtesttreeitem.cpp | 7 +++-- src/tools/icons/qtcreatoricons.svg | 26 ++++++++++++++---- 8 files changed, 29 insertions(+), 9 deletions(-) create mode 100644 src/libs/utils/images/toolbuttonexpandarrow.png create mode 100644 src/libs/utils/images/toolbuttonexpandarrow@2x.png diff --git a/src/libs/utils/images/filtericon.png b/src/libs/utils/images/filtericon.png index 0ced0c1ebe6819985e67849de3692f792177ac18..1afcb471b0dcd09e71bb5e2babf9832e9b3a916c 100644 GIT binary patch delta 147 zcmb3l7 zOH>_u?D=@k{65$<-|&c2so@{>GZ_tr`;xbdFf4J)5L}=(fp;nc0|SGntDnm{r-UW| D`CmBS delta 109 zcmZ3&SU*7`or8gafx&9Vg1rn33~rt-jv*3LlYjKHNpuJ%G%&|7aqm=&IXBb5c-`x! zA5zl=+UmTM6FUAjC2=z|PtrZYUBcj-*T7j~(9p@&a{0C65ynL}>!Y0 delta 154 zcmX@exQcOtL_G%s0|P^tpsEG~14E&wi(`nz>Es{&3s>28Nlm}7_opszq}?~}X$1}u%?5I&3lgp=NcM|O63Cv=dz>RH;tJz z>@jkoj_h~3_-5Ed&3e%3}F;j`CK|(@8f|FPQ8`p{j8HNm64uS=2S`MZm e6Timages/lightbulb@2x.png images/lightbulbcap.png images/lightbulbcap@2x.png + images/toolbuttonexpandarrow.png + images/toolbuttonexpandarrow@2x.png diff --git a/src/libs/utils/utilsicons.cpp b/src/libs/utils/utilsicons.cpp index 66798a9449d..62f87437064 100644 --- a/src/libs/utils/utilsicons.cpp +++ b/src/libs/utils/utilsicons.cpp @@ -176,7 +176,8 @@ const Icon CLOSE_SPLIT_LEFT({ const Icon CLOSE_SPLIT_RIGHT({ {QLatin1String(":/utils/images/splitbutton_closeright.png"), Theme::IconsBaseColor}}); const Icon FILTER({ - {QLatin1String(":/utils/images/filtericon.png"), Theme::IconsBaseColor}}); + {QLatin1String(":/utils/images/filtericon.png"), Theme::IconsBaseColor}, + {QLatin1String(":/utils/images/toolbuttonexpandarrow.png"), Theme::IconsBaseColor}}); const Icon LINK({ {QLatin1String(":/utils/images/linkicon.png"), Theme::PanelTextColorMid}}, Icon::Tint); const Icon LINK_TOOLBAR({ diff --git a/src/plugins/autotest/gtest/gtesttreeitem.cpp b/src/plugins/autotest/gtest/gtesttreeitem.cpp index 8f7c56dab97..e1976771ab0 100644 --- a/src/plugins/autotest/gtest/gtesttreeitem.cpp +++ b/src/plugins/autotest/gtest/gtesttreeitem.cpp @@ -33,8 +33,9 @@ #include #include #include +#include #include -#include +#include #include @@ -112,7 +113,9 @@ QVariant GTestTreeItem::data(int column, int role) const case Qt::DecorationRole: if (type() == GroupNode && GTestFramework::groupMode() == GTest::Constants::GTestFilter) { - return Utils::Icons::FILTER.icon(); // TODO replace by an 'inked' filter w/o arrow + static const QIcon filterIcon = Utils::Icon({{":/utils/images/filtericon.png", + Utils::Theme::PanelTextColorMid}}).icon(); + return filterIcon; } break; case Qt::ToolTipRole: diff --git a/src/tools/icons/qtcreatoricons.svg b/src/tools/icons/qtcreatoricons.svg index e71331e4ee6..66fa8dfc87f 100644 --- a/src/tools/icons/qtcreatoricons.svg +++ b/src/tools/icons/qtcreatoricons.svg @@ -3376,12 +3376,6 @@ width="16" id="rect3817-2-9-1-9-6-2" style="fill:#ffffff" /> - + + + + Date: Wed, 27 Jun 2018 13:56:11 +0200 Subject: [PATCH 14/48] Doc: Add a link to contributor list to the Acknowledgements page Task-number: QTCREATORBUG-20683 Change-Id: I9d2debac7badda999e129ca1b5d3d04923642f91 Reviewed-by: Kai Koehne --- doc/src/overview/creator-acknowledgements.qdoc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/doc/src/overview/creator-acknowledgements.qdoc b/doc/src/overview/creator-acknowledgements.qdoc index f62c2aa4d11..3687482108b 100644 --- a/doc/src/overview/creator-acknowledgements.qdoc +++ b/doc/src/overview/creator-acknowledgements.qdoc @@ -36,6 +36,12 @@ \title Acknowledgements + \section1 Credits + + We would like to thank our contributors, who are listed in the \QC + \l{https://code.qt.io/cgit/qt-creator/qt-creator.git/tree/dist}{change logs} + for each release. + \section1 Third-party Components \QC contains the following third-party components: From 32614e998313f9859448eb9ae1b78a1bdd467cea Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Wed, 13 Jun 2018 10:13:49 +0200 Subject: [PATCH 15/48] Clang: Avoid using -isystem include paths ...as this leads to file locking issues on Windows and pointless diagnostics we currently ignore when opening files from -isystem include paths. The usage of -isystem suppressed warnings from system headers and resulted in a performance boost. Nowadays we can preserve this performance optimization by making use of the new CXTranslationUnit_IgnoreWarningsFromIncludedFiles. This flag helps us also to suppress diagnostics from clang tidy checks, which reported diagnostics even for -isystem headers. Change-Id: I33e1f7169e2ff9f17c811565a5324b9da4740701 Reviewed-by: Ivan Donchevskii --- .../cpptools/compileroptionsbuilder.cpp | 27 +------------------ .../clangbackend/source/clangbackend_global.h | 5 ++++ .../source/clangtranslationunit.cpp | 15 +---------- .../source/clangtranslationunitupdater.cpp | 3 +++ 4 files changed, 10 insertions(+), 40 deletions(-) diff --git a/src/plugins/cpptools/compileroptionsbuilder.cpp b/src/plugins/cpptools/compileroptionsbuilder.cpp index 786d874786c..3c2dba239e3 100644 --- a/src/plugins/cpptools/compileroptionsbuilder.cpp +++ b/src/plugins/cpptools/compileroptionsbuilder.cpp @@ -129,28 +129,10 @@ void CompilerOptionsBuilder::enableExceptions() add(QLatin1String("-fexceptions")); } -static Utils::FileName absoluteDirectory(const QString &filePath) -{ - return Utils::FileName::fromString(QFileInfo(filePath + '/').absolutePath()); -} - -static Utils::FileName projectTopLevelDirectory(const ProjectPart &projectPart) -{ - if (!projectPart.project) - return Utils::FileName(); - const Utils::FileName result = projectPart.project->projectDirectory(); - const Utils::FileName vcsTopLevel = Utils::FileName::fromString( - Core::VcsManager::findTopLevelForDirectory(result.toString())); - if (result.isChildOf(vcsTopLevel)) - return vcsTopLevel; - return result; -} - void CompilerOptionsBuilder::addHeaderPathOptions() { typedef ProjectPartHeaderPath HeaderPath; const QString defaultPrefix = includeDirOption(); - const Utils::FileName projectDirectory = projectTopLevelDirectory(m_projectPart); QStringList result; @@ -170,14 +152,7 @@ void CompilerOptionsBuilder::addHeaderPathOptions() default: // This shouldn't happen, but let's be nice..: // intentional fall-through: case HeaderPath::IncludePath: - path = absoluteDirectory(headerPath.path); - if (projectDirectory.isEmpty() - || path == projectDirectory - || path.isChildOf(projectDirectory)) { - prefix = defaultPrefix; - } else { - prefix = SYSTEM_INCLUDE_PREFIX; - } + prefix = defaultPrefix; break; } diff --git a/src/tools/clangbackend/source/clangbackend_global.h b/src/tools/clangbackend/source/clangbackend_global.h index 2d2535e12cd..ff25ddeb818 100644 --- a/src/tools/clangbackend/source/clangbackend_global.h +++ b/src/tools/clangbackend/source/clangbackend_global.h @@ -51,4 +51,9 @@ enum class PreferredTranslationUnit # define IS_LIMITSKIPFUNCTIONBODIESTOPREAMBLE_SUPPORTED #endif +// CLANG-UPGRADE-CHECK: Remove IS_SKIPWARNINGSFROMINCLUDEDFILES_SUPPORTED once we require clang >= 7.0 +#if defined(CINDEX_VERSION_HAS_SKIPWARNINGSFROMINCLUDEDFILES_BACKPORTED) || CINDEX_VERSION_MINOR >= 46 +# define IS_SKIPWARNINGSFROMINCLUDEDFILES_SUPPORTED +#endif + } // namespace ClangBackEnd diff --git a/src/tools/clangbackend/source/clangtranslationunit.cpp b/src/tools/clangbackend/source/clangtranslationunit.cpp index aa36dea8750..017abdd98f0 100644 --- a/src/tools/clangbackend/source/clangtranslationunit.cpp +++ b/src/tools/clangbackend/source/clangtranslationunit.cpp @@ -237,17 +237,6 @@ static bool isHeaderErrorDiagnostic(const Utf8String &mainFilePath, const Diagno return isCritical && diagnostic.location().filePath() != mainFilePath; } -static bool isIgnoredHeaderErrorDiagnostic(const Diagnostic &diagnostic) -{ - // FIXME: This diagnostic can appear if e.g. a main file includes a -isystem header and then the - // header is opened in the editor - the provided unsaved file for the newly opened editor - // overrides the file from the preamble. In this case, clang uses the version from the preamble - // and changes in the header are not reflected in the main file. Typically that's not a problem - // because only non-project headers are opened as -isystem headers. - return diagnostic.text().endsWith( - Utf8StringLiteral("from the precompiled header has been overridden")); -} - void TranslationUnit::extractDiagnostics(DiagnosticContainer &firstHeaderErrorDiagnostic, QVector &mainFileDiagnostics) const { @@ -257,9 +246,7 @@ void TranslationUnit::extractDiagnostics(DiagnosticContainer &firstHeaderErrorDi bool hasFirstHeaderErrorDiagnostic = false; for (const Diagnostic &diagnostic : diagnostics()) { - if (!hasFirstHeaderErrorDiagnostic - && isHeaderErrorDiagnostic(m_filePath, diagnostic) - && !isIgnoredHeaderErrorDiagnostic(diagnostic)) { + if (!hasFirstHeaderErrorDiagnostic && isHeaderErrorDiagnostic(m_filePath, diagnostic)) { hasFirstHeaderErrorDiagnostic = true; firstHeaderErrorDiagnostic = diagnostic.toDiagnosticContainer(); } diff --git a/src/tools/clangbackend/source/clangtranslationunitupdater.cpp b/src/tools/clangbackend/source/clangtranslationunitupdater.cpp index ac21ebb72ab..733c8f980ec 100644 --- a/src/tools/clangbackend/source/clangtranslationunitupdater.cpp +++ b/src/tools/clangbackend/source/clangtranslationunitupdater.cpp @@ -180,6 +180,9 @@ uint TranslationUnitUpdater::defaultParseOptions() #ifdef IS_LIMITSKIPFUNCTIONBODIESTOPREAMBLE_SUPPORTED | CXTranslationUnit_SkipFunctionBodies | CXTranslationUnit_LimitSkipFunctionBodiesToPreamble +#endif +#ifdef IS_SKIPWARNINGSFROMINCLUDEDFILES_SUPPORTED + | CXTranslationUnit_IgnoreNonErrorsFromIncludedFiles #endif | CXTranslationUnit_IncludeBriefCommentsInCodeCompletion | CXTranslationUnit_DetailedPreprocessingRecord From ce12c239fff88f0605b0e0a394ea4aaae424db66 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Wed, 27 Jun 2018 14:57:14 +0200 Subject: [PATCH 16/48] ProjectExplorer: Fix replaceSubtree for project nodes Ensure to keep node alive as long as needed. Task-number: QTCREATORBUG-20616 Change-Id: I57a720d3e31e14bcb8388de5fef68f70db370c90 Reviewed-by: Tobias Hunger --- src/plugins/projectexplorer/projectnodes.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/projectexplorer/projectnodes.cpp b/src/plugins/projectexplorer/projectnodes.cpp index 6284c33d058..b2fc067de8c 100644 --- a/src/plugins/projectexplorer/projectnodes.cpp +++ b/src/plugins/projectexplorer/projectnodes.cpp @@ -604,6 +604,7 @@ bool FolderNode::isAncesterOf(Node *n) bool FolderNode::replaceSubtree(Node *oldNode, std::unique_ptr &&newNode) { + std::unique_ptr keepAlive; if (!oldNode) { addNode(std::move(newNode)); // Happens e.g. when a project is registered } else { @@ -614,9 +615,10 @@ bool FolderNode::replaceSubtree(Node *oldNode, std::unique_ptr &&newNode) QTC_ASSERT(it != m_nodes.end(), return false); if (newNode) { newNode->setParentFolderNode(this); + keepAlive = std::move(*it); *it = std::move(newNode); } else { - takeNode(oldNode); // Happens e.g. when project is shutting down + keepAlive = takeNode(oldNode); // Happens e.g. when project is shutting down } } handleSubTreeChanged(this); From 682b3079d2d55c87448bb6bb8ea17b3293ffe5f0 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Wed, 27 Jun 2018 17:16:22 +0200 Subject: [PATCH 17/48] Doc: Add a link to Acknowledgements to the front page Change-Id: I405ceb8a4490c94c5ad695f06fb902c0a3f154a2 Reviewed-by: Eike Ziller --- doc/src/qtcreator.qdoc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/doc/src/qtcreator.qdoc b/doc/src/qtcreator.qdoc index 5cdccee8fe4..7c29421693a 100644 --- a/doc/src/qtcreator.qdoc +++ b/doc/src/qtcreator.qdoc @@ -133,5 +133,8 @@ You can also join the \QC mailing list at: \l{http://lists.qt-project.org/mailman/listinfo/} {lists.qt-project.org Mailing Lists}. + + For credits and a list of third-party libraries, see + \l {Acknowledgements}. \endtable */ From 75470bae65a20f5f40afe7506a5855414be5bb08 Mon Sep 17 00:00:00 2001 From: Ivan Donchevskii Date: Wed, 27 Jun 2018 10:44:56 +0200 Subject: [PATCH 18/48] Clang: Fix Q_PROPERTY return type Check for the Clang macro was not removed here. Change-Id: I5b6c6d971e892fd02ef21935e2a8766d9f0d6d5d Reviewed-by: David Schulz --- src/tools/clangbackend/source/fulltokeninfo.cpp | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/tools/clangbackend/source/fulltokeninfo.cpp b/src/tools/clangbackend/source/fulltokeninfo.cpp index d539138ce99..283798d0be4 100644 --- a/src/tools/clangbackend/source/fulltokeninfo.cpp +++ b/src/tools/clangbackend/source/fulltokeninfo.cpp @@ -106,7 +106,6 @@ static Utf8String getPropertyType(const CXSourceLocation &cxLocation, CXTranslationUnit cxTranslationUnit, uint propertyPosition) { -#if defined(CINDEX_VERSION_HAS_GETFILECONTENTS_BACKPORTED) || CINDEX_VERSION_MINOR >= 47 // Extract property type from the source code CXFile cxFile; uint offset; @@ -123,12 +122,6 @@ static Utf8String getPropertyType(const CXSourceLocation &cxLocation, Utils::unequalTo(' ')); return Utf8String(typeStart, static_cast(&(*typeEnd) + 1 - typeStart)); -#else - Q_UNUSED(cxLocation) - Q_UNUSED(cxTranslationUnit) - Q_UNUSED(propertyPosition) - return Utf8String(); -#endif } void FullTokenInfo::updatePropertyData() From ef9c68798d37a1c2e126f52e99acc2014eef62f9 Mon Sep 17 00:00:00 2001 From: Ivan Donchevskii Date: Wed, 27 Jun 2018 12:58:35 +0200 Subject: [PATCH 19/48] CppTools: Fix getting locator filters from the object pool They are no longer inside the global object pool. Get them from CppModelManager instead. Task-number: QTCREATORBUG-20678 Change-Id: Ifb3221a812295e1dcfe8b59ea693a4b350cbcc2e Reviewed-by: David Schulz --- src/plugins/cppeditor/cppquickfixes.cpp | 4 +-- .../cpptools/cpplocatorfilter_test.cpp | 10 ++++--- src/plugins/cpptools/cppmodelmanager.cpp | 30 +++++++++++++++++++ src/plugins/cpptools/cppmodelmanager.h | 7 +++++ src/plugins/modeleditor/elementtasks.cpp | 6 ++-- 5 files changed, 49 insertions(+), 8 deletions(-) diff --git a/src/plugins/cppeditor/cppquickfixes.cpp b/src/plugins/cppeditor/cppquickfixes.cpp index fa0c3a59eb1..103f2e208e4 100644 --- a/src/plugins/cppeditor/cppquickfixes.cpp +++ b/src/plugins/cppeditor/cppquickfixes.cpp @@ -1882,8 +1882,8 @@ bool matchName(const Name *name, QList *matches, QStri if (!name) return false; - if (CppClassesFilter *classesFilter - = ExtensionSystem::PluginManager::getObject()) { + if (Core::ILocatorFilter *classesFilter + = CppTools::CppModelManager::instance()->classesFilter()) { QFutureInterface dummy; const Overview oo; diff --git a/src/plugins/cpptools/cpplocatorfilter_test.cpp b/src/plugins/cpptools/cpplocatorfilter_test.cpp index 2759021956c..a9fc6e3405b 100644 --- a/src/plugins/cpptools/cpplocatorfilter_test.cpp +++ b/src/plugins/cpptools/cpplocatorfilter_test.cpp @@ -96,7 +96,7 @@ class CppCurrentDocumentFilterTestCase public: CppCurrentDocumentFilterTestCase(const QString &fileName, const ResultDataList &expectedResults) - : BasicLocatorFilterTest(PluginManager::getObject()) + : BasicLocatorFilterTest(CppTools::CppModelManager::instance()->currentDocumentFilter()) , m_editor(0) , m_fileName(fileName) { @@ -158,9 +158,11 @@ void CppToolsPlugin::test_cpplocatorfilters_CppLocatorFilter_data() QTest::addColumn("searchText"); QTest::addColumn("expectedResults"); - ILocatorFilter *cppFunctionsFilter = PluginManager::getObject(); - ILocatorFilter *cppClassesFilter = PluginManager::getObject(); - ILocatorFilter *cppLocatorFilter = PluginManager::getObject(); + CppModelManager *cppModelManager = CppModelManager::instance(); + + ILocatorFilter *cppFunctionsFilter = cppModelManager->functionsFilter(); + ILocatorFilter *cppClassesFilter = cppModelManager->classesFilter(); + ILocatorFilter *cppLocatorFilter = cppModelManager->locatorFilter(); MyTestDataDir testDirectory("testdata_basic"); const QString testFile = testDirectory.file("file1.cpp"); diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp index eb02ac8892a..39348379702 100644 --- a/src/plugins/cpptools/cppmodelmanager.cpp +++ b/src/plugins/cpptools/cppmodelmanager.cpp @@ -390,6 +390,36 @@ void CppModelManager::setCurrentDocumentFilter(std::unique_ptrm_currentDocumentFilter, std::move(filter)); } +Core::ILocatorFilter *CppModelManager::locatorFilter() const +{ + return d->m_locatorFilter.get(); +} + +Core::ILocatorFilter *CppModelManager::classesFilter() const +{ + return d->m_classesFilter.get(); +} + +Core::ILocatorFilter *CppModelManager::includesFilter() const +{ + return d->m_includesFilter.get(); +} + +Core::ILocatorFilter *CppModelManager::functionsFilter() const +{ + return d->m_functionsFilter.get(); +} + +Core::IFindFilter *CppModelManager::symbolsFindFilter() const +{ + return d->m_symbolsFindFilter.get(); +} + +Core::ILocatorFilter *CppModelManager::currentDocumentFilter() const +{ + return d->m_currentDocumentFilter.get(); +} + FollowSymbolInterface &CppModelManager::followSymbolInterface() const { return d->m_activeModelManagerSupport->followSymbolInterface(); diff --git a/src/plugins/cpptools/cppmodelmanager.h b/src/plugins/cpptools/cppmodelmanager.h index 425ab8712e3..aad73330732 100644 --- a/src/plugins/cpptools/cppmodelmanager.h +++ b/src/plugins/cpptools/cppmodelmanager.h @@ -219,6 +219,13 @@ public: void setSymbolsFindFilter(std::unique_ptr &&filter); void setCurrentDocumentFilter(std::unique_ptr &&filter); + Core::ILocatorFilter *locatorFilter() const; + Core::ILocatorFilter *classesFilter() const; + Core::ILocatorFilter *includesFilter() const; + Core::ILocatorFilter *functionsFilter() const; + Core::IFindFilter *symbolsFindFilter() const; + Core::ILocatorFilter *currentDocumentFilter() const; + void renameIncludes(const QString &oldFileName, const QString &newFileName); signals: diff --git a/src/plugins/modeleditor/elementtasks.cpp b/src/plugins/modeleditor/elementtasks.cpp index 3ace1bec41c..f20134fb28c 100644 --- a/src/plugins/modeleditor/elementtasks.cpp +++ b/src/plugins/modeleditor/elementtasks.cpp @@ -108,7 +108,8 @@ bool ElementTasks::hasClassDefinition(const qmt::MElement *element) const ? klass->name() : klass->umlNamespace() + "::" + klass->name(); - CppTools::CppClassesFilter *classesFilter = ExtensionSystem::PluginManager::getObject(); + Core::ILocatorFilter *classesFilter + = CppTools::CppModelManager::instance()->classesFilter(); if (!classesFilter) return false; @@ -144,7 +145,8 @@ void ElementTasks::openClassDefinition(const qmt::MElement *element) ? klass->name() : klass->umlNamespace() + "::" + klass->name(); - CppTools::CppClassesFilter *classesFilter = ExtensionSystem::PluginManager::getObject(); + Core::ILocatorFilter *classesFilter + = CppTools::CppModelManager::instance()->classesFilter(); if (!classesFilter) return; From fcfa98ab7ce491808283b47780011acaa611a07d Mon Sep 17 00:00:00 2001 From: Ivan Donchevskii Date: Wed, 27 Jun 2018 10:47:16 +0200 Subject: [PATCH 20/48] Clang: Fix comma-separated class members in symbol outline Check for the actual lexical parent in addition to ranges. Task-number: QTCREATORBUG-20656 Change-Id: Ie2ead5cd02e83f9fd201825ee80d1633679a6402 Reviewed-by: David Schulz Reviewed-by: Alessandro Portale --- src/tools/clangbackend/source/tokenprocessor.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/tools/clangbackend/source/tokenprocessor.h b/src/tools/clangbackend/source/tokenprocessor.h index 4c6fbd995d2..aeac7dc01c2 100644 --- a/src/tools/clangbackend/source/tokenprocessor.h +++ b/src/tools/clangbackend/source/tokenprocessor.h @@ -159,6 +159,10 @@ QVector TokenProcessor::toTokenInfoContainers if (it->m_extraInfo.declaration && !it->hasMainType(HighlightingType::LocalVariable) && it->m_originalCursor != token.m_originalCursor && it->m_extraInfo.cursorRange.contains(tokenStart)) { + if (token.m_originalCursor.lexicalParent() != it->m_originalCursor + && !token.hasMainType(HighlightingType::QtProperty)) { + continue; + } token.m_extraInfo.lexicalParentIndex = std::distance(it, tokens.rend()) - 1; break; } From e99d09f846927688e6fd863445a86dcc5715bee6 Mon Sep 17 00:00:00 2001 From: Ivan Donchevskii Date: Wed, 27 Jun 2018 15:29:14 +0200 Subject: [PATCH 21/48] Clang: Properly apply fix-its from header files Diagnostic may also include fix-its for the header which require different handling. Task-number: QTCREATORBUG-20517 Change-Id: I3e745622801be3fa2856d968b0c7a2a2aeb89b50 Reviewed-by: David Schulz --- .../clangfixitsrefactoringchanges.cpp | 42 ++++++++++--------- .../clangfixitsrefactoringchanges.h | 8 ++-- src/plugins/clangtools/clangtidyclazytool.cpp | 5 ++- 3 files changed, 31 insertions(+), 24 deletions(-) diff --git a/src/plugins/clangtools/clangfixitsrefactoringchanges.cpp b/src/plugins/clangtools/clangfixitsrefactoringchanges.cpp index dce0b9665a0..26089ea930b 100644 --- a/src/plugins/clangtools/clangfixitsrefactoringchanges.cpp +++ b/src/plugins/clangtools/clangfixitsrefactoringchanges.cpp @@ -42,11 +42,11 @@ using namespace Utils; namespace ClangTools { namespace Internal { -int FixitsRefactoringFile::position(unsigned line, unsigned column) const +int FixitsRefactoringFile::position(const QString &filePath, unsigned line, unsigned column) const { QTC_ASSERT(line != 0, return -1); QTC_ASSERT(column != 0, return -1); - return document()->findBlockByNumber(line - 1).position() + column - 1; + return document(filePath)->findBlockByNumber(line - 1).position() + column - 1; } static QDebug operator<<(QDebug debug, const ReplacementOperation &op) @@ -71,23 +71,22 @@ bool FixitsRefactoringFile::apply() QTC_ASSERT(!m_filePath.isEmpty(), return false); - // Check for permissions - if (!QFileInfo(m_filePath).isWritable()) - return false; // Error file not writable - // Apply changes - QTextDocument *doc = document(); - QTextCursor cursor(doc); - for (int i=0; i < m_replacementOperations.size(); ++i) { ReplacementOperation &op = *m_replacementOperations[i]; if (op.apply) { + // Check for permissions + if (!QFileInfo(op.fileName).isWritable()) + return false; // Error file not writable + qCDebug(fixitsLog) << " " << i << "Applying" << op; // Shift subsequent operations that are affected shiftAffectedReplacements(op, i + 1); // Apply + QTextDocument *doc = document(op.fileName); + QTextCursor cursor(doc); cursor.setPosition(op.pos); cursor.setPosition(op.pos + op.length, QTextCursor::KeepAnchor); cursor.insertText(op.text); @@ -99,40 +98,45 @@ bool FixitsRefactoringFile::apply() return false; // Error reading file QString error; - if (!m_textFileFormat.writeFile(m_filePath, doc->toPlainText(), &error)) { - qCDebug(fixitsLog) << "ERROR: Could not write file" << m_filePath << ":" << error; - return false; // Error writing file + for (auto it = m_documents.begin(); it != m_documents.end(); ++it) { + if (!m_textFileFormat.writeFile(it.key(), it.value()->toPlainText(), &error)) { + qCDebug(fixitsLog) << "ERROR: Could not write file" << it.key() << ":" << error; + return false; // Error writing file + } } return true; } -QTextDocument *FixitsRefactoringFile::document() const +QTextDocument *FixitsRefactoringFile::document(const QString &filePath) const { - if (!m_document) { + if (m_documents.find(filePath) == m_documents.end()) { QString fileContents; - if (!m_filePath.isEmpty()) { + if (!filePath.isEmpty()) { QString error; QTextCodec *defaultCodec = Core::EditorManager::defaultTextCodec(); TextFileFormat::ReadResult result = TextFileFormat::readFile( - m_filePath, defaultCodec, + filePath, defaultCodec, &fileContents, &m_textFileFormat, &error); if (result != TextFileFormat::ReadSuccess) { - qCDebug(fixitsLog) << "ERROR: Could not read " << m_filePath << ":" << error; + qCDebug(fixitsLog) << "ERROR: Could not read " << filePath << ":" << error; m_textFileFormat.codec = nullptr; } } // always make a QTextDocument to avoid excessive null checks - m_document = new QTextDocument(fileContents); + m_documents[filePath] = new QTextDocument(fileContents); } - return m_document; + return m_documents[filePath]; } void FixitsRefactoringFile::shiftAffectedReplacements(const ReplacementOperation &op, int startIndex) { for (int i = startIndex; i < m_replacementOperations.size(); ++i) { ReplacementOperation ¤t = *m_replacementOperations[i]; + if (op.fileName != current.fileName) + continue; + ReplacementOperation before = current; if (op.pos <= current.pos) diff --git a/src/plugins/clangtools/clangfixitsrefactoringchanges.h b/src/plugins/clangtools/clangfixitsrefactoringchanges.h index c19d14aa023..1ca809f4e70 100644 --- a/src/plugins/clangtools/clangfixitsrefactoringchanges.h +++ b/src/plugins/clangtools/clangfixitsrefactoringchanges.h @@ -41,6 +41,7 @@ public: int pos = -1; int length = -1; QString text; + QString fileName; bool apply = false; }; using ReplacementOperations = QVector; @@ -52,20 +53,21 @@ class FixitsRefactoringFile public: FixitsRefactoringFile() = default; FixitsRefactoringFile(const QString &filePath) : m_filePath(filePath) {} + ~FixitsRefactoringFile() { qDeleteAll(m_documents); } bool isValid() const { return !m_filePath.isEmpty(); } - int position(unsigned line, unsigned column) const; + int position(const QString &filePath, unsigned line, unsigned column) const; void setReplacements(const ReplacementOperations &ops) { m_replacementOperations = ops; } bool apply(); private: - QTextDocument *document() const; + QTextDocument *document(const QString &filePath) const; void shiftAffectedReplacements(const ReplacementOperation &op, int startIndex); QString m_filePath; mutable Utils::TextFileFormat m_textFileFormat; - mutable QTextDocument *m_document = nullptr; + mutable QHash m_documents; ReplacementOperations m_replacementOperations; // Not owned. }; diff --git a/src/plugins/clangtools/clangtidyclazytool.cpp b/src/plugins/clangtools/clangtidyclazytool.cpp index e15b968a0d9..2c74837125b 100644 --- a/src/plugins/clangtools/clangtidyclazytool.cpp +++ b/src/plugins/clangtools/clangtidyclazytool.cpp @@ -119,13 +119,14 @@ public: const Debugger::DiagnosticLocation start = step.ranges.first(); const Debugger::DiagnosticLocation end = step.ranges.last(); - const int startPos = file.position(start.line, start.column); - const int endPos = file.position(end.line, end.column); + const int startPos = file.position(start.filePath, start.line, start.column); + const int endPos = file.position(start.filePath, end.line, end.column); auto op = new ReplacementOperation; op->pos = startPos; op->length = endPos - startPos; op->text = step.message; + op->fileName = start.filePath; op->apply = apply; replacements += op; From 85b0f4dc9138c5f84d683cd5943cd01f5ea38ed6 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Fri, 22 Jun 2018 08:56:12 +0200 Subject: [PATCH 22/48] WinDebugInterface: Remove blocking connection to main thread The debugOutput() signal was connected via BlockingQueuedConnection and blocks the WinDebugInterface thread until the signal is received. If we signal "buffer ready" afterwards, all OutputDebugString calls (of all processes of the system) that wait for "buffer ready" also wait for our internal signal delivery. This can lead to hangs in circumstances where the event loop is currently unable to deliver the signal. Remove the blocking queued connection, and introduce an internal _q_debugOutputReady() signal that is emitted whenever new debug output is available. This signal is queued-connected to a dispatchDebugOutput function, which is running in the main thread. That function retrieves the data from the WinDebugInterfaceThread and emits debugOutput(qint64, QString). This massively reduces the event queue load without blocking the WinDebugInterface thread. Task-number: QTCREATORBUG-20640 Change-Id: I91f8f794af8da2a695c2b897f678844b142a5991 Reviewed-by: David Schulz Reviewed-by: Alessandro Portale Reviewed-by: Eike Ziller --- .../projectexplorer/applicationlauncher.cpp | 2 +- .../projectexplorer/windebuginterface.cpp | 93 ++++++++++++------- .../projectexplorer/windebuginterface.h | 11 +++ 3 files changed, 72 insertions(+), 34 deletions(-) diff --git a/src/plugins/projectexplorer/applicationlauncher.cpp b/src/plugins/projectexplorer/applicationlauncher.cpp index d42109d2b4d..804954d14e2 100644 --- a/src/plugins/projectexplorer/applicationlauncher.cpp +++ b/src/plugins/projectexplorer/applicationlauncher.cpp @@ -160,7 +160,7 @@ ApplicationLauncherPrivate::ApplicationLauncherPrivate(ApplicationLauncher *pare connect(WinDebugInterface::instance(), &WinDebugInterface::cannotRetrieveDebugOutput, this, &ApplicationLauncherPrivate::cannotRetrieveLocalDebugOutput); connect(WinDebugInterface::instance(), &WinDebugInterface::debugOutput, - this, &ApplicationLauncherPrivate::checkLocalDebugOutput, Qt::BlockingQueuedConnection); + this, &ApplicationLauncherPrivate::checkLocalDebugOutput); #endif } diff --git a/src/plugins/projectexplorer/windebuginterface.cpp b/src/plugins/projectexplorer/windebuginterface.cpp index 98ece143c8e..985fec933f4 100644 --- a/src/plugins/projectexplorer/windebuginterface.cpp +++ b/src/plugins/projectexplorer/windebuginterface.cpp @@ -27,10 +27,11 @@ #ifdef Q_OS_WIN -#include +#include #include -#include -#include +#include + +#include /*! \class ProjectExplorer::Internal::WinDebugInterface @@ -67,6 +68,8 @@ WinDebugInterface::WinDebugInterface(QObject *parent) : m_instance = this; m_creatorPid = QCoreApplication::applicationPid(); setObjectName(QLatin1String("WinDebugInterfaceThread")); + connect(this, &WinDebugInterface::_q_debugOutputReady, + this, &WinDebugInterface::dispatchDebugOutput, Qt::QueuedConnection); } WinDebugInterface::~WinDebugInterface() @@ -131,41 +134,18 @@ bool WinDebugInterface::runLoop() SetEvent(m_bufferReadyEvent); - QTime timer; // time since last signal sent - timer.start(); - - QMap delayedMessages; - - auto flushMessages = [this, &delayedMessages, &timer](){ - auto it = delayedMessages.constBegin(); - auto end = delayedMessages.constEnd(); - for (; it != end; ++it) - emit debugOutput(it.key(), it.value()); - delayedMessages.clear(); - timer.start(); - }; - while (true) { - DWORD timeout = INFINITE; - if (!delayedMessages.isEmpty()) // if we have delayed message, don't wait forever - timeout = qMax(60 - timer.elapsed(), 1); - const DWORD ret = WaitForMultipleObjects(HandleCount, m_waitHandles, FALSE, timeout); - + const DWORD ret = WaitForMultipleObjects(HandleCount, m_waitHandles, FALSE, INFINITE); if (ret == WAIT_FAILED || ret - WAIT_OBJECT_0 == TerminateEventHandle) { - flushMessages(); + std::lock_guard guard(m_outputMutex); + emitReadySignal(); break; } - if (ret == WAIT_TIMEOUT) { - flushMessages(); - SetEvent(m_bufferReadyEvent); - } else if (ret - WAIT_OBJECT_0 == DataReadyEventHandle) { + if (ret - WAIT_OBJECT_0 == DataReadyEventHandle) { if (*processId != m_creatorPid) { - if (timer.elapsed() < 60) { - delayedMessages[*processId].append(QString::fromLocal8Bit(message)); - } else { - delayedMessages[*processId] += QString::fromLocal8Bit(message); - flushMessages(); - } + std::lock_guard guard(m_outputMutex); + m_debugOutput[*processId].push_back(QString::fromLocal8Bit(message)); + emitReadySignal(); } SetEvent(m_bufferReadyEvent); } @@ -173,6 +153,49 @@ bool WinDebugInterface::runLoop() return true; } +void WinDebugInterface::emitReadySignal() +{ + // This function must be called from the WinDebugInterface thread only. + QTC_ASSERT(QThread::currentThread() == this, return); + + if (m_debugOutput.empty() || m_readySignalEmitted) + return; + + m_readySignalEmitted = true; + emit _q_debugOutputReady(); +} + +void WinDebugInterface::dispatchDebugOutput() +{ + // Called in the thread this object was created in, not in the WinDebugInterfaceThread. + QTC_ASSERT(QThread::currentThread() == QCoreApplication::instance()->thread(), return); + + static size_t maxMessagesToSend = 100; + std::vector> output; + bool hasMoreOutput = false; + + m_outputMutex.lock(); + for (auto &entry : m_debugOutput) { + std::vector &src = entry.second; + QString dst; + size_t n = std::min(maxMessagesToSend, src.size()); + for (size_t i = 0; i < n; ++i) + dst += src.at(i); + src.erase(src.begin(), std::next(src.begin(), n)); + if (!src.empty()) + hasMoreOutput = true; + output.emplace_back(entry.first, std::move(dst)); + } + if (!hasMoreOutput) + m_readySignalEmitted = false; + m_outputMutex.unlock(); + + for (auto p : output) + emit debugOutput(p.first, p.second); + if (hasMoreOutput) + emit _q_debugOutputReady(); +} + } // namespace Internal } // namespace ProjectExplorer @@ -193,6 +216,10 @@ void WinDebugInterface::run() { } bool WinDebugInterface::runLoop() { return false; } +void WinDebugInterface::emitReadySignal() { } + +void WinDebugInterface::dispatchDebugOutput() { } + } // namespace Internal } // namespace ProjectExplorer diff --git a/src/plugins/projectexplorer/windebuginterface.h b/src/plugins/projectexplorer/windebuginterface.h index be3b5e34938..e4593940384 100644 --- a/src/plugins/projectexplorer/windebuginterface.h +++ b/src/plugins/projectexplorer/windebuginterface.h @@ -25,8 +25,13 @@ #pragma once +#include #include +#include +#include +#include + namespace ProjectExplorer { namespace Internal { @@ -45,12 +50,15 @@ public: signals: void debugOutput(qint64 pid, const QString &message); void cannotRetrieveDebugOutput(); + void _q_debugOutputReady(); private: enum Handles { DataReadyEventHandle, TerminateEventHandle, HandleCount }; void run() override; bool runLoop(); + void emitReadySignal(); + void dispatchDebugOutput(); static WinDebugInterface *m_instance; @@ -59,6 +67,9 @@ private: Qt::HANDLE m_bufferReadyEvent = nullptr; Qt::HANDLE m_sharedFile = nullptr; void *m_sharedMem = nullptr; + std::mutex m_outputMutex; + bool m_readySignalEmitted = false; + std::map> m_debugOutput; }; } // namespace Internal From 702d6a69148091b23023aeafdb697919dff1a1d6 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Wed, 27 Jun 2018 15:26:46 +0200 Subject: [PATCH 23/48] TaskModel: Bit of code cleanup Do not send rowsRemoved before source model has removed the rows from its data. Add some QTC_ASSERTS and comments. Replace trivial slot by lambda. Change-Id: I7a0df404f757fca5f7724be66e516824ecd292dd Reviewed-by: Orgad Shaneh --- src/plugins/projectexplorer/taskmodel.cpp | 37 ++++++++++++----------- src/plugins/projectexplorer/taskmodel.h | 1 - 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/src/plugins/projectexplorer/taskmodel.cpp b/src/plugins/projectexplorer/taskmodel.cpp index 35929efbaf2..d59162f5c55 100644 --- a/src/plugins/projectexplorer/taskmodel.cpp +++ b/src/plugins/projectexplorer/taskmodel.cpp @@ -331,10 +331,18 @@ TaskFilterModel::TaskFilterModel(TaskModel *sourceModel, QObject *parent) : QAbs connect(m_sourceModel, &QAbstractItemModel::rowsInserted, this, &TaskFilterModel::handleNewRows); + connect(m_sourceModel, &QAbstractItemModel::rowsAboutToBeRemoved, this, &TaskFilterModel::handleRowsAboutToBeRemoved); + connect(m_sourceModel, &QAbstractItemModel::rowsRemoved, + this, [this](const QModelIndex &parent, int, int) { + QTC_ASSERT(!parent.isValid(), return); + endRemoveRows(); + }); + connect(m_sourceModel, &QAbstractItemModel::modelReset, - this, &TaskFilterModel::handleReset); + this, &TaskFilterModel::invalidateFilter); + connect(m_sourceModel, &QAbstractItemModel::dataChanged, this, &TaskFilterModel::handleDataChanged); @@ -383,8 +391,7 @@ static QPair findFilteredRange(int first, int last, const QList & void TaskFilterModel::handleNewRows(const QModelIndex &index, int first, int last) { - if (index.isValid()) - return; + QTC_ASSERT(!index.isValid(), return); QList newMapping; for (int i = first; i <= last; ++i) { @@ -421,18 +428,17 @@ void TaskFilterModel::handleNewRows(const QModelIndex &index, int first, int las void TaskFilterModel::handleRowsAboutToBeRemoved(const QModelIndex &index, int first, int last) { - if (index.isValid()) - return; + QTC_ASSERT(!index.isValid(), return); const QPair range = findFilteredRange(first, last, m_mapping); - if (range.first > range.second) + if (range.first > range.second) // rows to be removed are filtered out return; beginRemoveRows(QModelIndex(), range.first, range.second); m_mapping.erase(m_mapping.begin() + range.first, m_mapping.begin() + range.second + 1); + const int sourceRemovedCount = (last - first) + 1; for (int i = range.first; i < m_mapping.count(); ++i) - m_mapping[i] = m_mapping.at(i) - (last - first) - 1; - endRemoveRows(); + m_mapping[i] = m_mapping.at(i) - sourceRemovedCount; } void TaskFilterModel::handleDataChanged(const QModelIndex &top, const QModelIndex &bottom) @@ -444,24 +450,21 @@ void TaskFilterModel::handleDataChanged(const QModelIndex &top, const QModelInde emit dataChanged(index(range.first, top.column()), index(range.second, bottom.column())); } -void TaskFilterModel::handleReset() -{ - invalidateFilter(); -} - QModelIndex TaskFilterModel::mapFromSource(const QModelIndex &idx) const { - auto it = std::lower_bound(m_mapping.constBegin(), m_mapping.constEnd(), idx.row()); - if (it == m_mapping.constEnd() || idx.row() != *it) + if (!idx.isValid()) return QModelIndex(); + auto it = std::lower_bound(m_mapping.constBegin(), m_mapping.constEnd(), idx.row()); + QTC_ASSERT(it != m_mapping.constEnd() && idx.row() == *it, return QModelIndex()); return index(it - m_mapping.constBegin(), 0); } QModelIndex TaskFilterModel::mapToSource(const QModelIndex &index) const { - int row = index.row(); - if (row >= m_mapping.count()) + if (!index.isValid()) return QModelIndex(); + int row = index.row(); + QTC_ASSERT(row >= 0 && row < m_mapping.count(), return QModelIndex()); return m_sourceModel->index(m_mapping.at(row), index.column(), index.parent()); } diff --git a/src/plugins/projectexplorer/taskmodel.h b/src/plugins/projectexplorer/taskmodel.h index 0b761adabb4..b2b1c933e2b 100644 --- a/src/plugins/projectexplorer/taskmodel.h +++ b/src/plugins/projectexplorer/taskmodel.h @@ -159,7 +159,6 @@ private: void handleNewRows(const QModelIndex &index, int first, int last); void handleRowsAboutToBeRemoved(const QModelIndex &index, int first, int last); void handleDataChanged(const QModelIndex &top, const QModelIndex &bottom); - void handleReset(); QModelIndex mapToSource(const QModelIndex &index) const; void invalidateFilter(); From 66a271a150a9be8f8e67e9aa4b4d01a2c583866a Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Thu, 28 Jun 2018 10:14:57 +0200 Subject: [PATCH 24/48] Fix inserting tasks into issues pane When tasks are inserted into the source model, the source indices in the filtered model after the new items where not updated correctly. The indices must be increased by the number of items added to the source model, not the number of items added to the filtered model (which can be less). Task-number: QTCREATORBUG-20542 Task-number: QTCREATORBUG-18951 Change-Id: Idae9cf4241c31229dadf5c9fea383aef3fdfffb0 Reviewed-by: Orgad Shaneh --- src/plugins/projectexplorer/taskmodel.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/plugins/projectexplorer/taskmodel.cpp b/src/plugins/projectexplorer/taskmodel.cpp index d59162f5c55..981f85651d3 100644 --- a/src/plugins/projectexplorer/taskmodel.cpp +++ b/src/plugins/projectexplorer/taskmodel.cpp @@ -393,6 +393,8 @@ void TaskFilterModel::handleNewRows(const QModelIndex &index, int first, int las { QTC_ASSERT(!index.isValid(), return); + const int newItemCount = last - first + 1; + QList newMapping; for (int i = first; i <= last; ++i) { const Task &task = m_sourceModel->task(m_sourceModel->index(i, 0)); @@ -400,8 +402,8 @@ void TaskFilterModel::handleNewRows(const QModelIndex &index, int first, int las newMapping.append(i); } - const int newItems = newMapping.count(); - if (!newItems) + const int newMappingCount = newMapping.count(); + if (!newMappingCount) return; int filteredFirst = -1; @@ -410,18 +412,18 @@ void TaskFilterModel::handleNewRows(const QModelIndex &index, int first, int las else filteredFirst = std::lower_bound(m_mapping.constBegin(), m_mapping.constEnd(), first) - m_mapping.constBegin(); - const int filteredLast = filteredFirst + newItems - 1; + const int filteredLast = filteredFirst + newMappingCount - 1; beginInsertRows(QModelIndex(), filteredFirst, filteredLast); if (filteredFirst == m_mapping.count()) { m_mapping.append(newMapping); } else { - QList rest = m_mapping.mid(filteredFirst); + const QList rest = m_mapping.mid(filteredFirst); - m_mapping.reserve(m_mapping.count() + newItems); + m_mapping.reserve(m_mapping.count() + newMappingCount); m_mapping.erase(m_mapping.begin() + filteredFirst, m_mapping.end()); m_mapping.append(newMapping); - foreach (int pos, rest) - m_mapping.append(pos + newItems); + for (int pos : rest) + m_mapping.append(pos + newItemCount); } endInsertRows(); } From be3e848c0f1aa6654362c5c2dacf5d5895ccffcd Mon Sep 17 00:00:00 2001 From: Ivan Donchevskii Date: Thu, 28 Jun 2018 10:16:48 +0200 Subject: [PATCH 25/48] Clang: Don't analyze same file multiple times Diagnostics do not depend much on project parts. But having the same file twice can result in duplicated diagnostics which later can cause the same fix-it being applied twice and getting corrupted code. Change-Id: Ie2809af7a54034b05df9383875f7c3123aea58e8 Reviewed-by: David Schulz --- src/plugins/clangtools/clangfileinfo.h | 14 +++++++++++++- .../clangtools/clangselectablefilesdialog.cpp | 6 +++--- src/plugins/clangtools/clangtidyclazytool.cpp | 2 +- src/plugins/clangtools/clangtool.cpp | 4 ++-- 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/plugins/clangtools/clangfileinfo.h b/src/plugins/clangtools/clangfileinfo.h index a543ca1f274..735028a1f9e 100644 --- a/src/plugins/clangtools/clangfileinfo.h +++ b/src/plugins/clangtools/clangfileinfo.h @@ -36,12 +36,24 @@ namespace Internal { class FileInfo { public: + FileInfo() = default; + FileInfo(Utils::FileName file, + CppTools::ProjectFile::Kind kind, + CppTools::ProjectPart::Ptr projectPart) + : file(std::move(file)) + , kind(kind) + , projectPart(projectPart) + {} Utils::FileName file; CppTools::ProjectFile::Kind kind; CppTools::ProjectPart::Ptr projectPart; }; -using FileInfos = QVector; +inline bool operator==(const FileInfo &lhs, const FileInfo &rhs) { + return lhs.file == rhs.file; +} + +using FileInfos = std::vector; } // namespace Internal } // namespace ClangTools diff --git a/src/plugins/clangtools/clangselectablefilesdialog.cpp b/src/plugins/clangtools/clangselectablefilesdialog.cpp index e9cdc42625c..08ba746553d 100644 --- a/src/plugins/clangtools/clangselectablefilesdialog.cpp +++ b/src/plugins/clangtools/clangselectablefilesdialog.cpp @@ -155,7 +155,7 @@ public: return false; if (!node->isDir) - result += static_cast(node)->info; + result.push_back(static_cast(node)->info); return true; }); @@ -194,7 +194,7 @@ private: Tree *projectDirTree = buildProjectDirTree(project->projectDirectory(), fileInfos, outOfBaseDirFiles); - if (outOfBaseDirFiles.isEmpty()) { + if (outOfBaseDirFiles.empty()) { // Showing the project file and beneath the project dir is pointless in this case, // so get rid of the root node and modify the project dir node as the new root node. projectDirTree->name = m_root->name; @@ -229,7 +229,7 @@ private: for (const FileInfo &fileInfo : fileInfos) { if (!fileInfo.file.isChildOf(projectDirNode->fullPath)) { - outOfBaseDirFiles += fileInfo; + outOfBaseDirFiles.push_back(fileInfo); continue; // Handle these separately. } diff --git a/src/plugins/clangtools/clangtidyclazytool.cpp b/src/plugins/clangtools/clangtidyclazytool.cpp index 2c74837125b..d3f3d841b70 100644 --- a/src/plugins/clangtools/clangtidyclazytool.cpp +++ b/src/plugins/clangtools/clangtidyclazytool.cpp @@ -333,7 +333,7 @@ void ClangTidyClazyTool::startTool(bool askUserForFileSelection) QTC_ASSERT(project, return); const FileInfos fileInfos = collectFileInfos(project, askUserForFileSelection); - if (fileInfos.isEmpty()) + if (fileInfos.empty()) return; auto clangTool = new ClangTidyClazyRunControl(runControl, diff --git a/src/plugins/clangtools/clangtool.cpp b/src/plugins/clangtools/clangtool.cpp index 7c63fa4ee47..248bee44ea0 100644 --- a/src/plugins/clangtools/clangtool.cpp +++ b/src/plugins/clangtools/clangtool.cpp @@ -78,13 +78,13 @@ static FileInfos sortedFileInfos(const QVector &proj continue; if (CppTools::ProjectFile::isSource(file.kind)) { - const FileInfo info{Utils::FileName::fromString(file.path), file.kind, projectPart}; - fileInfos.append(info); + fileInfos.emplace_back(Utils::FileName::fromString(file.path), file.kind, projectPart); } } } Utils::sort(fileInfos, &FileInfo::file); + fileInfos.erase(std::unique(fileInfos.begin(), fileInfos.end()), fileInfos.end()); return fileInfos; } From 3f54c55e58d6c9cfe01bc07a6cc5a866ff3a946d Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Mon, 25 Jun 2018 09:29:09 +0200 Subject: [PATCH 26/48] Squish: Handle more server side issues If we get correct http responses that point to server side issues handle them appropriate if possible to let the test continue instead of crash. Change-Id: I7d2e8848269600762e9c7fe980414c4f7106433c Reviewed-by: Robert Loehning --- .../suite_tools/tst_codepasting/test.py | 31 +++++++++++++++++-- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/tests/system/suite_tools/tst_codepasting/test.py b/tests/system/suite_tools/tst_codepasting/test.py index 023d7853127..998b36bf84f 100644 --- a/tests/system/suite_tools/tst_codepasting/test.py +++ b/tests/system/suite_tools/tst_codepasting/test.py @@ -42,6 +42,19 @@ def invalidPasteId(protocol): else: return -1 +def closeHTTPStatusAndPasterDialog(protocol, pasterDialog): + mBoxStr = "{type='QMessageBox' unnamed='1' visible='1' windowTitle?='%s *'}" % protocol + mBox = waitForObject(mBoxStr, 1000) + text = str(mBox.text) + # close message box and paster window + clickButton("{type='QPushButton' text='Cancel' visible='1' window=%s}" % mBoxStr) + clickButton("{type='QPushButton' text='Cancel' visible='1' window='%s'}" % pasterDialog) + if 'Service Unavailable' in text: + test.warning(text) + return True + test.log("Closed dialog without expected error.", text) + return False + def pasteFile(sourceFile, protocol): def resetFiles(): clickButton(waitForObject(":*Qt Creator.Clear_QToolButton")) @@ -71,12 +84,17 @@ def pasteFile(sourceFile, protocol): # make sure to read all former errors (they won't get read twice) aut.readStderr() clickButton(waitForObject(":Send to Codepaster.Paste_QPushButton")) - outputWindow = waitForObject(":Qt Creator_Core::OutputWindow") - waitFor("'https://' in str(outputWindow.plainText)", 20000) try: + outputWindow = waitForObject(":Qt Creator_Core::OutputWindow") + waitFor("'https://' in str(outputWindow.plainText)", 20000) output = str(outputWindow.plainText).splitlines()[-1] except: output = "" + try: + if closeHTTPStatusAndPasterDialog(protocol, ':Send to Codepaster_CodePaster::PasteView'): + raise Exception(serverProblems) + except: + pass stdErrOut = aut.readStderr() match = re.search("^%s protocol error: (.*)$" % protocol, stdErrOut, re.MULTILINE) if match: @@ -102,7 +120,14 @@ def fetchSnippet(protocol, description, pasteId, skippedPasting): foundSnippet = True invokeMenuItem("Tools", "Code Pasting", "Fetch Snippet...") selectFromCombo(":PasteSelectDialog.protocolBox_QComboBox", protocol) - pasteModel = waitForObject(":PasteSelectDialog.listWidget_QListWidget").model() + try: + pasteModel = waitForObject(":PasteSelectDialog.listWidget_QListWidget").model() + except: + try: + if closeHTTPStatusAndPasterDialog(protocol, ':PasteSelectDialog_CodePaster::PasteSelectDialog'): + return -1 + except: + pass waitFor("pasteModel.rowCount() > 1", 20000) if (not skippedPasting and not protocol == NAME_PBCA and not any(map(lambda str:pasteId in str, dumpItems(pasteModel)))): From 2801372d468caa435b24ca7b3b0ca21912d73daf Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Wed, 27 Jun 2018 09:33:05 +0200 Subject: [PATCH 27/48] Squish: Fix expected targets for widget app wizard Reverts cd45ce5f391c. Change-Id: I6865e6c91fd961ac36da160a01c676f5274c40cc Reviewed-by: Robert Loehning Reviewed-by: Christian Stenger --- tests/system/shared/project.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tests/system/shared/project.py b/tests/system/shared/project.py index f48f261f67d..313ace186cc 100644 --- a/tests/system/shared/project.py +++ b/tests/system/shared/project.py @@ -541,15 +541,13 @@ def __getSupportedPlatforms__(text, templateName, getAsStrings=False): supports = text[text.find('Supported Platforms'):].split(":")[1].strip().split(" ") result = [] if 'Desktop' in supports: - if version == None or version < "5.0": + if (version == None or version < "5.0") and templateName != "Qt Widgets Application": result.append(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]) if platform.system() != 'Darwin': result.append(Targets.DESKTOP_5_4_1_GCC) - if templateName == "Qt Widgets Application": - result.remove(Targets.DESKTOP_4_8_7_DEFAULT) elif 'Platform independent' in text: result = Targets.desktopTargetClasses() else: From 09a761ad7b6127d992f12b8b989228df6270b8b8 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Fri, 29 Jun 2018 12:01:08 +0200 Subject: [PATCH 28/48] Fix issues with saving files on network drives on Windows In these cases the user might not have sufficient rights for ReplaceFile to merge all file attributes and ACLs. Make ReplaceFile ignore these errors. Task-number: QTCREATORBUG-20560 Change-Id: I6980d8af66cb7200c39726f0e7273df83c99bf5c Reviewed-by: Ivan Donchevskii Reviewed-by: Alessandro Portale --- src/libs/utils/savefile.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libs/utils/savefile.cpp b/src/libs/utils/savefile.cpp index 667c3922e0d..13b9db0d849 100644 --- a/src/libs/utils/savefile.cpp +++ b/src/libs/utils/savefile.cpp @@ -126,7 +126,7 @@ bool SaveFile::commit() m_tempFile.reset(); bool result = ReplaceFile(finalFileName.toStdWString().data(), fileName().toStdWString().data(), - nullptr, 0, nullptr, nullptr); + nullptr, REPLACEFILE_IGNORE_MERGE_ERRORS, nullptr, nullptr); if (!result) { const DWORD replaceErrorCode = GetLastError(); QString errorStr; From e7d479dc801d511976dfded476cb1804259592aa Mon Sep 17 00:00:00 2001 From: Sergey Belyashov Date: Wed, 27 Jun 2018 16:49:02 +0300 Subject: [PATCH 29/48] Update Russian translation Change-Id: I13737f490a7e4b46319fcae99f641a9bc8538184 Reviewed-by: Denis Shienkov Reviewed-by: Anton Kudryavtsev Reviewed-by: Oswald Buddenhagen --- share/qtcreator/translations/qtcreator_ru.ts | 3290 ++++++++++-------- 1 file changed, 1770 insertions(+), 1520 deletions(-) diff --git a/share/qtcreator/translations/qtcreator_ru.ts b/share/qtcreator/translations/qtcreator_ru.ts index 5770974f8a8..d87d7c58874 100644 --- a/share/qtcreator/translations/qtcreator_ru.ts +++ b/share/qtcreator/translations/qtcreator_ru.ts @@ -15,6 +15,33 @@ Добавьте комментарий для подавления этого сообщения + + AddImageToResources + + File Name + Имя файла + + + Size + Размер + + + Add Resources + Добавление ресурсов + + + &Browse... + &Обзор... + + + Target Directory + Каталог назначения + + + In directory: + В каталоге: + + AddSignalHandlerDialog @@ -256,6 +283,41 @@ The minimum API level required by the kit is %1. Удаление каталога %1 + + Android::AndroidRunConfiguration + + Activity manager start options: + Параметры запуска менеджера действий: + + + Shell commands to run on Android device before application launch. + Команды среды, запускаемые на устройстве Android до запуска приложения. + + + Shell commands to run on Android device after application quits. + Команды среды, запускаемые на устройстве Android после завершения приложения. + + + If the "am start" options conflict, the application might not start. + Если есть конфликт параметров для «am start», то приложение может не запуститься. + + + Android run settings + Настройки запуска Android + + + The project file "%1" is currently being parsed. + Идёт обработка файла проекта «%1». + + + The project file "%1" does not exist. + Файл проекта «%1» отсутствует. + + + The project file "%1" could not be parsed. + Не удалось разобрать файл проекта «%1». + + Android::Internal::AddNewAVDDialog @@ -283,6 +345,21 @@ The minimum API level required by the kit is %1. ABI: + + Android::Internal::AndroidAvdManager + + AVD Start Error + Ошибка запуска AVD + + + Emulator Tool Is Missing + Утилита эмуляции отсутствует + + + Install the missing emulator tool (%1) to the installed Android SDK. + Установите отсутствующую утилиту эмуляции (%1) в установленный Android SDK. + + Android::Internal::AndroidCreateKeystoreCertificate @@ -817,33 +894,6 @@ Do you want to uninstall the existing package? Android - - Android::Internal::AndroidRunConfigurationWidget - - Form - - - - Activity manager start options: - Параметры запуска менеджера действий: - - - If the "am start" options conflict, the application might not start. - Если есть конфликт параметров для «am start», то приложение может не запуститься. - - - Shell commands to run on Android device before application launch. - Команды среды запускаемые на устройстве Android до запуска приложения. - - - Shell commands to run on Android device after application quits. - Команды среды запускаемые на устройстве Android после завершения приложения. - - - Android run settings - Настройки запуска Android - - Android::Internal::AndroidRunner @@ -857,22 +907,38 @@ Do you want to uninstall the existing package? No free ports available on host for QML debugging. Нет свободных портов на компьютере для отладки QML. + + Failed to get process path. Reason: %1. + Не удалось получить путь процесса. Причина: %1. + + + Cannot find C++ debugger. + Не удалось найти отладчик C++. + + + Failed to start C++ debugger. + Не удалось запустить отладчик C++. + + + Failed to forward jdb debugging ports. Reason: %1. + Не удалось перенаправить отладочные порты jdb. Причина: %1. + + + Failed to start jdb + Не удалось запустить jdb + + + Cannot attach jdb to the running application + Не удалось подключить jdb к работающему приложению + "%1" died. «%1» аварийно завершился. - - Unable to start "%1". - Не удалось запустить «%1». - Failed to forward C++ debugging ports. Reason: %1. Не удалось пробросить порты отладки С++: %1. - - Failed to forward ping pong ports. Reason: %1. - Не удалось пробросить порты ping pong: %1. - Failed to forward QML debugging ports. Reason: %1. Не удалось пробросить порты отладки QML: %1. @@ -881,10 +947,6 @@ Do you want to uninstall the existing package? Failed to start the activity. Reason: %1. Не удалось запустить activity: %1. - - Failed to contact debugging port. - Не удалось подключиться к порту отладки. - Android::Internal::AndroidSdkManager @@ -1338,10 +1400,6 @@ Install an SDK of at least API version %1. AndroidBuildApkWidget - - Form - - Sign package Подписывание пакета @@ -1490,10 +1548,6 @@ Install an SDK of at least API version %1. AndroidDeployQtWidget - - Form - Форма - Clean Temporary Libraries Directory on Device Очистить временный каталог на устройстве @@ -1515,13 +1569,6 @@ Install an SDK of at least API version %1. Удалять предыдущий пакет - - AndroidPackageInstallationFactory - - Deploy to device - Установка на устройство - - AndroidSdkManager @@ -1722,6 +1769,18 @@ Install an SDK of at least API version %1. Alt+Shift+T,Alt+R Alt+Shift+T,Alt+R + + Run Tests for Current &File + Запустить тесты для текущего &файла + + + Run Tests for Current File + Запуск тестов для текущего файла + + + Alt+Shift+T,Alt+F + Alt+Shift+T,Alt+F + Re&scan Tests &Пересканировать @@ -1730,9 +1789,29 @@ Install an SDK of at least API version %1. Alt+Shift+T,Alt+S Alt+Shift+T,Alt+S + + &Run Test Under Cursor + &Запустить тест под курсором + + + &Debug Test Under Cursor + &Отладить тест под курсором + + + Selected test was not found (%1). + Не удалось найти выбранный тест (%1). + Autotest::Internal::GTestOutputReader + + Running tests failed. + %1 +Executable: %2 + Запущенные тесты завершились ошибкой. + %1 +Программа: %2 + (iteration %1) (итерация %1) @@ -1768,10 +1847,6 @@ Install an SDK of at least API version %1. Autotest::Internal::GTestSettingsPage - - Form - - Break on failure while debugging Останавливаться при ошибках @@ -1824,6 +1899,32 @@ Install an SDK of at least API version %1. Shuffles tests automatically on every iteration by the given seed. Перемешивает тесты автоматически на каждой итерации по заданному числу. + + Group mode: + Режим группировки: + + + Active filter: + Активный фильтр: + + + Select on what grouping the tests should be based. + Выберите основание для группировки тестов. + + + Directory + Каталог + + + GTest Filter + Фильтр GTest + + + Set the GTest filter to be used for grouping. +See Google Test documentation for further information on GTest filters. + Задайте фильтр GTest для группировки. +Информацию о GTest фильтрах смотрите в документации Google Test. + Autotest::Internal::QtTestOutputReader @@ -1855,6 +1956,10 @@ Install an SDK of at least API version %1. QTest version: %1 Версия QTest: %1 + + XML parsing failed. + Не удалось разобрать XML. + Test function finished. Тестовая функция завершена. @@ -1874,10 +1979,6 @@ Install an SDK of at least API version %1. Autotest::Internal::QtTestSettingsPage - - Form - - Enables interrupting tests on assertions. Влючение прерывания тестов на утверждениях. @@ -2254,7 +2355,7 @@ Check the test environment. No test cases left for execution. Canceling test run. - Не осталось больше тестов для запуска. Запуск отменён. + Не осталось больше тестов для запуска. Выполнение теста отменяется. Could not find command "%1". (%2) @@ -2266,9 +2367,13 @@ Maybe raise the timeout? Текст был отменён по таймауту. Может его увеличить? + + Current kit has changed. Canceling test run. + Изменился текущий комплект. Выполнение теста отменяется. + No tests selected. Canceling test run. - Тесты не выбраны. Отмена теста. + Тесты не выбраны. Выполнение теста отменяется. Project is null. Canceling test run. @@ -2278,7 +2383,11 @@ Only desktop kits are supported. Make sure the currently active kit is a desktop Project is not configured. Canceling test run. - Проект не настроен. Отмена теста. + Проект не настроен. Выполнение теста отменяется. + + + Startup project has changed. Canceling test run. + Изменился запускающий проект. Выполнение теста отменяется. Running Tests @@ -2300,15 +2409,11 @@ Only desktop kits are supported. Make sure the currently active kit is a desktop Build failed. Canceling test run. - Сборка не удалась. Отмена теста. + Сборка не удалась. Выполнение теста отменяется. Autotest::Internal::TestSettingsPage - - Form - - General Основное @@ -2641,26 +2746,23 @@ Warning: this is an experimental feature and might lead to failing to execute th Копия %1 - - BareMetal::Internal::BareMetalCustomRunConfigWidget - - Executable: - Программа: - - - Work directory: - Рабочий каталог: - - BareMetal::Internal::BareMetalCustomRunConfiguration + + Unknown + Неизвестно + + + Custom Executable) + Особое приложение + The remote executable must be set in order to run a custom remote run configuration. Для запуска внешнего приложения его необходимо задать. - Custom Executable (on GDB server or hardware debugger) - Особое приложение (через сервер GDB или аппаратный отладчик) + Custom Executable + Особая программа @@ -2669,6 +2771,10 @@ Warning: this is an experimental feature and might lead to failing to execute th Cannot debug: Kit has no device. Отладка невозможна: отсутствует устройство в комплекте. + + No GDB server provider found for %1 + Провайдер GDB сервера для %1 не найден + Cannot debug: Local executable is not set. Отладка невозможна: локальная программа не задана. @@ -2741,40 +2847,9 @@ Warning: this is an experimental feature and might lead to failing to execute th BareMetal::Internal::BareMetalRunConfiguration - - %1 (via GDB server or hardware debugger) - %1 (через сервер GDB или аппаратный отладчик) - - - Run on GDB server or hardware debugger - Bare Metal run configuration default run name - Запуск через сервер GDB или аппаратный отладчик - - - - BareMetal::Internal::BareMetalRunConfigurationFactory - - %1 (on GDB server or hardware debugger) - %1 (через сервер GDB или аппаратный отладчик) - - - - BareMetal::Internal::BareMetalRunConfigurationWidget - - Executable: - Программа: - - - <default> - <по умолчанию> - - - Working directory: - Рабочий каталог: - Unknown - Неизвестное + Неизвестно @@ -3373,10 +3448,6 @@ Local commits are not pushed to the master branch until a normal commit is perfo Bazaar::Internal::OptionsPage - - Form - - Configuration Настройка @@ -3631,10 +3702,6 @@ For example, "Revision: 15" will leave the branch at revision 15. Beautifier::Internal::ArtisticStyle::ArtisticStyleOptionsPage - - Form - - Configuration Настройка @@ -3761,10 +3828,6 @@ For example, "Revision: 15" will leave the branch at revision 15. Beautifier::Internal::ClangFormat::ClangFormatOptionsPage - - Form - - Configuration Настройка @@ -3826,10 +3889,6 @@ For example, "Revision: 15" will leave the branch at revision 15. Beautifier::Internal::ConfigurationPanel - - Form - - Edit Изменить @@ -3853,10 +3912,6 @@ For example, "Revision: 15" will leave the branch at revision 15. Beautifier::Internal::GeneralOptionsPage - - Form - - Automatic Formatting on File Save Автоматическое форматирование при сохранении @@ -3895,10 +3950,6 @@ For example, "Revision: 15" will leave the branch at revision 15. Beautifier::Internal::Uncrustify::UncrustifyOptionsPage - - Form - - Configuration Настройка @@ -3972,7 +4023,7 @@ For example, "Revision: 15" will leave the branch at revision 15. - BinEditor::Internal::BinEditorPlugin + BinEditor::Internal::BinEditorPluginPrivate &Undo &Отменить @@ -4598,6 +4649,10 @@ For example, "Revision: 15" will leave the branch at revision 15.No cmake tool set. Программа cmake не указана. + + No compilers set in kit. + У комплекта не заданы компиляторы. + Scan "%1" project tree Сканирование дерева проекта «%1» @@ -4705,6 +4760,10 @@ For example, "Revision: 15" will leave the branch at revision 15.Failed to create temporary directory "%1". Не удалось создать временный каталог «%1». + + The kit needs to define a CMake tool to parse this project. + В комплекте должна быть задана утилита CMake для разбора этого проекта. + CMakeCache.txt file not found. Не удалось найти файл CMakeCache.txt. @@ -5057,28 +5116,43 @@ For example, "Revision: 15" will leave the branch at revision 15. CMakeProjectManager::Internal::CMakeRunConfiguration - - Run CMake kit - Запуск комплекта CMake - The project no longer builds the target associated with this run configuration. Проект больше не собирает цель, ассоциированную с ним в конфигурации запуска. - CMakeProjectManager::Internal::CMakeRunConfigurationWidget + CMakeProjectManager::Internal::CMakeSettingsPage - Executable: - Программа: - - - <unknown> - <неизвестная> + CMake + CMake - CMakeProjectManager::Internal::CMakeSettingsPage + CMakeProjectManager::Internal::CMakeSpecificSettingForm + + Determines whether file paths are copied to the clipboard for pasting to the CMakeLists.txt file when you add new files to CMake projects. + Определяет, будут ли копироваться в буфер обмена пути файлов для вставки в файл CMakeLists.txt при добавлении их в проект CMake. + + + Adding Files + Добавление файлов + + + Ask about copying file paths + Спрашивать о копировании файловых путей + + + Do not copy file paths + Не копировать + + + Copy file paths + Копировать + + + + CMakeProjectManager::Internal::CMakeSpecificSettingsPage CMake CMake @@ -5322,17 +5396,6 @@ For example, "Revision: 15" will leave the branch at revision 15.Слишком много параметров - - CPlusPlus::OverviewModel - - <Select Symbol> - <Выберите символ> - - - <No Symbols> - <Нет символов> - - CPlusplus::CheckSymbols @@ -5404,6 +5467,17 @@ For example, "Revision: 15" will leave the branch at revision 15.Ошибка модели кода + + ClangCodeModel + + <No Symbols> + <Нет символов> + + + <Select Symbol> + <Выберите символ> + + ClangCodeModel::Internal::BackendCommunicator @@ -5419,6 +5493,13 @@ For example, "Revision: 15" will leave the branch at revision 15.Модель кода Clang: Ошибка: Программа clangbackend неожиданно завершилась и была перезапущена. + + ClangCodeModel::Internal::ClangCodeModelPlugin + + Clang Code Model + Модель кода Clang + + ClangCodeModel::Internal::ClangCompletionAssistProcessor @@ -5436,10 +5517,6 @@ For example, "Revision: 15" will leave the branch at revision 15. ClangCodeModel::Internal::ClangProjectSettingsWidget - - Warnings - Предупреждения - Clang Code Model Модель кода Clang @@ -5452,10 +5529,6 @@ For example, "Revision: 15" will leave the branch at revision 15.Custom Особые - - General - Основное - Parse templates in a MSVC-compliant way. This helps to parse headers for example from Active Template Library (ATL) or Windows Runtime Library (WRL). However, using the relaxed and extended rules means also that no highlighting/completion can be provided within template functions. @@ -5478,22 +5551,49 @@ However, using the relaxed and extended rules means also that no highlighting/co ClangDiagnosticConfigsModel - Warnings for questionable constructs - Предупреждать о сомнительных конструкциях + Clang-only checks for questionable constructs + Проверки Clang для сомнительных конструкций - Pedantic Warnings - Педантичные предупреждения + Clang-only pedantic checks + Педантичные проверки Clang - Warnings for almost everything - Предупреждать обо всём + Clang-only checks for almost everything + Проверки Clang для всего + + + Clang-Tidy thorough checks + Тщательные проверки Clang-Tidy + + + Clang-Tidy static analyzer checks + Проверки статическим анализатором Clang-Tidy + + + Clazy level0 checks + Проверки Clazy level0 + + + Clang-Tidy and Clazy preselected checks + Выбранные проверки Clang-Tidy и Clazy %1 [built-in] %1 [встроенный] + + ClangDiagnosticWidget + + Clazy Issue + Проблема Clazy + + + Clang-Tidy Issue + Проблема Clang-Tidy + + ClangHoverHandler @@ -5513,16 +5613,18 @@ However, using the relaxed and extended rules means also that no highlighting/co - ClangStaticAnalyzer + ClangTools::ClangToolsBasicSettings - The chosen file "%1" seems to point to an icecc binary not suitable for analyzing. -Please set a real Clang executable. - Кажется, выбранный файл «%1» указывает на программу icecc непригодную для анализа. -Укажите реальный исполняемый файл Clang. + Form + + + + Build the project before analysis + Собирать проект перед анализом - ClangStaticAnalyzer::Diagnostic + ClangTools::Diagnostic Category: Категория: @@ -5531,6 +5633,10 @@ Please set a real Clang executable. Type: Тип: + + Description: + Описание: + Context: Контекст: @@ -5541,7 +5647,7 @@ Please set a real Clang executable. - ClangStaticAnalyzer::ExplainingStep + ClangTools::ExplainingStep Message: Сообщение: @@ -5556,147 +5662,81 @@ Please set a real Clang executable. - ClangStaticAnalyzer::Internal::ClangStaticAnalyzerConfigWidget + ClangTools::Internal::ClangTidyClazyRunner - Form - - - - General - Основное - - - Clang executable: - Исполняемый файл Clang: - - - Simultaneous processes: - Одновременных процессов: - - - Clang Command - Команда Clang - - - Version: %1, supported. - Версия: %1, поддерживается. - - - Version: %1, unsupported (supported version is %2). - Версия: %1, не поддерживается (поддерживается %2). - - - Version: Could not determine version. - Версия: не удалось определить версию. - - - Version: Set valid executable first. - Версия: сначала задайте корректную программу. - - - TextLabel - + Clang-Tidy and Clazy + Clang-Tidy и Clazy - ClangStaticAnalyzer::Internal::ClangStaticAnalyzerDiagnosticModel + ClangTools::Internal::ClangTidyClazyTool - Issue - Проблема + Clang-Tidy and Clazy Issues + Проблемы Clang-Tidy и Clazy - Location - Размещение + Go to previous diagnostic. + Перейти к предыдущей диагностике. + + + Go to next diagnostic. + Перейти к следующей диагностике. + + + Apply Fixits + Исправить + + + Clang-Tidy and Clazy use a customized Clang executable from the Clang project to search for errors and warnings. + Clang-Tidy и Clazy используют модифицированную программу Clang из проекта Clang для поиска ошибок и предупреждений. + + + Clang-Tidy and Clazy + Clang-Tidy и Clazy + + + Clang-Tidy and Clazy... + Clang-Tidy и Clazy... + + + Clang-Tidy and Clazy tool stopped by user. + Утилиты Clang-Tidy и Clazy остановлены пользователем. + + + Clang-Tidy and Clazy are still running. + Clang-Tidy и Clazy ещё работают. + + + Start Clang-Tidy and Clazy. + Запуск Clang-Tidy и Clazy. + + + This is not a C++ project. + Это не проект на языке C++. + + + Clang-Tidy and Clazy are running. + Clang-Tidy и Clazy работают. + + + Clang-Tidy and Clazy finished. + Clang-Tidy и Clazy завершились. + + + No issues found. + Проблем не найдено. + + + %n issues found. + + Найдена %n проблема. + Найдено %n проблемы. + Найдено %n проблем. + - ClangStaticAnalyzer::Internal::ClangStaticAnalyzerDiagnosticView - - Suppress This Diagnostic - Подавить эту диагностику - - - - ClangStaticAnalyzer::Internal::ClangStaticAnalyzerLogFileReader - - File is not a plist version 1.0 file. - Файл не является plist версии 1.0. - - - Expected a string element. - Ожидается строковый элемент. - - - Expected an array element. - Ожидается элемент типа массив. - - - Expected an integer element. - Ожидается целочисленный элемент. - - - - ClangStaticAnalyzer::Internal::ClangStaticAnalyzerOptionsPage - - Clang Static Analyzer - Статический анализатор Clang - - - - ClangStaticAnalyzer::Internal::ClangStaticAnalyzerPlugin - - Clang Static Analyzer - Статический анализатор Clang - - - - ClangStaticAnalyzer::Internal::ClangStaticAnalyzerRunner - - An error occurred with the Clang Static Analyzer process. - Возникла ошибка при статическом анализе Clang. - - - Clang Static Analyzer crashed. - Статический анализ Clang аварийно завершился. - - - Clang Static Analyzer finished with exit code: %1. - Статический анализ Clang завершился с кодом %1. - - - Command line: %1 -Process Error: %2 -Output: -%3 - Командная строка: %1 -Ошибка: %2 -Вывод: -%3 - - - - ClangStaticAnalyzer::Internal::ClangStaticAnalyzerTool - - Clang Static Analyzer Issues - Если перевести буквально, то будет очень длинно - Статический анализатор Clang - - - Go to previous bug. - К предыдущей проблеме. - - - Go to next bug. - К следующей проблеме. - - - Clang Static Analyzer uses the analyzer from the Clang project to find bugs. - Статический анализатор Clang использует анализатор из проекта Clang для поиска ошибок. - - - Clang Static Analyzer - Статический анализатор Clang - + ClangTools::Internal::ClangToolRunControl Release Выпуск @@ -5710,67 +5750,20 @@ Output: <html><head/><body><p>Вы пытаетесь запустить «%1» для приложения в режиме %2. Этот инструмент разработан для использования в отладочном режиме, так как включённые утверждения могут уменьшить число ложных срабатываний.</p><p>Продолжить запуск в режиме %2?</p></body></html> - Clang Static Analyzer stopped by user. - Статический анализатор Clang остановлен пользователем. + %1: Can't find clang executable, stop. + %1: не удалось найти программу clang, остановлено. - Clang Static Analyzer is still running. - Статический анализатор Clang ещё работает. + The project configuration changed since the start of the %1. Please re-run with current configuration. + Настройки проекта изменились с момента запуска %1. Перезапустите с текущей конфигурацией. - Start Clang Static Analyzer. - Запустить статический анализатор Clang. + Running %1 on %2 + Запуск %1 на %2 - This is not a C++ project. - Это не проект на языке C++. - - - Clang Static Analyzer is running. - Статический анализатор Clang работает. - - - Clang Static Analyzer finished. - Статический анализ Clang завершён. - - - No issues found. - Проблем не найдено. - - - %n issues found (%1 suppressed). - - найдена %n проблема (%1 подавлено). - найдено %n проблемы (%1 подавлено). - найдено %n проблем (%1 подавлено). - - - - - ClangStaticAnalyzer::Internal::ClangStaticAnalyzerToolRunner - - The project configuration changed since the start of the Clang Static Analyzer. Please re-run with current configuration. - Конфигурация проекта изменилась с момента запуска статического анализатора Clang. Перезапустите его. - - - Running Clang Static Analyzer on %1 - Выполнение статического анализа Clang для %1 - - - Clang Static Analyzer: Invalid executable "%1", stop. - Статический анализатор Clang: Неверная программа «%1», остановлено. - - - Clang Static Analyzer: Running with possibly unsupported version, could not determine version from executable "%1". - Статический анализатор Clang: возможно, работа с неподдерживаемой версией, так как её не удалось определить из программы «%1». - - - Clang Static Analyzer: Running with unsupported version %1, supported version is %2. - Статический анализатор Clang: работа с неподдерживаемой версией %1; поддерживается %2. - - - Clang Static Analyzer: Failed to create temporary dir, stop. - Статический анализатор Clang: Не удалось создать временный каталог, остановлено. + : Failed to create temporary dir, stop. + : не удалось создать временный каталог, остановлено. Analyzing @@ -5785,42 +5778,115 @@ Output: Не удалось проанализировать «%1»: %2 - Clang Static Analyzer finished: Processed %1 files successfully, %2 failed. - Работа статического анализатора Clang завершена: Успешно обработано %1 файлов и %2 не удалось. + finished: Processed %1 files successfully, %2 failed. + завершено: успешно обработано %1 файл(ов) и %2 обработать не удалось. - Clang Static Analyzer: Not all files could be analyzed. - Статический анализатор Clang: Не все файлы удалось проанализовать. + : Not all files could be analyzed. + : не все файлы возможно проанализировать. - ClangStaticAnalyzer::Internal::LogFileReader + ClangTools::Internal::ClangToolRunner - File "%1" does not exist or is not readable. - Файл «%1» не существует или не читается. + An error occurred with the %1 process. + У процесса %1 возникла ошибка. - Could not read file "%1": UnexpectedElementError. - Не удалось прочитать файл «%1»: UnexpectedElementError. + %1 crashed. + %1 аварийно завершился. - Could not read file "%1": CustomError. - Не удалось прочитать файл «%1»: CustomError. + %1 finished with exit code: %2. + %1 завершился с кодом %2. - Could not read file "%1": NotWellFormedError. - Не удалось прочитать файл «%1»: NotWellFormedError. - - - Could not read file "%1": PrematureEndOfDocumentError. - Не удалось прочитать файл «%1»: PrematureEndOfDocumentError. + Command line: %1 +Process Error: %2 +Output: +%3 + Командная строка: %1 +Ошибка: %2 +Вывод: +%3 - ClangStaticAnalyzer::Internal::ProjectSettingsWidget + ClangTools::Internal::ClangToolsConfigWidget - Form - + General + Основное + + + Simultaneous processes: + Одновременных процессов: + + + + ClangTools::Internal::ClangToolsDiagnosticModel + + Issue + Проблема + + + Location + Размещение + + + Fixit Status + Состояние исправления + + + No Fixits + Нет исправлений + + + Not Scheduled + Не запланировано + + + Invalidated + Аннулировано + + + Scheduled + Запланировано + + + Failed to Apply + Не удалось применить + + + Applied + Применено + + + + ClangTools::Internal::ClangToolsOptionsPage + + Clang Tools + Инструменты Clang + + + + ClangTools::Internal::ClangToolsPlugin + + Clang Tools + Инструменты Clang + + + + ClangTools::Internal::DiagnosticView + + Suppress This Diagnostic + Подавить эту диагностику + + + + ClangTools::Internal::ProjectSettingsWidget + + Suppressed diagnostics: + Подавляемые диагностики: Remove Selected @@ -5830,13 +5896,40 @@ Output: Remove All Удалить всё + + + ClangTools::Internal::SelectableFilesDialog - Suppressed diagnostics: - Подавляемые диагностики: + Analyzer Configuration + Конфигурация анализатора + + + General + Основное + + + Global Settings + Глобальные настройки + + + Custom Settings + Особые настройки + + + Files to Analyze + Анализируемые файлы + + + Files outside of the base directory + Файлы вне базового каталога + + + Analyze + Анализировать - ClangStaticAnalyzer::Internal::SuppressedDiagnosticsModel + ClangTools::Internal::SuppressedDiagnosticsModel File Файл @@ -6496,10 +6589,6 @@ Output: CodePaster::Internal::FileShareProtocolSettingsWidget - - Form - - The fileshare-based paster protocol allows for sharing code snippets using simple files on a shared network drive. Files are never deleted. Протокол на базе общих файлов позволяет публиковать фрагменты кода используя обычные файлы на общем сетевом диске. Файлы никогда не удаляются. @@ -6519,10 +6608,6 @@ Output: CodePaster::Internal::PasteBinComSettingsWidget - - Form - - <a href="http://pastebin.com">pastebin.com</a> allows for sending posts to custom subdomains (eg. creator.pastebin.com). Fill in the desired prefix. <a href="http://pastebin.com">pastebin.com</a> позволяет отправлять данные на пользовательские субдомены (например, creator.pastebin.com). Поэтому укажите желаемый префикс. @@ -6644,6 +6729,14 @@ p, li { white-space: pre-wrap; } CodePaster::NetworkProtocol + + Pasting needs authentication.<br/>Enter your identity credentials to continue. + Вставка требует авторизации.<br/>Для продолжения введите ваши реквизиты. + + + Authenticate for Paster + Авторизация для Paster + Checking connection Проверка соединения @@ -6776,10 +6869,6 @@ p, li { white-space: pre-wrap; } ContextPaneWidgetBorderImage - - Form - Форма - 10 x 10 @@ -6807,10 +6896,6 @@ p, li { white-space: pre-wrap; } ContextPaneWidgetImage - - Form - Форма - 10 x 10 @@ -6842,10 +6927,6 @@ p, li { white-space: pre-wrap; } ContextPaneWidgetRectangle - - Form - Форма - Gradient Градиент @@ -7205,8 +7286,19 @@ Continue? Ctrl+Shift+F + + Core::HelpManager + + Update Documentation + Обновить документацию + + Core::ICore + + Settings... + Настройки... + (%1) (%1) @@ -7569,6 +7661,10 @@ To do this, you type this shortcut and a space in the Locator entry field, and t Core::Internal::EditorManagerPrivate + + Properties... + Свойства... + Revert File to Saved Вернуть файл к сохранённому состоянию @@ -7916,10 +8012,6 @@ Do you want to kill it? Core::Internal::ExternalToolConfig - - Form - - Add Добавить @@ -8287,6 +8379,10 @@ Do you want to kill it? Restart Required Требуется перезапуск + + The high DPI settings will take effect after restart. + Настройка высокого DPI вступит в силу после перезапуска. + The language change will take effect after restart. Изменение языка вступит в силу после перезапуска. @@ -8329,6 +8425,15 @@ Do you want to kill it? Theme: Тема: + + Enable high DPI scaling + Масштабировать при большом DPI + + + High DPI scaling: + На форме полный перевод выглядит коряво + Высокий DPI: + Core::Internal::JavaScriptFilter @@ -8618,6 +8723,26 @@ Do you want to kill it? Ctrl+Meta+W Ctrl+Meta+W + + Cycle Mode Selector Styles + Зациклить стили режима выбора + + + Mode Selector Style + Стиль режима выбора + + + Icons and Text + Значки и текст + + + Icons Only + Только значки + + + Hidden + Скрыто + Ctrl+0 Ctrl+0 @@ -8634,10 +8759,6 @@ Do you want to kill it? Alt+Shift+0 Alt+Shift+0 - - Show Mode Selector - Показать выбор режимов - About &%1 О программе &%1 @@ -8667,10 +8788,6 @@ Do you want to kill it? About &Plugins... О &модулях... - - Settings... - Настройки... - Core::Internal::MenuBarFilter @@ -8801,10 +8918,6 @@ Do you want to kill it? Core::Internal::MimeTypeSettingsPage - - Form - - Registered MIME Types Зарегистрированные типы MIME @@ -10120,8 +10233,8 @@ to version control (%2) <b>Внимание!</b> Этот файл не является частью какого-либо проекта. Модель кода может не разобрать его корректно. - <b>Warning</b>: The code model could not parse an included file, which might lead to slow or incorrect code completion and highlighting, for example. - <b>Внимание!</b> Модель кода не сможет обрабатывать включённый файл, который может приводить к замедлению или неверному дополнению кода и подсветки, например. + <b>Warning</b>: The code model could not parse an included file, which might lead to incorrect code completion and highlighting, for example. + <b>Внимание!</b> Модель кода не сможет обрабатывать включённый файл, который, например, может приводить к неверному дополнению кода и подсветки. @@ -10197,6 +10310,34 @@ to version control (%2) Code Model Модель кода + + Diagnostic Configurations + Конфигурации диагностики + + + C++ Symbols in Current Document + Символы C++ текущего документа + + + C++ Classes + Классы C++ + + + C++ Functions + Функции C++ + + + All Included C/C++ Files + Все подключённые файлы С/С++ + + + C++ Classes, Enums and Functions + Классы, перечисления и функции C++ + + + C++ Symbols + Символы C++ + C++ C++ @@ -10215,21 +10356,28 @@ to version control (%2) CppTools::ClangBaseChecks - - Form - - For appropriate options, consult the GCC or Clang manual pages or the <a href="https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html">GCC online documentation</a>. Описание параметров можно найти страницах man GCC или Clang или в <a href="https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html">Документации GCC</a>. - CppTools::ClangDiagnosticConfigsWidget + CppTools::ClangDiagnosticConfigsSelectionWidget - Form - + Diagnostic Configuration: + Конфигурация диагностики: + + Manage... + Управление... + + + Diagnostic Configurations + Конфигурации диагностики + + + + CppTools::ClangDiagnosticConfigsWidget Copy... Копировать... @@ -10258,6 +10406,14 @@ to version control (%2) Copy this configuration to customize it. Изменить можно только копию этой конфигурации. + + Edit Checks as String... + Изменить проверки... + + + View Checks as String... + Посмотреть проверки... + Configuration passes sanity checks. Конфигурация прошла предпроверку. @@ -10266,6 +10422,10 @@ to version control (%2) %1 %1 + + Checks + Проверки + Clang Clang @@ -10289,10 +10449,6 @@ to version control (%2) CppTools::ClazyChecks - - Form - - Each level adds checks to the previous level. For more information, see <a href="https://github.com/KDE/clazy">clazy's homepage</a>. Каждый уровень добавляет проверки к предыдущему. Подробнее на <a href="https://github.com/KDE/clazy">домашней странице clazy</a>. @@ -10322,13 +10478,6 @@ to version control (%2) Уровень 3: экспериментальные проверки - - CppTools::CppClassesFilter - - C++ Classes - Классы C++ - - CppTools::CppEditorOutline @@ -10365,10 +10514,6 @@ to version control (%2) CppTools::Internal::CppCodeModelSettingsPage - - Form - - <i>The Clang Code Model is enabled because the corresponding plugin is loaded.</i> <i>Модель кода Clang включена, так как соответствующий модуль загружен.</i> @@ -10402,16 +10547,12 @@ to version control (%2) Игнорировать прекомпилированные заголовки - Clang Diagnostics - Диагностика Clang + Clang Code Model + Модель кода Clang CppTools::Internal::CppCodeStyleSettingsPage - - Form - - General Основное @@ -10645,13 +10786,6 @@ if (a && Предпочитать имена геттеров без «get» - - CppTools::Internal::CppCurrentDocumentFilter - - C++ Symbols in Current Document - Символы C++ текущего документа - - CppTools::Internal::CppFileSettingsPage @@ -10791,27 +10925,6 @@ These prefixes are used in addition to current file name on Switch Header/Source Использование макросов C++: - - CppTools::Internal::CppFunctionsFilter - - C++ Functions - Функции C++ - - - - CppTools::Internal::CppIncludesFilter - - All Included C/C++ Files - Все подключённые файлы С/С++ - - - - CppTools::Internal::CppLocatorFilter - - C++ Classes, Enums and Functions - Классы, перечисления и функции C++ - - CppTools::Internal::CppToolsPlugin @@ -10845,10 +10958,6 @@ These prefixes are used in addition to current file name on Switch Header/Source CppTools::Internal::SymbolsFindFilter - - C++ Symbols - Символы C++ - Searching for Symbol Поиск символа @@ -10925,6 +11034,17 @@ Flags: %3 Все файлы + + CppTools::OverviewModel + + <Select Symbol> + <Выберите символ> + + + <No Symbols> + <Нет символов> + + CppTools::QuickFix @@ -11055,8 +11175,27 @@ Flags: %3 CppTools::TidyChecks - Form - + Disable + Отключено + + + Select Checks + Выбранные проверки + + + Use .clang-tidy config file + Использовать файл .clang-tidy + + + Edit Checks as String... + Изменить проверки... + + + + CppTools::TidyChecksTreeModel + + Web Page + Вэб-страница @@ -12034,19 +12173,35 @@ Flags: %3 Disable Selected Breakpoints - Деактивировать выбранные точки останова + Выключить выбранные точки останова Enable Selected Breakpoints - Активировать выбранные точки останова + Включить выбранные точки останова Disable Breakpoint - Деактивировать точку останова + Выключить точку останова Enable Breakpoint - Активировать точку останова + Включить точку останова + + + Disable Selected Locations + Выключить выбранные места + + + Enable Selected Locations + Включить выбранные места + + + Disable Location + Выключить место + + + Enable Location + Включить место Delete All Breakpoints @@ -14496,11 +14651,11 @@ In this case, the value should be increased. Команда: - Note: This log contains possibly confidential information about your machine, environment variables, in-memory data of the processes you are debugging, and more. It is never transferred over the internet by %1, and only stored to disk if you manually use the respective option from the context menu, or through mechanisms that are not under the control of %1, for instance in swap files. + Note: This log contains possibly confidential information about your machine, environment variables, in-memory data of the processes you are debugging, and more. It is never transferred over the internet by %1, and only stored to disk if you manually use the respective option from the context menu, or through mechanisms that are not under the control of %1's Debugger plugin, for instance in swap files, or other plugins you might use. You may be asked to share the contents of this log when reporting bugs related to debugger operation. In this case, make sure your submission does not contain data you do not want to or you are not allowed to share. - Замечание: Этот журнал может содержать конфиденциальную информацию о вашей машине, переменных среды, данных из памяти отлаживаемых процессов и пр. %1 никогда не передаёт его по сети Internet, а только сохраняет на диск, при использовании соответствующей опции контекстного меню или через неподконтрольный %1 механизм, например, файл подкачки. + Замечание: Этот журнал может содержать конфиденциальную информацию о вашей машине, переменных среды, данных из памяти отлаживаемых процессов и пр. %1 никогда не передаёт его по сети Internet, а только сохраняет на диск, при использовании соответствующей опции контекстного меню или через неподконтрольный механизм модуля отладчика %1, например, файл подкачки или другие используемые модули. Вас могут попросить поделиться журналом при сообщении об ошибках при отладке. В этом случае убедитесь, что отправляемое содержимое не содержит данных, которые публиковать недопустимо. @@ -17363,6 +17518,73 @@ will also disable the following plugins: Не обрабатывать некоторые нажатия клавиш в режиме вставки, чтобы код мог корректно завершаться и дополняться. + + FilePropertiesDialog + + File Properties + Свойства файла + + + Owner: + Владелец: + + + Group: + Группа: + + + Size: + Размер: + + + Name: + Имя: + + + Path: + Путь: + + + Last read: + Прочитан: + + + Last modified: + Изменён: + + + Readable: + Можно читать: + + + Writable: + Можно писать: + + + Executable: + Можно запускать: + + + Symbolic link: + Символьная ссылка: + + + MIME type: + Тип MIME: + + + Default editor: + Редактор по-умолчанию: + + + Undefined + Неопределён + + + %1 Bytes + %1 байт + + FileResourcesModel @@ -17381,6 +17603,25 @@ will also disable the following plugins: Имя шаблона: + + FlameGraphView + + others + другие + + + unknown + неизвестно + + + No data available + Нет данных + + + Visualize %1 + Отобразить %1 + + FlickableSection @@ -17534,13 +17775,6 @@ when they are not required, which will improve performance in most cases.Неиспользуемая переменная - - Form - - Form - - - FormEditorW @@ -17665,9 +17899,27 @@ when they are not required, which will improve performance in most cases.Google Test Google Test + + Enable or disable grouping of test cases by folder or gtest filter. +See also Google Test settings. + Включение или выключение группировки тестов по каталогу или фильтру GTest. +Смотрите также настройки Google Test. + GTestTreeItem + + <matching> + <совпадает> + + + <not matching> + <не совпадает> + + + Change GTest filter in use inside the settings. + Изменить используемый в настройках фильтр GTest. + parameterized параметрический @@ -17778,7 +18030,7 @@ when they are not required, which will improve performance in most cases. - GenericProjectManager::Internal::GenericProjectPlugin + GenericProjectManager::Internal::GenericProjectPluginPrivate Edit Files... Изменить файлы... @@ -18118,6 +18370,10 @@ were not verified among remotes in %3. Select different folder? Number of commits between %1 and %2: %3 Число фиксаций между %1 и %2: %3 + + Are you sure you selected the right target branch? + Уверены, что выбрали правильную целевую ветку? + Checked - Mark change as WIP. Unchecked - Mark change as ready for review. @@ -18334,46 +18590,6 @@ Would you like to terminate it? Включать ветки и метки, неактивные %n дней и более. - - Checkout - Смена ветки - - - Checkout branch? - Сменить ветку? - - - Would you like to delete the tag "%1"? - Удалить метку «%1»? - - - Would you like to delete the branch "%1"? - Удалить ветку «%1»? - - - Would you like to delete the <b>unmerged</b> branch "%1"? - Удалить <b>неуправляемую</b> ветку «%1»? - - - Delete Branch - Удалить ветку - - - Delete Tag - Удалить метку - - - Rename Tag - Переименовать метку - - - Git Reset - Git: Сброс изменений - - - Hard reset branch "%1" to "%2"? - Сбросить полностью ветку «%1» до состояния «%2»? - Fast-Forward Быстрая промотка @@ -18466,6 +18682,49 @@ Would you like to terminate it? Метки + + Git::Internal::BranchUtils + + Checkout + Смена ветки + + + Checkout branch? + Сменить ветку? + + + Would you like to delete the tag "%1"? + Удалить метку «%1»? + + + Would you like to delete the branch "%1"? + Удалить ветку «%1»? + + + Would you like to delete the <b>unmerged</b> branch "%1"? + Удалить <b>неуправляемую</b> ветку «%1»? + + + Delete Tag + Удалить метку + + + Delete Branch + Удалить ветку + + + Rename Tag + Переименовать метку + + + Git Reset + Git: Сброс изменений + + + Hard reset branch "%1" to "%2"? + Сбросить полностью ветку «%1» до состояния «%2»? + + Git::Internal::ChangeSelectionDialog @@ -18742,10 +19001,6 @@ Commit now? и ещё %n - - <None> - <Нет> - No changes found. Изменений не найдено. @@ -19004,6 +19259,13 @@ Commit now? Отменить + + Git::Internal::GitDiffEditorController + + <None> + <Нет> + + Git::Internal::GitEditorWidget @@ -20399,10 +20661,6 @@ Add, modify, and remove document filters, which determine the documentation set Save File Сохранить файл - - Form - Форма - Font Шрифт @@ -20844,6 +21102,184 @@ Add, modify, and remove document filters, which determine the documentation set Отрыть ссылку в окне + + HeobData + + Process %1 + Процесс %1 + + + Process finished with exit code %1 (0x%2). + Процесс завершился с кодом %1 (0x%2). + + + Unknown argument: -%1 + Неизвестный параметр: -%1 + + + Cannot create target process. + Не удалось создать целевой процесс. + + + Wrong bitness. + Неверная разрядность. + + + Process killed. + Процесс уничтожен. + + + Only works with dynamically linked CRT. + Работает только с динамически подключаемой CRT. + + + Process stopped with unhandled exception code 0x%1. + Процесс остановлен из-за необработанного исключения с кодом 0x%1. + + + Not enough memory to keep track of allocations. + Недостаточно памяти для сохранения истории выделений. + + + Application stopped unexpectedly. + Приложение неожиданно остановилось. + + + Extra console. + Допольнительная консоль. + + + Unknown exit reason. + Неизвестная причина завершения. + + + Heob stopped unexpectedly. + Heob неожиданно остановился. + + + Heob: %1 + Heob: %1 + + + Heob: Failure in process attach handshake (%1). + Heob: не удалось выполнить рукопожание при подключении к процессу (%1). + + + + HeobDialog + + XML output file: + Выходной файл XML: + + + Handle exceptions: + Обрабатывать исключения: + + + Off + Откл. + + + On + Вкл. + + + Only + Только + + + Page protection: + Защита страниц: + + + After + Перед + + + Before + После + + + Freed memory protection + Защита освобождённой памяти + + + Raise breakpoint exception on error + Кидать исключение (точка останова) при ошибке + + + Leak details: + Подробности об утечке: + + + None + Нет + + + Simple + Простые + + + Detect Leak Types + Определять типы утечек + + + Detect Leak Types (Show Reachable) + Определять типы утечек (показывать доступные) + + + Fuzzy Detect Leak Types + Нечётко определять типы утечек + + + Fuzzy Detect Leak Types (Show Reachable) + Нечётко определять типы утечек (показывать доступные) + + + Minimum leak size: + Минимальный размер утечки: + + + Control leak recording: + Управление записью утечек: + + + On (Start Disabled) + Вкл. (отключён старт) + + + On (Start Enabled) + Вкл. (включён старт) + + + Run with debugger + Запускать с отладчиком + + + Extra arguments: + Доп. параметры: + + + Heob path: + Путь к Heob: + + + The location of heob32.exe and heob64.exe. + Размещение heob32.exe и heob64.exe. + + + Save current settings as default. + Сохранить текущие настройки как настройки по умолчанию. + + + OK + OK + + + Heob + Heob + + ImageSpecifics @@ -20922,6 +21358,10 @@ Would you like to overwrite it? Export Image Экспорт изображения + + Export a Series of Images from %1 (%2x%3 + Экспорт наборов изображений из %1 (%2x%3) + Could not write file "%1". Не удалось записать файл «%1». @@ -20987,6 +21427,10 @@ Would you like to overwrite it? Export Image Экспортировать изображение + + Export Multiple Images + Экспортировать несколько изображений + ImageViewer::Internal::ImageViewerToolbar @@ -21018,6 +21462,65 @@ Would you like to overwrite it? Export as Image Экспортировать как изображение + + Export Images of Multiple Sizes + Экспортировать многоразмерные изображения + + + + ImageViewer::Internal::MultiExportDialog + + Enter a file name containing place holders %1 which will be replaced by the width and height of the image, respectively. + Введите имя файла, содержащее метки %1, которые будут заменены соответственно на ширину и высоту изображения. + + + File: + Файл: + + + Clear + Очистить + + + Set Standard Icon Sizes + Задать стандартные размеры значков + + + Generate Sizes + Создать размеры + + + A comma-separated list of size specifications of the form "<width>x<height>". + Список размеров разделённых запятыми в форме «<ширина>x<высота>». + + + Sizes: + Размеры: + + + Please specify some sizes. + Укажите какие-нибудь размеры. + + + Invalid size specification: %1 + Неверный размер: %1 + + + The file name must contain one of the placeholders %1, %2. + Имя файла должно содержать одну из меток %1, %2. + + + The file %1 already exists. +Would you like to overwrite it? + Файл %1 уже существует. +Перезаписать его? + + + The files %1 already exist. +Would you like to overwrite them? + Файлы %1 уже существуют. +Перезаписать их? + ImportManagerComboBox @@ -21074,10 +21577,6 @@ Ids must begin with a lowercase letter. Ios::Internal::IosBuildSettingsWidget - - Form - - Reset Сбросить @@ -21197,7 +21696,7 @@ Ids must begin with a lowercase letter. - Ios::Internal::IosDeployConfigurationFactory + Ios::Internal::IosDeployConfiguration Deploy on iOS Установка на iOS @@ -21241,13 +21740,6 @@ Ids must begin with a lowercase letter. Установка на устройство или эмулятор iOS - - Ios::Internal::IosDeployStepWidget - - Form - - - Ios::Internal::IosDevice @@ -21383,10 +21875,6 @@ Ids must begin with a lowercase letter. Executable: Программа: - - iOS run settings - Настройки запуска iOS - Ios::Internal::IosRunSupport @@ -21954,6 +22442,13 @@ Error: %5 Быстрый поиск + + LogFileReader + + File "%1" does not exist or is not readable. + Файл «%1» не существует или не читается. + + Macros @@ -21989,10 +22484,6 @@ Error: %5 Macros::Internal::MacroOptionsWidget - - Form - - Preferences Настройки @@ -22671,10 +23162,6 @@ Error: %5 Mercurial::Internal::OptionsPage - - Form - Форма - Configuration Настройка @@ -23123,11 +23610,14 @@ Error: %5 - Nim::NimCompilerBuildStepConfigWidget + Nim::NimCodeStyleSettingsPage - Form - + Nim + Nim + + + Nim::NimCompilerBuildStepConfigWidget Target: Цель: @@ -23189,10 +23679,6 @@ Error: %5 Nim::NimCompilerCleanStepConfigWidget - - Form - - Working directory: Рабочий каталог: @@ -23221,6 +23707,13 @@ Error: %5 Компилятор Nim отсутствует. + + Nim::NimRunConfiguration + + Current Build Target + Цель текущей сборки + + Nim::NimSettings @@ -23304,13 +23797,6 @@ Error: %5 Этап очистки Nim - - NimRunConfiguration - - Current Build Target - Цель текущей сборки - - OpenWith::Editors @@ -24304,6 +24790,10 @@ Error: %5 The currently active run configuration's name. Имя текущей активной конфигурации запуска. + + Kits + Комплекты + ProjectExplorer::AbiWidget @@ -24587,21 +25077,13 @@ Error: %5 Could not find the executable, please specify one. Не удалось найти программу, пожалуйста, укажите путь к ней. + + Executable: + Программа: + ProjectExplorer::CustomExecutableRunConfiguration - - No executable. - Программа не задана. - - - The executable -%1 -cannot be found in the path. - Не удалось найти программу -%1 -в стандартных путях. - Custom Executable Особая программа @@ -24611,13 +25093,6 @@ cannot be found in the path. Запуск %1 - - ProjectExplorer::CustomExecutableRunConfigurationFactory - - Custom Executable - Особая программа - - ProjectExplorer::CustomWizard @@ -24778,18 +25253,15 @@ cannot be found in the path. Default DeployConfiguration display name Локальная установка - - Deploy Settings - Настройки установки - - - - ProjectExplorer::DeployConfigurationFactory Deploy Configuration Display name of the default deploy configuration Конфигурация установки + + Deploy Settings + Настройки установки + ProjectExplorer::DeploymentDataModel @@ -24804,10 +25276,6 @@ cannot be found in the path. ProjectExplorer::DeploymentDataView - - Form - - Files to deploy: Установка файлов: @@ -24826,10 +25294,6 @@ cannot be found in the path. ProjectExplorer::DesktopDeviceConfigurationWidget - - Form - Форма - Machine type: Тип машины: @@ -25113,6 +25577,29 @@ cannot be found in the path. Используется <b>%1</b> и + + ProjectExplorer::ExecutableAspect + + Executable + Программа + + + <unknown> + <неизвестно> + + + Executable: + Программа: + + + Alternate executable on device: + Сменить программу на устройстве: + + + Use this command instead + Использовать эту команду + + ProjectExplorer::GccToolChain @@ -25356,10 +25843,6 @@ Excluding: %2 ProjectExplorer::Internal::CodeStyleSettingsPropertiesPage - - Form - - Language: Язык: @@ -25415,17 +25898,6 @@ Excluding: %2 Проект «%1»: - - ProjectExplorer::Internal::CustomExecutableConfigurationWidget - - Executable: - Программа: - - - Working directory: - Рабочий каталог: - - ProjectExplorer::Internal::CustomParserConfigDialog @@ -25527,6 +25999,10 @@ Excluding: %2 Custom Parser Settings... Настроть обработчик... + + MACRO[=VALUE] + MACRO[=VALUE] + Each line defines a macro. Format is MACRO[=VALUE]. Каждая строка определяет макрос. Формат: MACRO[=VALUE]. @@ -25775,6 +26251,13 @@ Excluding: %2 Отображать правую &границу на столбце: + + ProjectExplorer::Internal::FlatModel + + No kits are enabled for this project. Enable kits in the "Projects" mode. + Для этого проекта не включены комплекты. Включите их в режиме «Проект». + + ProjectExplorer::Internal::FolderNavigationWidget @@ -25793,14 +26276,26 @@ Excluding: %2 Show Bread Crumbs Показать навигационную цепочку + + Show Folders on Top + Показывать каталоги сверху + Synchronize with Editor Согласовывать с редактором + + Synchronize Root Directory with Editor + Синхронизировать корневой каталог с редактором + The following projects failed to automatically remove the file: %1 Не удалось автоматически удалить файл из следующих проектов: %1 + + New Folder + Новая папка + Open Project in "%1" Открыть проект в «%1» @@ -25840,6 +26335,18 @@ Excluding: %2 Options Параметры + + Add New... + Добавить новый... + + + Rename... + Переименовать... + + + Remove... + Удалить... + ProjectExplorer::Internal::GccToolChainConfigWidget @@ -25918,6 +26425,14 @@ Excluding: %2 No changes to apply. Без изменений. + + Force UTF-8 MSVC compiler output + Заставить компилятор MSVC выводить сообщения в UTF-8 + + + Either switches MSVC to English or keeps the language and just forces UTF-8 output (may vary depending on the used MSVC compiler). + Или переключает MSVC на английский или, сохраняя язык, переключает вывод в режим UTF-8 (зависит от используемого компилятора). + ProjectExplorer::Internal::KitManagerConfigWidget @@ -26194,7 +26709,7 @@ Excluding: %2 Merge stderr and stdout - Объединить stderr и stdout + Объединять stderr и stdout Reset @@ -26252,6 +26767,10 @@ Excluding: %2 Limit build output to Ограничить вывод сборки + + Add linker library search paths to run environment + Добавлять каталог библиотек компоновщика в среду исполнения + ProjectExplorer::Internal::ProjectFileWizardExtension @@ -26293,6 +26812,14 @@ to project "%2". Hide Generated Files Скрыть сгенерированные файлы + + Focus Document in Project Tree + Перейти к документу в дереве проекта + + + Alt+Shift+L + Alt+Shift+L + Hide Empty Directories Скрывать пустые каталоги @@ -27734,6 +28261,10 @@ Use this only if you are prototyping. You cannot create a full application with Qt Quick Test Тест Qt Quick + + Qt 5.11 + Qt 5.11 + Qt 5.10 Qt 5.10 @@ -28222,6 +28753,13 @@ Use this only if you are prototyping. You cannot create a full application with Предупреждение: + + ProjectExplorer::KitChooser + + Kit of Active Project: %1 + Комплект активного проекта: %1 + + ProjectExplorer::KitConfigWidget @@ -28308,6 +28846,10 @@ Please close all running instances of your application before starting a build.< Project Name Имя проекта + + Kit is not valid. + Комплект неверен. + Incompatible Kit Комплект не подходит @@ -28503,18 +29045,10 @@ Please close all running instances of your application before starting a build.< Alt+Backspace Alt+Backspace - - Add New... - Добавить новый... - Add Existing Files... Добавить существующие файлы... - - Remove File... - Удалить файл... - Duplicate File... Дублировать файл... @@ -28524,10 +29058,6 @@ Please close all running instances of your application before starting a build.< Remove project from parent profile (Project explorer view); will not physically delete any files. Убрать проект... - - Rename... - Переименовать... - Set as Active Project Сделать активным проектом @@ -28776,6 +29306,10 @@ Do you want to ignore them? Add Existing Directory... Добавить существующий каталог... + + Properties... + Свойства... + Set "%1" as Active Project Сделать «%1» активным проектом @@ -28974,6 +29508,16 @@ Do you want to ignore them? Unknown error. Неизвестная ошибка. + + Run on %1 + Shown in Run configuration if no executable is given, %1 is device name + Запуск на %1 + + + %1 (on %2) + Shown in Run configuration, Add menu: "name of runnable (on device name)" + %1 (на %2) + ProjectExplorer::RunControl @@ -28993,10 +29537,6 @@ Do you want to ignore them? No executable specified. Программа не указана. - - Executable %1 does not exist. - Программа %1 отсутствует. - Starting %1... Запускается %1... @@ -29174,10 +29714,6 @@ These files are preserved. ProjectExplorer::SshDeviceProcess - - Internal error - Внутренняя ошибка - Failed to kill remote process: %1 Не удалось завершить удалённый процесс: %1 @@ -29361,6 +29897,32 @@ These files are preserved. None Нет + + Tool Chains + Инструментарии + + + + ProjectExplorer::UseDyldSuffixAspect + + Use debug version of frameworks (DYLD_IMAGE_SUFFIX=_debug) + Использовать отладочные версии библиотек (DYLD_IMAGE_SUFFIX=_debug) + + + + ProjectExplorer::UseLibraryPathsAspect + + Add build library search path to DYLD_LIBRARY_PATH and DYLD_FRAMEWORK_PATH + Добавить путь к собираемой библитеке в DYLD_LIBRARY_PATH и DYLD_FRAMEWORK_PATH + + + Add build library search path to PATH + Добавить путь к собираемой библитеке в PATH + + + Add build library search path to LD_LIBRARY_PATH + Добавить путь к собираемой библитеке в LD_LIBRARY_PATH + ProjectExplorer::UserFileHandler @@ -29466,22 +30028,19 @@ App ID: %2 PythonEditor::Internal::PythonRunConfiguration + + Interpreter: + Интерпретатор: + + + Script: + Сценарии: + Run %1 Запуск %1 - - PythonEditor::Internal::PythonRunConfigurationWidget - - Interpreter: - Интерпретатор: - - - Script: - Сценарий: - - QCoreApplication @@ -29508,12 +30067,41 @@ App ID: %2 Закрывает прицепляемый виджет + + QMessageBox + + Copy to Clipboard? + Скопировать в буфер обмена? + + + Files are not automatically added to the CMakeLists.txt file of the CMake project. +Copy the path to the source files to the clipboard? + Файл не был автоматически добавлен в CMakeList.txt проекта CMake. +Скопировать путь к исходному файлу в буфер обмена? + + QObject C++ Usages: Использование C++: + + None + Нет + + + LF + LF + + + CR + CR + + + CRLF + CRLF + QSsh::Internal::SftpChannelPrivate @@ -30170,7 +30758,7 @@ App ID: %2 Remove first - Сначала удалить + Сначала удалить Equivalent command line: @@ -30204,10 +30792,6 @@ App ID: %2 QbsProjectManager::Internal::QbsProfilesSettingsWidget - - Form - - Kit: Комплект: @@ -30271,6 +30855,10 @@ App ID: %2 Reading Project "%1" Чтение проекта «%1» + + Error retrieving run environment: %1 + Не удалось получить среду запуска: %1 + QbsProjectManager::Internal::QbsProjectManagerPlugin @@ -30359,32 +30947,6 @@ App ID: %2 Пересобрать подпроект «%1» - - QbsProjectManager::Internal::QbsRunConfiguration - - Error retrieving run environment: %1 - Не удалось получить среду запуска: %1 - - - Qbs Run Configuration - Конфигурация выполнения Qbs - - - - QbsProjectManager::Internal::QbsRunConfigurationWidget - - Add library paths to run environment - Добавить в среду исполнения пути к библиотекам - - - <unknown> - <неизвестный> - - - Executable: - Программа: - - QbsRootProjectNode @@ -30508,10 +31070,6 @@ The files in the Android package source directory are copied to the build direct QmakeAndroidSupport::Internal::QmakeAndroidBuildApkWidget - - Form - - Android Android @@ -30557,13 +31115,6 @@ The files in the Android package source directory are copied to the build direct <b>Собрать Android APK</b> - - QmakeAndroidSupport::Internal::QmakeAndroidRunConfiguration - - The .pro file "%1" is currently being parsed. - Идёт обработка файла .pro: «%1». - - QmakePriFile @@ -30608,10 +31159,6 @@ Please update your kit or choose a mkspec for qmake that matches your target env QmakeProjectManager::Internal::ClassDefinition - - Form - - The header file Заголовочный файл @@ -30834,37 +31381,6 @@ Please update your kit or choose a mkspec for qmake that matches your target env Конфигурация выполнения Qt - - QmakeProjectManager::Internal::DesktopQmakeRunConfigurationWidget - - Executable: - Программа: - - - Run on QVFb - Запускать в QVFb - - - Check this option to run the application on a Qt Virtual Framebuffer. - Включите, для запуска приложения в Qt Virtual Framebuffer. - - - Use debug version of frameworks (DYLD_IMAGE_SUFFIX=_debug) - Использовать отладочные версии библиотек (DYLD_IMAGE_SUFFIX=_debug) - - - Add build library search path to DYLD_LIBRARY_PATH and DYLD_FRAMEWORK_PATH - Добавить путь к собираемой библитеке в DYLD_LIBRARY_PATH и DYLD_FRAMEWORK_PATH - - - Add build library search path to PATH - Добавить путь к собираемой библитеке в PATH - - - Add build library search path to LD_LIBRARY_PATH - Добавить путь к собираемой библитеке в LD_LIBRARY_PATH - - QmakeProjectManager::Internal::DetailsPage @@ -31462,79 +31978,6 @@ Neither the path to the library nor the path to its includes is added to the .pr Следующий код будет добавлен в<br>файл <b>%1</b>: - - QmakeProjectManager::Internal::TestWizard - - Qt Unit Test - Юнит-тест Qt - - - Creates a QTestLib-based unit test for a feature or a class. Unit tests allow you to verify that the code is fit for use and that there are no regressions. - Создание юнит-теста основанного на QTestLib для класса или свойства. Юнит тесты позволяют проверять код на пригодность и отсутствие регрессий. - - - - QmakeProjectManager::Internal::TestWizardDialog - - This wizard generates a Qt Unit Test consisting of a single source file with a test class. - Этот мастер создаст юнит-тест Qt, содержащий один исходный файл с тестовым классом. - - - - QmakeProjectManager::Internal::TestWizardPage - - WizardPage - - - - Specify basic information about the test class for which you want to generate skeleton source code file. - Укажите основную информацию о тестовом классе, для которого желаете создать скелет исходного файла. - - - Class name: - Имя класса: - - - Test slot: - Тестовый слот: - - - Type: - Тип: - - - Test - Тест - - - Benchmark - Замер быстродействия - - - Use a test data set - Используется набор тестовых данных - - - Requires QApplication - Требуется QApplication - - - Generate initialization and cleanup code - Создать код инициализации и очистки - - - File: - Файл: - - - Test Class Information - Информация о тестовом классе - - - Details - Подробнее - - QmakeProjectManager::MakeStep @@ -31768,16 +32211,8 @@ Neither the path to the library nor the path to its includes is added to the .pr Для комплекта не задан профиль Qt. - The .pro file "%1" does not exist. - .pro-файл «%1» не существует. - - - The .pro file "%1" is not part of the project. - .pro-файл «%1» не является частью проекта. - - - The .pro file "%1" could not be parsed. - Не удалось разобрать .pro-файл «%1». + No C++ compiler set in kit. + У комплекта не задан компилятор C++. @@ -32302,10 +32737,6 @@ Neither the path to the library nor the path to its includes is added to the .pr QmlDesigner::Internal::SettingsPage - - Form - - Snapping Привязка @@ -32561,17 +32992,17 @@ Neither the path to the library nor the path to its includes is added to the .pr Add import %1 Добавить импорт %1 + + All Files (%1) + Все файлы (%1) + Add Resources Добавление ресурсов - Target Directory - Каталог назначения - - - Failed to Add File - Не удалось добавить файл + Failed to Add Files + Не удалось добавить файлы Could not add %1 to project. @@ -32819,42 +33250,22 @@ This is independent of the visibility property in QML. Delete Удалить - - Delete "%1" - Удалить «%1» - Cu&t Выре&зать - - Cut "%1" - Вырезать «%1» - &Copy &Копировать - - Copy "%1" - Копировать «%1» - &Paste В&ставить - - Paste "%1" - Удалить «%1» - Select &All Вы&делить всё - - Select All "%1" - Выделить все «%1» - Switch Text/Design Переключить текст/дизайн @@ -33791,10 +34202,6 @@ For more information, see the "Checking Code Syntax" documentation.Qt Quick Designer only supports states in the root item. Qt Quick Designer поддерживает состояния только в корневом элементе. - - Using Qt Quick 1 code model instead of Qt Quick 2. - Использованием модели кода Qt Quick 1 вместо Qt Quick 2. - QmlJS::TypeDescriptionReader @@ -34166,10 +34573,6 @@ For more information, see the "Checking Code Syntax" documentation. QmlJSEditor::Internal::QmlJsEditingSettingsPage - - Form - - Qt Quick Toolbars Панели Qt Quick @@ -34299,88 +34702,92 @@ the QML editor know about a likely URI. QmlParser - Illegal syntax for exponential number. - Некорректная форма экпоненциального числа. + Illegal syntax for exponential number + Некорректная форма экпоненциального числа - Stray newline in string literal. - Неожиданный конец строки в строковом литерале. + Stray newline in string literal + Неожиданный конец строки в строковом литерале - Illegal unicode escape sequence. - Недопустимая ESC-последовательность юникода. + End of file reached at escape sequence + Файл закончился внутри ESC-последовательности - Illegal hexadecimal escape sequence. - Недопустимая шестнадцатеричная ESC-последовательность. + Illegal unicode escape sequence + Недопустимая ESC-последовательность юникода - Octal escape sequences are not allowed. - Восьмеричные ESC-последовательности недопустимы. + Illegal hexadecimal escape sequence + Недопустимая шестнадцатеричная ESC-последовательность - Unclosed string at end of line. - Незакрытый литерал в конце строки. + Octal escape sequences are not allowed + Восьмеричные ESC-последовательности недопустимы - Decimal numbers cannot start with "0". - Десятичные числа не могут начинаться с «0». + Unclosed string at end of line + Незакрытый литерал в конце строки - At least one hexadecimal digit is required after "0%1". - Требуется как минимум одна шестнадцатеричная цифра после «0%1». + Decimal numbers can't start with '0' + Десятичные числа не могут начинаться с «0» - Invalid regular expression flag "%0". - Некорректный флаг регулярного выражения «%0». + At least one hexadecimal digit is required after '0%1' + Требуется как минимум одна шестнадцатеричная цифра после «0%1» - Unterminated regular expression backslash sequence. - В регулярном выражении последовательность за обратным слэшем не завершена. + Invalid regular expression flag '%0' + Некорректный флаг регулярного выражения «%0» - Unterminated regular expression class. - Незавершённый класс регулярного выражения. + Unterminated regular expression backslash sequence + В регулярном выражении последовательность за обратным слэшем не завершена - Unterminated regular expression literal. - Незавершённый литерал регулярного выражения. + Unterminated regular expression class + Незавершённый класс регулярного выражения - Syntax error. - Синтаксическая ошибка. + Unterminated regular expression literal + Незавершённый литерал регулярного выражения - Imported file must be a script. - Импортированный файл должен быть скриптом. + Syntax error + Синтаксическая ошибка - Invalid module URI. - Неверный URI модуля. + Imported file must be a script + Импортированный файл должен быть скриптом - Module import requires a version. - При импорте модуля требуется версия. + Invalid module URI + Неверный URI модуля - File import requires a qualifier. - При импорте файла требуется спецификатор. + Module import requires a version + При импорте модуля требуется версия - Module import requires a qualifier. - При импорте модуля требуется спецификатор. + File import requires a qualifier + При импорте файла требуется спецификатор - Invalid import qualifier. - Неверный спецификатор импорта. + Module import requires a qualifier + При импорте модуля требуется спецификатор - Unexpected token "%1". - Неожиданная лексема «%1». + Invalid import qualifier + Неверный спецификатор импорта - Expected token "%1". - Ожидаемая лексема «%1». + Unexpected token `%1' + Неожиданная лексема «%1» + + + Expected token `%1' + Ожидается лексема «%1» @@ -34420,8 +34827,8 @@ the QML editor know about a likely URI. QmlProfiler::Internal::FlameGraphModel - Could not re-read events from temporary trace file. - Не удалось перечитать события из временного файла трассировки. + Could not re-read events from temporary trace file: %1 + Не удалось перечитать события из временного файла трассировки: %1 Compile @@ -34657,17 +35064,13 @@ the QML editor know about a likely URI. Всего - %n bytes + %1 byte(s) - %n байт - %n байта - %n байтов + %1 байт + %1 байта + %1 байт - - %1 bytes - %1 байт - Allocated Выделено @@ -34723,9 +35126,13 @@ the QML editor know about a likely URI. Total Всего - - %1 bytes - %1 байт + + %1 byte(s) + + %1 байт + %1 байта + %1 байт + Allocated @@ -34838,6 +35245,33 @@ the QML editor know about a likely URI. Высота + + QmlProfiler::Internal::QmlProfilerActions + + The QML Profiler can be used to find performance bottlenecks in applications using QML. + QML Profiler предназначен для поиска узких мест в приложениях использующих QML. + + + QML Profiler + Профайлер QML + + + QML Profiler (Attach to Waiting Application) + Профайлер QML (подключение к ожидающему приложению) + + + Load QML Trace + Загрузить трассировку QML + + + Save QML Trace + Сохранить трассировку QML + + + QML Profiler Options + Настройки профайлера QML + + QmlProfiler::Internal::QmlProfilerAnimationsModel @@ -34933,40 +35367,6 @@ itself takes time. но портит профилирование, так как сброс данных занимает время. - - QmlProfiler::Internal::QmlProfilerFileReader - - Error while parsing trace data file: %1 - Ошибка разбора файла данных трассировки: %1 - - - Invalid magic: %1 - Неверный признак (magic): %1 - - - Unknown data stream version: %1 - Неизвестная версия потока данных: %1 - - - Invalid type index %1 - Неверный индекс типа %1 - - - Corrupt data before position %1. - Повреждены данные перед позицией %1. - - - - QmlProfiler::Internal::QmlProfilerFileWriter - - Could not re-read events from temporary trace file. Saving failed. - Не удалось перечитать события из временного файла трассировки. Ошибка сохранения. - - - Error writing trace file. - Ошибка записи файла трассировки. - - QmlProfiler::Internal::QmlProfilerOptionsPage @@ -35011,10 +35411,6 @@ itself takes time. No QML events recorded События QML не записаны - - Processing data: %1 / %2 - Обработка данных: %1 / %2 - Loading buffered data: %n events @@ -35023,10 +35419,6 @@ itself takes time. Загрузка буферизованных данных: %n событий - - Clearing old trace - Очистка старой трассировки - Loading offline data: %n events @@ -35040,132 +35432,6 @@ itself takes time. Ожидание данных - - QmlProfiler::Internal::QmlProfilerStatisticsMainView - - <program> - <программа> - - - Main Program - Основная программа - - - Callee - Вызываемое - - - Callee Description - Описание вызываемого - - - Caller - Вызывающее - - - Caller Description - Описание вызывающего - - - Calls - Вызовы - - - Details - Подробнее - - - Location - Размещение - - - Longest Time - Наибольшее время - - - Mean Time - Среднее время - - - Self Time - Собственное время - - - Self Time in Percent - Собственное время в процентах - - - Shortest Time - Наименьше время - - - Time in Percent - Время в процентах - - - Total Time - Общее время - - - Type - Тип - - - Median Time - Медианное время - - - <bytecode> - <байтовый код> - - - Source code not available - Исходники недоступны - - - Painting - Отрисовка - - - Compiling - Компиляция - - - Creating - Создание - - - Handling Signal - Обработка сигнала - - - Binding - Привязка - - - +%1 in recursive calls - +%1 в рекурсивых вызовах - - - JavaScript - JavaScript - - - - QmlProfiler::Internal::QmlProfilerStatisticsRelativesView - - <bytecode> - <байтовый код> - - - Source code not available - Исходники недоступны - - - called recursively - вызывается рекурсивно - - QmlProfiler::Internal::QmlProfilerStatisticsView @@ -35195,26 +35461,14 @@ itself takes time. QML Profiler Профайлер QML - - The QML Profiler can be used to find performance bottlenecks in applications using QML. - QML Profiler предназначен для поиска узких мест в приложениях использующих QML. - Load QML Trace Загрузить трассировку QML - - QML Profiler Options - Настройки профайлера QML - Save QML Trace Сохранить трассировку QML - - QML Profiler (Attach to Waiting Application) - Профайлер QML (подключение к ожидающему приложению) - A QML Profiler analysis is still in progress. Выполняется профилирование QML. @@ -35223,12 +35477,6 @@ itself takes time. Start QML Profiler analysis. Начать профилирование QML. - - Could not connect to the in-process QML profiler. -Do you want to retry? - Не удалось подключиться к внутрипроцессному профайлеру QML. -Повторить? - Failed to connect. Не удалось подключиться. @@ -35241,6 +35489,16 @@ Do you want to retry? Enable Profiling Включить профилирование + + The application finished before a connection could be established. No data was loaded. + Приложение завершилось до установки соединения. Данные не были загружены. + + + Could not connect to the in-process QML profiler within %1 s. +Do you want to retry and wait %2 s? + Не удалось подключиться к внутрипроцессному профайлеру QML в течение %1 с. +Повторить и ждать %2 с? + %1 s %1 сек @@ -35253,6 +35511,14 @@ Do you want to retry? QML traces (*%1 *%2) Трассировки QML (*%1 *%2) + + Saving Trace Data + Сохранение данных трассировки + + + Loading Trace Data + Загрузка данных трассировки + You are about to discard the profiling data, including unsaved notes. Do you want to continue? Продолжить с потерей данных профилирования и несохранённых заметок? @@ -35282,6 +35548,43 @@ Do you want to save the data first? Показ или скрытие категорий событий. + + QmlProfiler::Internal::QmlProfilerTraceFile + + Error while parsing trace data file: %1 + Ошибка разбора файла данных трассировки: %1 + + + Invalid magic: %1 + Неверный признак (magic): %1 + + + Unknown data stream version: %1 + Неизвестная версия потока данных: %1 + + + Excessive number of event types: %1 + Чрезмерное число типов событий: %1 + + + Invalid type index %1 + Неверный индекс типа %1 + + + Corrupt data before position %1. + Повреждены данные перед позицией %1. + + + Error writing trace file. + Ошибка записи файла трассировки. + + + Could not re-read events from temporary trace file: %s +Saving failed. + Не удалось перечитать события из временного файла трассировки: %s +Сохранение не удалось. + + QmlProfiler::Internal::QmlProfilerTraceView @@ -35326,8 +35629,8 @@ Do you want to save the data first? QmlProfiler::QmlProfilerModelManager - Cannot open temporary trace file to store events. - Не удалось открыть временный файл для хранения событий. + Failed to replay QML events from stash file. + Не удалось проиграть события QML из файла stash. <bytecode> @@ -35338,39 +35641,173 @@ Do you want to save the data first? анонимная функция - GUI Thread - Поток GUI - - - Could not open %1 for writing. - Не удалось открыть %1 для записи. - - - Saving Trace Data - Сохранение данных трассировки - - - Could not open %1 for reading. - Не удалось открыть %1 для чтения. - - - Loading Trace Data - Загрузка данных трассировки - - - Trying to set unknown state in events list. - Попытка установить неизвестное состояние в списке событий. - - - Could not re-read events from temporary trace file. The trace data is lost. - Не удалось перечитать события из временного файла трассировки. Данные трассировки утеряны. + Read past end in temporary trace file. + Чтение за концом временного файла трассировки. QmlProfiler::QmlProfilerStatisticsModel - Could not re-read events from temporary trace file. - Не удалось перечитать события из временного файла трассировки. + Painting + Отрисовка + + + Compiling + Компиляция + + + Creating + Создание + + + Binding + Привязка + + + Handling Signal + Обработка сигнала + + + JavaScript + JavaScript + + + Could not re-read events from temporary trace file: %1 + Не удалось перечитать события из временного файла трассировки: %1 + + + Main program + Основная программа + + + +%1 in recursive calls + +%1 в рекурсивых вызовах + + + <bytecode> + <байтовый код> + + + Source code not available + Исходники недоступны + + + Calls + Вызовы + + + Details + Подробности + + + Location + Размещение + + + Longest Time + Наибольшее время + + + Mean Time + Среднее время + + + Self Time + Собственное время + + + Self Time in Percent + Собственное время в процентах + + + Shortest Time + Наименьше время + + + Time in Percent + Время в процентах + + + Total Time + Общее время + + + Type + Тип + + + Median Time + Медианное время + + + + QmlProfiler::QmlProfilerStatisticsRelativesModel + + Main Program + Основная программа + + + called recursively + вызывается рекурсивно + + + <bytecode> + <байтовый код> + + + Source code not available + Исходники недоступны + + + Callee + Вызываемое + + + Caller + Вызывающее + + + Type + Тип + + + Total Time + Общее время + + + Calls + Вызовы + + + Callee Description + Описание вызываемого + + + Caller Description + Описание вызывающего + + + + QmlProfilerEventStorage + + Cannot open temporary trace file to store events. + Не удалось открыть временный файл для хранения событий. + + + Failed to reset temporary trace file. + Не удалось сбросить временный файл трассировки. + + + Failed to flush temporary trace file. + Не удалось записать временный файл трассировки. + + + Could not re-open temporary trace file. + Не удалось переоткрыть временный файл трассировки. + + + Read past end in temporary trace file. + Чтение за концом временного файла трассировки. @@ -35412,12 +35849,8 @@ Do you want to save the data first? Разные события - No data available - Нет данных - - - Visualize %1 - Отобразить %1 + others + другие @@ -35427,13 +35860,6 @@ Do you want to save the data first? Настройки профайлера QML - - QmlProjectManager::Internal::QmlProjectRunConfigurationFactory - - QML Scene - QML Scene - - QmlProjectManager::Internal::QmlProjectRunConfigurationWidget @@ -35455,10 +35881,22 @@ Do you want to save the data first? Warning while loading project file %1. Предупреждение при загрузке файла проекта %1. + + Kit has no device. + У комплекта не задано устройство. + Qt version is too old. Версия Qt слишком стара. + + Qt version has no qmlscene command. + У профиля Qt нет команды qmlscene. + + + Non-desktop Qt is used with a desktop device. + Ненастольный профиль Qt используется для настольного устройства. + No Qt version set in kit. Для комплекта не задан профиль Qt. @@ -35471,8 +35909,8 @@ Do you want to save the data first? Системная среда - Kit Environment - Среда комплекта + Clean Environment + Чистая среда @@ -35497,6 +35935,10 @@ Do you want to save the data first? No qmlscene binary specified for target device. Не задана программа qmlscene для целевого устройства. + + QML Scene + QML Scene + No script file to execute. Нет файла сценария для запуска. @@ -35564,7 +36006,7 @@ Do you want to save the data first? - Qnx::Internal::QnxDeployConfigurationFactory + Qnx::Internal::QnxDeployConfiguration Deploy to QNX Device Установить на устройство QNX @@ -35702,15 +36144,8 @@ Are you sure you want to continue? Qnx::Internal::QnxRunConfiguration - Path to Qt libraries on device: - Путь к библиотекам Qt на устройстве: - - - - Qnx::Internal::QnxRunConfigurationFactory - - %1 on QNX Device - %1 на устройстве QNX + Path to Qt libraries on device + Путь к библиотекам Qt на устройстве @@ -35722,10 +36157,6 @@ Are you sure you want to continue? Qnx::Internal::QnxSettingsWidget - - Form - - Generate kits Создать комплекты @@ -36011,10 +36442,6 @@ For more details, see /etc/sysctl.d/10-ptrace.conf QtSupport::Internal::CodeGenSettingsPageWidget - - Form - - Embedding of the UI Class Встраивание класса UI @@ -36712,10 +37139,6 @@ For more details, see /etc/sysctl.d/10-ptrace.conf RemoteLinux::GenericLinuxDeviceConfigurationWidget - - Form - - Authentication type: Тип авторизации: @@ -36996,40 +37419,25 @@ In addition, device connectivity will be tested. RemoteLinux::Internal::RemoteLinuxCustomRunConfiguration - The remote executable must be set in order to run a custom remote run configuration. - Идей как это перевести дословно и красиво у меня нет - Для запуска внешнего приложения его необходимо задать. - - - Run "%1" on Linux Device - Выполнить «%1» на Linux-устройстве - - - Custom Executable (on Remote Generic Linux Host) - Особая программа (на удалённом обычном Linux-узле) - - - - RemoteLinux::Internal::RemoteLinuxCustomRunConfigurationWidget - - Form - - - - Arguments: - Параметры: + Remote executable: + Внешняя программа: Local executable: Локальная программа: - Remote executable: - Внешняя программа: + The remote executable must be set in order to run a custom remote run configuration. + Идей как это перевести дословно и красиво у меня нет + Для запуска внешнего приложения его необходимо задать. - Working directory: - Рабочий каталог: + Custom Executable + Особая программа + + + Run "%1" + Запустить «%1» @@ -37055,13 +37463,6 @@ In addition, device connectivity will be tested. Содержимое внешнего stderr: «%1» - - RemoteLinux::Internal::RemoteLinuxRunConfigurationFactory - - %1 (on Remote Generic Linux Host) - %1 (на удалённой машине с Linux) - - RemoteLinux::Internal::TypeSpecificDeviceConfigurationListModel @@ -37215,54 +37616,18 @@ In addition, device connectivity will be tested. RemoteLinux::RemoteLinuxRunConfiguration - - %1 (on Remote Device) - %1 (на внешнем устройстве) - - - Run on Remote Device - Remote Linux run configuration default display name - Запуск на внешнем устройстве - - - - RemoteLinux::RemoteLinuxRunConfigurationWidget - - Executable on host: - Программа на машине: - Executable on device: Программа на устройстве: - - Use this command instead - Используйте эту команду - - - Alternate executable on device: - Сменить программу на устройстве: - - - Arguments: - Параметры: - - - <default> - <по умолчанию> - - - Working directory: - Рабочий каталог: - - - Unknown - Неизвестная - Remote path not set Не задан внешний путь + + Executable on host: + Программа на машине: + RemoteLinux::RemoteLinuxSignalOperation @@ -37350,10 +37715,6 @@ In addition, device connectivity will be tested. RemoteLinuxCheckForFreeDiskSpaceStepWidget - - Form - Форма - Remote path to check for free space: Внешний путь для проверки свободного места: @@ -37617,10 +37978,6 @@ In addition, device connectivity will be tested. ScxmlEditor::Common::ColorSettings - - Form - - + + @@ -37725,13 +38082,6 @@ In addition, device connectivity will be tested. Загрузка документа... - - ScxmlEditor::Common::Magnifier - - Form - - - ScxmlEditor::Common::MainWidget @@ -37815,10 +38165,6 @@ In addition, device connectivity will be tested. ScxmlEditor::Common::Search - - Form - - Enter search term Введите термин для поиска @@ -37859,10 +38205,6 @@ In addition, device connectivity will be tested. ScxmlEditor::Common::StateView - - Form - - Back Назад @@ -37870,10 +38212,6 @@ In addition, device connectivity will be tested. ScxmlEditor::Common::Statistics - - Form - - Time Время @@ -38548,6 +38886,83 @@ Row: %4, Column: %5 Продолжительность + + SerialTerminal::Internal::SerialControl + + Unable to open port %1. + Не удалось открыть порт %1. + + + Session resumed. + Сессия восстановлена. + + + Starting new session on %1... + Запуск новой сессии на %1... + + + Session finished on %1. + Сессия завершилась на %1. + + + Session paused... + Сессия приостановлена... + + + No Port + Без порта + + + Serial port error: %1 (%2) + Ошибка последовательного порта: %1 (%2) + + + + SerialTerminal::Internal::SerialOutputPane + + Close Tab + Закрыть вкладку + + + Close All Tabs + Закрыть все вкладки + + + Close Other Tabs + Закрыть другие вкладки + + + Type text and hit Enter to send. + Для отправки введите текст и нажмите Ввод. + + + Serial Terminal Window + Окно последовательной консоли + + + Connect + Подключиться + + + Disconnect + Отключиться + + + Reset Board + Сбросить плату + + + Add New Terminal + Добавить новую консоль + + + + SerialTerminal::Internal::SerialTerminalOutputPane + + Serial Terminal + Последовательная консоль + + SilverSearcher::FindInFilesSilverSearcher @@ -39143,6 +39558,10 @@ with a password, which you can enter below. The project <b>%1</b> is not yet configured.<br/>%2 uses the <b>invalid</b> kit <b>%3</b> to parse the project. Проект <b>%1</b> ещё не настроен.<br/>Для обработки проекта %2 использует <b>неверный</b> комплект <b>%3</b>. + + Kit is unsuited for project + Комплект не подходит проекту + Click to activate: Щёлкните для активации: @@ -39226,6 +39645,7 @@ with a password, which you can enter below. My Tasks + Category under which tasklist tasks are listed in Issues view Мои задачи @@ -39567,13 +39987,6 @@ Excluding: %3 Не удалось получить данные. - - TextEditor::Internal::BehaviorSettingsPage - - Form - - - TextEditor::Internal::BehaviorSettingsWidget @@ -39803,10 +40216,6 @@ Specifies how backspace interacts with indentation. TextEditor::Internal::CodeStyleSelectorWidget - - Form - - Current settings: Текущие настройки: @@ -40279,10 +40688,6 @@ In addition, Shift+Enter inserts an escape character at the cursor position and TextEditor::Internal::HighlighterSettingsPage - - Form - - <html><head/><body> <p>Highlight definitions are provided by the <a href="http://kate-editor.org/">Kate Text Editor</a>.</p></body></html> @@ -40457,6 +40862,11 @@ In addition, Shift+Enter inserts an escape character at the cursor position and group:'C++' trigger:'if' и else + + with closing brace comment + group:'C++' trigger:'namespace' + с комментарием закрывающей скобки + and catch group:'C++' trigger:'try' @@ -40507,10 +40917,6 @@ In addition, Shift+Enter inserts an escape character at the cursor position and TextEditor::Internal::SnippetsSettingsPage - - Form - - Group: Группа: @@ -40580,10 +40986,6 @@ In addition, Shift+Enter inserts an escape character at the cursor position and TextEditor::Internal::TabSettingsWidget - - Form - - Tabs And Indentation Табуляция и отступы @@ -41256,9 +41658,9 @@ Influences the indentation of continuation lines. Текст - Generic text. -Applied to text, if no other rules matching. - Обычный текст. + Generic text and punctuation tokens. +Applied to text that matched no other rule. + Обычный текст и знаки пунктуации. Применяется к тексту, когда другие правила не подошли. @@ -41548,8 +41950,10 @@ Applied to text, if no other rules matching. Оператор - Operators (for example operator++ or operator-=). - Операторы (например: operator++ или operator-=). + Non user-defined language operators. +To style user-defined operators, use Overloaded Operator. + Непользовательские операторы языка. +Оформление пользовательских операторов находится в разделе Перегруженные операторы. Preprocessor @@ -41729,6 +42133,14 @@ Will not be applied to whitespace in comments and strings. Underline color of the contexts of warning diagnostics. Цвет подчёркивания контекстов предупреждений. + + Overloaded Operators + Перегруженные операторы + + + Calls and declarations of overloaded (user-defined) operators. + Вызовы и объявления перегруженных (пользовательских) операторов. + Function Declaration Объявление функции @@ -41935,6 +42347,23 @@ Will not be applied to whitespace in comments and strings. Изменить текст + + Timeline::TimelineTraceManager + + Could not open %1 for writing. + Не удалось открыть %1 для записи. + + + Could not open %1 for reading. + Не удалось открыть %1 для чтения. + + + Could not re-read events from temporary trace file: %1 +The trace data is lost. + Не удалось перечитать события из временного файла трассировки: %1. +Данные трассировки утеряны. + + Todo::Internal::KeywordDialog @@ -41964,10 +42393,6 @@ Will not be applied to whitespace in comments and strings. Todo::Internal::OptionsDialog - - Form - - Keywords Ключевые слова @@ -42319,6 +42744,10 @@ Will not be applied to whitespace in comments and strings. &Views &Обзоры + + Leave Debug Mode + Выход из режима отладки + Toolbar Панель инструментов @@ -42393,12 +42822,14 @@ Will not be applied to whitespace in comments and strings. Utils::EnvironmentDialog - Enter one variable per line with the variable name separated from the variable value by "=".<br>Environment variables can be referenced with ${OTHER}. - Введите переменные по одной в строке. Имя переменной должно отделяться от значения символом «=».<br>Ссылаться на переменные среды можно с помощью ${OTHER}. - - - Change environment by assigning one environment variable per line: - Изменение среды путём задания переменных. Одна переменная на строке: + Enter one environment variable per line. +To set or change a variable, use VARIABLE=VALUE. +Existing variables can be referenced in a VALUE with ${OTHER}. +To clear a variable, put its name on a line with nothing else on it. + Вводите по одной переменной среды на строку. +Для задания или изменения переменной используйте VARIABLE=VALUE. +В значениях можно обращаться к другим переменным через ${OTHER}. +Для очистки переменной в строке укажите только её имя и больше ничего. Edit Environment @@ -42407,14 +42838,14 @@ Will not be applied to whitespace in comments and strings. Utils::EnvironmentIdAccessor - - <p>No .user settings file created by this instance of %1 was found.</p><p>Did you work with this project on another machine or using a different settings path before?</p><p>Do you still want to load the settings file "%2"?</p> - <p>Не удалось найти файл настроек от этого %1.</p><p>Не работали ли вы ранее с этим проектом на другой машине или не использовали ли вы другой путь к настройкам?</p><p>Продолжить загрузку файла настроек «%2»?</p> - Settings File for "%1" from a Different Environment? Настройки проекта «%1» с другого компьютера? + + <p>No settings file created by this instance of %1 was found.</p><p>Did you work with this project on another machine or using a different settings path before?</p><p>Do you still want to load the settings file "%2"?</p> + <p>Не удалось найти файл настроек от этого экземляра %1.</p><p>Возможно вы работали с этим проектом на другой машине или использовали другой путь к настройкам.</p><p>Продолжить загрузку файла настроек «%2»?</p> + Utils::EnvironmentModel @@ -42815,8 +43246,8 @@ Will not be applied to whitespace in comments and strings. Utils::ProjectIntroPage - <Enter_Name> - <Введите_Имя> + Enter project name + Введите название проекта Location @@ -42942,6 +43373,10 @@ Will not be applied to whitespace in comments and strings. No Valid Settings Found Подходящие настройки не найдены + + <p>No valid settings file could be found.</p><p>All settings files found in directory "%1" were unsuitable for the current version of %2.</p> + <p>Не удалось найти корректный файл настроек.</p><p>Все найденные в каталоге «%1» файлы настроек не подходят для текущей версии %2.</p> + <p>No valid settings file could be found.</p><p>All settings files found in directory "%1" were either too new or too old to be read.</p> <p>Не удалось найти подходящий для этой версии Qt Creator файл настроек.</p><p>Все найденные в каталоге «%1» файлы настроек или слишком старые, или слишком новые.</p> @@ -42955,12 +43390,12 @@ Will not be applied to whitespace in comments and strings. <p>Будет использоваться резервная копия файла настроек .user более старой версии («%1»), так как текущий файл создан несовместимой версией %2.</p><p>Изменения настроек проекта, сделанные с момента последнего запуска этой версии %2, не будут учтены, а изменения, вносимые сейчас, <b>не будут</b> сохранены в новую версию файла проекта.</p> - Unsupported Shared Settings File - Неподдерживаемый файл общих настроек + Unsupported Merge Settings File + Неподдерживаемый файл настроек объединения - The version of your .shared file is not supported by %1. Do you want to try loading it anyway? - Версия вашего файла .shared не поддерживается этой версией %1. Попробовать загрузить файл? + "%1" is not supported by %1. Do you want to try loading it anyway? + «%1» не поддерживается %2. Продолжить загрузку? @@ -43529,6 +43964,10 @@ Will not be applied to whitespace in comments and strings. Pause event logging. No events are counted which will speed up program execution during profiling. Приостановить запись событий. События не будут записываться, что повысит скорость выполнения программы при профилировании. + + Discard Data + Отбросить данные + Go back one step in history. This will select the previously selected item. Перейти на шаг назад по истории. Выберет предыдущий выбранный элемент. @@ -43657,184 +44096,6 @@ Will not be applied to whitespace in comments and strings. Обработка данных профилирования... - - Valgrind::Internal::HeobData - - Process %1 - Процесс %1 - - - Process finished with exit code %1 (0x%2). - Процесс завершился с кодом %1 (0x%2). - - - Unknown argument: -%1 - Неизвестный параметр: -%1 - - - Cannot create target process. - Не удалось создать целевой процесс. - - - Wrong bitness. - Неверная разрядность. - - - Process killed. - Процесс уничтожен. - - - Only works with dynamically linked CRT. - Работает только с динамически подключаемой CRT. - - - Process stopped with unhandled exception code 0x%1. - Процесс остановлен из-за необработанного исключения с кодом 0x%1. - - - Not enough memory to keep track of allocations. - Недостаточно памяти для сохранения истории выделений. - - - Application stopped unexpectedly. - Приложение неожиданно остановилось. - - - Extra console. - Допольнительная консоль. - - - Unknown exit reason. - Неизвестная причина завершения. - - - Heob stopped unexpectedly. - Heob неожиданно остановился. - - - Heob: %1 - Heob: %1 - - - Heob: Failure in process attach handshake (%1). - Heob: не удалось выполнить рукопожание при подключении к процессу (%1). - - - - Valgrind::Internal::HeobDialog - - XML output file: - Выходной файл XML: - - - Handle exceptions: - Обрабатывать исключения: - - - Off - Откл. - - - On - Вкл. - - - Only - Только - - - Page protection: - Защита страниц: - - - After - Перед - - - Before - После - - - Freed memory protection - Защита освобождённой памяти - - - Raise breakpoint exception on error - Кидать исключение (точка останова) при ошибке - - - Leak details: - Подробности об утечке: - - - None - Нет - - - Simple - Простые - - - Detect Leak Types - Определять типы утечек - - - Detect Leak Types (Show Reachable) - Определять типы утечек (показывать доступные) - - - Fuzzy Detect Leak Types - Нечётко определять типы утечек - - - Fuzzy Detect Leak Types (Show Reachable) - Нечётко определять типы утечек (показывать доступные) - - - Minimum leak size: - Минимальный размер утечки: - - - Control leak recording: - Управление записью утечек: - - - On (Start Disabled) - Вкл. (отключён старт) - - - On (Start Enabled) - Вкл. (включён старт) - - - Run with debugger - Запускать с отладчиком - - - Extra arguments: - Доп. параметры: - - - Heob path: - Путь к Heob: - - - The location of heob32.exe and heob64.exe. - Размещение heob32.exe и heob64.exe. - - - Save current settings as default. - Сохранить текущие настройки как настройки по умолчанию. - - - OK - OK - - - Heob - Heob - - Valgrind::Internal::MemcheckErrorView @@ -43896,8 +44157,7 @@ When a problem is detected, the application is interrupted and can be debugged.< Heob - Х.з. что такое - Heob + Heob Ctrl+Alt+H @@ -45096,27 +45356,17 @@ should a repository require SSH-authentication (see documentation on SSH and the WinRt::Internal::WinRtRunConfiguration - Run App Package - Запуск пакета приложения + Uninstall package after application stops + Удалить пакет после завершения приложения - - - WinRt::Internal::WinRtRunConfigurationFactory Run App Package Запуск пакета приложения - - - WinRt::Internal::WinRtRunConfigurationWidget Launch App Запуск приложения - - Uninstall package after application stops - Удалить пакет после завершения приложения - WinRt::Internal::WinRtRunnerHelper From 1207fd3a94bed9f7ac635557e34eced9328dfee4 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Fri, 29 Jun 2018 14:52:46 +0200 Subject: [PATCH 30/48] Doc: Fix link target Name of target file has changed. Change-Id: I5e80fdeab00d09671bf7be20a647117c894f8165 Reviewed-by: Leena Miettinen --- doc/src/howto/creator-autotest.qdoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/howto/creator-autotest.qdoc b/doc/src/howto/creator-autotest.qdoc index 2d5ba935cd6..08273d019c0 100644 --- a/doc/src/howto/creator-autotest.qdoc +++ b/doc/src/howto/creator-autotest.qdoc @@ -235,7 +235,7 @@ select \uicontrol {GTest Filter} and specify the filter to use in the \uicontrol {Active filter} field. For more information about GTest filters, see - \l{https://github.com/google/googletest/blob/master/googletest/docs/AdvancedGuide.md#running-a-subset-of-the-tests} + \l{https://github.com/google/googletest/blob/master/googletest/docs/advanced.md#running-a-subset-of-the-tests} {Running a Subset of the Tests}. \image qtcreator-autotests-options.png From 58df07bc76bcc10c94f3f310bdefb4c914fcb831 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Fri, 29 Jun 2018 10:42:13 +0200 Subject: [PATCH 31/48] Update qbs submodule TO HEAD of 1.12 branch. Change-Id: I7308b718af0baf95b931183a686ac034609c9433 Reviewed-by: Joerg Bornemann --- src/shared/qbs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/shared/qbs b/src/shared/qbs index 29420ab4698..872e4b883d7 160000 --- a/src/shared/qbs +++ b/src/shared/qbs @@ -1 +1 @@ -Subproject commit 29420ab4698ad45de994cf367b94f23ddc874200 +Subproject commit 872e4b883d7732c46e1e5d32b60ce698862e5da6 From e5a8958e31f287adc56b3afcd1bb9167b774defc Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Sun, 1 Jul 2018 11:03:09 +0300 Subject: [PATCH 32/48] GenericHighlighter: Support WordDetect Added in Kate 3.5 (KDE 4.5). Similar to StringDetect, but only matches whole word (\b\b) Already used in some of the built-in highlighters. Change-Id: I03ae5e1db917e777a21bb96d9a31cc7771287f39 Reviewed-by: Eike Ziller Reviewed-by: David Schulz --- .../highlightdefinitionhandler.cpp | 15 ++++++++++++++- .../highlightdefinitionhandler.h | 1 + .../generichighlighter/specificrules.cpp | 15 +++++++++++++++ .../texteditor/generichighlighter/specificrules.h | 11 ++++++++++- 4 files changed, 40 insertions(+), 2 deletions(-) diff --git a/src/plugins/texteditor/generichighlighter/highlightdefinitionhandler.cpp b/src/plugins/texteditor/generichighlighter/highlightdefinitionhandler.cpp index c9d83b6893a..794247b220f 100644 --- a/src/plugins/texteditor/generichighlighter/highlightdefinitionhandler.cpp +++ b/src/plugins/texteditor/generichighlighter/highlightdefinitionhandler.cpp @@ -85,6 +85,7 @@ namespace { static const QLatin1String kDetect2Chars("Detect2Chars"); static const QLatin1String kAnyChar("AnyChar"); static const QLatin1String kStringDetect("StringDetect"); + static const QLatin1String kWordDetect("WordDetect"); static const QLatin1String kRegExpr("RegExpr"); static const QLatin1String kKeyword("keyword"); static const QLatin1String kInt("Int"); @@ -153,6 +154,8 @@ bool HighlightDefinitionHandler::startElement(const QString &, anyCharStarted(atts); else if (qName == kStringDetect) stringDetectedStarted(atts); + else if (qName == kWordDetect) + wordDetectStarted(atts); else if (qName == kRegExpr) regExprStarted(atts); else if (qName == kKeyword) @@ -189,7 +192,8 @@ bool HighlightDefinitionHandler::endElement(const QString &, const QString &, co m_currentList->addKeyword(m_currentKeyword.trimmed()); m_processingKeyword = false; } else if (qName == kDetectChar || qName == kDetect2Chars || qName == kAnyChar || - qName == kStringDetect || qName == kRegExpr || qName == kKeyword || qName == kInt || + qName == kStringDetect || qName == kWordDetect || qName == kRegExpr || + qName == kKeyword || qName == kInt || qName == kFloat || qName == kHlCOct || qName == kHlCHex || qName == kHlCStringChar || qName == kHlCChar || qName == kRangeDetect || qName == kLineContinue || qName == kDetectSpaces || qName == kDetectIdentifier) { @@ -333,6 +337,15 @@ void HighlightDefinitionHandler::stringDetectedStarted(const QXmlAttributes &att ruleElementStarted(atts, QSharedPointer(rule)); } +void HighlightDefinitionHandler::wordDetectStarted(const QXmlAttributes &atts) +{ + WordDetectRule *rule = new WordDetectRule; + rule->setString(atts.value(kString)); + rule->setInsensitive(atts.value(kInsensitive)); + rule->setActive(atts.value(kDynamic)); + ruleElementStarted(atts, QSharedPointer(rule)); +} + void HighlightDefinitionHandler::regExprStarted(const QXmlAttributes &atts) { RegExprRule *rule = new RegExprRule; diff --git a/src/plugins/texteditor/generichighlighter/highlightdefinitionhandler.h b/src/plugins/texteditor/generichighlighter/highlightdefinitionhandler.h index 44f5b3004e3..db3d97704b4 100644 --- a/src/plugins/texteditor/generichighlighter/highlightdefinitionhandler.h +++ b/src/plugins/texteditor/generichighlighter/highlightdefinitionhandler.h @@ -67,6 +67,7 @@ private: void detect2CharsStarted(const QXmlAttributes &atts); void anyCharStarted(const QXmlAttributes &atts); void stringDetectedStarted(const QXmlAttributes &atts); + void wordDetectStarted(const QXmlAttributes &atts); void regExprStarted(const QXmlAttributes &atts); void keywordStarted(const QXmlAttributes &atts); void intStarted(const QXmlAttributes &atts); diff --git a/src/plugins/texteditor/generichighlighter/specificrules.cpp b/src/plugins/texteditor/generichighlighter/specificrules.cpp index 82a9de23ca5..0963f621159 100644 --- a/src/plugins/texteditor/generichighlighter/specificrules.cpp +++ b/src/plugins/texteditor/generichighlighter/specificrules.cpp @@ -171,6 +171,21 @@ bool StringDetectRule::doMatchSucceed(const QString &text, return false; } +bool WordDetectRule::doMatchSucceed(const QString &text, const int length, ProgressData *progress) +{ + const int offset = progress->offset(); + if (length - offset < m_length) + return false; + if (offset > 0 && !definition()->isDelimiter(text.at(offset - 1))) + return false; + if (text.midRef(offset, m_string.size()).compare(m_string, m_caseSensitivity) != 0) + return false; + if (length > offset + m_string.size() && !definition()->isDelimiter(text.at(offset + m_string.size()))) + return false; + progress->incrementOffset(m_length); + return true; +} + // RegExpr RegExprRule::~RegExprRule() { diff --git a/src/plugins/texteditor/generichighlighter/specificrules.h b/src/plugins/texteditor/generichighlighter/specificrules.h index a5533dcd0dd..c4a76e07715 100644 --- a/src/plugins/texteditor/generichighlighter/specificrules.h +++ b/src/plugins/texteditor/generichighlighter/specificrules.h @@ -99,7 +99,7 @@ public: void setString(const QString &s); void setInsensitive(const QString &insensitive); -private: +protected: virtual bool doMatchSucceed(const QString &text, const int length, ProgressData *progress); @@ -111,6 +111,15 @@ private: Qt::CaseSensitivity m_caseSensitivity = Qt::CaseSensitive; }; +class WordDetectRule : public StringDetectRule +{ +private: + virtual bool doMatchSucceed(const QString &text, + const int length, + ProgressData *progress); + virtual WordDetectRule *doClone() const { return new WordDetectRule(*this); } +}; + class RegExprRule : public DynamicRule { public: From d2a7adba56f9e5758943cc604c0cf9511d5c7d6f Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Sun, 1 Jul 2018 11:04:48 +0300 Subject: [PATCH 33/48] GenericHighlighter: Update from KSyntaxHighlighting Change-Id: I81891762ceb44c7329a75e6d982532419102a232 Reviewed-by: David Schulz Reviewed-by: Eike Ziller --- .../3rdparty/generic-highlighter/bash.xml | 12 +- .../3rdparty/generic-highlighter/cmake.xml | 4109 +++++++++++++---- .../3rdparty/generic-highlighter/ini.xml | 4 +- .../3rdparty/generic-highlighter/perl.xml | 2 +- .../3rdparty/generic-highlighter/yacc.xml | 134 +- 5 files changed, 3379 insertions(+), 882 deletions(-) diff --git a/src/share/3rdparty/generic-highlighter/bash.xml b/src/share/3rdparty/generic-highlighter/bash.xml index 11019ea6227..48ac94f4601 100644 --- a/src/share/3rdparty/generic-highlighter/bash.xml +++ b/src/share/3rdparty/generic-highlighter/bash.xml @@ -8,7 +8,7 @@ ]> - + - + @@ -551,7 +551,7 @@ - + @@ -580,7 +580,7 @@ - + @@ -647,7 +647,7 @@ - + @@ -902,7 +902,7 @@ - + diff --git a/src/share/3rdparty/generic-highlighter/cmake.xml b/src/share/3rdparty/generic-highlighter/cmake.xml index c0a8cd3e2dd..b2eb9747c8a 100644 --- a/src/share/3rdparty/generic-highlighter/cmake.xml +++ b/src/share/3rdparty/generic-highlighter/cmake.xml @@ -1,12 +1,15 @@ - + +]> - + - - - - add_compile_options - add_custom_command - add_custom_target - add_definitions - add_dependencies - add_executable - add_library - add_subdirectory - add_test - aux_source_directory - break - build_command - build_name - cmake_host_system_information - cmake_minimum_required - cmake_policy - configure_file - continue - create_test_sourcelist - ctest_build - ctest_configure - ctest_coverage - ctest_empty_binary_directory - ctest_memcheck - ctest_read_custom_files - ctest_run_script - ctest_sleep - ctest_start - ctest_submit - ctest_test - ctest_update - ctest_upload - define_property - else - elseif - enable_language - enable_testing - endforeach - endfunction - endif - endmacro - endwhile - exec_program - execute_process - export - export_library_dependencies - file - find_file - find_library - find_package - find_path - find_program - fltk_wrap_ui - foreach - function - get_cmake_property - get_directory_property - get_filename_component - get_property - get_source_file_property - get_target_property - get_test_property - if - include - include_directories - include_external_msproject - include_regular_expression - install - install_files - install_programs - install_targets - link_directories - link_libraries - list - load_cache - load_command - macro - make_directory - mark_as_advanced - math - message - option - output_required_files - project - qt_wrap_cpp - qt_wrap_ui - remove - remove_definitions - return - separate_arguments - set - set_directory_properties - set_property - set_source_files_properties - set_target_properties - set_tests_properties - site_name - source_group - string - subdir_depends - subdirs - target_compile_definitions - target_compile_features - target_compile_options - target_include_directories - target_link_libraries - target_sources - try_compile - try_run - unset - use_mangled_mesa - utility_source - variable_requires - variable_watch - while - write_file + + break + cmake_host_system_information + cmake_minimum_required + cmake_parse_arguments + cmake_policy + configure_file + continue + elseif + else + endforeach + endfunction + endif + endmacro + endwhile + execute_process + file + find_file + find_library + find_package + find_path + find_program + foreach + function + get_cmake_property + get_directory_property + get_filename_component + get_property + if + include + include_guard + list + macro + mark_as_advanced + math + message + option + return + separate_arguments + set_directory_properties + set_property + set + site_name + string + unset + variable_watch + while + add_compile_definitions + add_compile_options + add_custom_command + add_custom_target + add_definitions + add_dependencies + add_executable + add_library + add_subdirectory + add_test + aux_source_directory + build_command + create_test_sourcelist + define_property + enable_language + enable_testing + export + fltk_wrap_ui + get_source_file_property + get_target_property + get_test_property + include_directories + include_external_msproject + include_regular_expression + install + link_directories + link_libraries + load_cache + project + qt_wrap_cpp + qt_wrap_ui + remove_definitions + set_source_files_properties + set_target_properties + set_tests_properties + source_group + target_compile_definitions + target_compile_features + target_compile_options + target_include_directories + target_link_libraries + target_sources + try_compile + try_run + ctest_build + ctest_configure + ctest_coverage + ctest_empty_binary_directory + ctest_memcheck + ctest_read_custom_files + ctest_run_script + ctest_sleep + ctest_start + ctest_submit + ctest_test + ctest_update + ctest_upload - - - itk_wrap_tcl - vtk_make_instantiator - vtk_wrap_java - vtk_wrap_python - vtk_wrap_tcl + + + QUERY + RESULT - - - - - AFTER - ALIAS - ALL - ALPHABET - AND - APPEND - APPENDNUMBER_ERRORS - APPEND_STRING - ARCHIVE - ARGS - ASCII - AUTHOR_WARNING - BEFORE - BRIEF_DOCS - BUILD - BUNDLE - BYPRODUCTS - CACHE - CACHED_VARIABLE - CDASH_UPLOAD - CDASH_UPLOAD_TYPE - CLEAR - CMAKE_FIND_ROOT_PATH_BOTH - CMAKE_FLAGS - CODE - COMMAND - COMMAND_NAME - COMMENT - COMPARE - COMPILE_DEFINITIONS - COMPILE_OUTPUT_VARIABLE - COMPILE_RESULT_VAR - COMPONENT - COMPONENTS - CONCAT - CONDITION - CONFIG - CONFIGS - CONFIGURATION - CONFIGURATIONS - CONFIGURE - CONTENT - COPY - COPYONLY - COPY_FILE - COPY_FILE_ERROR - CRLF - DEFINED - DEFINITION - DEPENDS - DESTINATION - DIRECTORY - DIRECTORY_PERMISSIONS - DOC - DOS - DOWNLOAD - ENV - END - EQUAL - ERROR_FILE - ERROR_QUIET - ERROR_STRIP_TRAILING_WHITESPACE - ERROR_VARIABLE - ESCAPE_QUOTES - EXACT - EXCLUDE - EXCLUDE_FROM_ALL - EXCLUDE_LABEL - EXISTS - EXPECTED_HASH - EXPECTED_MD5 - EXPORT - EXPORT_LINK_INTERFACE_LIBRARIES - EXPR - EXTRA_INCLUDE + + AVAILABLE_PHYSICAL_MEMORY + AVAILABLE_VIRTUAL_MEMORY + FQDN + HAS_AMD_3DNOW + HAS_AMD_3DNOW_PLUS + HAS_FPU + HAS_IA64 + HAS_MMX + HAS_MMX_PLUS + HAS_SERIAL_NUMBER + HAS_SSE + HAS_SSE2 + HAS_SSE_FP + HAS_SSE_MMX + HOSTNAME + IS_64BIT + NUMBER_OF_LOGICAL_CORES + NUMBER_OF_PHYSICAL_CORES + OS_NAME + OS_PLATFORM + OS_RELEASE + OS_VERSION + PROCESSOR_DESCRIPTION + PROCESSOR_NAME + PROCESSOR_SERIAL_NUMBER + TOTAL_PHYSICAL_MEMORY + TOTAL_VIRTUAL_MEMORY + + FATAL_ERROR - FILE - FILES - FILES_MATCHING - FILE_PERMISSIONS - FIND - FLAGS - FOLLOW_SYMLINKS - FORCE - FRAMEWORK - FULL_DOCS - FUNCTION - GENERATE - GENEX_STRIP + VERSION + + + PARSE_ARGV + + GET - GLOB - GLOBAL - GLOB_RECURSE + POP + PUSH + SET + VERSION + + + NEW + OLD + + + @ONLY + COPYONLY + ESCAPE_QUOTES + NEWLINE_STYLE + + + CRLF + DOS + LF + UNIX + WIN32 + + + AND + DEFINED + EQUAL + EXISTS GREATER - GROUP_EXECUTE - GROUP_READ - GUARD - GUID - HEX - HINTS - IMPLICIT_DEPENDS - IMPORTED - IN - INACTIVITY_TIMEOUT - INCLUDE - INCLUDES - INCLUDE_INTERNALS - INCLUDE_LABEL - INHERITED - INPUT - INPUT_FILE - INSERT - INSTALL - INTERFACE + GREATER_EQUAL + IN_LIST IS_ABSOLUTE IS_DIRECTORY IS_NEWER_THAN IS_SYMLINK - ITEMS - LABELS - LANGUAGES - LENGTH + LESS + LESS_EQUAL + MATCHES + NOT + OR + POLICY + STREQUAL + STRGREATER + STRGREATER_EQUAL + STRLESS + STRLESS_EQUAL + TARGET + TEST + VERSION_EQUAL + VERSION_GREATER + VERSION_GREATER_EQUAL + VERSION_LESS + VERSION_LESS_EQUAL + + + COMMAND + ENCODING + ERROR_FILE + ERROR_QUIET + ERROR_STRIP_TRAILING_WHITESPACE + ERROR_VARIABLE + INPUT_FILE + OUTPUT_FILE + OUTPUT_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE + OUTPUT_VARIABLE + RESULTS_VARIABLE + RESULT_VARIABLE + TIMEOUT + WORKING_DIRECTORY + + + ANSI + AUTO + NONE + OEM + UTF8 + + + APPEND + CONDITION + CONFIGURE_DEPENDS + CONTENT + COPY + DESTINATION + DIRECTORY + DIRECTORY_PERMISSIONS + DOWNLOAD + ENCODING + EXCLUDE + EXPECTED_HASH + EXPECTED_MD5 + FILES_MATCHING + FILE_PERMISSIONS + FOLLOW_SYMLINKS + GENERATE + GLOB + GLOB_RECURSE + GUARD + HEX + HTTPHEADER + INACTIVITY_TIMEOUT + INPUT + INSTALL LENGTH_MAXIMUM LENGTH_MINIMUM - LESS - LF - LIBRARY LIMIT LIMIT_COUNT LIMIT_INPUT LIMIT_OUTPUT - LINK_INTERFACE_LIBRARIES - LINK_LIBRARIES - LINK_PRIVATE - LINK_PUBLIC - LISTS LIST_DIRECTORIES LOCK LOG - MACOSX_BUNDLE - MAIN_DEPENDENCY - MAKE_C_IDENTIFIER MAKE_DIRECTORY - MATCH - MATCHALL - MATCHES MD5 - MESSAGE_NEVER - MODULE - NAME - NAMELINK_ONLY - NAMELINK_SKIP - NAMES - NAMESPACE - NAMES_PER_DIR - NEW + NETRC + NETRC_FILE NEWLINE_CONSUME - NEWLINE_STYLE - NEW_PROCESS - NOT - NOTEQUAL - NO_CMAKE_BUILDS_PATH + NO_HEX_CONVERSION + NO_SOURCE_PERMISSIONS + OFFSET + OUTPUT + PATTERN + PERMISSIONS + READ + REGEX + RELATIVE + RELATIVE_PATH + RELEASE + REMOVE + REMOVE_RECURSE + RENAME + RESULT_VARIABLE + SHA1 + SHA224 + SHA256 + SHA384 + SHA3_224 + SHA3_256 + SHA3_384 + SHA3_512 + SHA512 + SHOW_PROGRESS + STATUS + STRINGS + TIMEOUT + TIMESTAMP + TLS_CAINFO + TLS_VERIFY + TOUCH + TOUCH_NOCREATE + TO_CMAKE_PATH + TO_NATIVE_PATH + UPLOAD + USERPWD + USE_SOURCE_PERMISSIONS + UTC + WRITE + + + FILE + FUNCTION + GROUP_EXECUTE + GROUP_READ + GROUP_WRITE + IGNORED + OPTIONAL + OWNER_EXECUTE + OWNER_READ + OWNER_WRITE + PROCESS + REQUIRED + SETGID + SETUID + UTF-16BE + UTF-16LE + UTF-32B + UTF-32LE + UTF-8 + WORLD_EXECUTE + WORLD_READ + WORLD_WRITE + + + CMAKE_FIND_ROOT_PATH_BOTH + DOC + HINTS + NAMES + NO_CMAKE_ENVIRONMENT_PATH + NO_CMAKE_FIND_ROOT_PATH + NO_CMAKE_PATH + NO_CMAKE_SYSTEM_PATH + NO_DEFAULT_PATH + NO_PACKAGE_ROOT_PATH + NO_SYSTEM_ENVIRONMENT_PATH + ONLY_CMAKE_FIND_ROOT_PATH + PATHS + PATH_SUFFIXES + + + CMAKE_FIND_ROOT_PATH_BOTH + DOC + HINTS + NAMES + NAMES_PER_DIR + NO_CMAKE_ENVIRONMENT_PATH + NO_CMAKE_FIND_ROOT_PATH + NO_CMAKE_PATH + NO_CMAKE_SYSTEM_PATH + NO_DEFAULT_PATH + NO_PACKAGE_ROOT_PATH + NO_SYSTEM_ENVIRONMENT_PATH + ONLY_CMAKE_FIND_ROOT_PATH + PATHS + PATH_SUFFIXES + + + CMAKE_FIND_ROOT_PATH_BOTH + COMPONENTS + CONFIG + CONFIGS + EXACT + HINTS + MODULE + NAMES NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_FIND_ROOT_PATH NO_CMAKE_PACKAGE_REGISTRY @@ -340,441 +421,775 @@ NO_CMAKE_SYSTEM_PACKAGE_REGISTRY NO_CMAKE_SYSTEM_PATH NO_DEFAULT_PATH - NO_HEX_CONVERSION NO_MODULE + NO_PACAKGE_ROOT_PATH NO_POLICY_SCOPE - NO_SOURCE_PERMISSIONS NO_SYSTEM_ENVIRONMENT_PATH - NUMBER_ERRORS - NUMBER_WARNINGS - OBJECT - OFF - OFFSET - OLD - ON ONLY_CMAKE_FIND_ROOT_PATH - OPTIONAL OPTIONAL_COMPONENTS - OPTIONS - OR - OUTPUT - OUTPUT_DIRECTORY - OUTPUT_FILE - OUTPUT_QUIET - OUTPUT_STRIP_TRAILING_WHITESPACE - OUTPUT_VARIABLE - OWNER_EXECUTE - OWNER_READ - OWNER_WRITE - PACKAGE - PARALLEL_LEVEL - PARENT_SCOPE - PARTS PATHS PATH_SUFFIXES - PATH_TO_MESA - PATTERN - PERMISSIONS - PLATFORM - POLICY - POP - POST_BUILD - PREORDER - PRE_BUILD - PRE_LINK - PRIVATE - PRIVATE_HEADER - PROCESS - PROGRAM - PROGRAMS - PROGRAM_ARGS - PROJECT_NAME - PROPERTIES - PROPERTY - PUBLIC - PUBLIC_HEADER - PUSH - QUERY QUIET - RANDOM - RANDOM_SEED + REQUIRED + + + CMAKE_FIND_ROOT_PATH_BOTH + DOC + HINTS + NAMES + NO_CMAKE_ENVIRONMENT_PATH + NO_CMAKE_FIND_ROOT_PATH + NO_CMAKE_PATH + NO_CMAKE_SYSTEM_PATH + NO_DEFAULT_PATH + NO_PACKAGE_ROOT_PATH + NO_SYSTEM_ENVIRONMENT_PATH + ONLY_CMAKE_FIND_ROOT_PATH + PATHS + PATH_SUFFIXES + + + CMAKE_FIND_ROOT_PATH_BOTH + DOC + HINTS + NAMES + NAMES_PER_DIR + NO_CMAKE_ENVIRONMENT_PATH + NO_CMAKE_FIND_ROOT_PATH + NO_CMAKE_PATH + NO_CMAKE_SYSTEM_PATH + NO_DEFAULT_PATH + NO_PACKAGE_ROOT_PATH + NO_SYSTEM_ENVIRONMENT_PATH + ONLY_CMAKE_FIND_ROOT_PATH + PATHS + PATH_SUFFIXES + + + IN + ITEMS + LISTS RANGE - READ - READ_WITH_PREFIX + + + DEFINITION + DIRECTORY + + + ABSOLUTE + BASE_DIR + CACHE + DIRECTORY + EXT + NAME + NAME_WE + PATH + PROGRAM + PROGRAM_ARGS + REALPATH + + + BRIEF_DOCS + CACHE + DEFINED + DIRECTORY + FULL_DOCS + GLOBAL + INSTALL + PROPERTY + SET + SOURCE + TARGET + TEST + VARIABLE + + + AND + DEFINED + EQUAL + EXISTS + GREATER + GREATER_EQUAL + IN_LIST + IS_ABSOLUTE + IS_DIRECTORY + IS_NEWER_THAN + IS_SYMLINK + LESS + LESS_EQUAL + MATCHES + NOT + OR + POLICY + STREQUAL + STRGREATER + STRGREATER_EQUAL + STRLESS + STRLESS_EQUAL + TARGET + TEST + VERSION_EQUAL + VERSION_GREATER + VERSION_GREATER_EQUAL + VERSION_LESS + VERSION_LESS_EQUAL + + + NO_POLICY_SCOPE + OPTIONAL + RESULT_VARIABLE + + + DIRECTORY + GLOBAL + + + APPEND + AT + EXCLUDE + FILTER + FIND + FOR + GENEX_STRIP + GET + INCLUDE + INSERT + JOIN + LENGTH + OUTPUT_VARIABLE + PREPEND REGEX - REGULAR_EXPRESSION - RELATIVE - RELATIVE_PATH - RELEASE - REMOVE REMOVE_AT REMOVE_DUPLICATES REMOVE_ITEM - REMOVE_RECURSE - RENAME REPLACE - REQUIRED - REQUIRED_VARIABLE1 - REQUIRED_VARIABLE2 - RESOURCE - RESULT - RESULT_VAR - RESULT_VARIABLE - RETRY_COUNT - RETRY_DELAY - RETURN_VALUE REVERSE - RUNTIME - RUNTIME_DIRECTORY - RUN_OUTPUT_VARIABLE - RUN_RESULT_VAR - SCHEDULE_RANDOM - SCRIPT + SORT + STRIP + SUBLIST + TOLOWER + TRANSFORM + + + CLEAR + FORCE + + + EXPR + + + AUTHOR_WARNING + DEPRECATION + FATAL_ERROR SEND_ERROR - SET + STATUS + WARNING + + + NATIVE_COMMAND + UNIX_COMMAND + WINDOWS_COMMAND + + + PROPERTIES + + + APPEND + APPEND_STRING + CACHE + DIRECTORY + GLOBAL + INSTALL + PROPERTY + SOURCE + TARGET + TEST + VARIABLE + + + CACHE + FORCE + PARENT_SCOPE + + + BOOL + FILEPATH + INTERNAL + PATH + STATIC + STRING + + + @ONLY + ALPHABET + APPEND + ASCII + COMPARE + CONCAT + CONFIGURE + EQUAL + ESCAPE_QUOTES + FIND + GENEX_STRIP + GREATER + GREATER_EQUAL + JOIN + LENGTH + LESS + LESS_EQUAL + MAKE_C_IDENTIFIER + MATCH + MATCHALL + MD5 + NAME + NAMESPACE + NOTEQUAL + PREPEND + RANDOM + RANDOM_SEED + REGEX + REPLACE + REVERSE SHA1 SHA224 SHA256 SHA384 + SHA3_224 + SHA3_256 + SHA3_384 + SHA3_512 SHA512 - SHARED - SHOW_PROGRESS - SORT - SOURCE - SOURCES - START - STATIC - STATUS - STREQUAL - STRGREATER - STOP_TIME - STRIDE - STRINGS STRIP - STRLESS SUBSTRING - SYSTEM - TARGET - TARGETS - TEST - TEST_VARIABLE - TIMEOUT TIMESTAMP - TLS_CAINFO - TLS_VERIFY TOLOWER TOUPPER - TO_CMAKE_PATH - TO_NATIVE_PATH - TRACK TYPE - UNIX - UNIX_COMMAND - UNKNOWN - UPLOAD UPPER - USES_TERMINAL - USE_SOURCE_PERMISSIONS UTC UUID - VALUE - VARIABLE - VERBATIM - VERSION + + + CACHE + PARENT_SCOPE + + + AND + DEFINED + EQUAL + EXISTS + GREATER + GREATER_EQUAL + IN_LIST + IS_ABSOLUTE + IS_DIRECTORY + IS_NEWER_THAN + IS_SYMLINK + LESS + LESS_EQUAL + MATCHES + NOT + OR + POLICY + STREQUAL + STRGREATER + STRGREATER_EQUAL + STRLESS + STRLESS_EQUAL + TARGET + TEST VERSION_EQUAL VERSION_GREATER + VERSION_GREATER_EQUAL VERSION_LESS - WARNING - WIN32 - WINDOWS_COMMAND - WORKING_DIRECTORY - WRITE + VERSION_LESS_EQUAL - - - - - PATH - NAME - EXT - NAME_WE - ABSOLUTE - REALPATH - - FILEPATH - - STRING - BOOL - INTERNAL - - NUMBER_OF_LOGICAL_CORES - NUMBER_OF_PHYSICAL_CORES - HOSTNAME - FQDN - TOTAL_VIRTUAL_MEMORY - AVAILABLE_VIRTUAL_MEMORY - TOTAL_PHYSICAL_MEMORY - AVAILABLE_PHYSICAL_MEMORY - - IN_LIST - - - - - - ABSTRACT - ADDITIONAL_MAKE_CLEAN_FILES - ADVANCED - ALIASED_TARGET - ALLOW_DUPLICATE_CUSTOM_TARGETS - ANDROID_API - ANDROID_API_MIN - ANDROID_GUI - ARCHIVE_OUTPUT_DIRECTORY - ARCHIVE_OUTPUT_NAME - ATTACHED_FILES - ATTACHED_FILES_ON_FAIL - AUTOGEN_TARGETS_FOLDER - AUTOGEN_TARGET_DEPENDS - AUTOMOC - AUTOMOC_MOC_OPTIONS - AUTOMOC_TARGETS_FOLDER - AUTORCC - AUTORCC_OPTIONS - AUTOUIC - AUTOUIC_OPTIONS - BUILD_WITH_INSTALL_RPATH - BUNDLE - BUNDLE_EXTENSION - CACHE_VARIABLES - CLEAN_NO_CUSTOM - CMAKE_CONFIGURE_DEPENDS - CMAKE_CXX_KNOWN_FEATURES - CMAKE_C_KNOWN_FEATURES - COMPATIBLE_INTERFACE_BOOL - COMPATIBLE_INTERFACE_NUMBER_MAX - COMPATIBLE_INTERFACE_NUMBER_MIN - COMPATIBLE_INTERFACE_STRING - COMPILE_DEFINITIONS - COMPILE_FEATURES - COMPILE_FLAGS - COMPILE_OPTIONS - COMPILE_PDB_NAME - COMPILE_PDB_OUTPUT_DIRECTORY - COST - CPACK_DESKTOP_SHORTCUTS - CPACK_NEVER_OVERWRITE - CPACK_PERMANENT - CPACK_STARTUP_SHORTCUTS - CPACK_START_MENU_SHORTCUTS - CPACK_WIX_ACL - CROSSCOMPILING_EMULATOR - CXX_EXTENSIONS - CXX_STANDARD - CXX_STANDARD_REQUIRED - C_EXTENSIONS - C_STANDARD - C_STANDARD_REQUIRED - DEBUG_CONFIGURATIONS - DEBUG_POSTFIX - DEFINE_SYMBOL - DEFINITIONS + + APPEND + ARGS + BYPRODUCTS + COMMAND + COMMAND_EXPAND_LISTS + COMMENT DEPENDS - DISABLED_FEATURES - ECLIPSE_EXTRA_NATURES - ENABLED_FEATURES - ENABLED_LANGUAGES - ENABLE_EXPORTS - ENVIRONMENT - EXCLUDE_FROM_ALL - EXCLUDE_FROM_DEFAULT_BUILD - EXPORT_NAME - EXTERNAL_OBJECT - EchoString - FAIL_REGULAR_EXPRESSION - FIND_LIBRARY_USE_LIB64_PATHS - FIND_LIBRARY_USE_OPENBSD_VERSIONING - FOLDER - FRAMEWORK - Fortran_FORMAT - Fortran_MODULE_DIRECTORY - GENERATED - GENERATOR_FILE_NAME - GLOBAL_DEPENDS_DEBUG_MODE - GLOBAL_DEPENDS_NO_CYCLES - GNUtoMS - HAS_CXX - HEADER_FILE_ONLY - HELPSTRING - IMPLICIT_DEPENDS_INCLUDE_TRANSFORM - IMPORTED - IMPORTED_CONFIGURATIONS - IMPORTED_IMPLIB - IMPORTED_LINK_DEPENDENT_LIBRARIES - IMPORTED_LINK_INTERFACE_LANGUAGES - IMPORTED_LINK_INTERFACE_LIBRARIES - IMPORTED_LINK_INTERFACE_MULTIPLICITY - IMPORTED_LOCATION - IMPORTED_NO_SONAME - IMPORTED_SONAME - IMPORT_PREFIX - IMPORT_SUFFIX - INCLUDE_DIRECTORIES - INCLUDE_REGULAR_EXPRESSION - INSTALL_NAME_DIR - INSTALL_RPATH - INSTALL_RPATH_USE_LINK_PATH - INTERFACE_AUTOUIC_OPTIONS - INTERFACE_COMPILE_DEFINITIONS - INTERFACE_COMPILE_FEATURES - INTERFACE_COMPILE_OPTIONS - INTERFACE_INCLUDE_DIRECTORIES - INTERFACE_LINK_LIBRARIES - INTERFACE_POSITION_INDEPENDENT_CODE - INTERFACE_SOURCES - INTERFACE_SYSTEM_INCLUDE_DIRECTORIES - INTERPROCEDURAL_OPTIMIZATION - IN_TRY_COMPILE - JOB_POOLS - JOB_POOL_COMPILE - JOB_POOL_LINK - KEEP_EXTENSION - LABELS - LANGUAGE - LIBRARY_OUTPUT_DIRECTORY - LIBRARY_OUTPUT_NAME - LINKER_LANGUAGE - LINK_DEPENDS - LINK_DEPENDS_NO_SHARED - LINK_DIRECTORIES - LINK_FLAGS - LINK_INTERFACE_LIBRARIES - LINK_INTERFACE_MULTIPLICITY - LINK_LIBRARIES - LINK_SEARCH_END_STATIC - LINK_SEARCH_START_STATIC - LISTFILE_STACK - LOCATION - MACOSX_BUNDLE - MACOSX_BUNDLE_INFO_PLIST - MACOSX_FRAMEWORK_INFO_PLIST - MACOSX_PACKAGE_LOCATION - MACOSX_RPATH - MACROS - MEASUREMENT - MODIFIED - NAME - NO_SONAME - NO_SYSTEM_FROM_IMPORTED - OBJECT_DEPENDS - OBJECT_OUTPUTS - OSX_ARCHITECTURES - OUTPUT_NAME - PACKAGES_FOUND - PACKAGES_NOT_FOUND - PARENT_DIRECTORY - PASS_REGULAR_EXPRESSION - PDB_NAME - PDB_OUTPUT_DIRECTORY - POSITION_INDEPENDENT_CODE - POST_INSTALL_SCRIPT - PREDEFINED_TARGETS_FOLDER - PREFIX - PRE_INSTALL_SCRIPT - PRIVATE_HEADER - PROCESSORS - PROJECT_LABEL - PUBLIC_HEADER - REPORT_UNDEFINED_PROPERTIES - REQUIRED_FILES - RESOURCE - RESOURCE_LOCK - RULE_LAUNCH_COMPILE - RULE_LAUNCH_CUSTOM - RULE_LAUNCH_LINK - RULE_MESSAGES - RUNTIME_OUTPUT_DIRECTORY - RUNTIME_OUTPUT_NAME - RUN_SERIAL - SKIP_BUILD_RPATH - SKIP_RETURN_CODE - SOURCES - SOVERSION - STATIC_LIBRARY_FLAGS - STRINGS - SUFFIX - SYMBOLIC - TARGET_ARCHIVES_MAY_BE_SHARED_LIBS - TARGET_SUPPORTS_SHARED_LIBS - TEST_INCLUDE_FILE - TIMEOUT - TYPE - USE_FOLDERS - VALUE - VARIABLES - VERSION - VISIBILITY_INLINES_HIDDEN - VS_DEPLOYMENT_CONTENT - VS_DEPLOYMENT_LOCATION - VS_DOTNET_REFERENCES - VS_DOTNET_TARGET_FRAMEWORK_VERSION - VS_GLOBAL_KEYWORD - VS_GLOBAL_PROJECT_TYPES - VS_GLOBAL_ROOTNAMESPACE - VS_KEYWORD - VS_SCC_AUXPATH - VS_SCC_LOCALPATH - VS_SCC_PROJECTNAME - VS_SCC_PROVIDER - VS_SHADER_ENTRYPOINT - VS_SHADER_FLAGS - VS_SHADER_MODEL - VS_SHADER_TYPE - VS_WINRT_COMPONENT - VS_WINRT_EXTENSIONS - VS_WINRT_REFERENCES - VS_XAML_TYPE - WILL_FAIL - WIN32_EXECUTABLE + DEPFILE + IMPLICIT_DEPENDS + MAIN_DEPENDENCY + OUTPUT + POST_BUILD + PRE_BUILD + PRE_LINK + TARGET + USES_TERMINAL + VERBATIM WORKING_DIRECTORY - WRAP_EXCLUDE - XCODE_EXPLICIT_FILE_TYPE - XCODE_LAST_KNOWN_FILE_TYPE - XCTEST + + + ALL + APPEND + BYPRODUCTS + COMMAND + COMMAND_EXPAND_LISTS + COMMENT + DEPENDS + DEPFILE + IMPLICIT_DEPENDS + SOURCES + USES_TERMINAL + VERBATIM + WORKING_DIRECTORY + + + ALIAS + EXCLUDE_FROM_ALL + GLOBAL + IMPORTED + MACOSX_BUNDLE + WIN32 + + + ALIAS + EXCLUDE_FROM_ALL + GLOBAL + IMPORTED + INTERFACE + MODULE + OBJECT + SHARED + STATIC + UNKNOWN + + + EXCLUDE_FROM_ALL + + + COMMAND + CONFIGURATIONS + NAME + WORKING_DIRECTORY + + + CONFIGURATION + TARGET + + + EXTRA_INCLUDE + FUNCTION + + + BRIEF_DOCS + CACHED_VARIABLE + DIRECTORY + FULL_DOCS + GLOBAL + INHERITED + PROPERTY + SOURCE + TEST + VARIABLE + + + OPTIONAL + + + C + CXX + Fortran + RC + + + ANDROID_MK + APPEND + EXPORT + EXPORT_LINK_INTERFACE_LIBRARIES + FILE + NAMESPACE + TARGETS + + + AFTER + BEFORE + SYSTEM + + + GUID + PLATFORM + TYPE + + + ARCHIVE + BUNDLE + CODE + COMPONENT + CONFIGURATIONS + DESTINATION + DIRECTORY + DIRECTORY_PERMISSIONS + EXCLUDE + EXCLUDE_FROM_ALL + EXPORT + EXPORT_ANDROID_MK + EXPORT_LINK_INTERFACE_LIBRARIES + FILE + FILES + FILES_MATCHING + FILE_PERMISSIONS + FRAMEWORK + INCLUDES + LIBRARY + MESSAGE_NEVER + NAMELINK_COMPONENT + NAMELINK_ONLY + NAMELINK_SKIP + NAMESPACE + OBJECTS + OPTIONAL + PATTERN + PERMISSIONS + PRIVATE_HEADER + PROGRAMS + PUBLIC_HEADER + REGEX + RENAME + RESOURCE + RUNTIME + SCRIPT + TARGETS + USE_SOURCE_PERMISSIONS + + + GROUP_EXECUTE + GROUP_READ + GROUP_WRITE + OWNER_EXECUTE + OWNER_READ + OWNER_WRITE + SETGID + SETUID + WORLD_EXECUTE + WORLD_READ + WORLD_WRITE + + + debug + general + optimized + + + EXCLUDE + INCLUDE_INTERNALS + READ_WITH_PREFIX + + + DESCRIPTION + HOMEPAGE_URL + LANGUAGES + VERSION + + + ASM + C + CUDA + CXX + Fortran + NONE + RC + + + PROPERTIES + + + PROPERTIES + + + PROPERTIES + + + FILES + PREFIX + REGULAR_EXPRESSION + TREE + + + INTERFACE + PRIVATE + PUBLIC + + + INTERFACE + PRIVATE + PUBLIC + + + c_function_prototypes + c_restrict + c_static_assert + c_std_11 + c_std_90 + c_std_99 + c_variadic_macros + cxx_aggregate_default_initializers + cxx_alias_templates + cxx_alignas + cxx_alignof + cxx_attribute_deprecated + cxx_attributes + cxx_auto_type + cxx_binary_literals + cxx_constexpr + cxx_contextual_conversions + cxx_decltype + cxx_decltype_auto + cxx_decltype_incomplete_return_types + cxx_default_function_template_args + cxx_defaulted_functions + cxx_defaulted_move_initializers + cxx_delegating_constructors + cxx_deleted_functions + cxx_digit_separators + cxx_enum_forward_declarations + cxx_explicit_conversions + cxx_extended_friend_declarations + cxx_extern_templates + cxx_final + cxx_func_identifier + cxx_generalized_initializers + cxx_generic_lambdas + cxx_inheriting_constructors + cxx_inline_namespaces + cxx_lambda_init_captures + cxx_lambdas + cxx_local_type_template_args + cxx_long_long_type + cxx_noexcept + cxx_nonstatic_member_init + cxx_nullptr + cxx_override + cxx_range_for + cxx_raw_string_literals + cxx_reference_qualified_functions + cxx_relaxed_constexpr + cxx_return_type_deduction + cxx_right_angle_brackets + cxx_rvalue_references + cxx_sizeof_member + cxx_static_assert + cxx_std_11 + cxx_std_14 + cxx_std_17 + cxx_std_20 + cxx_std_98 + cxx_strong_enums + cxx_template_template_parameters + cxx_thread_local + cxx_trailing_return_types + cxx_unicode_literals + cxx_uniform_initialization + cxx_unrestricted_unions + cxx_user_literals + cxx_variable_templates + cxx_variadic_macros + cxx_variadic_templates + + + BEFORE + INTERFACE + PRIVATE + PUBLIC + + + BEFORE + INTERFACE + PRIVATE + PUBLIC + SYSTEM + + + INTERFACE + PRIVATE + PUBLIC + + + INTERFACE + PRIVATE + PUBLIC + + + CMAKE_FLAGS + COMPILE_DEFINITIONS + COPY_FILE + COPY_FILE_ERROR + LINK_LIBRARIES + OUTPUT_VARIABLE + RESULT_VAR + SOURCES + + + ARGS + CMAKE_FLAGS + COMPILE_DEFINITIONS + COMPILE_OUTPUT_VARIABLE + COMPILE_RESULT_VAR + LINK_LIBRARIES + OUTPUT_VARIABLE + RUN_OUTPUT_VARIABLE + RUN_RESULT_VAR + + + APPEND + BUILD + CAPTURE_CMAKE_ERROR + CONFIGURATION + FLAGS + NUMBER_ERRORS + NUMBER_WARNINGS + PROJECT_NAME + RETURN_VALUE + TARGET + + + APPEND + BUILD + CAPTURE_CMAKE_ERROR + OPTIONS + QUIET + RETURN_VALUE + SOURCE + + + APPEND + BUILD + CAPTURE_CMAKE_ERROR + LABELS + QUIET + RETURN_VALUE + + + APPEND + BUILD + DEFECT_COUNT + END + EXCLUDE + EXCLUDE_FIXTURE + EXCLUDE_FIXTURE_CLEANUP + EXCLUDE_FIXTURE_SETUP + EXCLUDE_LABEL + INCLUDE + INCLUDE_LABEL + PARALLEL_LEVEL + QUIET + RETURN_VALUE + SCHEDULE_RANDOM + START + STOP_TIME + STRIDE + TEST_LOAD + + + NEW_PROCESS + RETURN_VALUE + + + APPEND + QUIET + TRACK + + + CDASH_UPLOAD + CDASH_UPLOAD_TYPE + FILES + HTTPHEADER + PARTS + QUIET + RETRY_COUNT + RETRY_DELAY + RETURN_VALUE + + + APPEND + BUILD + CAPTURE_CMAKE_ERROR + END + EXCLUDE + EXCLUDE_FIXTURE + EXCLUDE_FIXTURE_CLEANUP + EXCLUDE_FIXTURE_SETUP + EXCLUDE_LABEL + INCLUDE + INCLUDE_LABEL + PARALLEL_LEVEL + QUIET + RETURN_VALUE + SCHEDULE_RANDOM + START + STOP_TIME + STRIDE + TEST_LOAD + + + QUIET + RETURN_VALUE + SOURCE + + + CAPTURE_CMAKE_ERROR + FILES + QUIET - - - COMMANDS - DEFINITION - - - - - + + ANDROID APPLE BORLAND BUILD_SHARED_LIBS + BUILD_TESTING CMAKE_ABSOLUTE_DESTINATION_FILES + CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS CMAKE_ANDROID_API CMAKE_ANDROID_API_MIN + CMAKE_ANDROID_ARCH + CMAKE_ANDROID_ARCH_ABI + CMAKE_ANDROID_ARM_MODE + CMAKE_ANDROID_ARM_NEON + CMAKE_ANDROID_ASSETS_DIRECTORIES CMAKE_ANDROID_GUI + CMAKE_ANDROID_JAR_DEPENDENCIES + CMAKE_ANDROID_JAR_DIRECTORIES + CMAKE_ANDROID_JAVA_SOURCE_DIR + CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES + CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES + CMAKE_ANDROID_NDK + CMAKE_ANDROID_NDK_DEPRECATED_HEADERS + CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG + CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION + CMAKE_ANDROID_PROCESS_MAX + CMAKE_ANDROID_PROGUARD + CMAKE_ANDROID_PROGUARD_CONFIG_PATH + CMAKE_ANDROID_SECURE_PROPS_PATH + CMAKE_ANDROID_SKIP_ANT_STEP + CMAKE_ANDROID_STANDALONE_TOOLCHAIN + CMAKE_ANDROID_STL_TYPE + CMAKE_ANSI_CXXFLAGS CMAKE_APPBUNDLE_PATH CMAKE_AR CMAKE_ARCHIVE_OUTPUT_DIRECTORY CMAKE_ARGC CMAKE_ARGV0 CMAKE_AUTOMOC + CMAKE_AUTOMOC_DEPEND_FILTERS CMAKE_AUTOMOC_MOC_OPTIONS CMAKE_AUTOMOC_RELAXED_MODE CMAKE_AUTORCC CMAKE_AUTORCC_OPTIONS CMAKE_AUTOUIC CMAKE_AUTOUIC_OPTIONS + CMAKE_AUTOUIC_SEARCH_PATHS CMAKE_BACKWARDS_COMPATIBILITY CMAKE_BINARY_DIR + CMAKE_BUILD_RPATH CMAKE_BUILD_TOOL CMAKE_BUILD_TYPE + CMAKE_BUILD_WITH_INSTALL_NAME_DIR CMAKE_BUILD_WITH_INSTALL_RPATH CMAKE_CACHEFILE_DIR CMAKE_CACHE_MAJOR_VERSION @@ -782,14 +1197,25 @@ CMAKE_CACHE_PATCH_VERSION CMAKE_CFG_INTDIR CMAKE_CL_64 + CMAKE_CODEBLOCKS_COMPILER_ID + CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES + CMAKE_CODELITE_USE_TARGETS CMAKE_COLOR_MAKEFILE CMAKE_COMMAND CMAKE_COMPILER_2005 + CMAKE_COMPILER_IS_GNUCC + CMAKE_COMPILER_IS_GNUCXX + CMAKE_COMPILER_IS_GNUG77 CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY CMAKE_CONFIGURATION_TYPES CMAKE_CROSSCOMPILING CMAKE_CROSSCOMPILING_EMULATOR CMAKE_CTEST_COMMAND + CMAKE_CUDA_EXTENSIONS + CMAKE_CUDA_SEPARABLE_COMPILATION + CMAKE_CUDA_STANDARD + CMAKE_CUDA_STANDARD_REQUIRED + CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES CMAKE_CURRENT_BINARY_DIR CMAKE_CURRENT_LIST_DIR CMAKE_CURRENT_LIST_FILE @@ -805,27 +1231,45 @@ CMAKE_C_STANDARD_REQUIRED CMAKE_DEBUG_POSTFIX CMAKE_DEBUG_TARGET_PROPERTIES + CMAKE_DEPENDS_IN_PROJECT_ONLY + CMAKE_DIRECTORY_LABELS CMAKE_DL_LIBS + CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION + CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES + CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT + CMAKE_ECLIPSE_MAKE_ARGUMENTS + CMAKE_ECLIPSE_VERSION CMAKE_EDIT_COMMAND + CMAKE_ENABLE_EXPORTS CMAKE_ERROR_DEPRECATED CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION CMAKE_EXECUTABLE_SUFFIX CMAKE_EXE_LINKER_FLAGS + CMAKE_EXE_LINKER_FLAGS_INIT + CMAKE_EXPORT_COMPILE_COMMANDS CMAKE_EXPORT_NO_PACKAGE_REGISTRY CMAKE_EXTRA_GENERATOR + CMAKE_EXTRA_INCLUDE_FILES CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES + CMAKE_FIND_APPBUNDLE + CMAKE_FIND_FRAMEWORK + CMAKE_FIND_FRAMEWORK_EXTRA_LOCATIONS + CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX CMAKE_FIND_LIBRARY_PREFIXES CMAKE_FIND_LIBRARY_SUFFIXES CMAKE_FIND_NO_INSTALL_PREFIX CMAKE_FIND_PACKAGE_NAME CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY + CMAKE_FIND_PACKAGE_SORT_DIRECTION + CMAKE_FIND_PACKAGE_SORT_ORDER CMAKE_FIND_PACKAGE_WARN_NO_MODULE CMAKE_FIND_ROOT_PATH CMAKE_FIND_ROOT_PATH_MODE_INCLUDE CMAKE_FIND_ROOT_PATH_MODE_LIBRARY CMAKE_FIND_ROOT_PATH_MODE_PACKAGE CMAKE_FIND_ROOT_PATH_MODE_PROGRAM + CMAKE_FOLDER CMAKE_FRAMEWORK_PATH CMAKE_Fortran_FORMAT CMAKE_Fortran_MODDIR_DEFAULT @@ -833,17 +1277,21 @@ CMAKE_Fortran_MODOUT_FLAG CMAKE_Fortran_MODULE_DIRECTORY CMAKE_GENERATOR + CMAKE_GENERATOR_INSTANCE CMAKE_GENERATOR_PLATFORM CMAKE_GENERATOR_TOOLSET CMAKE_GNUtoMS + CMAKE_HAS_ANSI_STRING_STREAM CMAKE_HOME_DIRECTORY CMAKE_HOST_APPLE + CMAKE_HOST_SOLARIS CMAKE_HOST_SYSTEM CMAKE_HOST_SYSTEM_NAME CMAKE_HOST_SYSTEM_PROCESSOR CMAKE_HOST_SYSTEM_VERSION CMAKE_HOST_UNIX CMAKE_HOST_WIN32 + CMAKE_HP_PTHREADS_INIT CMAKE_IGNORE_PATH CMAKE_IMPORT_LIBRARY_PREFIX CMAKE_IMPORT_LIBRARY_SUFFIX @@ -852,13 +1300,60 @@ CMAKE_INCLUDE_DIRECTORIES_BEFORE CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE CMAKE_INCLUDE_PATH + CMAKE_INSTALL_BINDIR + CMAKE_INSTALL_DATADIR + CMAKE_INSTALL_DATAROOTDIR + CMAKE_INSTALL_DEBUG_LIBRARIES + CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY CMAKE_INSTALL_DEFAULT_COMPONENT_NAME + CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS + CMAKE_INSTALL_DOCDIR + CMAKE_INSTALL_FULL_BINDIR + CMAKE_INSTALL_FULL_DATADIR + CMAKE_INSTALL_FULL_DATAROOTDIR + CMAKE_INSTALL_FULL_DOCDIR + CMAKE_INSTALL_FULL_INCLUDEDIR + CMAKE_INSTALL_FULL_INFODIR + CMAKE_INSTALL_FULL_LIBDIR + CMAKE_INSTALL_FULL_LIBEXECDIR + CMAKE_INSTALL_FULL_LOCALEDIR + CMAKE_INSTALL_FULL_LOCALSTATEDIR + CMAKE_INSTALL_FULL_MANDIR + CMAKE_INSTALL_FULL_OLDINCLUDEDIR + CMAKE_INSTALL_FULL_RUNSTATEDIR + CMAKE_INSTALL_FULL_SBINDIR + CMAKE_INSTALL_FULL_SHAREDSTATEDIR + CMAKE_INSTALL_FULL_SYSCONFDIR + CMAKE_INSTALL_INCLUDEDIR + CMAKE_INSTALL_INFODIR + CMAKE_INSTALL_LIBDIR + CMAKE_INSTALL_LIBEXECDIR + CMAKE_INSTALL_LOCALEDIR + CMAKE_INSTALL_LOCALSTATEDIR + CMAKE_INSTALL_MANDIR CMAKE_INSTALL_MESSAGE + CMAKE_INSTALL_MFC_LIBRARIES CMAKE_INSTALL_NAME_DIR + CMAKE_INSTALL_OLDINCLUDEDIR + CMAKE_INSTALL_OPENMP_LIBRARIES CMAKE_INSTALL_PREFIX + CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT CMAKE_INSTALL_RPATH CMAKE_INSTALL_RPATH_USE_LINK_PATH + CMAKE_INSTALL_RUNSTATEDIR + CMAKE_INSTALL_SBINDIR + CMAKE_INSTALL_SHAREDSTATEDIR + CMAKE_INSTALL_SYSCONFDIR + CMAKE_INSTALL_SYSTEM_RUNTIME_COMPONENT + CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION + CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS + CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS + CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP + CMAKE_INSTALL_UCRT_LIBRARIES CMAKE_INTERNAL_PLATFORM_ABI + CMAKE_INTERPROCEDURAL_OPTIMIZATION + CMAKE_IOS_INSTALL_COMBINED + CMAKE_JOB_POOLS CMAKE_JOB_POOL_COMPILE CMAKE_JOB_POOL_LINK CMAKE_LIBRARY_ARCHITECTURE @@ -872,6 +1367,9 @@ CMAKE_LINK_LIBRARY_FILE_FLAG CMAKE_LINK_LIBRARY_FLAG CMAKE_LINK_LIBRARY_SUFFIX + CMAKE_LINK_SEARCH_END_STATIC + CMAKE_LINK_SEARCH_START_STATIC + CMAKE_LINK_WHAT_YOU_USE CMAKE_MACOSX_BUNDLE CMAKE_MACOSX_RPATH CMAKE_MAJOR_VERSION @@ -881,9 +1379,17 @@ CMAKE_MINIMUM_REQUIRED_VERSION CMAKE_MINOR_VERSION CMAKE_MODULE_LINKER_FLAGS + CMAKE_MODULE_LINKER_FLAGS_INIT CMAKE_MODULE_PATH + CMAKE_NETRC + CMAKE_NETRC_FILE + CMAKE_NINJA_OUTPUT_PATH_PREFIX CMAKE_NOT_USING_CONFIG_FLAGS + CMAKE_NO_ANSI_FOR_SCOPE + CMAKE_NO_ANSI_STREAM_HEADERS + CMAKE_NO_ANSI_STRING_STREAM CMAKE_NO_BUILTIN_CHRPATH + CMAKE_NO_STD_NAMESPACE CMAKE_NO_SYSTEM_FROM_IMPORTED CMAKE_OBJECT_PATH_MAX CMAKE_OSX_ARCHITECTURES @@ -895,14 +1401,27 @@ CMAKE_POSITION_INDEPENDENT_CODE CMAKE_PREFIX_PATH CMAKE_PROGRAM_PATH + CMAKE_PROJECT_DESCRIPTION + CMAKE_PROJECT_HOMEPAGE_URL CMAKE_PROJECT_NAME + CMAKE_PROJECT_VERSION + CMAKE_PROJECT_VERSION_MAJOR + CMAKE_PROJECT_VERSION_MINOR + CMAKE_PROJECT_VERSION_PATCH + CMAKE_PROJECT_VERSION_TWEAK CMAKE_RANLIB + CMAKE_REQUIRED_DEFINITIONS + CMAKE_REQUIRED_FLAGS + CMAKE_REQUIRED_INCLUDES + CMAKE_REQUIRED_LIBRARIES + CMAKE_REQUIRED_QUIET CMAKE_ROOT CMAKE_RUNTIME_OUTPUT_DIRECTORY CMAKE_SCRIPT_MODE_FILE CMAKE_SHARED_LIBRARY_PREFIX CMAKE_SHARED_LIBRARY_SUFFIX CMAKE_SHARED_LINKER_FLAGS + CMAKE_SHARED_LINKER_FLAGS_INIT CMAKE_SHARED_MODULE_PREFIX CMAKE_SHARED_MODULE_SUFFIX CMAKE_SIZEOF_VOID_P @@ -913,12 +1432,23 @@ CMAKE_SKIP_RPATH CMAKE_SOURCE_DIR CMAKE_STAGING_PREFIX - CMAKE_STANDARD_LIBRARIES CMAKE_STATIC_LIBRARY_PREFIX CMAKE_STATIC_LIBRARY_SUFFIX CMAKE_STATIC_LINKER_FLAGS + CMAKE_STATIC_LINKER_FLAGS_INIT + CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS + CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE + CMAKE_SUPPRESS_DEVELOPER_ERRORS + CMAKE_SUPPRESS_DEVELOPER_WARNINGS + CMAKE_SUPPRESS_REGENERATION + CMAKE_SWIG_FLAGS + CMAKE_SWIG_OUTDIR CMAKE_SYSROOT + CMAKE_SYSROOT_COMPILE + CMAKE_SYSROOT_LINK CMAKE_SYSTEM + CMAKE_SYSTEM_APPBUNDLE_PATH + CMAKE_SYSTEM_FRAMEWORK_PATH CMAKE_SYSTEM_IGNORE_PATH CMAKE_SYSTEM_INCLUDE_PATH CMAKE_SYSTEM_LIBRARY_PATH @@ -927,45 +1457,345 @@ CMAKE_SYSTEM_PROCESSOR CMAKE_SYSTEM_PROGRAM_PATH CMAKE_SYSTEM_VERSION + CMAKE_Swift_LANGUAGE_VERSION + CMAKE_THREAD_LIBS_INIT + CMAKE_THREAD_PREFER_PTHREAD CMAKE_TOOLCHAIN_FILE CMAKE_TRY_COMPILE_CONFIGURATION + CMAKE_TRY_COMPILE_PLATFORM_VARIABLES + CMAKE_TRY_COMPILE_TARGET_TYPE CMAKE_TWEAK_VERSION CMAKE_USER_MAKE_RULES_OVERRIDE + CMAKE_USE_PTHREADS_INIT CMAKE_USE_RELATIVE_PATHS + CMAKE_USE_SPROC_INIT + CMAKE_USE_WIN32_THREADS_INIT CMAKE_VERBOSE_MAKEFILE CMAKE_VERSION CMAKE_VISIBILITY_INLINES_HIDDEN CMAKE_VS_DEVENV_COMMAND CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD + CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD CMAKE_VS_INTEL_Fortran_PROJECT_VERSION CMAKE_VS_MSBUILD_COMMAND - CMAKE_VS_MSDEV_COMMAND CMAKE_VS_NsightTegra_VERSION CMAKE_VS_PLATFORM_NAME CMAKE_VS_PLATFORM_TOOLSET + CMAKE_VS_PLATFORM_TOOLSET_CUDA + CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE + CMAKE_VS_SDK_EXCLUDE_DIRECTORIES + CMAKE_VS_SDK_EXECUTABLE_DIRECTORIES + CMAKE_VS_SDK_INCLUDE_DIRECTORIES + CMAKE_VS_SDK_LIBRARY_DIRECTORIES + CMAKE_VS_SDK_LIBRARY_WINRT_DIRECTORIES + CMAKE_VS_SDK_REFERENCE_DIRECTORIES + CMAKE_VS_SDK_SOURCE_DIRECTORIES + CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION CMAKE_WARN_DEPRECATED CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION CMAKE_WIN32_EXECUTABLE + CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS + CMAKE_XCODE_GENERATE_SCHEME CMAKE_XCODE_PLATFORM_TOOLSET CPACK_ABSOLUTE_DESTINATION_FILES + CPACK_ARCHIVE_COMPONENT_INSTALL + CPACK_ARCHIVE_FILE_NAME + CPACK_BUILD_SOURCE_DIRS + CPACK_BUNDLE_APPLE_CERT_APP + CPACK_BUNDLE_APPLE_CODESIGN_FILES + CPACK_BUNDLE_APPLE_CODESIGN_PARAMETER + CPACK_BUNDLE_APPLE_ENTITLEMENTS + CPACK_BUNDLE_ICON + CPACK_BUNDLE_NAME + CPACK_BUNDLE_PLIST + CPACK_BUNDLE_STARTUP_COMMAND + CPACK_CMAKE_GENERATOR + CPACK_COMMAND_CODESIGN + CPACK_COMMAND_HDIUTIL + CPACK_COMMAND_PKGBUILD + CPACK_COMMAND_PRODUCTBUILD + CPACK_COMMAND_REZ + CPACK_COMMAND_SETFILE + CPACK_COMPONENTS_ALL + CPACK_COMPONENTS_GROUPING CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY + CPACK_CREATE_DESKTOP_LINKS + CPACK_CYGWIN_BUILD_SCRIPT + CPACK_CYGWIN_PATCH_FILE + CPACK_CYGWIN_PATCH_NUMBER + CPACK_DEBIAN_ARCHIVE_TYPE + CPACK_DEBIAN_COMPRESSION_TYPE + CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS + CPACK_DEBIAN_FILE_NAME + CPACK_DEBIAN_PACKAGE_ARCHITECTURE + CPACK_DEBIAN_PACKAGE_BREAKS + CPACK_DEBIAN_PACKAGE_CONFLICTS + CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA + CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION + CPACK_DEBIAN_PACKAGE_DEBUG + CPACK_DEBIAN_PACKAGE_DEPENDS + CPACK_DEBIAN_PACKAGE_DESCRIPTION + CPACK_DEBIAN_PACKAGE_ENHANCES + CPACK_DEBIAN_PACKAGE_EPOCH + CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS + CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY + CPACK_DEBIAN_PACKAGE_HOMEPAGE + CPACK_DEBIAN_PACKAGE_MAINTAINER + CPACK_DEBIAN_PACKAGE_NAME + CPACK_DEBIAN_PACKAGE_PREDEPENDS + CPACK_DEBIAN_PACKAGE_PRIORITY + CPACK_DEBIAN_PACKAGE_PROVIDES + CPACK_DEBIAN_PACKAGE_RECOMMENDS + CPACK_DEBIAN_PACKAGE_RELEASE + CPACK_DEBIAN_PACKAGE_REPLACES + CPACK_DEBIAN_PACKAGE_SECTION + CPACK_DEBIAN_PACKAGE_SHLIBDEPS + CPACK_DEBIAN_PACKAGE_SOURCE + CPACK_DEBIAN_PACKAGE_SUGGESTS + CPACK_DEBIAN_PACKAGE_VERSION + CPACK_DEB_COMPONENT_INSTALL + CPACK_DMG_BACKGROUND_IMAGE + CPACK_DMG_DISABLE_APPLICATIONS_SYMLINK + CPACK_DMG_DS_STORE + CPACK_DMG_DS_STORE_SETUP_SCRIPT + CPACK_DMG_FORMAT + CPACK_DMG_SLA_DIR + CPACK_DMG_SLA_LANGUAGES + CPACK_DMG_VOLUME_NAME CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION + CPACK_GENERATOR + CPACK_IFW_ADMIN_TARGET_DIRECTORY + CPACK_IFW_BINARYCREATOR_EXECUTABLE + CPACK_IFW_DEVTOOL_EXECUTABLE + CPACK_IFW_DOWNLOAD_ALL + CPACK_IFW_FRAMEWORK_VERSION + CPACK_IFW_INSTALLERBASE_EXECUTABLE + CPACK_IFW_PACKAGES_DIRECTORIES + CPACK_IFW_PACKAGE_ALLOW_NON_ASCII_CHARACTERS + CPACK_IFW_PACKAGE_ALLOW_SPACE_IN_PATH + CPACK_IFW_PACKAGE_BACKGROUND + CPACK_IFW_PACKAGE_BANNER + CPACK_IFW_PACKAGE_CONTROL_SCRIPT + CPACK_IFW_PACKAGE_GROUP + CPACK_IFW_PACKAGE_ICON + CPACK_IFW_PACKAGE_LOGO + CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_INI_FILE + CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_NAME + CPACK_IFW_PACKAGE_NAME + CPACK_IFW_PACKAGE_PUBLISHER + CPACK_IFW_PACKAGE_REMOVE_TARGET_DIR + CPACK_IFW_PACKAGE_RESOURCES + CPACK_IFW_PACKAGE_START_MENU_DIRECTORY + CPACK_IFW_PACKAGE_TITLE + CPACK_IFW_PACKAGE_TITLE_COLOR + CPACK_IFW_PACKAGE_WATERMARK + CPACK_IFW_PACKAGE_WINDOW_ICON + CPACK_IFW_PACKAGE_WIZARD_DEFAULT_HEIGHT + CPACK_IFW_PACKAGE_WIZARD_DEFAULT_WIDTH + CPACK_IFW_PACKAGE_WIZARD_STYLE + CPACK_IFW_PRODUCT_URL + CPACK_IFW_REPOGEN_EXECUTABLE + CPACK_IFW_REPOSITORIES_ALL + CPACK_IFW_RESOLVE_DUPLICATE_NAMES + CPACK_IFW_ROOT + CPACK_IFW_TARGET_DIRECTORY + CPACK_IFW_VERBOSE CPACK_INCLUDE_TOPLEVEL_DIRECTORY + CPACK_INSTALLED_DIRECTORIES + CPACK_INSTALL_CMAKE_PROJECTS + CPACK_INSTALL_COMMANDS + CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS CPACK_INSTALL_SCRIPT + CPACK_MONOLITHIC_INSTALL + CPACK_NSIS_COMPRESSOR + CPACK_NSIS_CONTACT + CPACK_NSIS_CREATE_ICONS_EXTRA + CPACK_NSIS_DELETE_ICONS_EXTRA + CPACK_NSIS_DISPLAY_NAME + CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL + CPACK_NSIS_EXECUTABLES_DIRECTORY + CPACK_NSIS_EXTRA_INSTALL_COMMANDS + CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS + CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS + CPACK_NSIS_HELP_LINK + CPACK_NSIS_INSTALLED_ICON_NAME + CPACK_NSIS_INSTALLER_MUI_ICON_CODE + CPACK_NSIS_INSTALL_ROOT + CPACK_NSIS_MENU_LINKS + CPACK_NSIS_MODIFY_PATH + CPACK_NSIS_MUI_FINISHPAGE_RUN + CPACK_NSIS_MUI_ICON + CPACK_NSIS_MUI_UNIICON + CPACK_NSIS_MUI_UNWELCOMEFINISHPAGE_BITMAP + CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP + CPACK_NSIS_PACKAGE_NAME + CPACK_NSIS_URL_INFO_ABOUT + CPACK_NUGET_COMPONENT_INSTALL + CPACK_NUGET_PACKAGE_AUTHORS + CPACK_NUGET_PACKAGE_COPYRIGHT + CPACK_NUGET_PACKAGE_DEBUG + CPACK_NUGET_PACKAGE_DEPENDENCIES + CPACK_NUGET_PACKAGE_DESCRIPTION + CPACK_NUGET_PACKAGE_DESCRIPTION_SUMMARY + CPACK_NUGET_PACKAGE_HOMEPAGE_URL + CPACK_NUGET_PACKAGE_ICONURL + CPACK_NUGET_PACKAGE_LICENSEURL + CPACK_NUGET_PACKAGE_NAME + CPACK_NUGET_PACKAGE_OWNERS + CPACK_NUGET_PACKAGE_RELEASE_NOTES + CPACK_NUGET_PACKAGE_TAGS + CPACK_NUGET_PACKAGE_TITLE + CPACK_NUGET_PACKAGE_VERSION + CPACK_OSX_PACKAGE_VERSION + CPACK_OUTPUT_CONFIG_FILE + CPACK_PACKAGE_CHECKSUM + CPACK_PACKAGE_CONTACT + CPACK_PACKAGE_DESCRIPTION + CPACK_PACKAGE_DESCRIPTION_FILE + CPACK_PACKAGE_DESCRIPTION_SUMMARY + CPACK_PACKAGE_DIRECTORY + CPACK_PACKAGE_EXECUTABLES + CPACK_PACKAGE_FILE_NAME + CPACK_PACKAGE_HOMEPAGE_URL + CPACK_PACKAGE_ICON + CPACK_PACKAGE_INSTALL_DIRECTORY + CPACK_PACKAGE_INSTALL_REGISTRY_KEY + CPACK_PACKAGE_NAME + CPACK_PACKAGE_VENDOR + CPACK_PACKAGE_VERSION + CPACK_PACKAGE_VERSION_MAJOR + CPACK_PACKAGE_VERSION_MINOR + CPACK_PACKAGE_VERSION_PATCH CPACK_PACKAGING_INSTALL_PREFIX + CPACK_PKGBUILD_IDENTITY_NAME + CPACK_PKGBUILD_KEYCHAIN_PATH + CPACK_PRODUCTBUILD_IDENTITY_NAME + CPACK_PRODUCTBUILD_KEYCHAIN_PATH + CPACK_PRODUCTBUILD_RESOURCES_DIR + CPACK_PROJECT_CONFIG_FILE + CPACK_RESOURCE_FILE_LICENSE + CPACK_RESOURCE_FILE_README + CPACK_RESOURCE_FILE_WELCOME + CPACK_RPM_ADDITIONAL_MAN_DIRS + CPACK_RPM_BUILDREQUIRES + CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX + CPACK_RPM_CHANGELOG_FILE + CPACK_RPM_COMPONENT_INSTALL + CPACK_RPM_COMPRESSION_TYPE + CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS + CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS_ADDITION + CPACK_RPM_DEBUGINFO_FILE_NAME + CPACK_RPM_DEBUGINFO_PACKAGE + CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE + CPACK_RPM_DEFAULT_DIR_PERMISSIONS + CPACK_RPM_DEFAULT_FILE_PERMISSIONS + CPACK_RPM_DEFAULT_GROUP + CPACK_RPM_DEFAULT_USER + CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST + CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION + CPACK_RPM_FILE_NAME + CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE + CPACK_RPM_INSTALL_WITH_EXEC + CPACK_RPM_MAIN_COMPONENT + CPACK_RPM_NO_INSTALL_PREFIX_RELOCATION + CPACK_RPM_PACKAGE_ARCHITECTURE + CPACK_RPM_PACKAGE_AUTOPROV + CPACK_RPM_PACKAGE_AUTOREQ + CPACK_RPM_PACKAGE_AUTOREQPROV + CPACK_RPM_PACKAGE_CONFLICTS + CPACK_RPM_PACKAGE_DEBUG + CPACK_RPM_PACKAGE_DESCRIPTION + CPACK_RPM_PACKAGE_EPOCH + CPACK_RPM_PACKAGE_GROUP + CPACK_RPM_PACKAGE_LICENSE + CPACK_RPM_PACKAGE_NAME + CPACK_RPM_PACKAGE_OBSOLETES + CPACK_RPM_PACKAGE_PROVIDES + CPACK_RPM_PACKAGE_RELEASE + CPACK_RPM_PACKAGE_RELEASE_DIST + CPACK_RPM_PACKAGE_RELOCATABLE + CPACK_RPM_PACKAGE_REQUIRES + CPACK_RPM_PACKAGE_REQUIRES_POST + CPACK_RPM_PACKAGE_REQUIRES_POSTUN + CPACK_RPM_PACKAGE_REQUIRES_PRE + CPACK_RPM_PACKAGE_REQUIRES_PREUN + CPACK_RPM_PACKAGE_SOURCES + CPACK_RPM_PACKAGE_SUGGESTS + CPACK_RPM_PACKAGE_SUMMARY + CPACK_RPM_PACKAGE_URL + CPACK_RPM_PACKAGE_VENDOR + CPACK_RPM_PACKAGE_VERSION + CPACK_RPM_POST_INSTALL_SCRIPT_FILE + CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE + CPACK_RPM_PRE_INSTALL_SCRIPT_FILE + CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE + CPACK_RPM_RELOCATION_PATHS + CPACK_RPM_SOURCE_PKG_BUILD_PARAMS + CPACK_RPM_SOURCE_PKG_PACKAGING_INSTALL_PREFIX + CPACK_RPM_SPEC_INSTALL_POST + CPACK_RPM_SPEC_MORE_DEFINE + CPACK_RPM_USER_BINARY_SPECFILE + CPACK_RPM_USER_FILELIST CPACK_SET_DESTDIR + CPACK_SOURCE_GENERATOR + CPACK_SOURCE_IGNORE_FILES + CPACK_SOURCE_OUTPUT_CONFIG_FILE + CPACK_SOURCE_PACKAGE_FILE_NAME + CPACK_SOURCE_STRIP_FILES + CPACK_STRIP_FILES + CPACK_SYSTEM_NAME + CPACK_TOPLEVEL_TAG + CPACK_VERBATIM_VARIABLES CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION + CPACK_WIX_CMAKE_PACKAGE_REGISTRY + CPACK_WIX_CULTURES + CPACK_WIX_EXTENSIONS + CPACK_WIX_EXTRA_OBJECTS + CPACK_WIX_EXTRA_SOURCES + CPACK_WIX_LICENSE_RTF + CPACK_WIX_PATCH_FILE + CPACK_WIX_PRODUCT_GUID + CPACK_WIX_PRODUCT_ICON + CPACK_WIX_PROGRAM_MENU_FOLDER + CPACK_WIX_ROOT + CPACK_WIX_ROOT_FEATURE_DESCRIPTION + CPACK_WIX_ROOT_FEATURE_TITLE + CPACK_WIX_ROOT_FOLDER_ID + CPACK_WIX_SKIP_PROGRAM_FOLDER + CPACK_WIX_TEMPLATE + CPACK_WIX_UI_BANNER + CPACK_WIX_UI_DIALOG + CPACK_WIX_UI_REF + CPACK_WIX_UPGRADE_GUID CTEST_BINARY_DIRECTORY CTEST_BUILD_COMMAND CTEST_BUILD_NAME CTEST_BZR_COMMAND CTEST_BZR_UPDATE_OPTIONS + CTEST_CHANGE_ID CTEST_CHECKOUT_COMMAND CTEST_CONFIGURATION_TYPE CTEST_CONFIGURE_COMMAND CTEST_COVERAGE_COMMAND CTEST_COVERAGE_EXTRA_FLAGS CTEST_CURL_OPTIONS + CTEST_CUSTOM_COVERAGE_EXCLUDE + CTEST_CUSTOM_ERROR_EXCEPTION + CTEST_CUSTOM_ERROR_MATCH + CTEST_CUSTOM_ERROR_POST_CONTEXT + CTEST_CUSTOM_ERROR_PRE_CONTEXT + CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE + CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS + CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS + CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE + CTEST_CUSTOM_MEMCHECK_IGNORE + CTEST_CUSTOM_POST_MEMCHECK + CTEST_CUSTOM_POST_TEST + CTEST_CUSTOM_PRE_MEMCHECK + CTEST_CUSTOM_PRE_TEST + CTEST_CUSTOM_TEST_IGNORE + CTEST_CUSTOM_WARNING_EXCEPTION + CTEST_CUSTOM_WARNING_MATCH CTEST_CVS_CHECKOUT CTEST_CVS_COMMAND CTEST_CVS_UPDATE_OPTIONS @@ -975,11 +1805,14 @@ CTEST_DROP_SITE_CDASH CTEST_DROP_SITE_PASSWORD CTEST_DROP_SITE_USER + CTEST_EXTRA_COVERAGE_GLOB CTEST_GIT_COMMAND + CTEST_GIT_INIT_SUBMODULES CTEST_GIT_UPDATE_CUSTOM CTEST_GIT_UPDATE_OPTIONS CTEST_HG_COMMAND CTEST_HG_UPDATE_OPTIONS + CTEST_LABELS_FOR_SUBPROJECTS CTEST_MEMORYCHECK_COMMAND CTEST_MEMORYCHECK_COMMAND_OPTIONS CTEST_MEMORYCHECK_SANITIZER_OPTIONS @@ -996,6 +1829,7 @@ CTEST_SVN_COMMAND CTEST_SVN_OPTIONS CTEST_SVN_UPDATE_OPTIONS + CTEST_TEST_LOAD CTEST_TEST_TIMEOUT CTEST_TRIGGER_SITE CTEST_UPDATE_COMMAND @@ -1003,9 +1837,35 @@ CTEST_UPDATE_VERSION_ONLY CTEST_USE_LAUNCHERS CYGWIN - ENV EXECUTABLE_OUTPUT_PATH + ExternalData_BINARY_ROOT + ExternalData_CUSTOM_ERROR + ExternalData_CUSTOM_FILE + ExternalData_CUSTOM_LOCATION + ExternalData_LINK_CONTENT + ExternalData_NO_SYMLINKS + ExternalData_OBJECT_STORES + ExternalData_SERIES_MATCH + ExternalData_SERIES_PARSE + ExternalData_SERIES_PARSE_NUMBER + ExternalData_SERIES_PARSE_PREFIX + ExternalData_SERIES_PARSE_SUFFIX + ExternalData_SOURCE_ROOT + ExternalData_TIMEOUT_ABSOLUTE + ExternalData_TIMEOUT_INACTIVITY + ExternalData_URL_TEMPLATES GHS-MULTI + GRAPHVIZ_EXECUTABLES + GRAPHVIZ_EXTERNAL_LIBS + GRAPHVIZ_GENERATE_PER_TARGET + GRAPHVIZ_GRAPH_HEADER + GRAPHVIZ_GRAPH_NAME + GRAPHVIZ_GRAPH_TYPE + GRAPHVIZ_IGNORE_TARGETS + GRAPHVIZ_MODULE_LIBS + GRAPHVIZ_NODE_PREFIX + GRAPHVIZ_SHARED_LIBS + GRAPHVIZ_STATIC_LIBS LIBRARY_OUTPUT_PATH MINGW MSVC @@ -1019,8 +1879,25 @@ MSVC80 MSVC90 MSVC_IDE + MSVC_TOOLSET_VERSION MSVC_VERSION + PACKAGE_FIND_NAME + PACKAGE_FIND_VERSION + PACKAGE_FIND_VERSION_COUNT + PACKAGE_FIND_VERSION_MAJOR + PACKAGE_FIND_VERSION_MINOR + PACKAGE_FIND_VERSION_PATCH + PACKAGE_FIND_VERSION_TWEAK + PACKAGE_VERSION + PACKAGE_VERSION_COMPATIBLE + PACKAGE_VERSION_EXACT + PACKAGE_VERSION_UNSUITABLE + PKG_CONFIG_EXECUTABLE + PKG_CONFIG_USE_CMAKE_PREFIX_PATH + PKG_CONFIG_VERSION_STRING PROJECT_BINARY_DIR + PROJECT_DESCRIPTION + PROJECT_HOMEPAGE_URL PROJECT_NAME PROJECT_SOURCE_DIR PROJECT_VERSION @@ -1028,273 +1905,1792 @@ PROJECT_VERSION_MINOR PROJECT_VERSION_PATCH PROJECT_VERSION_TWEAK + QTIFWDIR + THREADS_PREFER_PTHREAD_FLAG UNIX WIN32 WINCE WINDOWS_PHONE WINDOWS_STORE + XCODE XCODE_VERSION - - - CONFIGURATION - ANGLE-R - COMMA - SEMICOLON - INSTALL_PREFIX + + ALLOW_DUPLICATE_CUSTOM_TARGETS + AUTOGEN_SOURCE_GROUP + AUTOGEN_TARGETS_FOLDER + AUTOMOC_SOURCE_GROUP + AUTOMOC_TARGETS_FOLDER + AUTORCC_SOURCE_GROUP + CMAKE_CXX_KNOWN_FEATURES + CMAKE_C_KNOWN_FEATURES + DEBUG_CONFIGURATIONS + DISABLED_FEATURES + ECLIPSE_EXTRA_NATURES + ENABLED_FEATURES + ENABLED_LANGUAGES + FIND_LIBRARY_USE_LIB32_PATHS + FIND_LIBRARY_USE_LIB64_PATHS + FIND_LIBRARY_USE_LIBX32_PATHS + FIND_LIBRARY_USE_OPENBSD_VERSIONING + FeatureSummary_DEFAULT_PKG_TYPE + FeatureSummary_PKG_TYPES + FeatureSummary_REQUIRED_PKG_TYPES + GENERATOR_IS_MULTI_CONFIG + GLOBAL_DEPENDS_DEBUG_MODE + GLOBAL_DEPENDS_NO_CYCLES + IN_TRY_COMPILE + JOB_POOLS + PACKAGES_FOUND + PACKAGES_NOT_FOUND + PREDEFINED_TARGETS_FOLDER + REPORT_UNDEFINED_PROPERTIES + RULE_LAUNCH_COMPILE + RULE_LAUNCH_CUSTOM + RULE_LAUNCH_LINK + RULE_MESSAGES + TARGET_ARCHIVES_MAY_BE_SHARED_LIBS + TARGET_MESSAGES + TARGET_SUPPORTS_SHARED_LIBS + USE_FOLDERS + XCODE_EMIT_EFFECTIVE_PLATFORM_NAME + + + ADDITIONAL_MAKE_CLEAN_FILES + BINARY_DIR + BUILDSYSTEM_TARGETS + CACHE_VARIABLES + CLEAN_NO_CUSTOM + CMAKE_CONFIGURE_DEPENDS + COMPILE_DEFINITIONS + COMPILE_OPTIONS + DEFINITIONS + EXCLUDE_FROM_ALL + IMPLICIT_DEPENDS_INCLUDE_TRANSFORM + INCLUDE_DIRECTORIES + INCLUDE_REGULAR_EXPRESSION + INTERPROCEDURAL_OPTIMIZATION + LABELS + LINK_DIRECTORIES + LISTFILE_STACK + MACROS + PARENT_DIRECTORY + RULE_LAUNCH_COMPILE + RULE_LAUNCH_CUSTOM + RULE_LAUNCH_LINK + SOURCE_DIR + SUBDIRECTORIES + TESTS + TEST_INCLUDE_FILE + TEST_INCLUDE_FILES + VARIABLES + VS_STARTUP_PROJECT + + + ALIASED_TARGET + ANDROID_ANT_ADDITIONAL_OPTIONS + ANDROID_API + ANDROID_API_MIN + ANDROID_ARCH + ANDROID_ASSETS_DIRECTORIES + ANDROID_GUI + ANDROID_JAR_DEPENDENCIES + ANDROID_JAR_DIRECTORIES + ANDROID_JAVA_SOURCE_DIR + ANDROID_NATIVE_LIB_DEPENDENCIES + ANDROID_NATIVE_LIB_DIRECTORIES + ANDROID_PROCESS_MAX + ANDROID_PROGUARD + ANDROID_PROGUARD_CONFIG_PATH + ANDROID_SECURE_PROPS_PATH + ANDROID_SKIP_ANT_STEP + ANDROID_STL_TYPE + ARCHIVE_OUTPUT_DIRECTORY + ARCHIVE_OUTPUT_NAME + AUTOGEN_BUILD_DIR + AUTOGEN_TARGET_DEPENDS + AUTOMOC + AUTOMOC_DEPEND_FILTERS + AUTOMOC_MOC_OPTIONS + AUTORCC + AUTORCC_OPTIONS + AUTOUIC + AUTOUIC_OPTIONS + AUTOUIC_SEARCH_PATHS + BINARY_DIR + BUILD_RPATH + BUILD_WITH_INSTALL_NAME_DIR + BUILD_WITH_INSTALL_RPATH + BUNDLE + BUNDLE_EXTENSION + COMMON_LANGUAGE_RUNTIME + COMPATIBLE_INTERFACE_BOOL + COMPATIBLE_INTERFACE_NUMBER_MAX + COMPATIBLE_INTERFACE_NUMBER_MIN + COMPATIBLE_INTERFACE_STRING + COMPILE_DEFINITIONS + COMPILE_FEATURES + COMPILE_FLAGS + COMPILE_OPTIONS + COMPILE_PDB_NAME + COMPILE_PDB_OUTPUT_DIRECTORY + CROSSCOMPILING_EMULATOR + CUDA_EXTENSIONS + CUDA_PTX_COMPILATION + CUDA_RESOLVE_DEVICE_SYMBOLS + CUDA_SEPARABLE_COMPILATION + CUDA_STANDARD + CUDA_STANDARD_REQUIRED + CXX_EXTENSIONS + CXX_STANDARD + CXX_STANDARD_REQUIRED + C_EXTENSIONS + C_STANDARD + C_STANDARD_REQUIRED + DEFINE_SYMBOL + DEPLOYMENT_REMOTE_DIRECTORY + DOTNET_TARGET_FRAMEWORK_VERSION + ENABLE_EXPORTS + EXCLUDE_FROM_ALL + EXCLUDE_FROM_DEFAULT_BUILD + EXPORT_NAME + EXPORT_PROPERTIES + EchoString + FOLDER + FRAMEWORK + FRAMEWORK_VERSION + Fortran_FORMAT + Fortran_MODULE_DIRECTORY + GENERATOR_FILE_NAME + GNUtoMS + HAS_CXX + IMPLICIT_DEPENDS_INCLUDE_TRANSFORM + IMPORTED + IMPORTED_COMMON_LANGUAGE_RUNTIME + IMPORTED_CONFIGURATIONS + IMPORTED_GLOBAL + IMPORTED_IMPLIB + IMPORTED_LIBNAME + IMPORTED_LINK_DEPENDENT_LIBRARIES + IMPORTED_LINK_INTERFACE_LANGUAGES + IMPORTED_LINK_INTERFACE_LIBRARIES + IMPORTED_LINK_INTERFACE_MULTIPLICITY + IMPORTED_LOCATION + IMPORTED_NO_SONAME + IMPORTED_OBJECTS + IMPORTED_SONAME + IMPORT_PREFIX + IMPORT_SUFFIX + INCLUDE_DIRECTORIES + INSTALL_NAME_DIR + INSTALL_RPATH + INSTALL_RPATH_USE_LINK_PATH + INTERFACE_AUTOUIC_OPTIONS + INTERFACE_COMPILE_DEFINITIONS + INTERFACE_COMPILE_FEATURES + INTERFACE_COMPILE_OPTIONS + INTERFACE_INCLUDE_DIRECTORIES + INTERFACE_LINK_LIBRARIES + INTERFACE_POSITION_INDEPENDENT_CODE + INTERFACE_SOURCES + INTERFACE_SYSTEM_INCLUDE_DIRECTORIES + INTERPROCEDURAL_OPTIMIZATION + IOS_INSTALL_COMBINED + JOB_POOL_COMPILE + JOB_POOL_LINK + LABELS + LIBRARY_OUTPUT_DIRECTORY + LIBRARY_OUTPUT_NAME + LINKER_LANGUAGE + LINK_DEPENDS + LINK_DEPENDS_NO_SHARED + LINK_FLAGS + LINK_INTERFACE_LIBRARIES + LINK_INTERFACE_MULTIPLICITY + LINK_LIBRARIES + LINK_SEARCH_END_STATIC + LINK_SEARCH_START_STATIC + LINK_WHAT_YOU_USE + LOCATION + MACOSX_BUNDLE + MACOSX_BUNDLE_INFO_PLIST + MACOSX_FRAMEWORK_INFO_PLIST + MACOSX_RPATH + MANUALLY_ADDED_DEPENDENCIES + NAME + NO_SONAME + NO_SYSTEM_FROM_IMPORTED + OSX_ARCHITECTURES + OUTPUT_NAME + PDB_NAME + PDB_OUTPUT_DIRECTORY + POSITION_INDEPENDENT_CODE + PREFIX + PRIVATE_HEADER + PROJECT_LABEL + PUBLIC_HEADER + RESOURCE + RULE_LAUNCH_COMPILE + RULE_LAUNCH_CUSTOM + RULE_LAUNCH_LINK + RUNTIME_OUTPUT_DIRECTORY + RUNTIME_OUTPUT_NAME + SKIP_BUILD_RPATH + SOURCES + SOURCE_DIR + SOVERSION + STATIC_LIBRARY_FLAGS + SUFFIX + TYPE + VERSION + VISIBILITY_INLINES_HIDDEN + VS_CONFIGURATION_TYPE + VS_DEBUGGER_COMMAND + VS_DEBUGGER_WORKING_DIRECTORY + VS_DESKTOP_EXTENSIONS_VERSION + VS_DOTNET_REFERENCES + VS_DOTNET_REFERENCES_COPY_LOCAL + VS_DOTNET_TARGET_FRAMEWORK_VERSION + VS_GLOBAL_KEYWORD + VS_GLOBAL_PROJECT_TYPES + VS_GLOBAL_ROOTNAMESPACE + VS_IOT_EXTENSIONS_VERSION + VS_IOT_STARTUP_TASK + VS_KEYWORD + VS_MOBILE_EXTENSIONS_VERSION + VS_SCC_AUXPATH + VS_SCC_LOCALPATH + VS_SCC_PROJECTNAME + VS_SCC_PROVIDER + VS_SDK_REFERENCES + VS_USER_PROPS + VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION + VS_WINRT_COMPONENT + VS_WINRT_EXTENSIONS + VS_WINRT_REFERENCES + WIN32_EXECUTABLE + WINDOWS_EXPORT_ALL_SYMBOLS + XCODE_EXPLICIT_FILE_TYPE + XCODE_PRODUCT_TYPE + XCTEST + + + ABSTRACT + AUTORCC_OPTIONS + AUTOUIC_OPTIONS + COMPILE_DEFINITIONS + COMPILE_FLAGS + COMPILE_OPTIONS + EXTERNAL_OBJECT + Fortran_FORMAT + GENERATED + HEADER_FILE_ONLY + INCLUDE_DIRECTORIES + KEEP_EXTENSION + LABELS + LANGUAGE + LOCATION + MACOSX_PACKAGE_LOCATION + OBJECT_DEPENDS + OBJECT_OUTPUTS + SKIP_AUTOGEN + SKIP_AUTOMOC + SKIP_AUTORCC + SKIP_AUTOUIC + SYMBOLIC + VS_COPY_TO_OUT_DIR + VS_DEPLOYMENT_CONTENT + VS_DEPLOYMENT_LOCATION + VS_INCLUDE_IN_VSIX + VS_RESOURCE_GENERATOR + VS_SHADER_DISABLE_OPTIMIZATIONS + VS_SHADER_ENABLE_DEBUG + VS_SHADER_ENTRYPOINT + VS_SHADER_FLAGS + VS_SHADER_MODEL + VS_SHADER_OBJECT_FILE_NAME + VS_SHADER_OUTPUT_HEADER_FILE + VS_SHADER_TYPE + VS_SHADER_VARIABLE_NAME + VS_TOOL_OVERRIDE + VS_XAML_TYPE + WRAP_EXCLUDE + XCODE_EXPLICIT_FILE_TYPE + XCODE_FILE_ATTRIBUTES + XCODE_LAST_KNOWN_FILE_TYPE + + + ATTACHED_FILES + ATTACHED_FILES_ON_FAIL + COST + DEPENDS + DISABLED + ENVIRONMENT + FAIL_REGULAR_EXPRESSION + FIXTURES_CLEANUP + FIXTURES_REQUIRED + FIXTURES_SETUP + LABELS + MEASUREMENT + PASS_REGULAR_EXPRESSION + PROCESSORS + PROCESSOR_AFFINITY + REQUIRED_FILES + RESOURCE_LOCK + RUN_SERIAL + SKIP_RETURN_CODE + TIMEOUT + TIMEOUT_AFTER_MATCH + WILL_FAIL + WORKING_DIRECTORY + + + ADVANCED + HELPSTRING + MODIFIED + STRINGS + TYPE + VALUE + + + CPACK_DESKTOP_SHORTCUTS + CPACK_NEVER_OVERWRITE + CPACK_PERMANENT + CPACK_STARTUP_SHORTCUTS + CPACK_START_MENU_SHORTCUTS + CPACK_WIX_ACL - - + 0 1 - BOOL AND - OR - NOT - STREQUAL - EQUAL - CONFIG - PLATFORM_ID - C_COMPILER_ID - CXX_COMPILER_ID - VERSION_GREATER - VERSION_LESS - VERSION_EQUAL - C_COMPILER_VERSION - CXX_COMPILER_VERSION - TARGET_POLICY - COMPILER_FEATURES - - CONFIGURATION - TARGET_FILE - TARGET_FILE_NAME - TARGET_FILE_DIR - TARGET_LINKER_FILE - TARGET_LINKER_FILE_NAME - TARGET_LINKER_FILE_DIR - TARGET_SONAME_FILE - TARGET_SONAME_FILE_NAME - TARGET_SONAME_FILE_DIR - TARGET_PDB_FILE - TARGET_PDB_FILE_NAME - TARGET_PDB_FILE_DIR - TARGET_PROPERTY - INSTALL_PREFIX - - JOIN ANGLE-R - COMMA - SEMICOLON - TARGET_NAME - LINK_ONLY - INSTALL_INTERFACE + BOOL BUILD_INTERFACE + COMMA + COMPILE_FEATURES + COMPILE_LANGUAGE + CONFIG + CXX_COMPILER_ID + CXX_COMPILER_VERSION + C_COMPILER_ID + C_COMPILER_VERSION + EQUAL + GENEX_EVAL + IF + INSTALL_INTERFACE + INSTALL_PREFIX + IN_LIST + JOIN + LINK_ONLY LOWER_CASE - UPPER_CASE MAKE_C_IDENTIFIER + NOT + OR + PLATFORM_ID + SEMICOLON + SHELL_PATH + STREQUAL + TARGET_BUNDLE_CONTENT_DIR + TARGET_BUNDLE_DIR + TARGET_EXISTS + TARGET_FILE + TARGET_FILE_DIR + TARGET_FILE_NAME + TARGET_GENEX_EVAL + TARGET_LINKER_FILE + TARGET_LINKER_FILE_DIR + TARGET_LINKER_FILE_NAME + TARGET_NAME + TARGET_NAME_IF_EXISTS TARGET_OBJECTS - - TARGET_DIR + TARGET_PDB_FILE + TARGET_PDB_FILE_DIR + TARGET_PDB_FILE_NAME + TARGET_POLICY + TARGET_PROPERTY + TARGET_SONAME_FILE + TARGET_SONAME_FILE_DIR + TARGET_SONAME_FILE_NAME + UPPER_CASE + VERSION_EQUAL + VERSION_GREATER + VERSION_GREATER_EQUAL + VERSION_LESS + VERSION_LESS_EQUAL + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + + - - - + + + + + - + + + + + + + + + + + + + + + + + - + + - + + + + + + + + + + + + + + + + + + + + + - - - - + + - - - - - - + + + + + + @@ -1310,3 +3706,6 @@ + + + diff --git a/src/share/3rdparty/generic-highlighter/ini.xml b/src/share/3rdparty/generic-highlighter/ini.xml index dba0e204cbc..34d9a7de6b0 100644 --- a/src/share/3rdparty/generic-highlighter/ini.xml +++ b/src/share/3rdparty/generic-highlighter/ini.xml @@ -1,6 +1,6 @@ - + @@ -44,8 +44,6 @@ - - diff --git a/src/share/3rdparty/generic-highlighter/perl.xml b/src/share/3rdparty/generic-highlighter/perl.xml index f3786c40b57..a29a49b3e49 100644 --- a/src/share/3rdparty/generic-highlighter/perl.xml +++ b/src/share/3rdparty/generic-highlighter/perl.xml @@ -39,7 +39,7 @@ Enhance tr/// and y/// support. --> - + if diff --git a/src/share/3rdparty/generic-highlighter/yacc.xml b/src/share/3rdparty/generic-highlighter/yacc.xml index c8b3153218b..6936c7a2de0 100644 --- a/src/share/3rdparty/generic-highlighter/yacc.xml +++ b/src/share/3rdparty/generic-highlighter/yacc.xml @@ -10,6 +10,17 @@ This code is released under the LGPL as part of kdelibs/kate. == UPDATE HISTORY == +2018-02-20 // Nibaldo González + + Fix '$' symbol, highlighted as 'dsError' by C++ (isocpp.xml). + Update syntax for Bison (3.0.4): + - Add declarations, directives in rules and the '@' variable. + - Allow a tag in '%union', declarations in multiple lines and + grammar declarations in the grammar rules section. + - The ';' char is not necessary to finish a rule. Allow '; |' + within rules. + Add mimetypes and extensions '*.ypp' & '*.y++'. + 2007-10-01 // Sebastian Pipping Added: Extension "*.yy" for Bison @@ -19,13 +30,9 @@ This code is released under the LGPL as part of kdelibs/kate. YACC.XML 1.00 - First released. -== TODO == -- Add a mime type (cannot find it !?) - - ======================================================================== --> - + @@ -44,16 +51,32 @@ This code is released under the LGPL as part of kdelibs/kate. - - - + - + + + + + + + + + + + + + + + + + + + @@ -70,39 +93,109 @@ This code is released under the LGPL as part of kdelibs/kate. + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + + + + + + - + - @@ -128,15 +221,20 @@ This code is released under the LGPL as part of kdelibs/kate. + + + + - - + + + @@ -147,6 +245,7 @@ This code is released under the LGPL as part of kdelibs/kate. + @@ -158,6 +257,7 @@ This code is released under the LGPL as part of kdelibs/kate. + From 9e6fe45ad923f71c7c8cc145d7ad45da299c018a Mon Sep 17 00:00:00 2001 From: Robert Loehning Date: Fri, 29 Jun 2018 16:43:47 +0200 Subject: [PATCH 34/48] Squish: Fix for Qt 5.11 The items in the treeView look slightly different than with Qt 5.10 and thus seem to lose the mouseclicks. Change-Id: Ibee1abdbc9e9bfe622b45f76ed5e612e81fd1770 Reviewed-by: Christian Stenger --- tests/system/shared/editor_utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/system/shared/editor_utils.py b/tests/system/shared/editor_utils.py index e648311f76d..09b3af6ae71 100644 --- a/tests/system/shared/editor_utils.py +++ b/tests/system/shared/editor_utils.py @@ -333,7 +333,7 @@ def validateSearchResult(expectedCount): resultTreeView.scrollTo(chIndex) text = str(chIndex.data()).rstrip('\r') rect = resultTreeView.visualRect(chIndex) - doubleClick(resultTreeView, rect.x+5, rect.y+5, 0, Qt.LeftButton) + doubleClick(resultTreeView, rect.x+50, rect.y+5, 0, Qt.LeftButton) editor = getEditorForFileSuffix(itemText) if not waitFor("lineUnderCursor(editor) == text", 2000): test.warning("Jumping to search result '%s' is pretty slow." % text) From 65a4333f2ccc269f72fe6768e930d183ee2ad3a8 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Mon, 2 Jul 2018 12:08:05 +0200 Subject: [PATCH 35/48] Dumper: Fix detection of Qt namespace Task-number: QTCREATORBUG-19620 Change-Id: Icca654714b70c69522b51998be21cff80bc29fac Reviewed-by: hjk --- share/qtcreator/debugger/gdbbridge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/qtcreator/debugger/gdbbridge.py b/share/qtcreator/debugger/gdbbridge.py index fc771930d36..117f5fcfdd8 100644 --- a/share/qtcreator/debugger/gdbbridge.py +++ b/share/qtcreator/debugger/gdbbridge.py @@ -990,7 +990,7 @@ class Dumper(DumperBase): if self.isWindowsTarget(): qtCoreMatch = re.match('.*Qt5?Core[^/.]*d?\.dll', name) else: - qtCoreMatch = re.match('.*/libQt5?Core[^/.]\.so', name) + qtCoreMatch = re.match('.*/libQt5?Core[^/.]*\.so', name) if qtCoreMatch is not None: self.handleQtCoreLoaded(objfile) From eb711d986459cb11de7881122bccb8581064ba18 Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Sun, 1 Jul 2018 23:09:43 +0300 Subject: [PATCH 36/48] VCS: Fix off-by-one line in blame Line is blockNumber()+1. When executing blame, the cursor jumps to one line above the selected line. Change-Id: Ia28b6c5a353ee979fae3f463b864d1409d9649cd Reviewed-by: Tobias Hunger --- src/plugins/vcsbase/vcsbaseeditor.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/plugins/vcsbase/vcsbaseeditor.cpp b/src/plugins/vcsbase/vcsbaseeditor.cpp index 679d7e6aa5b..c79776a8e32 100644 --- a/src/plugins/vcsbase/vcsbaseeditor.cpp +++ b/src/plugins/vcsbase/vcsbaseeditor.cpp @@ -1303,14 +1303,14 @@ int VcsBaseEditor::lineNumberOfCurrentEditor(const QString ¤tFile) const BaseTextEditor *eda = qobject_cast(ed); if (!eda) return -1; - const int cursorLine = eda->textCursor().blockNumber(); + const int cursorLine = eda->textCursor().blockNumber() + 1; auto const edw = qobject_cast(ed->widget()); if (edw) { - const int firstLine = edw->firstVisibleBlockNumber(); - const int lastLine = edw->lastVisibleBlockNumber(); + const int firstLine = edw->firstVisibleBlockNumber() + 1; + const int lastLine = edw->lastVisibleBlockNumber() + 1; if (firstLine <= cursorLine && cursorLine < lastLine) return cursorLine; - return edw->centerVisibleBlockNumber(); + return edw->centerVisibleBlockNumber() + 1; } return cursorLine; } From b9328012b16f6e878782b7e309ae8327616b919e Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Mon, 2 Jul 2018 15:19:54 +0200 Subject: [PATCH 37/48] Debugger: Do not switch to design mode when hitting a break point Change-Id: I2b31aa78a707ca830382095f20d33439caa830ac Task-number: QTCREATORBUG-20712 Reviewed-by: hjk Reviewed-by: Eike Ziller --- src/plugins/debugger/debuggerengine.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp index df8ae8d5dc7..4e8ba42d181 100644 --- a/src/plugins/debugger/debuggerengine.cpp +++ b/src/plugins/debugger/debuggerengine.cpp @@ -534,8 +534,10 @@ void DebuggerEngine::gotoLocation(const Location &loc) const QString file = QDir::cleanPath(loc.fileName()); const int line = loc.lineNumber(); bool newEditor = false; - IEditor *editor = EditorManager::openEditor(file, Id(), - EditorManager::IgnoreNavigationHistory, &newEditor); + IEditor *editor = EditorManager::openEditor( + file, Id(), + EditorManager::IgnoreNavigationHistory | EditorManager::DoNotSwitchToDesignMode, + &newEditor); QTC_ASSERT(editor, return); // Unreadable file? editor->gotoLine(line, 0, !boolSetting(StationaryEditorWhileStepping)); From 29e6659e90c98414150253ddeadbf4fa46c9b86a Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Tue, 3 Jul 2018 09:18:37 +0200 Subject: [PATCH 38/48] QmlDesigner: Fix crash This does not fix the bug altogether, but if escaped quotes inside translatable strings are required, then those can be done in the text editor. The crash is turned into an error message. Task-number: QTCREATORBUG-20684 Change-Id: I702628fbe888450a27c07166d5adacde37b5d1e1 Reviewed-by: Tim Jenssen --- .../texttool/textedititem.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/plugins/qmldesigner/qmldesignerextension/texttool/textedititem.cpp b/src/plugins/qmldesigner/qmldesignerextension/texttool/textedititem.cpp index bd22558a4ea..0728c8128b4 100644 --- a/src/plugins/qmldesigner/qmldesignerextension/texttool/textedititem.cpp +++ b/src/plugins/qmldesigner/qmldesignerextension/texttool/textedititem.cpp @@ -27,6 +27,7 @@ #include #include +#include #include #include @@ -48,12 +49,17 @@ TextEditItem::~TextEditItem() void TextEditItem::writeTextToProperty() { if (m_formEditorItem) { - if (text().isEmpty()) - m_formEditorItem->qmlItemNode().removeProperty("text"); - else if (m_formEditorItem->qmlItemNode().isTranslatableText("text")) - m_formEditorItem->qmlItemNode().setBindingProperty("text", QmlObjectNode::generateTranslatableText(text())); - else - m_formEditorItem->qmlItemNode().setVariantProperty("text", text()); + try { + if (text().isEmpty()) + m_formEditorItem->qmlItemNode().removeProperty("text"); + else if (m_formEditorItem->qmlItemNode().isTranslatableText("text")) + m_formEditorItem->qmlItemNode().setBindingProperty("text", QmlObjectNode::generateTranslatableText(text())); + else + m_formEditorItem->qmlItemNode().setVariantProperty("text", text()); + } + catch (const RewritingException &e) { + e.showException(); + } } } From 417a6db08776ab5f49389e974a777fb78f1de3eb Mon Sep 17 00:00:00 2001 From: Robert Loehning Date: Mon, 2 Jul 2018 17:11:29 +0200 Subject: [PATCH 39/48] Tests: Add lines for testing editing and output of int Change-Id: If31b5957fa55f5dd31205a0b4495491314fa87c0 Reviewed-by: Christian Stenger --- tests/manual/debugger/cli-io/main.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/manual/debugger/cli-io/main.cpp b/tests/manual/debugger/cli-io/main.cpp index 831b37b5a7b..830663a666d 100644 --- a/tests/manual/debugger/cli-io/main.cpp +++ b/tests/manual/debugger/cli-io/main.cpp @@ -36,9 +36,11 @@ int main(int argc, char *argv[]) QString qs("I'm a QString"); std::string stds("I'm a std::string"); char c[] = "I'm a char c[]"; + int i = 1892; qDebug() << "This is a QString:" << qs; std::cout << "This is a std::string: " << stds << std::endl; std::cout << "This is a char c[]: " << c << std::endl; + std::cout << "This is an int: " << i << std::endl; qDebug() << "This is QDebug"; std::cout << "This is stdout" << std::endl; From aeb192a814ac694e1fde800f5439e9859d4ca51e Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Tue, 3 Jul 2018 09:52:34 +0200 Subject: [PATCH 40/48] QmlDesigner: Stabilize property order of meta data This reduces noise in the source control system. Task-number: QTCREATORBUG-20686 Change-Id: Icf7d0d5b1af288f3518594233086917f039a47a0 Reviewed-by: Tim Jenssen --- .../qmldesigner/designercore/model/rewriterview.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/plugins/qmldesigner/designercore/model/rewriterview.cpp b/src/plugins/qmldesigner/designercore/model/rewriterview.cpp index c6cde7a3205..ab4dba68df6 100644 --- a/src/plugins/qmldesigner/designercore/model/rewriterview.cpp +++ b/src/plugins/qmldesigner/designercore/model/rewriterview.cpp @@ -49,6 +49,7 @@ #include #include +#include #include #include @@ -483,14 +484,20 @@ QString RewriterView::auxiliaryDataAsQML() const str += QString::number(node.internalId()); str += ";"; - for (auto i = data.begin(); i != data.end(); ++i) { - const QVariant value = i.value(); + QStringList keys = Utils::transform(data.keys(), [](const PropertyName &name) { + return QString::fromUtf8(name); + }); + + keys.sort(); + + for (const QString &key : keys) { + const QVariant value = data.value(key.toUtf8()); QString strValue = value.toString(); if (static_cast(value.type()) == QMetaType::QString) strValue = "\"" + strValue + "\""; if (!strValue.isEmpty()) { - str += replaceIllegalPropertyNameChars(QString::fromUtf8(i.key())) + ":"; + str += replaceIllegalPropertyNameChars(key) + ":"; str += strValue; str += ";"; } From 69108b614a4e99e67de4bccfbb503e0e1517cae3 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Tue, 3 Jul 2018 11:39:35 +0200 Subject: [PATCH 41/48] Doc: Add information about connections Divide the subtopics into individual topics. Change-Id: If32ada04e9f305cf9a2e3a03072026eac92d005a Reviewed-by: Thomas Hartmann --- doc/src/qtcreator-toc.qdoc | 6 + .../qtquick-connection-editor-backend.qdoc | 74 ++++++++ .../qtquick-connection-editor-bindings.qdoc | 65 +++++++ .../qtquick-connection-editor-properties.qdoc | 58 ++++++ .../qtquick-connection-editor-signals.qdoc | 71 +++++++ .../qtquick/qtquick-connection-editor.qdoc | 178 ++++-------------- 6 files changed, 309 insertions(+), 143 deletions(-) create mode 100644 doc/src/qtquick/qtquick-connection-editor-backend.qdoc create mode 100644 doc/src/qtquick/qtquick-connection-editor-bindings.qdoc create mode 100644 doc/src/qtquick/qtquick-connection-editor-properties.qdoc create mode 100644 doc/src/qtquick/qtquick-connection-editor-signals.qdoc diff --git a/doc/src/qtcreator-toc.qdoc b/doc/src/qtcreator-toc.qdoc index 65bac506994..c18c379cdbe 100644 --- a/doc/src/qtcreator-toc.qdoc +++ b/doc/src/qtcreator-toc.qdoc @@ -90,6 +90,12 @@ \li \l {Editing QML Files in Design Mode} \li \l {Editing PathView Properties} \li \l {Adding Connections} + \list + \li \l{Connecting Objects to Signals} + \li \l{Specifying Dynamic Properties} + \li \l{Adding Bindings Between Properties} + \li \l{Managing C++ Backend Objects} + \endlist \li \l {Creating Components} \li \l {Creating Buttons} \li \l {Creating Scalable Buttons and Borders} diff --git a/doc/src/qtquick/qtquick-connection-editor-backend.qdoc b/doc/src/qtquick/qtquick-connection-editor-backend.qdoc new file mode 100644 index 00000000000..e79b32eec2a --- /dev/null +++ b/doc/src/qtquick/qtquick-connection-editor-backend.qdoc @@ -0,0 +1,74 @@ +/**************************************************************************** +** +** 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. +** +****************************************************************************/ + +/*! + \contentspage {Qt Creator Manual} + \previouspage quick-property-bindings.html + \page quick-connections-backend.html + \nextpage quick-components.html + + \title Managing C++ Backend Objects + + Many applications provide QObject objects implemented in C++ that work as a + bridge between QML and C++. Such objects are typically registered with + \c qmlRegisterType or \c qmlRegisterSingletonType and then used by QML to + communicate with the C++ backend. Another example of such objects are the + state machines created by the \l {Using the Qt SCXML Compiler (qscxmlc)} + {Qt SCXML Compiler}. + + Backend objects in a QML file are accessible if the QML file contains the + required imports. In addition, for a non-singleton QObject, a dynamic + property that contains the QObject must be specified. + + A \e local QObject is instantiated in the current \e .qml file, as follows: + + \badcode + property MyType myType: MyType {}. + \endcode + + Otherwise the property is just defined, as follows: + + \badcode + property MyType myType + \endcode + + To manage backend objects: + + \list 1 + + \li In the \uicontrol {Connections} view, select the + \uicontrol Backends tab to view accessible backend objects. + \image qmldesigner-backends.png + \li Select the \inlineimage plus.png + (\uicontrol Add) button to add a backend object in the + \uicontrol {Add New C++ Backend} dialog. + \li In the \uicontrol Type field, select the type of the backend QObject + to add. + \li Select the \uicontrol {Define object locally} check box if the + QObject is not registered as a singleton. + \li Select \uicontrol OK to add the required import and to create the + property for a non-singleton object. + \endlist +*/ diff --git a/doc/src/qtquick/qtquick-connection-editor-bindings.qdoc b/doc/src/qtquick/qtquick-connection-editor-bindings.qdoc new file mode 100644 index 00000000000..614a3841ea7 --- /dev/null +++ b/doc/src/qtquick/qtquick-connection-editor-bindings.qdoc @@ -0,0 +1,65 @@ +/**************************************************************************** +** +** 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. +** +****************************************************************************/ + +/*! + \contentspage {Qt Creator Manual} + \previouspage quick-dynamic-properties.html + \page quick-property-bindings.html + \nextpage quick-connections-backend.html + + \title Adding Bindings Between Properties + + To dynamically change the behavior of an object, you can create a \e binding + between the properties of two objects. To create a property binding, a + property is assigned a JavaScript expression that evaluates to the desired + value. At its simplest, a binding may be a reference to another property. + For example, the height of an object can be bound to the height of its + parent, so that when the parent height changes, the object height is + adjusted automatically. + + For more information about the use of property bindings, see + \l{Property Binding}. + + You can create bindings between objects in the \uicontrol Connections view. + + \image qmldesigner-bindings.png + + To bind a property of an object to the property of another object: + + \list 1 + \li In the \uicontrol {Connections} view, select the + \uicontrol {Bindings} tab. + \li Select the \inlineimage plus.png + (\uicontrol Add) button to add a binding. + \li Select \uicontrol Item to select the target object whose property + you want to change dynamically. + \li Select \uicontrol Property to select the property to bind to a + source property. + \li Select \uicontrol {Source Item} to select the object whose property + you want to use to determine the behavior of the target object. + \li Select \uicontrol {Source Property} to select the property to bind + the target property to. + \endlist +*/ diff --git a/doc/src/qtquick/qtquick-connection-editor-properties.qdoc b/doc/src/qtquick/qtquick-connection-editor-properties.qdoc new file mode 100644 index 00000000000..22881283277 --- /dev/null +++ b/doc/src/qtquick/qtquick-connection-editor-properties.qdoc @@ -0,0 +1,58 @@ +/**************************************************************************** +** +** 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. +** +****************************************************************************/ + +/*! + \contentspage {Qt Creator Manual} + \previouspage qmldesigner-connections.html + \page quick-dynamic-properties.html + \nextpage quick-property-bindings.html + + \title Specifying Dynamic Properties + + You can bind object properties to dynamic expressions to define global + properties for an object that can be read by other objects. For example, + you can specify global properties for the root object that you can use in + the child objects. + + You can specify dynamic properties for objects in the + \uicontrol Connections view. + + \image qmldesigner-dynamicprops.png + + To specify dynamic properties for an object: + + \list 1 + \li In the \uicontrol {Connections} view, select the + \uicontrol {Properties} tab. + \li Select \uicontrol Item to select the object to specify the property + for. + \li Select \uicontrol Property to give a name to the property. + \li Select \uicontrol {Property Type} to specify the type of the + property. + \li Select \uicontrol {Property Value} to specify the value of the + property. + \endlist + +*/ diff --git a/doc/src/qtquick/qtquick-connection-editor-signals.qdoc b/doc/src/qtquick/qtquick-connection-editor-signals.qdoc new file mode 100644 index 00000000000..010ab17847b --- /dev/null +++ b/doc/src/qtquick/qtquick-connection-editor-signals.qdoc @@ -0,0 +1,71 @@ +/**************************************************************************** +** +** Copyright (C) 2016 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. +** +****************************************************************************/ + +/*! + \contentspage {Qt Creator Manual} + \previouspage qmldesigner-connections.html + \page quick-signals.html + \nextpage quick-dynamic-properties.html + + \title Connecting Objects to Signals + + To receive a notification when a particular signal is emitted for a + particular object, the object definition should declare a signal handler + named \e {on} where \e {} is the name of the signal, with + the first letter capitalized. The signal handler should contain the + JavaScript code to be executed when the signal handler is invoked. + + QML types have predefined signals that are emitted when users interact with + the application. For example, the \l MouseArea type from the \l QtQuick + module has a \c clicked signal that is emitted whenever the mouse is + clicked within the area. Since the signal name is \c clicked, the signal + handler for receiving this signal is named \c onClicked. + + For more information about signals and signal handlers, see + \l{Signal and Handler Event System}. + + To access a signal outside of the object that emits it, you can use the + \l Connections type for connecting to signals of arbitrary objects. A + connections object can receive any signal from its specified target. + You can connect objects to signals that are available to them in the + \uicontrol Connections view. + + \image qmldesigner-connections.png + + To connect objects to signals: + + \list 1 + \li In the \uicontrol {Connections} view, select the + \uicontrol {Connections} tab. + \li Select the \inlineimage plus.png + (\uicontrol Add) button to add a connection. + \li Select \uicontrol Target to add the object to connect to a signal. + \li Select \uicontrol {Signal Handler} to select the signal that the + connection will listen to from a list of all signals available for + the object. + \li Select \uicontrol Actions to specify the action to perform when + the signal is emitted. You use JavaScript to specify the actions. + \endlist +*/ diff --git a/doc/src/qtquick/qtquick-connection-editor.qdoc b/doc/src/qtquick/qtquick-connection-editor.qdoc index 92062021cf8..aa25551bf9a 100644 --- a/doc/src/qtquick/qtquick-connection-editor.qdoc +++ b/doc/src/qtquick/qtquick-connection-editor.qdoc @@ -27,153 +27,45 @@ \contentspage {Qt Creator Manual} \previouspage qmldesigner-pathview-editor.html \page qmldesigner-connections.html - \nextpage quick-components.html + \nextpage quick-signals.html \title Adding Connections - You can use the \uicontrol {Connections} view to: + The user interface components and the application need to communicate with + each other. For example, a button needs to know that the user has clicked + on it. The button may then change color to indicate its state or perform an + action. Further, the application needs to know whether the user is clicking + the button, because it may need to relay this clicking event to other + applications. + + QML has a signal and handler mechanism, that enables components to respond + to application events. Events are represented by \e signals. When a signal + is emitted, the corresponding \e {signal handler} is invoked to respond to + the event by using scripts or other operations placed in the handler. + + To access a signal outside of the object that emits it, you can use the + \l Connections type for connecting to signals of arbitrary objects. A + Connections object can receive any signal from its specified target. + + A component's property can be assigned a static value which stays constant + until it is explicitly assigned a new value. However, to make the fullest + use of QML and its built-in support for dynamic object behaviors, most QML + types use property bindings. This means that you can specify relationships + between different object properties so that when a property's sependencies + change in value, the property's value is automatically updated accordingly. + + Behind the scenes, the QML engine monitors the property's dependencies (that + is, the variables in the binding expression). When a change is detected, the + QML engine re-evaluates the binding expression and applies the new result to + the property. + + The following sections describe how to use the \uicontrol {Connections} view + to perform the following tasks: \list - - \li Connect objects to signals. - - \li Specify dynamic properties for objects. - - \li Create bindings between the properties of two objects. - - \li Manage backend QObjects. - + \li \l{Connecting Objects to Signals} + \li \l{Specifying Dynamic Properties} + \li \l{Adding Bindings Between Properties} + \li \l{Managing C++ Backend Objects} \endlist - - For examples of adding connections, see - \l{Creating Scalable Buttons and Borders}. - - \section1 Connecting Objects to Signals - - To connect objects to signals in QML, create \l{Connections} objects. - - \image qmldesigner-connections.png - - To create the connections: - - \list 1 - - \li Select the \uicontrol {Connections} tab. - - \li Select the \inlineimage plus.png - (\uicontrol Add) button to add a connection. - - \li Select \uicontrol Target to add the object to connect to a signal. - - \li Select \uicontrol {Signal Handler} to select the signal that the connection - will listen to from a list of all signals available for the object. - - \li Select \uicontrol Actions to specify the action to perform when - the signal is emitted. You use JavaScript to specify the actions. - - \endlist - - \section1 Specifying Dynamic Properties - - You can bind \l{Properties} to dynamic expressions to define global properties for an - object that can be read by other objects. For example, you can specify - global properties for the root object that you can use in the child objects. - - \image qmldesigner-dynamicprops.png - - To specify dynamic properties for an object: - - \list 1 - - \li Select the \uicontrol {Properties} tab. - - \li Select \uicontrol Item to select the object to specify the property for. - - \li Select \uicontrol Property to give a name to the property. - - \li Select \uicontrol {Property Type} to specify the type of the property. - - \li Select \uicontrol {Property Value} to specify the value of the property. - - \endlist - - \section1 Adding Bindings Between Properties - - To dynamically change the behavior of an object, you can create a - \l{Property Binding} between the properties of two objects. - - \image qmldesigner-bindings.png - - To bind a property of an object to the property of another object: - - \list 1 - - \li Select the \uicontrol {Bindings} tab. - - \li Select the \inlineimage plus.png - (\uicontrol Add) button to add a binding. - - \li Select \uicontrol Item to select the target object whose property you want - to change dynamically. - - \li Select \uicontrol Property to select the property to bind to a source - property. - - \li Select \uicontrol {Source Item} to select the object whose property you - want to use to determine the behavior of the target object. - - \li Select \uicontrol {Source Property} to select the property to bind the - target property to. - - \endlist - - \section1 Managing C++ Backend Objects - - Many applications provide QObject objects implemented in C++ that work as a - bridge between QML and C++. Such objects are typically registered with - qmlRegisterType or qmlRegisterSingletonType and then used by QML to - communicate with the C++ backend. Another example of such objects are the - state machines created by the \l {Using the Qt SCXML Compiler (qscxmlc)} - {Qt SCXML Compiler}. - - Backend objects in a QML file are accessible if the QML file contains the - required imports. In addition, for a non-singleton QObject, a dynamic - property that contains the QObject must be specified. - - A \e local QObject is instantiated in the current \e .qml file, as follows: - - \badcode - property MyType myType: MyType {}. - \endcode - - Otherwise the property is just defined, as follows: - - \badcode - property MyType myType - \endcode - - To manage backend objects: - - \list 1 - - \li Select the \uicontrol Backends tab to view accessible backend - objects. - - \image qmldesigner-backends.png - - \li Select the \inlineimage plus.png - (\uicontrol Add) button to add a backend object in the - \uicontrol {Add New C++ Backend} dialog. - - \li In the \uicontrol Type field, select the type of the backend QObject - to add. - - \li Select the \uicontrol {Define object locally} check box if the - QObject is not registered as a singleton. - - \li Select \uicontrol OK to add the required import and to create the - property for a non-singleton object. - - \endlist - */ From 7201b26a5298b987144c2fc233f8f953359ae064 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Tue, 3 Jul 2018 14:05:22 +0200 Subject: [PATCH 42/48] Doc: Pull out "Adding States" into a separate topic To further modularize the Manual. Change-Id: I9b51ce951b92ff6690780de3d9f08f436169150d Reviewed-by: Thomas Hartmann --- doc/src/qtcreator-toc.qdoc | 1 + doc/src/qtquick/qtquick-components.qdoc | 2 +- .../qtquick-connection-editor-backend.qdoc | 2 +- doc/src/qtquick/qtquick-designer.qdoc | 66 +------------- doc/src/qtquick/qtquick-states.qdoc | 88 +++++++++++++++++++ 5 files changed, 92 insertions(+), 67 deletions(-) create mode 100644 doc/src/qtquick/qtquick-states.qdoc diff --git a/doc/src/qtcreator-toc.qdoc b/doc/src/qtcreator-toc.qdoc index c18c379cdbe..0f300471801 100644 --- a/doc/src/qtcreator-toc.qdoc +++ b/doc/src/qtcreator-toc.qdoc @@ -96,6 +96,7 @@ \li \l{Adding Bindings Between Properties} \li \l{Managing C++ Backend Objects} \endlist + \li \l {Adding States} \li \l {Creating Components} \li \l {Creating Buttons} \li \l {Creating Scalable Buttons and Borders} diff --git a/doc/src/qtquick/qtquick-components.qdoc b/doc/src/qtquick/qtquick-components.qdoc index 7ddfecf0733..31af869be84 100644 --- a/doc/src/qtquick/qtquick-components.qdoc +++ b/doc/src/qtquick/qtquick-components.qdoc @@ -32,7 +32,7 @@ /*! \contentspage {Qt Creator Manual} - \previouspage qmldesigner-connections.html + \previouspage quick-states.html \page quick-components.html \nextpage quick-buttons.html diff --git a/doc/src/qtquick/qtquick-connection-editor-backend.qdoc b/doc/src/qtquick/qtquick-connection-editor-backend.qdoc index e79b32eec2a..5cd7b328f18 100644 --- a/doc/src/qtquick/qtquick-connection-editor-backend.qdoc +++ b/doc/src/qtquick/qtquick-connection-editor-backend.qdoc @@ -27,7 +27,7 @@ \contentspage {Qt Creator Manual} \previouspage quick-property-bindings.html \page quick-connections-backend.html - \nextpage quick-components.html + \nextpage quick-states.html \title Managing C++ Backend Objects diff --git a/doc/src/qtquick/qtquick-designer.qdoc b/doc/src/qtquick/qtquick-designer.qdoc index 62e66312cc9..753f02a538a 100644 --- a/doc/src/qtquick/qtquick-designer.qdoc +++ b/doc/src/qtquick/qtquick-designer.qdoc @@ -93,7 +93,7 @@ \li \uicontrol {State} pane (6) displays the different states of the item. QML states typically describe user interface configurations, such as the UI controls, their properties and behavior and the available - actions. + actions. For more information, see \l{Adding States}. \endlist @@ -426,70 +426,6 @@ \image qmldesigner-inline-editing.png - \section1 Adding States - - User interfaces are designed to present different interface configurations - in different scenarios, or to modify their appearances in response to user - interaction. Often, there are a set of changes that are made concurrently, - such that the interface could be seen to be internally changing from one - \e state to another. - - This applies generally to interfaces regardless of their complexity. - A photo viewer may initially present images in a grid, and when an image is - clicked, change to a detailed state where the individual image is expanded - and the interface is changed to present new options for image editing. - On the other end of the scale, when a simple button is pressed, it may change - to a \e pressed state in which its color and position is modified to give a - pressed appearance. - - In QML, any item can change between different states to apply sets of - changes that modify the properties of relevant items. Each state can present - a different configuration that can, for example: - - \list - - \li Show some UI items and hide others. - - \li Present different available actions to the user. - - \li Start, stop or pause animations. - - \li Execute some script required in the new state. - - \li Change a property value for a particular item. - - \li Show a different view or screen. - - \endlist - - The \uicontrol State pane displays the different \l{State}{states} - of the component in the Design mode. The \uicontrol State pane is - collapsed by default to save space. Select \uicontrol Expand in the context - menu to view the whole pane. - - \image qmldesigner-transitions.png "State pane" - - To add states, click the \inlineimage plus.png - button. Then modify the new state in the editor. - For example, to change the appearance of a button, you can hide the button - image and show another image in its place. Or, to add movement to the screen, - you can change the position of an object on the canvas and then add animation - to the change between the states. - - To determine when the state should be applied, select - \uicontrol {Set when Condition} in the menu and specify a - \l [QtQuick]{State::when}{when} property for the state. - - You can preview the states in the \uicontrol State pane and click them to switch - between states on the canvas. - - For more information on using states, see \l{Creating Screens}. - - If you add animation to the states, you can run the application to test the - animation. - - For more information on adding animation, see \l{Animating Screens}. - \section1 Working with QML Types on Canvas You design applications on the canvas by placing items on it. diff --git a/doc/src/qtquick/qtquick-states.qdoc b/doc/src/qtquick/qtquick-states.qdoc new file mode 100644 index 00000000000..80316aaa4fe --- /dev/null +++ b/doc/src/qtquick/qtquick-states.qdoc @@ -0,0 +1,88 @@ +/**************************************************************************** +** +** 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. +** +****************************************************************************/ + +/*! + \contentspage {Qt Creator Manual} + \previouspage quick-connections-backend.html + \page quick-states.html + \nextpage quick-components.html + + \title Adding States + + User interfaces are designed to present different interface configurations + in different scenarios, or to modify their appearances in response to user + interaction. Often, there are a set of changes that are made concurrently, + such that the interface could be seen to be internally changing from one + \e state to another. + + This applies generally to interfaces regardless of their complexity. A photo + viewer may initially present images in a grid, and when an image is clicked, + change to a detailed state where the individual image is expanded and the + interface is changed to present new options for image editing. At the other + end of the scale, when a button is pressed, it may change to a + \e pressed state in which its color and position are modified so that it + appears to be pressed down. + + In QML, any item can change between different states to apply sets of + changes that modify the properties of relevant items. Each state can + present a different configuration that can, for example: + + \list + \li Show some UI items and hide others. + \li Present different available actions to the user. + \li Start, stop or pause animations. + \li Execute some script required in the new state. + \li Change a property value for a particular item. + \li Show a different view or screen. + \endlist + + The \uicontrol State pane displays the different \l{State}{states} + of the component in the Design mode. The \uicontrol State pane is + collapsed by default to save space. Select \uicontrol Expand in + the context menu to view the whole pane. + + \image qmldesigner-transitions.png "State pane" + + To add states, click the \inlineimage plus.png + button. Then modify the new state in the editor. For example, to change the + appearance of a button, you can hide the button image and show another image + in its place. Or, to add movement to the screen, you can change the position + of an object on the canvas and then add animation to the change between the + states. + + To determine when the state should be applied, select + \uicontrol {Set when Condition} in the menu and specify a + \l [QtQuick]{State::when}{when} property for the state. + + You can preview the states in the \uicontrol State pane and click them to + switch between states on the canvas. + + For more information about using states, see \l{Creating Screens}. + + If you add animation to the states, you can run the application to test the + animation. + + For more information about adding animation, see \l{Animating Screens}. +*/ From 63034e55ce46959d726b2e1ec827e7dde95729f1 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Tue, 3 Jul 2018 10:59:40 +0200 Subject: [PATCH 43/48] Debugger: Fix state of instruction wise operation button Task-number: QTCREATORBUG-20714 Change-Id: Ie45fcb288a5e6a566a38b35d375b703c9c5a2326 Reviewed-by: hjk Reviewed-by: David Schulz --- src/plugins/debugger/debuggerengine.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp index 4e8ba42d181..7befc65ae2a 100644 --- a/src/plugins/debugger/debuggerengine.cpp +++ b/src/plugins/debugger/debuggerengine.cpp @@ -486,6 +486,7 @@ void DebuggerEngine::start() d->m_runTool->runControl()->setApplicationProcessHandle(d->m_inferiorPid); action(OperateByInstruction)->setEnabled(hasCapability(DisassemblerCapability)); + action(OperateByInstruction)->setChecked(boolSetting(OperateByInstruction)); QTC_ASSERT(state() == DebuggerNotReady || state() == DebuggerFinished, qDebug() << state()); From c633f3eec8fee073bd855aa16c43e52c09a3ee05 Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Tue, 3 Jul 2018 15:20:07 +0200 Subject: [PATCH 44/48] qmljs: Add autocompletion for QtWebEngine imports Task-number: QTCREATORBUG-20723 Change-Id: Id7e6700e87b73c845a0dda6152731085eaf5fcf1 Reviewed-by: Marco Benelli --- .../qml-type-descriptions/qt5QtQuick2-bundle.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/share/qtcreator/qml-type-descriptions/qt5QtQuick2-bundle.json b/share/qtcreator/qml-type-descriptions/qt5QtQuick2-bundle.json index 4742c51070d..84509537cfa 100644 --- a/share/qtcreator/qml-type-descriptions/qt5QtQuick2-bundle.json +++ b/share/qtcreator/qml-type-descriptions/qt5QtQuick2-bundle.json @@ -131,6 +131,14 @@ "QtQuick 2.8", "QtQuick 2.9", "QtTest 1.0", + "QtWebEngine 1.0", + "QtWebEngine 1.1", + "QtWebEngine 1.2", + "QtWebEngine 1.3", + "QtWebEngine 1.4", + "QtWebEngine 1.5", + "QtWebEngine 1.6", + "QtWebEngine 1.7", "QtWebKit 3.0", "Enginio 1.0" ] From efccf11835c3529fbce4e23fdfe67ddc3e080f5c Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Tue, 3 Jul 2018 12:00:46 +0200 Subject: [PATCH 45/48] QmlDesigner: Reparent only on CTRL+SHIFT Shift is a common modifier and we should use it to limit changes to one axis (e.g. x), since this is a useful and typical usage. We moved reparenting to CTRL+SHIFT. It has issues and can trigger crashes. Still it can useful and it is unlikely to be triggered randomly/by accident on this shortcut. Task-number: QDS-7 Change-Id: Ieeac6323659d5bd95bd27a05b8e18808ecdf390b Reviewed-by: Brook Cronin Reviewed-by: Tim Jenssen --- src/plugins/qmldesigner/components/formeditor/movetool.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugins/qmldesigner/components/formeditor/movetool.cpp b/src/plugins/qmldesigner/components/formeditor/movetool.cpp index 4978c370267..4b6a21694bd 100644 --- a/src/plugins/qmldesigner/components/formeditor/movetool.cpp +++ b/src/plugins/qmldesigner/components/formeditor/movetool.cpp @@ -107,6 +107,7 @@ void MoveTool::mouseMoveEvent(const QList &itemList, FormEditorItem *containerItem = containerFormEditorItem(itemList, m_movingItems); if (containerItem && view()->currentState().isBaseState()) { if (containerItem != m_movingItems.constFirst()->parentItem() + && event->modifiers().testFlag(Qt::ControlModifier) && event->modifiers().testFlag(Qt::ShiftModifier)) { const FormEditorItem *movingItem = m_movingItems.constFirst(); From 2e1f0c25780dfffcdc2cb2cbf364b57947d4d956 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Thu, 21 Jun 2018 14:08:59 +0200 Subject: [PATCH 46/48] Fix documentation build when renaming IDE Do not rename documentation qhp file. The documentation qmake files currently depend on the files having the same base name as the qdocconf file. Also do not change the documentation namespace. There are places where these are mentioned in translated strings. Fixup of 54208113eee147b29a7a7c4df96365569890fd56 Change-Id: Iace171535ea5be6e22fec9760a5d96722b052341 Reviewed-by: Leena Miettinen Reviewed-by: Thomas Hartmann Reviewed-by: Tim Jenssen --- doc/config/qtcreator-project.qdocconf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/config/qtcreator-project.qdocconf b/doc/config/qtcreator-project.qdocconf index 5762f9c6eb1..983fc3e895e 100644 --- a/doc/config/qtcreator-project.qdocconf +++ b/doc/config/qtcreator-project.qdocconf @@ -54,8 +54,8 @@ include(qt-defines.qdocconf) sources.fileextensions = "*.qdoc" qhp.projects = QtCreator -qhp.QtCreator.file = $IDE_ID.qhp -qhp.QtCreator.namespace = org.qt-project.$IDE_ID.$QTC_VERSION_TAG +qhp.QtCreator.file = qtcreator.qhp +qhp.QtCreator.namespace = org.qt-project.qtcreator.$QTC_VERSION_TAG qhp.QtCreator.virtualFolder = doc qhp.QtCreator.indexTitle = $IDE_DISPLAY_NAME Manual $QTC_VERSION qhp.QtCreator.filterAttributes = $IDE_ID $QTC_VERSION From 2ba326cd0426341a2f753fe340469580141345cb Mon Sep 17 00:00:00 2001 From: Lorenz Haas Date: Tue, 3 Jul 2018 18:32:35 +0200 Subject: [PATCH 47/48] Beautifier: Long live uncrustify By accident uncrustify's option page got kicked during a refactoring. This amends 9a7e7f7d4. Change-Id: I27aba7bcf689b20763446fd445f4855050669865 Reviewed-by: Orgad Shaneh --- src/plugins/beautifier/uncrustify/uncrustify.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/plugins/beautifier/uncrustify/uncrustify.cpp b/src/plugins/beautifier/uncrustify/uncrustify.cpp index 845900fb0e7..acba89331bf 100644 --- a/src/plugins/beautifier/uncrustify/uncrustify.cpp +++ b/src/plugins/beautifier/uncrustify/uncrustify.cpp @@ -87,6 +87,8 @@ bool Uncrustify::initialize() connect(m_settings, &UncrustifySettings::supportedMimeTypesChanged, [this] { updateActions(Core::EditorManager::currentEditor()); }); + new UncrustifyOptionsPage(m_settings, this); + return true; } From 9bbb085718ca1af4f816331d450b2129e30ff281 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Wed, 4 Jul 2018 12:47:21 +0200 Subject: [PATCH 48/48] QMake parsing: Improve behavior in case of empty build directory The build directory can be "empty" if there is no build configuration, or if the build configuration's build directory is empty. Handle both cases in the same way. This avoids passing an actually empty build directory to the parser, which the parser does no longer handles gracefully on Windows. If the build directory is empty, use the project's source path (instead of QDir(QString()) which is the current working directory), which makes it consistent with the behavior when actually building in that case. The parser does not actually write files to disk, so there is no issue with temporarily using that directory and later switching to a shadow build directory. Task-number: QTCREATORBUG-20121 Change-Id: Ia454085edae6b55b445cc5cf0ec3ae1c85464b0c Reviewed-by: Ivan Donchevskii Reviewed-by: Tobias Hunger --- src/plugins/qmakeprojectmanager/qmakeparsernodes.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/plugins/qmakeprojectmanager/qmakeparsernodes.cpp b/src/plugins/qmakeprojectmanager/qmakeparsernodes.cpp index 41ae3acf03b..66448835cff 100644 --- a/src/plugins/qmakeprojectmanager/qmakeparsernodes.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeparsernodes.cpp @@ -45,6 +45,7 @@ #include #include #include +#include #include #include @@ -1870,9 +1871,11 @@ FileName QmakeProFile::buildDir(QmakeBuildConfiguration *bc) const const QString relativeDir = srcDirRoot.relativeFilePath(directoryPath().toString()); if (!bc && m_project->activeTarget()) bc = static_cast(m_project->activeTarget()->activeBuildConfiguration()); - if (!bc) - return { }; - return FileName::fromString(QDir::cleanPath(QDir(bc->buildDirectory().toString()).absoluteFilePath(relativeDir))); + const QString buildConfigBuildDir = bc ? bc->buildDirectory().toString() : QString(); + const QString buildDir = buildConfigBuildDir.isEmpty() + ? m_project->projectDirectory().toString() + : buildConfigBuildDir; + return FileName::fromString(QDir::cleanPath(QDir(buildDir).absoluteFilePath(relativeDir))); } FileNameList QmakeProFile::generatedFiles(const FileName &buildDir,