diff --git a/dist/changes-4.0.0.md b/dist/changes-4.0.0.md index 64d309e2957..57ce375c7ec 100644 --- a/dist/changes-4.0.0.md +++ b/dist/changes-4.0.0.md @@ -20,6 +20,7 @@ General * Fixed issues with HiDPI (QTCREATORBUG-15222) * Fixed that switching theme did not switch editor color scheme (QTCREATORBUG-15229) +* Fixed crash when double clicking wizard (QTCREATORBUG-15968) Editing @@ -28,15 +29,20 @@ Editing * Added `Go to Previous Split or Window` * Fixed whitespace cleaning for mixed tabs and spaces configurations (QTCREATORBUG-7994) +* Fixed download of highlighting files (QTCREATORBUG-15997) +* Fixed crash when cutting text from multiple splits (QTCREATORBUG-16046) Help * Fixed issues with scrolling to right position (QTCREATORBUG-15548) +* Fixed images overlapping text with older Qt documentation (QTCREATORBUG-15887) +* Fixed fallback font (QTCREATORBUG-15887) QMake Projects * Added wizard for creating `Qt Labs Controls Application` * Added support for `STATECHARTS` +* Fixed crash when switching session while project is read (QTCREATORBUG-15993) CMake Projects @@ -62,6 +68,7 @@ Qt Support C++ Support * Fixed issue with negative enum values +* Fixed completion of Doxygen tags (QTCREATORBUG-9373, QTCREATORBUG-15143) * Clang code model * Simplified activation (it is now active if the plugin is enabled) * Added customizable configurations for warnings (global and per project) @@ -71,16 +78,23 @@ C++ Support QML Support * Fixed various issues with QML/JS Console (QTCREATORBUG-14931) +* Fixed resolution of `alias` directives in `.qrc` files Debugging -* Added pretty printers for `std::set`, `std::map` and `std::multimap` - (for simple types of keys and values) +* Added pretty printers for `std::set`, `std::map`, `std::multimap` + (for simple types of keys and values), `std::valarray` and `QBitArray` * Improved performance for watches * Improved visualization of `QByteArray` and `char[]` with non-printable values (QTCREATORBUG-15549) * CDB * Fixed showing value of `std::[w]string` (QTCREATORBUG-15016) +* GDB + * Fixed import of system pretty printer (QTCREATORBUG-15923) + * Fixed changing display format for `float` (QTCREATORBUG-12800) +* LLDB + * Fixed issues with Xcode 7.3 + (QTCREATORBUG-15965, QTCREATORBUG-15945, QTCREATORBUG-15949) QML Profiler @@ -95,6 +109,7 @@ QML Profiler Clang Static Analyzer * Fixed analyzing with MinGW tool chain settings +* Fixed that Clang was run with default target instead of project target Test Integration @@ -102,6 +117,7 @@ Test Integration * Fixed resolution of source file of failed test on Windows (QTCREATORBUG-15667) * Fixed that additional output of passing tests was ignored * Fixed test detection with CMake projects (QTCREATORBUG-15813) +* Fixed crash while editing test (QTCREATORBUG-16062) * Google Test * Added support for typed tests * Fixed parsing of file and line information diff --git a/doc/examples/transitions/MainForm.ui.qml b/doc/examples/transitions/MainForm.ui.qml index f599b842a34..61a0e92b295 100644 --- a/doc/examples/transitions/MainForm.ui.qml +++ b/doc/examples/transitions/MainForm.ui.qml @@ -1,79 +1,38 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** 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. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.5 -import QtQuick.Controls 1.4 -import QtQuick.Layouts 1.2 +import QtQuick 2.6 +import QtQuick.Controls 1.5 +import QtQuick.Layouts 1.3 Item { + id: page width: 640 height: 480 + property alias mouseArea1: mouseArea1 + property alias mouseArea3: mouseArea3 + property alias mouseArea2: mouseArea2 property alias bottomLeftRect: bottomLeftRect property alias middleRightRect: middleRightRect property alias topLeftRect: topLeftRect property alias icon: icon - property alias mouseArea1: mouseArea1 - property alias mouseArea2: mouseArea2 - property alias mouseArea3: mouseArea3 + + Image { + id: icon + x: 10 + y: 20 + source: "qt-logo.png" + } Rectangle { id: topLeftRect - width: 46 - height: 55 + width: 55 + height: 41 color: "#00000000" - radius: 6 + radius: 0 + border.color: "#808080" anchors.left: parent.left anchors.leftMargin: 10 anchors.top: parent.top anchors.topMargin: 20 - border.color: "#808080" + border.width: 1 MouseArea { id: mouseArea1 @@ -83,12 +42,12 @@ Item { Rectangle { id: middleRightRect - x: 6 + x: -8 y: 6 - width: 46 - height: 55 + width: 55 + height: 41 color: "#00000000" - radius: 6 + radius: 0 anchors.verticalCenter: parent.verticalCenter anchors.right: parent.right anchors.rightMargin: 10 @@ -96,32 +55,27 @@ Item { id: mouseArea2 anchors.fill: parent } + border.width: 1 border.color: "#808080" } Rectangle { id: bottomLeftRect - x: 0 - y: 4 - width: 46 - height: 55 + y: -2 + width: 55 + height: 41 color: "#00000000" - radius: 6 + radius: 0 anchors.bottom: parent.bottom anchors.bottomMargin: 20 + anchors.left: parent.left + anchors.leftMargin: 10 MouseArea { id: mouseArea3 anchors.fill: parent } - anchors.left: parent.left + border.width: 1 border.color: "#808080" - anchors.leftMargin: 10 } - Image { - id: icon - x: 10 - y: 20 - source: "qt-logo.png" - } } diff --git a/doc/examples/transitions/main.cpp b/doc/examples/transitions/main.cpp index 618e0f3da83..d76049d67eb 100644 --- a/doc/examples/transitions/main.cpp +++ b/doc/examples/transitions/main.cpp @@ -1,53 +1,3 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** 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. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - #include #include diff --git a/doc/examples/transitions/main.qml b/doc/examples/transitions/main.qml index 113cb551b04..b2d6928de41 100644 --- a/doc/examples/transitions/main.qml +++ b/doc/examples/transitions/main.qml @@ -1,122 +1,72 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** 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. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.5 -import QtQuick.Controls 1.4 +import QtQuick 2.6 +import QtQuick.Controls 1.5 import QtQuick.Dialogs 1.2 ApplicationWindow { visible: true - title: qsTr("Transitions") width: 330 height: 330 + title: qsTr("Transitions") MainForm { anchors.fill: parent id: page mouseArea1 { - onClicked: stateGroup.state = ' ' - } - mouseArea2 { - onClicked: stateGroup.state = 'State1' - } - mouseArea3 { - onClicked: stateGroup.state = 'State2' - } + onClicked: stateGroup.state = ' ' + } + mouseArea2 { + onClicked: stateGroup.state = 'State1' + } + mouseArea3 { + onClicked: stateGroup.state = 'State2' + } } StateGroup { - id: stateGroup - states: [ - State { - name: "State1" + id: stateGroup + states: [ + State { + name: "State1" - PropertyChanges { - target: page.icon - x: page.middleRightRect.x - y: page.middleRightRect.y - } - }, - State { - name: "State2" + PropertyChanges { + target: page.icon + x: page.middleRightRect.x + y: page.middleRightRect.y + } + }, + State { + name: "State2" - PropertyChanges { - target: page.icon - x: page.bottomLeftRect.x - y: page.bottomLeftRect.y + PropertyChanges { + target: page.icon + x: page.bottomLeftRect.x + y: page.bottomLeftRect.y + } } - } - ] - transitions: [ - Transition { - from: "*"; to: "State1" - NumberAnimation { - easing.type: Easing.OutBounce - properties: "x,y"; - duration: 1000 - } - }, - Transition { - from: "*"; to: "State2" - NumberAnimation { - properties: "x,y"; - easing.type: Easing.InOutQuad; - duration: 2000 - } - }, - Transition { - NumberAnimation { - properties: "x,y"; - duration: 200 + ] + transitions: [ + Transition { + from: "*"; to: "State1" + NumberAnimation { + easing.type: Easing.OutBounce + properties: "x,y"; + duration: 1000 + } + }, + Transition { + from: "*"; to: "State2" + NumberAnimation { + properties: "x,y"; + easing.type: Easing.InOutQuad; + duration: 2000 + } + }, + Transition { + NumberAnimation { + properties: "x,y"; + duration: 200 + } } - } - ] - } - } + ] + } +} diff --git a/doc/examples/transitions/qt-logo.png b/doc/examples/transitions/qt-logo.png index 14ddf2a0289..f465822ed08 100644 Binary files a/doc/examples/transitions/qt-logo.png and b/doc/examples/transitions/qt-logo.png differ diff --git a/doc/images/qmldesigner-bindings.png b/doc/images/qmldesigner-bindings.png index ad29109beea..723fe3ea119 100644 Binary files a/doc/images/qmldesigner-bindings.png and b/doc/images/qmldesigner-bindings.png differ diff --git a/doc/images/qmldesigner-connections.png b/doc/images/qmldesigner-connections.png index 356fa0f0d10..6548e88e904 100644 Binary files a/doc/images/qmldesigner-connections.png and b/doc/images/qmldesigner-connections.png differ diff --git a/doc/images/qmldesigner-dynamicprops.png b/doc/images/qmldesigner-dynamicprops.png index 7807918131b..04949ac6814 100644 Binary files a/doc/images/qmldesigner-dynamicprops.png and b/doc/images/qmldesigner-dynamicprops.png differ diff --git a/doc/images/qmldesigner-element-properties.png b/doc/images/qmldesigner-element-properties.png index e1680dfaefa..76b4ca25ce5 100644 Binary files a/doc/images/qmldesigner-element-properties.png and b/doc/images/qmldesigner-element-properties.png differ diff --git a/doc/images/qmldesigner-element-size.png b/doc/images/qmldesigner-element-size.png index 63bdb533fd8..47c555642f1 100644 Binary files a/doc/images/qmldesigner-element-size.png and b/doc/images/qmldesigner-element-size.png differ diff --git a/doc/images/qmldesigner-export-item.png b/doc/images/qmldesigner-export-item.png index 83ba7b1afca..4dd43614906 100644 Binary files a/doc/images/qmldesigner-export-item.png and b/doc/images/qmldesigner-export-item.png differ diff --git a/doc/images/qmldesigner-navigator-arrows.png b/doc/images/qmldesigner-navigator-arrows.png index 9f8f0eb950b..06d884b5c51 100644 Binary files a/doc/images/qmldesigner-navigator-arrows.png and b/doc/images/qmldesigner-navigator-arrows.png differ diff --git a/doc/images/qmldesigner-navigator.png b/doc/images/qmldesigner-navigator.png index e58152bbb68..fc168249f8f 100644 Binary files a/doc/images/qmldesigner-navigator.png and b/doc/images/qmldesigner-navigator.png differ diff --git a/doc/images/qmldesigner-new-project.png b/doc/images/qmldesigner-new-project.png index 1619fd18b3b..3d8e5265f03 100644 Binary files a/doc/images/qmldesigner-new-project.png and b/doc/images/qmldesigner-new-project.png differ diff --git a/doc/images/qmldesigner-preview-size.png b/doc/images/qmldesigner-preview-size.png index 9f67cc50035..63003fa46f9 100644 Binary files a/doc/images/qmldesigner-preview-size.png and b/doc/images/qmldesigner-preview-size.png differ diff --git a/doc/images/qmldesigner-properties-explicit-base.png b/doc/images/qmldesigner-properties-explicit-base.png index c3e10adcef7..e8f845dd222 100644 Binary files a/doc/images/qmldesigner-properties-explicit-base.png and b/doc/images/qmldesigner-properties-explicit-base.png differ diff --git a/doc/images/qmldesigner-properties-explicit-state1.png b/doc/images/qmldesigner-properties-explicit-state1.png index c33ff6c140e..152c94297f3 100644 Binary files a/doc/images/qmldesigner-properties-explicit-state1.png and b/doc/images/qmldesigner-properties-explicit-state1.png differ diff --git a/doc/images/qmldesigner-qml-components.png b/doc/images/qmldesigner-qml-components.png index 593c81a8eee..e4653da5409 100644 Binary files a/doc/images/qmldesigner-qml-components.png and b/doc/images/qmldesigner-qml-components.png differ diff --git a/doc/images/qmldesigner-screen-design.png b/doc/images/qmldesigner-screen-design.png index a5aa8a54151..4cecbbb390e 100644 Binary files a/doc/images/qmldesigner-screen-design.png and b/doc/images/qmldesigner-screen-design.png differ diff --git a/doc/images/qmldesigner-states.png b/doc/images/qmldesigner-states.png index f768bdddc9a..460c810e211 100644 Binary files a/doc/images/qmldesigner-states.png and b/doc/images/qmldesigner-states.png differ diff --git a/doc/images/qmldesigner-transitions.png b/doc/images/qmldesigner-transitions.png index 1fee9d18275..66624e93d26 100644 Binary files a/doc/images/qmldesigner-transitions.png and b/doc/images/qmldesigner-transitions.png differ diff --git a/doc/images/qmldesigner-tutorial-quick-toolbar.png b/doc/images/qmldesigner-tutorial-quick-toolbar.png index 48ffc07c352..51c3616eaa5 100644 Binary files a/doc/images/qmldesigner-tutorial-quick-toolbar.png and b/doc/images/qmldesigner-tutorial-quick-toolbar.png differ diff --git a/doc/images/qmldesigner-tutorial-topleftrect.png b/doc/images/qmldesigner-tutorial-topleftrect.png index 3cc9d64c8e6..b4e0d22f05e 100644 Binary files a/doc/images/qmldesigner-tutorial-topleftrect.png and b/doc/images/qmldesigner-tutorial-topleftrect.png differ diff --git a/doc/images/qmldesigner-tutorial-ui-ready.png b/doc/images/qmldesigner-tutorial-ui-ready.png new file mode 100644 index 00000000000..3a3b3110811 Binary files /dev/null and b/doc/images/qmldesigner-tutorial-ui-ready.png differ diff --git a/doc/images/qmldesigner-tutorial-user-icon.png b/doc/images/qmldesigner-tutorial-user-icon.png index 2e3f84ee0c1..ee3a14485e0 100644 Binary files a/doc/images/qmldesigner-tutorial-user-icon.png and b/doc/images/qmldesigner-tutorial-user-icon.png differ diff --git a/doc/images/qmldesigner-tutorial.png b/doc/images/qmldesigner-tutorial.png index a70f2860b6e..3cf47bc2fef 100644 Binary files a/doc/images/qmldesigner-tutorial.png and b/doc/images/qmldesigner-tutorial.png differ diff --git a/doc/images/qmldesigner-uiforms-example-main-view.png b/doc/images/qmldesigner-uiforms-example-main-view.png index 099611c10fe..9fc098b9feb 100644 Binary files a/doc/images/qmldesigner-uiforms-example-main-view.png and b/doc/images/qmldesigner-uiforms-example-main-view.png differ diff --git a/doc/images/qmldesigner-visual-editor.png b/doc/images/qmldesigner-visual-editor.png index f40fd880f94..7831f615b84 100644 Binary files a/doc/images/qmldesigner-visual-editor.png and b/doc/images/qmldesigner-visual-editor.png differ diff --git a/doc/images/qtcreator-locator-customize.png b/doc/images/qtcreator-locator-customize.png index 01aaab0a767..c9899959df2 100644 Binary files a/doc/images/qtcreator-locator-customize.png and b/doc/images/qtcreator-locator-customize.png differ diff --git a/doc/images/qtcreator-modeleditor-classes.png b/doc/images/qtcreator-modeleditor-classes.png index f85430190f5..182a1596e88 100644 Binary files a/doc/images/qtcreator-modeleditor-classes.png and b/doc/images/qtcreator-modeleditor-classes.png differ diff --git a/doc/images/qtcreator-modeleditor-packages.png b/doc/images/qtcreator-modeleditor-packages.png index 67170bc53fa..50ba8f86d6c 100644 Binary files a/doc/images/qtcreator-modeleditor-packages.png and b/doc/images/qtcreator-modeleditor-packages.png differ diff --git a/doc/images/qtcreator-modeleditor.png b/doc/images/qtcreator-modeleditor.png index de936c26e8d..52a404f59db 100644 Binary files a/doc/images/qtcreator-modeleditor.png and b/doc/images/qtcreator-modeleditor.png differ diff --git a/doc/images/qtcreator-project-options-deploy.png b/doc/images/qtcreator-project-options-deploy.png index d4c0f8cad2f..d921afe180e 100644 Binary files a/doc/images/qtcreator-project-options-deploy.png and b/doc/images/qtcreator-project-options-deploy.png differ diff --git a/doc/images/qtcreator-refactoring-find.png b/doc/images/qtcreator-refactoring-find.png index 288b51a0304..d2524de7ec1 100644 Binary files a/doc/images/qtcreator-refactoring-find.png and b/doc/images/qtcreator-refactoring-find.png differ diff --git a/doc/images/qtcreator-refactoring-replace.png b/doc/images/qtcreator-refactoring-replace.png index 8cf98e94d19..4c62c5f0656 100644 Binary files a/doc/images/qtcreator-refactoring-replace.png and b/doc/images/qtcreator-refactoring-replace.png differ diff --git a/doc/images/qtcreator-refactoring-virtual-function-dialog.png b/doc/images/qtcreator-refactoring-virtual-function-dialog.png index b761f33db10..6fd776c9cdb 100644 Binary files a/doc/images/qtcreator-refactoring-virtual-function-dialog.png and b/doc/images/qtcreator-refactoring-virtual-function-dialog.png differ diff --git a/doc/images/qtcreator-search-allprojects.png b/doc/images/qtcreator-search-allprojects.png index 8cecbf686ee..f78038af4bb 100644 Binary files a/doc/images/qtcreator-search-allprojects.png and b/doc/images/qtcreator-search-allprojects.png differ diff --git a/doc/images/qtcreator-search-cpp-symbols.png b/doc/images/qtcreator-search-cpp-symbols.png index 706ec20ade8..9f34e8f621c 100644 Binary files a/doc/images/qtcreator-search-cpp-symbols.png and b/doc/images/qtcreator-search-cpp-symbols.png differ diff --git a/doc/images/qtcreator-searchresults.png b/doc/images/qtcreator-searchresults.png index 0b9c06cae8f..02835cbb4b4 100644 Binary files a/doc/images/qtcreator-searchresults.png and b/doc/images/qtcreator-searchresults.png differ diff --git a/doc/src/editors/creator-editors.qdoc b/doc/src/editors/creator-editors.qdoc index e1a803ab401..64b8fa167f2 100644 --- a/doc/src/editors/creator-editors.qdoc +++ b/doc/src/editors/creator-editors.qdoc @@ -1507,7 +1507,7 @@ \li \uicontrol {All Projects} searches files matching the defined file pattern in all currently open projects. - For example, to search for \c previewer only in \c {.cpp} + For example, to search for a string only in \c {.cpp} and \c {.h} files, enter in \uicontrol {File pattern} \c {*.cpp,*.h}. diff --git a/doc/src/editors/creator-modeling.qdoc b/doc/src/editors/creator-modeling.qdoc index de6afd6afb8..588b722a216 100644 --- a/doc/src/editors/creator-modeling.qdoc +++ b/doc/src/editors/creator-modeling.qdoc @@ -87,6 +87,9 @@ the editor to copy all elements to the clipboard by using 300 dpi. Then paste the diagram to an application that can print images. + To save diagrams as images, select \uicontrol Tools > + \uicontrol {Model Editor} > \uicontrol {Export Diagram}. + \section1 Creating Models To create models: diff --git a/doc/src/howto/creator-ui.qdoc b/doc/src/howto/creator-ui.qdoc index 7ec6f935c0e..ae8c6b2ba0d 100644 --- a/doc/src/howto/creator-ui.qdoc +++ b/doc/src/howto/creator-ui.qdoc @@ -47,7 +47,9 @@ \li Open tutorials and example projects - \li Read news from the online community and Qt labs + \li Read news from the online community and Qt blogs + + \li Create or manage a Qt Account \endlist @@ -451,6 +453,13 @@ Select toolbar buttons to run applications, to attach the debugger to the running application, and to stop running or debugging. + To specify settings for displaying application output, select + \uicontrol Tools > \uicontrol Options > \uicontrol {Build & Run} > + \uicontrol General. You can select whether to open the + \uicontrol{Application Output} pane on output when running or debugging + applications, to clear old output on a new run, to word-wrap output, and to + limit output to the specified number of lines. + \section2 Compile Output The \uicontrol{Compile Output} pane provides all output from the compiler. @@ -464,6 +473,11 @@ Select the \uicontrol {Cancel Build} button to cancel the build. + To specify whether to open the \uicontrol {Compile Output} pane on output + when building applications, select \uicontrol Tools > \uicontrol Options > + \uicontrol {Build & Run} > \uicontrol General, and then select the + \uicontrol {Open Compile Output pane when building} check box. + \section2 Debugger Console In the \uicontrol {Debugger Console}, you can type JavaScript expressions and use them to get diff --git a/doc/src/projects/creator-projects-builds-customizing.qdoc b/doc/src/projects/creator-projects-builds-customizing.qdoc index 3b1b6016604..be8f94fe1db 100644 --- a/doc/src/projects/creator-projects-builds-customizing.qdoc +++ b/doc/src/projects/creator-projects-builds-customizing.qdoc @@ -47,4 +47,13 @@ \image qtcreator-project-options-deploy.png "Project General Options" + On Windows, you can use \c jom instead of \c nmake for building the project + to distribute the compilation process to multiple CPU cores. You can download + \c jom from \l{http://download.qt.io/official_releases/jom}{Qt Downloads}. + To use \c jom, select the \uicontrol {Use jom instead of nmake} check box. + Deselect the check box if you experience build problems. + + You can specify the default build directory in the + \uicontrol {Default build directory} field using \QC variables (2). + */ diff --git a/doc/src/qnx/creator-deployment-qnx.qdoc b/doc/src/qnx/creator-deployment-qnx.qdoc index b0d3cc67f6c..90c36930a9d 100644 --- a/doc/src/qnx/creator-deployment-qnx.qdoc +++ b/doc/src/qnx/creator-deployment-qnx.qdoc @@ -47,7 +47,7 @@ \image qtcreator-qnx-deployment.png "Deploy to device" The files to be installed are listed in the \uicontrol {Deployment} step, - the \uicontrol {Files to install for subproject} field. The + the \uicontrol {Files to deploy} field. The \uicontrol {Local File Path} field displays the location of the file on the development PC. The \uicontrol {Remote Directory} field displays the folder where the file is installed on the device. Text in red color indicates that diff --git a/doc/src/qtquick/qtquick-app-tutorial.qdoc b/doc/src/qtquick/qtquick-app-tutorial.qdoc index 85bc3ff2483..7f122c33112 100644 --- a/doc/src/qtquick/qtquick-app-tutorial.qdoc +++ b/doc/src/qtquick/qtquick-app-tutorial.qdoc @@ -74,8 +74,11 @@ \li In the \uicontrol Navigator, select \uicontrol RowLayout and press \key Delete to delete it. + \li Select \uicontrol Item in the navigator, and enter \e page in the + \uicontrol Id field. + \li In \uicontrol Library > \uicontrol Resources, select qt-logo.png and - drag and drop it to the \uicontrol Item in the navigator. + drag and drop it to the \e page in the navigator. \image qmldesigner-tutorial-user-icon.png "Image properties" @@ -101,8 +104,8 @@ \li In the \uicontrol Id field, enter \e topLeftRect. - \li In the \uicontrol Size field, set \uicontrol W to \e 46 and - \uicontrol H to \e 55, for the rectangle size to match the image + \li In the \uicontrol Size field, set \uicontrol W to \e 55 and + \uicontrol H to \e 41, for the rectangle size to match the image size. \li In the \uicontrol Color field, click the @@ -113,9 +116,6 @@ \li In the \uicontrol {Border color} field, set the border color to \e #808080. - \li In the \uicontrol Radius field, select \e 6 to create rounded - corners for the rectangle. - \li Click \uicontrol {Layout}, and then click the top and left anchor buttons to anchor the rectangle to the top left corner of the page. @@ -187,6 +187,8 @@ the \uicontrol Edit mode to add animation to the application, as described in the following section. + \image qmldesigner-tutorial-ui-ready.png "Transitions UI" + \section1 Adding Application Logic The new project wizard adds boilerplate code to the \e main.qml file to @@ -207,7 +209,7 @@ \quotefromfile transitions/main.qml \skipto ApplicationWindow - \printuntil height + \printuntil title \li Specify an id for the MainForm type to be able to use the properties that you exported in \e MainForm.ui.qml: diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py index 6fd697fcc3b..506f2379a80 100644 --- a/share/qtcreator/debugger/lldbbridge.py +++ b/share/qtcreator/debugger/lldbbridge.py @@ -160,6 +160,7 @@ lldb.SBType.__str__ = lldb.SBType.GetName class Dumper(DumperBase): def __init__(self): DumperBase.__init__(self) + lldb.theDumper = self self.outputLock = threading.Lock() self.debugger = lldb.SBDebugger.Create() @@ -1489,6 +1490,21 @@ class Dumper(DumperBase): bp.SetIgnoreCount(int(args["ignorecount"])) bp.SetCondition(self.hexdecode(args["condition"])) bp.SetEnabled(bool(args["enabled"])) + bp.SetScriptCallbackBody('\n'.join([ + "def foo(frame = frame, bp_loc = bp_loc, dict = internal_dict):", + " " + self.hexdecode(args["command"]).replace('\n', '\n '), + "from cStringIO import StringIO", + "origout = sys.stdout", + "sys.stdout = StringIO()", + "result = foo()", + "d = lldb.theDumper", + "output = d.hexencode(sys.stdout.getvalue())", + "sys.stdout = origout", + "d.report('output={channel=\"stderr\",data=\"' + output + '\"}')", + "if result is False:", + " d.reportState('continueafternextstop')", + "return True" + ])) if isinstance(bp, lldb.SBBreakpoint): bp.SetOneShot(bool(args["oneshot"])) self.reportResult(self.describeBreakpoint(bp) + extra, args) diff --git a/share/qtcreator/themes/default.creatortheme b/share/qtcreator/themes/default.creatortheme index b6dcbcca124..28b7e642d67 100644 --- a/share/qtcreator/themes/default.creatortheme +++ b/share/qtcreator/themes/default.creatortheme @@ -1,5 +1,5 @@ [General] -ThemeName=Default +ThemeName=Classic PreferredStyles= [Palette] diff --git a/share/qtcreator/themes/defaultflat.creatortheme b/share/qtcreator/themes/flat.creatortheme similarity index 97% rename from share/qtcreator/themes/defaultflat.creatortheme rename to share/qtcreator/themes/flat.creatortheme index c8d51b6ca7b..8affc8eb383 100644 --- a/share/qtcreator/themes/defaultflat.creatortheme +++ b/share/qtcreator/themes/flat.creatortheme @@ -1,5 +1,5 @@ [General] -ThemeName=Default Flat +ThemeName=Flat PreferredStyles= [Palette] @@ -61,13 +61,13 @@ IconsWarningColor=ffecbc1c IconsWarningToolBarColor=fff2d76e IconsErrorColor=ffdf4f4f IconsErrorToolBarColor=ffdb6f71 -IconsRunColor=dda4d576 -IconsStopColor=ddff8c8c +IconsRunColor=ff93be6c +IconsStopColor=ffe27f7f IconsDebugColor=toolBarItem -IconsInterruptColor=dd7488db +IconsInterruptColor=ff6a7bc3 IconsNavigationArrowsColor=ffebc322 -IconsBuildHammerHandleColor=dddd7710 -IconsBuildHammerHeadColor=dd989898 +IconsBuildHammerHandleColor=ffc26b14 +IconsBuildHammerHeadColor=ff868687 IconsModeWelcomeActiveColor=ff80c342 IconsModeEditActiveColor=ff99aaef IconsModeDesignActiveColor=ffbb6000 diff --git a/share/qtcreator/translations/qtcreator_ru.ts b/share/qtcreator/translations/qtcreator_ru.ts index 06a6914e404..84944ea4b4c 100644 --- a/share/qtcreator/translations/qtcreator_ru.ts +++ b/share/qtcreator/translations/qtcreator_ru.ts @@ -341,7 +341,7 @@ The process "%1" crashed. - Процесс «%1» завершился крахом. + Процесс «%1» аварийно завершился. Another application with the same package id but signed with different certificate already exists. @@ -791,7 +791,7 @@ Do you want to uninstall the existing package? "%1" died. - «%1» завершился крахом. + «%1» аварийно завершился. Unable to start "%1". @@ -3633,8 +3633,8 @@ For example, "Revision: 15" will leave the branch at revision 15. CMakeProjectManager::CMakeBuildStep - Qt Creator needs a cmake tool set up to build. Configure a cmake tool in the kit options. - Для сборки необходимо, чтобы была задана утилита cmake. Задайте её в настройках комлекта. + Qt Creator needs a CMake Tool set up to build. Configure a CMake Tool in the kit options. + Для сборки необходимо, чтобы была задана утилита CMake. Задайте её в настройках комлекта. @@ -3790,7 +3790,7 @@ For example, "Revision: 15" will leave the branch at revision 15. *** cmake process crashed! - *** процесс cmake завершился крахом! + *** процесс cmake аварийно завершился! *** cmake process exited with exit code %1. @@ -4172,9 +4172,9 @@ For example, "Revision: 15" will leave the branch at revision 15.ClangStaticAnalyzer The chosen file "%1" seems to point to an icecc binary not suitable for analyzing. -Please set a real clang executable. +Please set a real Clang executable. Кажется, выбранный файл «%1» указывает на программу icecc непригодную для анализа. -Укажите реальную программу clang. +Укажите реальный исполняемый файл Clang. @@ -4203,7 +4203,7 @@ Please set a real clang executable. Сообщение: - Extended Message: + Extended message: Подробное сообщение: @@ -4248,7 +4248,7 @@ Please set a real clang executable. ClangStaticAnalyzer::Internal::ClangStaticAnalyzerDiagnosticView - Suppress this diagnostic + Suppress This Diagnostic Подавить эту диагностику @@ -4262,8 +4262,8 @@ Please set a real clang executable. ClangStaticAnalyzer::Internal::ClangStaticAnalyzerPlugin - Clang Static Analyzer Settings - Настройки статического анализатора Clang + Clang Static Analyzer + Статический анализатор Clang @@ -4328,8 +4328,8 @@ Please set a real clang executable. К следующей проблеме. - Clang Static Analyzer uses the analyzer from the clang project to find bugs. - Статический анализатор Clang использует анализатор из проекта clang для поиска проблем. + Clang Static Analyzer uses the analyzer from the Clang project to find bugs. + Статический анализатор Clang использует анализатор из проекта Clang для поиска ошибок. Clang Static Analyzer @@ -4356,7 +4356,7 @@ Please set a real clang executable. Запустить статический анализатор Clang. - Clang Static Analyzer running. + Clang Static Analyzer is running. Статический анализатор Clang работает. @@ -4382,10 +4382,6 @@ Please set a real clang executable. Form - - Suppressed Diagnostics: - Подавляемые диагностики: - Remove Selected Удалить выбранное @@ -4394,6 +4390,10 @@ Please set a real clang executable. Remove All Удалить всё + + Suppressed diagnostics: + Подавляемые диагностики: + ClangStaticAnalyzer::Internal::SuppressedDiagnosticsModel @@ -7037,18 +7037,10 @@ Do you want to kill it? Recent &Files Недавние фа&йлы - - &Save - &Сохранить - Save Сохранить - - Save &As... - Сохранить &как... - Ctrl+Shift+S Ctrl+Shift+S @@ -7811,7 +7803,7 @@ Do you want to kill it? Automatically creates temporary copies of modified files. If Qt Creator is restarted after a crash or power failure, it asks whether to recover the auto-saved content. - Автоматически создавать копии изменённых файлов. Если работа Qt Creator завершилась в результате краха или сбоя питания, то при перезапуске он предложит восстановить их содержимое. + Автоматически создавать копии изменённых файлов. Если работа Qt Creator завершится аварийно или из-за сбоя питания, то при перезапуске он предложит восстановить их содержимое. Auto-save modified files @@ -8007,7 +7999,7 @@ Do you want to kill it? "%1" crashed. - «%1» завершился аварийно. + «%1» аварийно завершился. "%1" failed (exit code %2). @@ -11498,11 +11490,11 @@ Affected are breakpoints %1 Crashed process %1 - Завершившийся крахом процесс %1 + Аварийно завершившийся процесс %1 Attaching to crashed process %1 - Подключение к завершившемуся крахом процессу %1 + Подключение к аварийно завершившемуся процессу %1 Process Already Under Debugger Control @@ -12248,7 +12240,7 @@ Qt Creator не может подключиться к нему. The gdb process crashed some time after starting successfully. - Процесс gdb завершился крахом через некоторое время после успешного запуска. + Процесс gdb аварийно завершился через некоторое время после успешного запуска. The gdb process was ended forcefully @@ -12913,7 +12905,7 @@ markers in the source code editor. The LLDB process crashed some time after starting successfully. - Процесс LLDB завершился крахом через некоторое время после успешного старта. + Процесс LLDB аварийно завершился через некоторое время после успешного старта. An error occurred when attempting to write to the LLDB process. For example, the process may not be running, or it may have closed its input channel. @@ -13304,10 +13296,6 @@ Do you want to retry? QML Debugger disconnected. Отладчик QML отключён. - - Context: - Контекст: - Debugger::Internal::QmlInspectorAgent @@ -16176,7 +16164,7 @@ will also disable the following plugins: %1 crashed. - %1 завершился крахом. + %1 аварийно завершился. %1 returned %2. @@ -16455,7 +16443,7 @@ Partial names can be used if they are unambiguous. %1 crashed. - %1 завершился крахом. + %1 аварийно завершился. %1 returned %2. @@ -18259,7 +18247,7 @@ Leave empty to search through the file system. Ref: %1 %2 - Ссылка: %1 + Ссылка: %1 %2 @@ -19140,7 +19128,7 @@ Would you like to overwrite it? Ctrl+0 - Fit To Screen + Fit to Screen На весь экран @@ -20009,80 +19997,80 @@ Ids must begin with a lowercase letter. Polish - Полировка + Полировка Wait - Ожидание + Ожидание GUI Thread Sync - Синхронизация с потоком GUI + Синхронизация с потоком GUI Render Thread Sync - Синхронизация с потоком рендера + Синхронизация с потоком рендера Render - Рендер + Рендер Swap - Переключение + Переключение Render Preprocess - Рендер - преобработка + Рендер - преобработка Render Update - Рендер - обновление + Рендер - обновление Render Bind - Рендер - привязка + Рендер - привязка Render Render - Рендер - рендеринг + Рендер - рендеринг Material Compile - Компиляция материала + Компиляция материала Glyph Render - Отрисовка глифов + Отрисовка глифов Glyph Upload - Выгрузка глифов + Выгрузка глифов Texture Bind - Текстуры - привязка + Текстуры - привязка Texture Convert - Текстуры - преобразование + Текстуры - преобразование Texture Swizzle не знаю, как выбор/обмен цветовых каналов перевести на русский - Текстуры - смешивание + Текстуры - смешивание Texture Upload - Текстуры - выгрузка + Текстуры - выгрузка Texture Mipmap - Текстуры - мипмамминг + Текстуры - мипмамминг Texture Delete - Текстуры - удаление + Текстуры - удаление @@ -20738,7 +20726,7 @@ Ids must begin with a lowercase letter. Выбор особого каталога настроек - Config Path: + Config path: Путь к настройкам: @@ -21801,6 +21789,10 @@ Ids must begin with a lowercase letter. Name of current build Имя текущей сборки + + The currently active run configuration's name. + Имя текущей активной конфигурации запуска. + ProjectExplorer::AbiWidget @@ -21833,7 +21825,7 @@ Ids must begin with a lowercase letter. The process "%1" crashed. - Процесс «%1» завершился крахом. + Процесс «%1» завершился аварийно. Could not start process "%1" %2 @@ -21984,7 +21976,7 @@ Ids must begin with a lowercase letter. The process crashed. - Процесс завершился крахом. + Процесс аварийно завершился. The process returned exit code %1: @@ -22504,7 +22496,7 @@ Ids must begin with a lowercase letter. Remote process crashed: %1 - Внешний процесс завершился крахом: %1 + Внешний процесс аварийно завершился: %1 Remote process failed; exit code was %1. @@ -23482,8 +23474,8 @@ Ids must begin with a lowercase letter. Запускается %1... - %1 crashed - %1 завершился крахом + %1 crashed. + %1 аварийно завершился. %1 exited with code %2 @@ -25874,6 +25866,10 @@ Please close all running instances of your application before starting a build.< The name of the currently active kit. Название активного комплекта. + + The currently active run configuration's name. + Имя текущей активной конфигурации запуска. + Cancel Build && Unload Отменить сборку и выгрузить @@ -26411,6 +26407,10 @@ These files are preserved. ProjectExplorer::SshDeviceProcess + + Internal error + Внутренняя ошибка + Failed to kill remote process: %1 Не удалось завершить удалённый процесс: %1 @@ -26436,7 +26436,7 @@ These files are preserved. Error: Process listing command crashed: %1 - Ошибка: Команда вывода списка завершилась крахом: %1 + Ошибка: Команда вывода списка аварийно завершилась: %1 Process listing command failed with exit code %1. @@ -26696,7 +26696,7 @@ These files are preserved. %1 crashed - %1 завершился крахом + %1 аварийно завершился %1 exited with code %2 @@ -26839,15 +26839,15 @@ Maybe raise the timeout? Ожидается целочисленный элемент. - An error occurred with the clang static analyzer process. + An error occurred with the Clang Static Analyzer process. Возникла ошибка при статическом анализе Clang. - Clang static analyzer crashed. - Статический анализ Clang завершился крахом. + Clang Static Analyzer crashed. + Статический анализ Clang аварийно завершился. - Clang static analyzer finished with exit code: %1. + Clang Static Analyzer finished with exit code: %1. Статический анализ Clang завершился с кодом %1. @@ -26873,7 +26873,7 @@ Output: The SFTP server crashed: %1. - Сервер SFTP завершился крахом: %1. + Сервер SFTP аварийно завершился: %1. Unexpected packet of type %1. @@ -27598,6 +27598,10 @@ Output: Parsing of .qbs files has failed. Не удалось обработать файлы .qbs. + + Error retrieving run environment: %1 + Не удалось получить среду запуска: %1 + Qbs Run Configuration Конфигурация выполнения Qbs @@ -28941,8 +28945,8 @@ Neither the path to the library nor the path to its includes is added to the .pr Формы - StateCharts - Диаграммы состояний + State charts + Диаграммы состояний Resources @@ -29457,7 +29461,7 @@ Neither the path to the library nor the path to its includes is added to the .pr Qt Quick emulation layer crashed - Слой эмуляции Qt Quick завершился крахом + Слой эмуляции Qt Quick аварийно завершился @@ -29709,17 +29713,17 @@ Neither the path to the library nor the path to its includes is added to the .pr Show property editor warnings Показывать предупреждения редактора свойств - - Forward puppet output: - Перенаправление вывода: - Show warn exceptions Предупреждающие исключения - Debug puppet: - Отладка эмулятора: + Forward QML emulation layer output: + Перенаправление вывода эмулятора QML: + + + Debug QML emulation layer: + Отладка эмулятора QML: @@ -29822,11 +29826,11 @@ This is independent of the visibility property in QML. QML Emulation Layer (QML Puppet) Crashed - Слой эмуляции QML (QML Puppet) завершился крахом + Слой эмуляции QML (QML Puppet) аварийно завершился You are recording a puppet stream and the emulations layer crashed. It is recommended to reopen the Qt Quick Designer and start again. - Эмуляция завершилась крахом при записи puppet-потока. Рекомендуется переоткрыть Qt Quick Designer и запустить запись снова. + Эмуляция аварийно завершилась при записи puppet-потока. Рекомендуется переоткрыть Qt Quick Designer и запустить запись снова. @@ -31687,13 +31691,21 @@ references to elements in other files, loops, and so on.) Профайлер QML (внешний) - A Qml Profiler analysis is still in progress. + A QML Profiler analysis is still in progress. Выполняется профилирование QML. - Start Qml Profiler analysis. + Start QML Profiler analysis. Начать профилирование QML. + + Disable Profiling + Отключить профилирование + + + Enable Profiling + Включить профилирование + %1 s %1 сек @@ -31734,14 +31746,6 @@ Do you want to save the data first? Hide or show event categories. Показ или скрытие категорий событий. - - Disable profiling - Отключить профилирование - - - Enable profiling - Включить профилирование - QmlProfiler::Internal::QmlProfilerTraceView @@ -32078,12 +32082,12 @@ Do you want to save the data first? QmlProfilerExtension::Internal::QmlProfilerExtensionPlugin - Action triggered + Action Triggered Действие сработало - This is an action from QmlProfilerExtension. - Это действие из QmlProfilerExtension. + This is an action from QML Profiler Extension. + Это действие из расширения QML Profiler. @@ -33765,6 +33769,10 @@ In addition, device connectivity will be tested. RemoteLinux::Internal::RemoteLinuxEnvironmentReader + + Error: No device + Ошибка: Нет устройства + Error: %1 Ошибка: %1 @@ -33872,7 +33880,7 @@ In addition, device connectivity will be tested. Remote process crashed. - Удалённый процесс завершился крахом. + Удалённый процесс аварийно завершился. Unexpected output from remote process: "%1" @@ -37470,8 +37478,8 @@ Will not be applied to whitespace in comments and strings. Удалить - To-Do Settings - Настройки To-Do + To-Do + To-Do @@ -38789,7 +38797,7 @@ Will not be applied to whitespace in comments and strings. Valgrind::Internal::CallgrindTool - Valgrind Function Profile uses the Callgrind tool to record function calls when a program runs. + Valgrind Function Profiler uses the Callgrind tool to record function calls when a program runs. Профайлер функций Valgrind использует утилиту Callgrind для записи вызовов функций при работе программы. @@ -38869,9 +38877,17 @@ Will not be applied to whitespace in comments and strings. Цены, относительные к родительской - Show costs relative to parent functions inclusive cost. + Show costs relative to parent function's inclusive cost. Показывать цены относительно общей цены вызвавшей функции. + + Remove template parameter lists when displaying function names. + Убирать списки шаблонных параметров при отображении имён функций. + + + Select This Function in the Analyzer Output + Выбрать эту функцию в выводе анализатора + Cost Format Формат цены @@ -38880,10 +38896,6 @@ Will not be applied to whitespace in comments and strings. Enable cycle detection to properly handle recursive or circular function calls. Включить определение циклов для корректной обработки рекурсивных и циклических вызовов. - - This removes template parameter lists when displaying function names. - Убирает списки шаблонных параметров при отображении имён функций. - Show Project Costs Only Показать только цены проекта @@ -38924,10 +38936,6 @@ Will not be applied to whitespace in comments and strings. Parsing failed. Не удалось обработать. - - Select this Function in the Analyzer Output - Выберите эту функцию в выводе анализатора - Populating... Заполнение... diff --git a/src/libs/3rdparty/cplusplus/Symbol.cpp b/src/libs/3rdparty/cplusplus/Symbol.cpp index ae20b14bb75..e98b33a8a78 100644 --- a/src/libs/3rdparty/cplusplus/Symbol.cpp +++ b/src/libs/3rdparty/cplusplus/Symbol.cpp @@ -191,10 +191,10 @@ const StringLiteral *Symbol::fileId() const } const char *Symbol::fileName() const -{ return fileId()->chars(); } +{ return _fileId ? _fileId->chars() : ""; } unsigned Symbol::fileNameLength() const -{ return fileId()->size(); } +{ return _fileId ? _fileId->size() : 0; } const Name *Symbol::unqualifiedName() const { diff --git a/src/libs/clangbackendipc/connectionclient.cpp b/src/libs/clangbackendipc/connectionclient.cpp index c6c29458aa7..e64519e1bbe 100644 --- a/src/libs/clangbackendipc/connectionclient.cpp +++ b/src/libs/clangbackendipc/connectionclient.cpp @@ -233,12 +233,12 @@ void ConnectionClient::printLocalSocketError(QLocalSocket::LocalSocketError sock void ConnectionClient::printStandardOutput() { - QTextStream(stdout) << stdOutPrefixer.prefix(process_->readAllStandardOutput()); + qDebug("%s", stdOutPrefixer.prefix(process_->readAllStandardOutput()).constData()); } void ConnectionClient::printStandardError() { - QTextStream(stderr) << stdErrPrefixer.prefix(process_->readAllStandardError()); + qDebug("%s", stdErrPrefixer.prefix(process_->readAllStandardError()).constData()); } void ConnectionClient::finishProcess() diff --git a/src/libs/qtcreatorcdbext/symbolgroupvalue.cpp b/src/libs/qtcreatorcdbext/symbolgroupvalue.cpp index 9fde18be189..db9d42a48f1 100644 --- a/src/libs/qtcreatorcdbext/symbolgroupvalue.cpp +++ b/src/libs/qtcreatorcdbext/symbolgroupvalue.cpp @@ -2852,16 +2852,14 @@ static inline bool dumpQSharedPointer(const SymbolGroupValue &v, std::wostream & str << L"(null)"; return true; } - std::ostringstream namestr; - namestr << "*(" << SymbolGroupValue::stripClassPrefixes(value.type()) << ")(" - << std::showbase << std::hex << value.pointerValue() << ')'; - SymbolGroupNode *valueNode - = v.node()->symbolGroup()->addSymbol(v.module(), namestr.str(), std::string(), &std::string()); - if (!valueNode) - return false; - str << valueNode->simpleDumpValue(v.context(), encoding); - return true; + if (knownType(value.type(), KnownTypeAutoStripPointer | KnownTypeHasClassPrefix) + & KT_HasSimpleDumper) { + str << value.node()->simpleDumpValue(v.context(), encoding); + return true; + } + + return false; } } diff --git a/src/plugins/autotest/testcodeparser.cpp b/src/plugins/autotest/testcodeparser.cpp index 5ec1c4fb5e5..8753b02b29e 100644 --- a/src/plugins/autotest/testcodeparser.cpp +++ b/src/plugins/autotest/testcodeparser.cpp @@ -434,6 +434,8 @@ static bool checkQmlDocumentForTestCode(QFutureInterface future const QmlJS::Document::Ptr &qmlJSDoc, const QString &proFile = QString()) { + if (qmlJSDoc.isNull()) + return false; QmlJS::AST::Node *ast = qmlJSDoc->ast(); QTC_ASSERT(ast, return false); TestQmlVisitor qmlVisitor(qmlJSDoc); diff --git a/src/plugins/autotest/testoutputreader.cpp b/src/plugins/autotest/testoutputreader.cpp index 693a897e831..639c962b06b 100644 --- a/src/plugins/autotest/testoutputreader.cpp +++ b/src/plugins/autotest/testoutputreader.cpp @@ -137,6 +137,13 @@ TestOutputReader::TestOutputReader(const QFutureInterface &future , m_buildDir(buildDirectory) { connect(m_testApplication, &QProcess::readyRead, this, &TestOutputReader::processOutput); + connect(m_testApplication, &QProcess::readyReadStandardError, + this, &TestOutputReader::processStdError); +} + +void TestOutputReader::processStdError() +{ + qWarning() << "Ignored plain output:" << m_testApplication->readAllStandardError(); } QtTestOutputReader::QtTestOutputReader(const QFutureInterface &futureInterface, diff --git a/src/plugins/autotest/testoutputreader.h b/src/plugins/autotest/testoutputreader.h index 4700af4c8a0..aed50b1b96b 100644 --- a/src/plugins/autotest/testoutputreader.h +++ b/src/plugins/autotest/testoutputreader.h @@ -48,6 +48,7 @@ public: protected: virtual void processOutput() = 0; + virtual void processStdError(); QFutureInterface m_futureInterface; QProcess *m_testApplication; // not owned QString m_buildDir; diff --git a/src/plugins/autotest/testrunner.cpp b/src/plugins/autotest/testrunner.cpp index c82bf911c83..93554d76a18 100644 --- a/src/plugins/autotest/testrunner.cpp +++ b/src/plugins/autotest/testrunner.cpp @@ -137,7 +137,6 @@ static void performTestRun(QFutureInterface &futureInterface, } QProcess testProcess; - testProcess.setReadChannelMode(QProcess::MergedChannels); testProcess.setReadChannel(QProcess::StandardOutput); futureInterface.setProgressRange(0, testCaseCount); @@ -221,6 +220,10 @@ static void performTestRun(QFutureInterface &futureInterface, eventLoop.processEvents(); } } + if (testProcess.exitStatus() == QProcess::CrashExit) { + futureInterface.reportResult(TestResultPtr(new FaultyTestResult(Result::MessageFatal, + QString::fromLatin1("Test for project \"%1\" crashed.").arg(testConfiguration->displayName())))); + } if (canceledByTimeout) { if (testProcess.state() != QProcess::NotRunning) { diff --git a/src/plugins/autotest/testtreemodel.cpp b/src/plugins/autotest/testtreemodel.cpp index fa69cafe42d..4701e126a66 100644 --- a/src/plugins/autotest/testtreemodel.cpp +++ b/src/plugins/autotest/testtreemodel.cpp @@ -631,7 +631,7 @@ void TestTreeModel::markForRemoval(const QString &filePath) TestTreeItem *child = root->childItem(childRow); // Qt + named Quick Tests if (child->filePath() == filePath) { - child->markForRemoval(true); + child->markForRemovalRecursively(true); } else { // unnamed Quick Tests and GTest and Qt Tests with separated source/header int grandChildRow = child->childCount() - 1; diff --git a/src/plugins/autotest/testvisitor.cpp b/src/plugins/autotest/testvisitor.cpp index a816aa33eb5..d766cc0fdc5 100644 --- a/src/plugins/autotest/testvisitor.cpp +++ b/src/plugins/autotest/testvisitor.cpp @@ -82,7 +82,7 @@ bool TestVisitor::visit(CPlusPlus::Class *symbol) CPlusPlus::Function *functionDefinition = m_symbolFinder.findMatchingDefinition( func, CppTools::CppModelManager::instance()->snapshot(), true); - if (functionDefinition) { + if (functionDefinition && functionDefinition->fileId()) { locationAndType.m_name = QString::fromUtf8(functionDefinition->fileName()); locationAndType.m_line = functionDefinition->line(); locationAndType.m_column = functionDefinition->column() - 1; diff --git a/src/plugins/bookmarks/bookmarkmanager.cpp b/src/plugins/bookmarks/bookmarkmanager.cpp index ec9c2f7f49c..ee92b9ab8e1 100644 --- a/src/plugins/bookmarks/bookmarkmanager.cpp +++ b/src/plugins/bookmarks/bookmarkmanager.cpp @@ -37,6 +37,7 @@ #include #include #include +#include #include #include #include @@ -318,7 +319,8 @@ void BookmarkView::gotoBookmark(const QModelIndex &index) //// BookmarkManager::BookmarkManager() : - m_bookmarkIcon(QLatin1String(":/bookmarks/images/bookmark.png")), + m_bookmarkIcon(Utils::Icon({{QLatin1String(":/bookmarks/images/bookmark.png"), + Theme::Bookmarks_TextMarkColor}}, Icon::Tint).pixmap()), m_selectionModel(new QItemSelectionModel(this, this)) { connect(ICore::instance(), &ICore::contextChanged, diff --git a/src/plugins/bookmarks/bookmarks.qrc b/src/plugins/bookmarks/bookmarks.qrc index f0a890bf374..764b398555c 100644 --- a/src/plugins/bookmarks/bookmarks.qrc +++ b/src/plugins/bookmarks/bookmarks.qrc @@ -1,5 +1,6 @@ images/bookmark.png + images/bookmark@2x.png diff --git a/src/plugins/bookmarks/images/bookmark.png b/src/plugins/bookmarks/images/bookmark.png index 7b2e5fd0cef..05f4eec5413 100644 Binary files a/src/plugins/bookmarks/images/bookmark.png and b/src/plugins/bookmarks/images/bookmark.png differ diff --git a/src/plugins/bookmarks/images/bookmark@2x.png b/src/plugins/bookmarks/images/bookmark@2x.png new file mode 100644 index 00000000000..903acddbd8a Binary files /dev/null and b/src/plugins/bookmarks/images/bookmark@2x.png differ diff --git a/src/plugins/coreplugin/coreconstants.h b/src/plugins/coreplugin/coreconstants.h index dd4f11737fd..45ed6ec252e 100644 --- a/src/plugins/coreplugin/coreconstants.h +++ b/src/plugins/coreplugin/coreconstants.h @@ -197,7 +197,7 @@ const char SETTINGS_ID_MIMETYPES[] = "E.MimeTypes"; const char SETTINGS_DEFAULTTEXTENCODING[] = "General/DefaultFileEncoding"; const char SETTINGS_THEME[] = "Core/CreatorTheme"; -const char DEFAULT_THEME[] = "default"; +const char DEFAULT_THEME[] = "flat"; const char ALL_FILES_FILTER[] = QT_TRANSLATE_NOOP("Core", "All Files (*)"); diff --git a/src/plugins/coreplugin/locator/locatorfiltersfilter.cpp b/src/plugins/coreplugin/locator/locatorfiltersfilter.cpp index c09ba186e6f..ca14d00ca46 100644 --- a/src/plugins/coreplugin/locator/locatorfiltersfilter.cpp +++ b/src/plugins/coreplugin/locator/locatorfiltersfilter.cpp @@ -27,8 +27,9 @@ #include "locatorfiltersfilter.h" #include "locatorwidget.h" -#include +#include #include +#include using namespace Core; using namespace Core::Internal; @@ -39,7 +40,8 @@ LocatorFiltersFilter::LocatorFiltersFilter(Locator *plugin, LocatorWidget *locatorWidget): m_plugin(plugin), m_locatorWidget(locatorWidget), - m_icon(Icons::NEXT.icon()) + m_icon(Utils::Icon({{QLatin1String(":/core/images/next.png"), Utils::Theme::IconsWarningColor}}, + Utils::Icon::Tint).pixmap()) { setId("FiltersFilter"); setDisplayName(tr("Available filters")); diff --git a/src/plugins/coreplugin/manhattanstyle.cpp b/src/plugins/coreplugin/manhattanstyle.cpp index 913ca572d38..7233e6d5c54 100644 --- a/src/plugins/coreplugin/manhattanstyle.cpp +++ b/src/plugins/coreplugin/manhattanstyle.cpp @@ -245,7 +245,10 @@ QPalette panelPalette(const QPalette &oldPalette, bool lightColored = false) pal.setBrush(QPalette::All, QPalette::WindowText, color); pal.setBrush(QPalette::All, QPalette::ButtonText, color); pal.setBrush(QPalette::All, QPalette::Foreground, color); - color.setAlpha(100); + if (lightColored) + color.setAlpha(100); + else + color = creatorTheme()->color(Theme::IconsDisabledColor); pal.setBrush(QPalette::Disabled, QPalette::WindowText, color); pal.setBrush(QPalette::Disabled, QPalette::ButtonText, color); pal.setBrush(QPalette::Disabled, QPalette::Foreground, color); @@ -740,9 +743,9 @@ void ManhattanStyle::drawControl(ControlElement element, const QStyleOption *opt painter->setPen(StyleHelper::toolBarDropShadowColor()); painter->drawText(editRect.adjusted(1, 0, -1, 0), Qt::AlignLeft | Qt::AlignVCenter, text); } - if (!(option->state & State_Enabled)) - painter->setOpacity(0.8); - painter->setPen(creatorTheme()->color(Theme::ComboBoxTextColor)); + painter->setPen(creatorTheme()->color((option->state & State_Enabled) + ? Theme::ComboBoxTextColor + : Theme::IconsDisabledColor)); painter->drawText(editRect.adjusted(1, 0, -1, 0), Qt::AlignLeft | Qt::AlignVCenter, text); painter->restore(); diff --git a/src/plugins/cpptools/clangdiagnosticconfigswidget.cpp b/src/plugins/cpptools/clangdiagnosticconfigswidget.cpp index 55213d4f246..bb3d55c3cc3 100644 --- a/src/plugins/cpptools/clangdiagnosticconfigswidget.cpp +++ b/src/plugins/cpptools/clangdiagnosticconfigswidget.cpp @@ -157,10 +157,12 @@ void ClangDiagnosticConfigsWidget::syncConfigChooserToModel(const Core::Id &conf connectConfigChooserCurrentIndex(); - if (configToSelectIndex != -1) + if (configToSelectIndex != -1) { m_ui->configChooserComboBox->setCurrentIndex(configToSelectIndex); - else if (previousCurrentIndex != m_ui->configChooserComboBox->currentIndex()) + } else if (previousCurrentIndex != m_ui->configChooserComboBox->currentIndex()) { + syncOtherWidgetsToComboBox(); emit currentConfigChanged(currentConfigId()); + } } void ClangDiagnosticConfigsWidget::syncOtherWidgetsToComboBox() diff --git a/src/plugins/debugger/breakhandler.cpp b/src/plugins/debugger/breakhandler.cpp index f49bbf68812..207cddbf27f 100644 --- a/src/plugins/debugger/breakhandler.cpp +++ b/src/plugins/debugger/breakhandler.cpp @@ -733,6 +733,7 @@ PROPERTY(QString, functionName, setFunctionName) PROPERTY(BreakpointType, type, setType) PROPERTY(int, threadSpec, setThreadSpec) PROPERTY(QByteArray, condition, setCondition) +PROPERTY(QString, command, setCommand) PROPERTY(quint64, address, setAddress) PROPERTY(QString, expression, setExpression) PROPERTY(QString, message, setMessage) @@ -757,6 +758,7 @@ void Breakpoint::addToCommand(DebuggerCommand *cmd) const cmd->arg("type", type()); cmd->arg("ignorecount", ignoreCount()); cmd->arg("condition", condition().toHex()); + cmd->arg("command", command().toUtf8().toHex()); cmd->arg("function", functionName().toUtf8()); cmd->arg("oneshot", isOneShot()); cmd->arg("enabled", isEnabled()); diff --git a/src/plugins/debugger/breakhandler.h b/src/plugins/debugger/breakhandler.h index 922e6fee71f..af1ac485564 100644 --- a/src/plugins/debugger/breakhandler.h +++ b/src/plugins/debugger/breakhandler.h @@ -112,6 +112,8 @@ public: QString expression() const; void setExpression(const QString &expression); QString message() const; + QString command() const; + void setCommand(const QString &command); void setMessage(const QString &m); BreakpointType type() const; void setType(const BreakpointType &type); diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp index 11f85289180..1c9f3741829 100644 --- a/src/plugins/debugger/debuggerengine.cpp +++ b/src/plugins/debugger/debuggerengine.cpp @@ -282,6 +282,7 @@ public slots: void resetLocation() { + m_lookupRequests.clear(); m_locationTimer.stop(); m_locationMark.reset(); m_stackHandler.resetLocation(); @@ -337,6 +338,9 @@ public: Utils::FileInProjectFinder m_fileFinder; QByteArray m_qtNamespace; + + // Safety net to avoid infinite lookups. + QSet m_lookupRequests; // FIXME: Integrate properly. }; @@ -2022,6 +2026,23 @@ bool DebuggerEngine::canHandleToolTip(const DebuggerToolTipContext &context) con void DebuggerEngine::updateItem(const QByteArray &iname) { + if (d->m_lookupRequests.contains(iname)) { + showMessage(QString::fromLatin1("IGNORING REPEATED REQUEST TO EXPAND " + iname)); + WatchHandler *handler = watchHandler(); + WatchItem *item = handler->findItem(iname); + if (!item->hasChildren()) { + handler->notifyUpdateStarted({iname}); + item->setValue(decodeData({}, "notaccessible")); + item->setHasChildren(false); + item->outdated = false; + item->update(); + handler->notifyUpdateFinished(); + return; + } + // We could legitimately end up here after expanding + closing + re-expaning an item. + } + d->m_lookupRequests.insert(iname); + UpdateParameters params; params.partialVariable = iname; doUpdateLocals(params); diff --git a/src/plugins/debugger/debuggermainwindow.cpp b/src/plugins/debugger/debuggermainwindow.cpp index 8d8749709fb..d4b6a8c9552 100644 --- a/src/plugins/debugger/debuggermainwindow.cpp +++ b/src/plugins/debugger/debuggermainwindow.cpp @@ -81,12 +81,16 @@ DebuggerMainWindow::~DebuggerMainWindow() { // As we have to setParent(0) on dock widget that are not selected, // we keep track of all and make sure we don't leak any + foreach (QDockWidget *dock, m_dockForDockId) { + if (dock && !dock->parentWidget()) + delete dock; + } + foreach (const Perspective &perspective, m_perspectiveForPerspectiveId) { foreach (const Perspective::Operation &operation, perspective.operations()) { if (operation.widget && !operation.widget->parentWidget()) { - // These are from inactive perspectives. We call setParent(0) when deactivating - // a perspective so that the widgets can't be accidentally enabled in the wrong - // perspectives. That's why we have to delete them manually here. + // These are from perspectives that never got enabled. We've taken ownership for + // those, so we need to delete them. delete operation.widget; } } @@ -154,7 +158,7 @@ void DebuggerMainWindow::finalizeSetup() hbox->addWidget(m_perspectiveChooser); hbox->addWidget(m_controlsStackWidget); hbox->addWidget(m_statusLabel); - hbox->addStretch(); + hbox->addStretch(1); hbox->addWidget(new Utils::StyledSeparator); hbox->addWidget(viewButton); diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index ebe30a53a07..75ed55aff38 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -966,6 +966,7 @@ public: QIcon m_locationMarkIcon; + QLabel *m_threadLabel = 0; QComboBox *m_threadBox = 0; BaseTreeView *m_breakView = 0; @@ -1686,13 +1687,6 @@ bool DebuggerPluginPrivate::initialize(const QStringList &arguments, cmd = ActionManager::registerAction(qmlSelectDummyAction, Constants::QML_SELECTTOOL); debugMenu->addAction(cmd); - auto qmlZoomDummyAction = new QAction(tr("Zoom"), this); - qmlZoomDummyAction->setCheckable(true); - qmlZoomDummyAction->setIcon(Core::Icons::ZOOM_TOOLBAR.icon()); - qmlZoomDummyAction->setEnabled(false); - cmd = ActionManager::registerAction(qmlZoomDummyAction, Constants::QML_ZOOMTOOL); - debugMenu->addAction(cmd); - debugMenu->addSeparator(); // Don't add '1' to the string as it shows up in the shortcut dialog. @@ -1795,7 +1789,9 @@ bool DebuggerPluginPrivate::initialize(const QStringList &arguments, } toolbar.addWidget(new StyledSeparator); - toolbar.addWidget(new QLabel(tr("Threads:"))); + + m_threadLabel = new QLabel(tr("Threads:")); + toolbar.addWidget(m_threadLabel); m_threadBox = new QComboBox; m_threadBox->setSizeAdjustPolicy(QComboBox::AdjustToContents); @@ -1810,7 +1806,6 @@ bool DebuggerPluginPrivate::initialize(const QStringList &arguments, // qmlToolbar.addAction(qmlShowAppOnTopDummyAction); // qmlToolbar.addWidget(new StyledSeparator); // qmlToolbar.addAction(qmlSelectDummyAction); -// qmlToolbar.addAction(qmlZoomDummyAction); // qmlToolbar.addWidget(new StyledSeparator); Perspective basePerspective({}, { @@ -2380,6 +2375,7 @@ void DebuggerPluginPrivate::connectEngine(DebuggerEngine *engine) engine->watchHandler()->resetWatchers(); m_localsView->hideProgressIndicator(); + updateActiveLanguages(); } static void changeFontSize(QWidget *widget, qreal size) @@ -2498,6 +2494,8 @@ void DebuggerPluginPrivate::setInitialState() action(AutoDerefPointers)->setEnabled(true); action(ExpandStack)->setEnabled(false); + + m_threadLabel->setEnabled(false); } void DebuggerPluginPrivate::updateState(DebuggerEngine *engine) @@ -2595,6 +2593,7 @@ void DebuggerPluginPrivate::updateState(DebuggerEngine *engine) m_attachToUnstartedApplication->setEnabled(true); m_threadBox->setEnabled(state == InferiorStopOk || state == InferiorUnrunnable); + m_threadLabel->setEnabled(m_threadBox->isEnabled()); const bool isCore = engine->runParameters().startMode == AttachCore; const bool stopped = state == InferiorStopOk; diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index 9ff2da841b2..5b99bcd2c84 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -2233,7 +2233,7 @@ void GdbEngine::executeReturn() setTokenBarrier(); notifyInferiorRunRequested(); showStatusMessage(tr("Immediate return from function requested..."), 5000); - runCommand({"-exec-finish", RunRequest, CB(handleExecuteReturn)}); + runCommand({"-exec-return", RunRequest, CB(handleExecuteReturn)}); } void GdbEngine::handleExecuteReturn(const DebuggerResponse &response) diff --git a/src/plugins/debugger/lldb/lldbengine.cpp b/src/plugins/debugger/lldb/lldbengine.cpp index 196972a0138..283b2c87d8d 100644 --- a/src/plugins/debugger/lldb/lldbengine.cpp +++ b/src/plugins/debugger/lldb/lldbengine.cpp @@ -283,6 +283,10 @@ void LldbEngine::startLldbStage2() m_lldbProc.write("script from lldbbridge import *\n"); m_lldbProc.write("script print(dir())\n"); m_lldbProc.write("script theDumper = Dumper()\n"); // This triggers reportState("enginesetupok") + + const QString commands = stringSetting(GdbStartupCommands); + if (!commands.isEmpty()) + m_lldbProc.write(commands.toLocal8Bit()); } void LldbEngine::setupInferior() @@ -895,6 +899,8 @@ void LldbEngine::handleStateNotification(const GdbMi &reportedState) notifyInferiorRunOk(); else if (newState == "inferiorrunfailed") notifyInferiorRunFailed(); + else if (newState == "continueafternextstop") + m_continueAtNextSpontaneousStop = true; else if (newState == "stopped") { notifyInferiorSpontaneousStop(); if (m_continueAtNextSpontaneousStop) { diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index e749a8ca934..f1d3095b38c 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -36,53 +36,51 @@ #include "branchadddialog.h" #include "gerrit/gerritplugin.h" -#include - +#include #include #include -#include -#include #include +#include #include -#include +#include +#include #include #include #include #include -#include -#include + +#include #include #include -#include #include +#include +#include #include #include #include +#include #include #include #include #include -#include -#include -#include - -#include #include #include #include -#include +#include +#include #include +#include -static const char GIT_DIRECTORY[] = ".git"; -static const char graphLogFormatC[] = "%h %d %an %s %ci"; -static const char HEAD[] = "HEAD"; -static const char CHERRY_PICK_HEAD[] = "CHERRY_PICK_HEAD"; -static const char noColorOption[] = "--no-color"; -static const char decorateOption[] = "--decorate"; -static const char showFormatC[] = +const char GIT_DIRECTORY[] = ".git"; +const char graphLogFormatC[] = "%h %d %an %s %ci"; +const char HEAD[] = "HEAD"; +const char CHERRY_PICK_HEAD[] = "CHERRY_PICK_HEAD"; +const char noColorOption[] = "--no-color"; +const char decorateOption[] = "--decorate"; +const char showFormatC[] = "--pretty=format:commit %H%n" "Author: %an <%ae>, %ad (%ar)%n" "Committer: %cn <%ce>, %cd (%cr)%n" diff --git a/src/plugins/git/gitclient.h b/src/plugins/git/gitclient.h index f6b0bd28214..60b2761c2fc 100644 --- a/src/plugins/git/gitclient.h +++ b/src/plugins/git/gitclient.h @@ -40,9 +40,6 @@ #include QT_BEGIN_NAMESPACE -class QCheckBox; -class QSignalMapper; -class QDebug; class QProcessEnvironment; class QMenu; QT_END_NAMESPACE diff --git a/src/plugins/help/helpwidget.cpp b/src/plugins/help/helpwidget.cpp index f5848fb38a8..0a374514cbb 100644 --- a/src/plugins/help/helpwidget.cpp +++ b/src/plugins/help/helpwidget.cpp @@ -159,7 +159,7 @@ HelpWidget::HelpWidget(const Core::Context &context, WidgetStyle style, QWidget layout->addWidget(Core::Command::toolButtonWithAppendedShortcut(m_switchToHelp, cmd)); } - m_homeAction = new QAction(Icons::HOME.icon(), tr("Home"), this); + m_homeAction = new QAction(Icons::HOME_TOOLBAR.icon(), tr("Home"), this); cmd = Core::ActionManager::registerAction(m_homeAction, Constants::HELP_HOME, context); connect(m_homeAction, &QAction::triggered, this, &HelpWidget::goHome); layout->addWidget(Core::Command::toolButtonWithAppendedShortcut(m_homeAction, cmd)); @@ -186,7 +186,7 @@ HelpWidget::HelpWidget(const Core::Context &context, WidgetStyle style, QWidget button->setPopupMode(QToolButton::DelayedPopup); layout->addWidget(button); - m_addBookmarkAction = new QAction(Icons::BOOKMARK.icon(), tr("Add Bookmark"), this); + m_addBookmarkAction = new QAction(Icons::BOOKMARK_TOOLBAR.icon(), tr("Add Bookmark"), this); cmd = Core::ActionManager::registerAction(m_addBookmarkAction, Constants::HELP_ADDBOOKMARK, context); cmd->setDefaultKeySequence(QKeySequence(Core::UseMacShortcuts ? tr("Meta+M") : tr("Ctrl+M"))); connect(m_addBookmarkAction, &QAction::triggered, this, &HelpWidget::addBookmark); diff --git a/src/plugins/imageviewer/imageviewer.cpp b/src/plugins/imageviewer/imageviewer.cpp index f3121d62d0c..f279125f383 100644 --- a/src/plugins/imageviewer/imageviewer.cpp +++ b/src/plugins/imageviewer/imageviewer.cpp @@ -151,6 +151,8 @@ void ImageViewer::ctor() this, &ImageViewer::imageSizeUpdated); connect(d->file.data(), &ImageViewerFile::openFinished, d->imageView, &ImageView::createScene); + connect(d->file.data(), &ImageViewerFile::openFinished, + this, &ImageViewer::updateToolButtons); connect(d->file.data(), &ImageViewerFile::aboutToReload, d->imageView, &ImageView::reset); connect(d->file.data(), &ImageViewerFile::reloadFinished, @@ -159,12 +161,6 @@ void ImageViewer::ctor() this, &ImageViewer::updatePauseAction); connect(d->imageView, &ImageView::scaleFactorChanged, this, &ImageViewer::scaleFactorUpdate); - - connect(d->file.data(), &ImageViewerFile::openFinished, - this, [this](bool success) - { - d->ui_toolbar.toolButtonExportImage->setEnabled(success && d->file->type() == ImageViewerFile::TypeSvg); - }); } ImageViewer::~ImageViewer() @@ -188,6 +184,8 @@ Core::IEditor *ImageViewer::duplicate() { auto other = new ImageViewer(d->file); other->d->imageView->createScene(); + other->updateToolButtons(); + other->d->ui_toolbar.labelImageSize->setText(d->ui_toolbar.labelImageSize->text()); return other; } @@ -241,6 +239,12 @@ void ImageViewer::fitToScreen() d->ui_toolbar.toolButtonFitToScreen->click(); } +void ImageViewer::updateToolButtons() +{ + d->ui_toolbar.toolButtonExportImage->setEnabled(d->file->type() == ImageViewerFile::TypeSvg); + updatePauseAction(); +} + void ImageViewer::togglePlay() { d->ui_toolbar.toolButtonPlayPause->click(); @@ -254,15 +258,13 @@ void ImageViewer::playToggled() void ImageViewer::updatePauseAction() { bool isMovie = d->file->type() == ImageViewerFile::TypeMovie; - d->ui_toolbar.toolButtonPlayPause->setVisible(isMovie); - if (isMovie) { - if (d->file->isPaused()) { - d->ui_toolbar.toolButtonPlayPause->setToolTipBase(tr("Play Animation")); - d->ui_toolbar.toolButtonPlayPause->setIcon(Core::Icons::RUN_SMALL.pixmap()); - } else { - d->ui_toolbar.toolButtonPlayPause->setToolTipBase(tr("Pause Animation")); - d->ui_toolbar.toolButtonPlayPause->setIcon(Core::Icons::INTERRUPT_SMALL.pixmap()); - } + if (isMovie && !d->file->isPaused()) { + d->ui_toolbar.toolButtonPlayPause->setToolTipBase(tr("Pause Animation")); + d->ui_toolbar.toolButtonPlayPause->setIcon(Core::Icons::INTERRUPT_SMALL.icon()); + } else { + d->ui_toolbar.toolButtonPlayPause->setToolTipBase(tr("Play Animation")); + d->ui_toolbar.toolButtonPlayPause->setIcon(Core::Icons::RUN_SMALL.icon()); + d->ui_toolbar.toolButtonPlayPause->setEnabled(isMovie); } } diff --git a/src/plugins/imageviewer/imageviewer.h b/src/plugins/imageviewer/imageviewer.h index 8820b6ca90f..9a4baab18d7 100644 --- a/src/plugins/imageviewer/imageviewer.h +++ b/src/plugins/imageviewer/imageviewer.h @@ -65,6 +65,7 @@ public slots: void zoomOut(); void resetToOriginalSize(); void fitToScreen(); + void updateToolButtons(); void togglePlay(); private slots: diff --git a/src/plugins/imageviewer/imageviewerfile.cpp b/src/plugins/imageviewer/imageviewerfile.cpp index f5192db521c..031ca999d48 100644 --- a/src/plugins/imageviewer/imageviewerfile.cpp +++ b/src/plugins/imageviewer/imageviewerfile.cpp @@ -108,7 +108,7 @@ Core::IDocument::OpenResult ImageViewerFile::openImpl(QString *errorString, cons if (format.startsWith("svg")) { m_tempSvgItem = new QGraphicsSvgItem(fileName); QRectF bound = m_tempSvgItem->boundingRect(); - if (bound.width() == 0 && bound.height() == 0) { + if (qFuzzyIsNull(bound.width()) && qFuzzyIsNull(bound.height())) { delete m_tempSvgItem; m_tempSvgItem = 0; if (errorString) @@ -116,7 +116,7 @@ Core::IDocument::OpenResult ImageViewerFile::openImpl(QString *errorString, cons return OpenResult::CannotHandle; } m_type = TypeSvg; - emit imageSizeChanged(QSize()); + emit imageSizeChanged(m_tempSvgItem->boundingRect().size().toSize()); } else #endif if (QMovie::supportedFormats().contains(format)) { diff --git a/src/plugins/plugins.pro b/src/plugins/plugins.pro index c087ff2669b..a69da758ec5 100644 --- a/src/plugins/plugins.pro +++ b/src/plugins/plugins.pro @@ -79,11 +79,7 @@ exists($$LLVM_INSTALL_DIR) { isEmpty(IDE_PACKAGE_MODE) { SUBDIRS += \ - helloworld #\ - #updateinfo -#} else:!isEmpty(UPDATEINFO_ENABLE) { -# SUBDIRS += \ -# updateinfo + helloworld } for(p, SUBDIRS) { diff --git a/src/plugins/projectexplorer/projectexplorersettingspage.cpp b/src/plugins/projectexplorer/projectexplorersettingspage.cpp index 206fd6a6446..7605ddbbe24 100644 --- a/src/plugins/projectexplorer/projectexplorersettingspage.cpp +++ b/src/plugins/projectexplorer/projectexplorersettingspage.cpp @@ -67,7 +67,7 @@ private: void setJomVisible(bool); Ui::ProjectExplorerSettingsPageUi m_ui; - QUuid m_environmentId; + mutable ProjectExplorerSettings m_settings; }; ProjectExplorerSettingsWidget::ProjectExplorerSettingsWidget(QWidget *parent) : @@ -97,39 +97,37 @@ void ProjectExplorerSettingsWidget::setJomVisible(bool v) ProjectExplorerSettings ProjectExplorerSettingsWidget::settings() const { - ProjectExplorerSettings pes; - pes.buildBeforeDeploy = m_ui.buildProjectBeforeDeployCheckBox->isChecked(); - pes.deployBeforeRun = m_ui.deployProjectBeforeRunCheckBox->isChecked(); - pes.saveBeforeBuild = m_ui.saveAllFilesCheckBox->isChecked(); - pes.showCompilerOutput = m_ui.showCompileOutputCheckBox->isChecked(); - pes.showRunOutput = m_ui.showRunOutputCheckBox->isChecked(); - pes.showDebugOutput = m_ui.showDebugOutputCheckBox->isChecked(); - pes.cleanOldAppOutput = m_ui.cleanOldAppOutputCheckBox->isChecked(); - pes.mergeStdErrAndStdOut = m_ui.mergeStdErrAndStdOutCheckBox->isChecked(); - pes.wrapAppOutput = m_ui.wrapAppOutputCheckBox->isChecked(); - pes.useJom = m_ui.jomCheckbox->isChecked(); - pes.prompToStopRunControl = m_ui.promptToStopRunControlCheckBox->isChecked(); - pes.maxAppOutputLines = m_ui.maxAppOutputBox->value(); - pes.environmentId = m_environmentId; - pes.stopBeforeBuild = ProjectExplorerSettings::StopBeforeBuild(m_ui.stopBeforeBuildComboBox->currentIndex()); - return pes; + m_settings.buildBeforeDeploy = m_ui.buildProjectBeforeDeployCheckBox->isChecked(); + m_settings.deployBeforeRun = m_ui.deployProjectBeforeRunCheckBox->isChecked(); + m_settings.saveBeforeBuild = m_ui.saveAllFilesCheckBox->isChecked(); + m_settings.showCompilerOutput = m_ui.showCompileOutputCheckBox->isChecked(); + m_settings.showRunOutput = m_ui.showRunOutputCheckBox->isChecked(); + m_settings.showDebugOutput = m_ui.showDebugOutputCheckBox->isChecked(); + m_settings.cleanOldAppOutput = m_ui.cleanOldAppOutputCheckBox->isChecked(); + m_settings.mergeStdErrAndStdOut = m_ui.mergeStdErrAndStdOutCheckBox->isChecked(); + m_settings.wrapAppOutput = m_ui.wrapAppOutputCheckBox->isChecked(); + m_settings.useJom = m_ui.jomCheckbox->isChecked(); + m_settings.prompToStopRunControl = m_ui.promptToStopRunControlCheckBox->isChecked(); + m_settings.maxAppOutputLines = m_ui.maxAppOutputBox->value(); + m_settings.stopBeforeBuild = ProjectExplorerSettings::StopBeforeBuild(m_ui.stopBeforeBuildComboBox->currentIndex()); + return m_settings; } void ProjectExplorerSettingsWidget::setSettings(const ProjectExplorerSettings &pes) { - m_ui.buildProjectBeforeDeployCheckBox->setChecked(pes.buildBeforeDeploy); - m_ui.deployProjectBeforeRunCheckBox->setChecked(pes.deployBeforeRun); - m_ui.saveAllFilesCheckBox->setChecked(pes.saveBeforeBuild); - m_ui.showCompileOutputCheckBox->setChecked(pes.showCompilerOutput); - m_ui.showRunOutputCheckBox->setChecked(pes.showRunOutput); - m_ui.showDebugOutputCheckBox->setChecked(pes.showDebugOutput); - m_ui.cleanOldAppOutputCheckBox->setChecked(pes.cleanOldAppOutput); - m_ui.mergeStdErrAndStdOutCheckBox->setChecked(pes.mergeStdErrAndStdOut); - m_ui.wrapAppOutputCheckBox->setChecked(pes.wrapAppOutput); - m_ui.jomCheckbox->setChecked(pes.useJom); - m_ui.promptToStopRunControlCheckBox->setChecked(pes.prompToStopRunControl); - m_ui.maxAppOutputBox->setValue(pes.maxAppOutputLines); - m_environmentId = pes.environmentId; + m_settings = pes; + m_ui.buildProjectBeforeDeployCheckBox->setChecked(m_settings.buildBeforeDeploy); + m_ui.deployProjectBeforeRunCheckBox->setChecked(m_settings.deployBeforeRun); + m_ui.saveAllFilesCheckBox->setChecked(m_settings.saveBeforeBuild); + m_ui.showCompileOutputCheckBox->setChecked(m_settings.showCompilerOutput); + m_ui.showRunOutputCheckBox->setChecked(m_settings.showRunOutput); + m_ui.showDebugOutputCheckBox->setChecked(m_settings.showDebugOutput); + m_ui.cleanOldAppOutputCheckBox->setChecked(m_settings.cleanOldAppOutput); + m_ui.mergeStdErrAndStdOutCheckBox->setChecked(m_settings.mergeStdErrAndStdOut); + m_ui.wrapAppOutputCheckBox->setChecked(m_settings.wrapAppOutput); + m_ui.jomCheckbox->setChecked(m_settings.useJom); + m_ui.promptToStopRunControlCheckBox->setChecked(m_settings.prompToStopRunControl); + m_ui.maxAppOutputBox->setValue(m_settings.maxAppOutputLines); m_ui.stopBeforeBuildComboBox->setCurrentIndex(pes.stopBeforeBuild); } diff --git a/src/plugins/qmakeprojectmanager/qmakestep.cpp b/src/plugins/qmakeprojectmanager/qmakestep.cpp index 1a7906cff7c..8c00e092bce 100644 --- a/src/plugins/qmakeprojectmanager/qmakestep.cpp +++ b/src/plugins/qmakeprojectmanager/qmakestep.cpp @@ -843,10 +843,11 @@ QStringList QMakeStepConfig::toArguments() const else if (archConfig == PPC64) arguments << QLatin1String("CONFIG+=ppc64"); + // TODO: make that depend on the actual Qt version that is used if (osType == IphoneSimulator) - arguments << QLatin1String("CONFIG+=iphonesimulator"); + arguments << QLatin1String("CONFIG+=iphonesimulator") << QLatin1String("CONFIG+=simulator") /*since Qt 5.7*/; else if (osType == IphoneOS) - arguments << QLatin1String("CONFIG+=iphoneos"); + arguments << QLatin1String("CONFIG+=iphoneos") << QLatin1String("CONFIG+=device") /*since Qt 5.7*/; if (linkQmlDebuggingQQ2) arguments << QLatin1String("CONFIG+=qml_debug"); diff --git a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorqmlbackend.cpp b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorqmlbackend.cpp index 06d6e53a809..4f245c23f83 100644 --- a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorqmlbackend.cpp +++ b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorqmlbackend.cpp @@ -292,10 +292,8 @@ void PropertyEditorQmlBackend::setup(const QmlObjectNode &qmlObjectNode, const Q m_backendAnchorBinding.setup(qmlObjectNode.modelNode()); context()->setContextProperty(QLatin1String("anchorBackend"), &m_backendAnchorBinding); - context()->setContextProperty(QLatin1String("transaction"), m_propertyEditorTransaction.data()); - // model node m_backendModelNode.setup(qmlObjectNode.modelNode()); context()->setContextProperty(QLatin1String("modelNodeBackend"), &m_backendModelNode); diff --git a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorvalue.cpp b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorvalue.cpp index c39f347aa6d..9eec21692dc 100644 --- a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorvalue.cpp +++ b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorvalue.cpp @@ -148,9 +148,8 @@ void PropertyEditorValue::setValueWithEmit(const QVariant &value) void PropertyEditorValue::setValue(const QVariant &value) { if (!compareVariants(m_value, value) && - !cleverDoubleCompare(value, m_value) && - !cleverColorCompare(value, m_value)) - + !cleverDoubleCompare(value, m_value) && + !cleverColorCompare(value, m_value)) m_value = value; fixAmbigousColorNames(modelNode(), name(), &m_value); diff --git a/src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp b/src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp index cae8ea487e2..fc04703726a 100644 --- a/src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp +++ b/src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp @@ -112,13 +112,18 @@ void QmlProfilerClientManager::setTcpConnection(QString host, Utils::Port port) { d->tcpHost = host; d->tcpPort = port; + d->localSocket.clear(); disconnectClient(); + // Wait for the application to announce the port before connecting. } void QmlProfilerClientManager::setLocalSocket(QString file) { d->localSocket = file; + d->tcpHost.clear(); d->tcpPort = Utils::Port(); + disconnectClient(); + // We open the server and the application connects to it, so let's do that right away. connectLocalClient(file); } diff --git a/src/plugins/qmlprofiler/qmlprofilerruncontrol.cpp b/src/plugins/qmlprofiler/qmlprofilerruncontrol.cpp index b3aaaa87739..072597556ae 100644 --- a/src/plugins/qmlprofiler/qmlprofilerruncontrol.cpp +++ b/src/plugins/qmlprofiler/qmlprofilerruncontrol.cpp @@ -101,7 +101,7 @@ QmlProfilerRunControl::QmlProfilerRunControl(RunConfiguration *runConfiguration, QmlProfilerRunControl::~QmlProfilerRunControl() { - if (d->m_profilerState) + if (d->m_running && d->m_profilerState) stop(); delete d; } diff --git a/src/plugins/qmlprofiler/qmlprofilertool.cpp b/src/plugins/qmlprofiler/qmlprofilertool.cpp index 3de6a1d905c..729083aafa5 100644 --- a/src/plugins/qmlprofiler/qmlprofilertool.cpp +++ b/src/plugins/qmlprofiler/qmlprofilertool.cpp @@ -333,12 +333,13 @@ AnalyzerRunControl *QmlProfilerTool::createRunControl(RunConfiguration *runConfi } auto runControl = new QmlProfilerRunControl(runConfiguration, this); - connect(runControl, &RunControl::finished, [this, runControl] { + connect(runControl, &RunControl::finished, this, [this, runControl] { d->m_toolBusy = false; updateRunActions(); + disconnect(d->m_stopAction, &QAction::triggered, runControl, &QmlProfilerRunControl::stop); }); - connect(d->m_stopAction, &QAction::triggered, runControl, [runControl] { runControl->stop(); }); + connect(d->m_stopAction, &QAction::triggered, runControl, &QmlProfilerRunControl::stop); updateRunActions(); return runControl; diff --git a/src/plugins/remotelinux/linuxdevice.cpp b/src/plugins/remotelinux/linuxdevice.cpp index aad5c3ddf77..c3ad42f3b27 100644 --- a/src/plugins/remotelinux/linuxdevice.cpp +++ b/src/plugins/remotelinux/linuxdevice.cpp @@ -124,27 +124,26 @@ class LinuxPortsGatheringMethod : public PortsGatheringMethod { QByteArray commandLine(QAbstractSocket::NetworkLayerProtocol protocol) const { - QString procFilePath; - int addressLength; - if (protocol == QAbstractSocket::IPv4Protocol) { - procFilePath = QLatin1String("/proc/net/tcp"); - addressLength = 8; - } else { - procFilePath = QLatin1String("/proc/net/tcp6"); - addressLength = 32; - } - return QString::fromLatin1("sed " - "'s/.*: [[:xdigit:]]\\{%1\\}:\\([[:xdigit:]]\\{4\\}\\).*/\\1/g' %2") - .arg(addressLength).arg(procFilePath).toUtf8(); + // We might encounter the situation that protocol is given IPv6 + // but the consumer of the free port information decides to open + // an IPv4(only) port. As a result the next IPv6 scan will + // report the port again as open (in IPv6 namespace), while the + // same port in IPv4 namespace might still be blocked, and + // re-use of this port fails. + // GDBserver behaves exactly like this. + + Q_UNUSED(protocol) + + // /proc/net/tcp* covers /proc/net/tcp and /proc/net/tcp6 + return "sed -e 's/.*: [[:xdigit:]]*:\\([[:xdigit:]]\\{4\\}\\).*/\\1/g' /proc/net/tcp*"; } QList usedPorts(const QByteArray &output) const { QList ports; QList portStrings = output.split('\n'); - portStrings.removeFirst(); foreach (const QByteArray &portString, portStrings) { - if (portString.isEmpty()) + if (portString.size() != 4) continue; bool ok; const Utils::Port port(portString.toInt(&ok, 16)); diff --git a/src/plugins/texteditor/behaviorsettingswidget.cpp b/src/plugins/texteditor/behaviorsettingswidget.cpp index f3410915e45..718ea5e6e94 100644 --- a/src/plugins/texteditor/behaviorsettingswidget.cpp +++ b/src/plugins/texteditor/behaviorsettingswidget.cpp @@ -63,14 +63,15 @@ BehaviorSettingsWidget::BehaviorSettingsWidget(QWidget *parent) if (firstNonNegative != mibs.end()) std::rotate(mibs.begin(), firstNonNegative, mibs.end()); foreach (int mib, mibs) { - QTextCodec *codec = QTextCodec::codecForMib(mib); - QString compoundName = QLatin1String(codec->name()); - foreach (const QByteArray &alias, codec->aliases()) { - compoundName += QLatin1String(" / "); - compoundName += QString::fromLatin1(alias); + if (QTextCodec *codec = QTextCodec::codecForMib(mib)) { + QString compoundName = QLatin1String(codec->name()); + foreach (const QByteArray &alias, codec->aliases()) { + compoundName += QLatin1String(" / "); + compoundName += QString::fromLatin1(alias); + } + d->m_ui.encodingBox->addItem(compoundName); + d->m_codecs.append(codec); } - d->m_ui.encodingBox->addItem(compoundName); - d->m_codecs.append(codec); } // Qt5 doesn't list the system locale (QTBUG-34283), so add it manually diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp index b4aee7ad109..d9e03133b88 100644 --- a/src/plugins/texteditor/texteditor.cpp +++ b/src/plugins/texteditor/texteditor.cpp @@ -370,6 +370,7 @@ public: int extraAreaSelectionAnchorBlockNumber; int extraAreaToggleMarkBlockNumber; int extraAreaHighlightFoldedBlockNumber; + int extraAreaPreviousMarkTooltipRequestedLine; TextEditorOverlay *m_overlay; TextEditorOverlay *m_snippetOverlay; @@ -489,6 +490,7 @@ TextEditorWidgetPrivate::TextEditorWidgetPrivate(TextEditorWidget *parent) extraAreaSelectionAnchorBlockNumber(-1), extraAreaToggleMarkBlockNumber(-1), extraAreaHighlightFoldedBlockNumber(-1), + extraAreaPreviousMarkTooltipRequestedLine(-1), m_overlay(0), m_snippetOverlay(0), m_searchResultOverlay(0), @@ -5075,6 +5077,8 @@ void TextEditorWidget::showDefaultContextMenu(QContextMenuEvent *e, Id menuConte void TextEditorWidget::extraAreaLeaveEvent(QEvent *) { + d->extraAreaPreviousMarkTooltipRequestedLine = -1; + // fake missing mouse move event from Qt QMouseEvent me(QEvent::MouseMove, QPoint(-1, -1), Qt::NoButton, 0, 0); extraAreaMouseEvent(&me); @@ -5133,7 +5137,9 @@ void TextEditorWidget::extraAreaMouseEvent(QMouseEvent *e) if (inMarkArea) { //Find line by cursor position int line = cursor.blockNumber() + 1; - emit markTooltipRequested(this, mapToGlobal(e->pos()), line); + if (d->extraAreaPreviousMarkTooltipRequestedLine != line) + emit markTooltipRequested(this, mapToGlobal(e->pos()), line); + d->extraAreaPreviousMarkTooltipRequestedLine = line; } if (e->buttons() & Qt::LeftButton && !d->m_markDragStart.isNull()) { diff --git a/src/plugins/updateinfo/updateinfo.qbs b/src/plugins/updateinfo/updateinfo.qbs index 2a875c4d7f4..5253039dbc9 100644 --- a/src/plugins/updateinfo/updateinfo.qbs +++ b/src/plugins/updateinfo/updateinfo.qbs @@ -3,8 +3,6 @@ import qbs 1.0 QtcPlugin { name: "UpdateInfo" - condition: false // Severely broken atm. - Depends { name: "Qt"; submodules: ["widgets", "xml", "network"] } Depends { name: "Utils" } diff --git a/src/shared/help/helpicons.h b/src/shared/help/helpicons.h index f4406f031f9..4c6b0aa7260 100644 --- a/src/shared/help/helpicons.h +++ b/src/shared/help/helpicons.h @@ -31,8 +31,10 @@ namespace Help { namespace Icons { const Utils::Icon BOOKMARK({ + {QLatin1String(":/help/images/bookmark.png"), Utils::Theme::PanelTextColorMid}}, Utils::Icon::Tint); +const Utils::Icon BOOKMARK_TOOLBAR({ {QLatin1String(":/help/images/bookmark.png"), Utils::Theme::IconsBaseColor}}); -const Utils::Icon HOME({ +const Utils::Icon HOME_TOOLBAR({ {QLatin1String(":/help/images/home.png"), Utils::Theme::IconsBaseColor}}); const Utils::Icon MODE_HELP_CLASSIC( QLatin1String(":/help/images/mode_help.png")); diff --git a/src/shared/proparser/images/append.png b/src/shared/proparser/images/append.png deleted file mode 100644 index 5ae826e56c3..00000000000 Binary files a/src/shared/proparser/images/append.png and /dev/null differ diff --git a/src/shared/proparser/images/other.png b/src/shared/proparser/images/other.png deleted file mode 100644 index 044ce1ebb88..00000000000 Binary files a/src/shared/proparser/images/other.png and /dev/null differ diff --git a/src/shared/proparser/images/profile.png b/src/shared/proparser/images/profile.png deleted file mode 100644 index 4a24ce3c2f4..00000000000 Binary files a/src/shared/proparser/images/profile.png and /dev/null differ diff --git a/src/shared/proparser/images/remove.png b/src/shared/proparser/images/remove.png deleted file mode 100644 index 039f05a0057..00000000000 Binary files a/src/shared/proparser/images/remove.png and /dev/null differ diff --git a/src/shared/proparser/images/scope.png b/src/shared/proparser/images/scope.png deleted file mode 100644 index eefcb599545..00000000000 Binary files a/src/shared/proparser/images/scope.png and /dev/null differ diff --git a/src/shared/proparser/images/set.png b/src/shared/proparser/images/set.png deleted file mode 100644 index 69a8fe0523e..00000000000 Binary files a/src/shared/proparser/images/set.png and /dev/null differ diff --git a/src/shared/proparser/images/value.png b/src/shared/proparser/images/value.png deleted file mode 100644 index 433cd527f48..00000000000 Binary files a/src/shared/proparser/images/value.png and /dev/null differ diff --git a/src/shared/proparser/proiteminfo.xml b/src/shared/proparser/proiteminfo.xml deleted file mode 100644 index 0224bb166d2..00000000000 --- a/src/shared/proparser/proiteminfo.xml +++ /dev/null @@ -1,109 +0,0 @@ - - - - win32 - Windows - - - - unix - Unix - - - - mac - Mac - - - - TARGET - Output Target - This specifies the name of the target file. - - - - TEMPLATE - Output Template - This variable contains the name of the template to use when generating the project. - - app - Application - - - lib - Library - - - subdirs - Subdirectories - - - - - HEADERS - Header Files - Defines the header files for the project - - - - SOURCES - Source Files - Defines the source files for the project - - - - INCLUDEPATH - Include Path - Defines the include path for the project - - - - FORMS - Form Files - Defines the form files for the project - - - - RESOURCES - Resource Files - Defines the resource files for the project - - - - QT - Qt Modules - The values stored in the QT variable control which of the Qt modules are used by your project. - - core - QtCore module - - - gui - QtGui module - - - network - QtNetwork module - - - opengl - QtOpenGL module - - - sql - QtSql module - - - svg - QtSvg module - - - xml - QtXml module - - - qt3support - Qt3Support module - - - diff --git a/src/shared/proparser/proparser.qrc b/src/shared/proparser/proparser.qrc index ab5a8a720d1..9193eaa31c4 100644 --- a/src/shared/proparser/proparser.qrc +++ b/src/shared/proparser/proparser.qrc @@ -1,14 +1,4 @@ - - images/profile.png - images/scope.png - images/value.png - images/other.png - images/set.png - images/append.png - images/remove.png - proiteminfo.xml - spec_pre.prf spec_post.prf diff --git a/src/shared/qbs b/src/shared/qbs index bc5ef731d64..e31446f563e 160000 --- a/src/shared/qbs +++ b/src/shared/qbs @@ -1 +1 @@ -Subproject commit bc5ef731d64edd6d2f152a7c68b6ad46efd7066c +Subproject commit e31446f563ec8fb1f23e073a97017a5661fbede9 diff --git a/src/tools/3rdparty/cplusplus-keywordgen/cplusplus-keywordgen.cpp b/src/tools/3rdparty/cplusplus-keywordgen/cplusplus-keywordgen.cpp index 8219c390e9f..85bb3f23792 100644 --- a/src/tools/3rdparty/cplusplus-keywordgen/cplusplus-keywordgen.cpp +++ b/src/tools/3rdparty/cplusplus-keywordgen/cplusplus-keywordgen.cpp @@ -71,7 +71,7 @@ public: } }; -struct State { +class State { public: State() {} diff --git a/src/tools/icons/qtcreatoricons.svg b/src/tools/icons/qtcreatoricons.svg index 68647b9c9e0..f9055648a59 100644 --- a/src/tools/icons/qtcreatoricons.svg +++ b/src/tools/icons/qtcreatoricons.svg @@ -3106,7 +3106,7 @@ style="fill:#ffffff;fill-opacity:1" /> @@ -3146,6 +3146,25 @@ cy="576" r="6" /> + + + + deviceStartService(device, cfsService, &fd, 0)) { - addError(QString::fromLatin1("startService on device %1 failed, AMDeviceStartService returned %2") - .arg(deviceId).arg(error)); + if (am_res_t error = lib()->deviceStartService(device, cfsService, 0, &fd)) { + addError(QString::fromLatin1("Starting service \"%1\" on device %2 failed, AMDeviceStartService returned %3 (0x%4)") + .arg(serviceName).arg(deviceId).arg(mobileDeviceErrorString(error)).arg(QString::number(error, 16))); failure = true; fd = -1; } @@ -1045,219 +1258,6 @@ QString AppOpSession::commandName() return QString::fromLatin1("TransferAppSession(%1, %2)").arg(deviceId, bundlePath); } -static QString mobileDeviceErrorString(am_res_t code) -{ - static const char *errorStrings[] = { - "kAMDSuccess", // 0x0 - "kAMDUndefinedError", // 0xe8000001 - "kAMDBadHeaderError", - "kAMDNoResourcesError", - "kAMDReadError", - "kAMDWriteError", - "kAMDUnknownPacketError", - "kAMDInvalidArgumentError", - "kAMDNotFoundError", - "kAMDIsDirectoryError", - "kAMDPermissionError", - "kAMDNotConnectedError", - "kAMDTimeOutError", - "kAMDOverrunError", - "kAMDEOFError", - "kAMDUnsupportedError", - "kAMDFileExistsError", - "kAMDBusyError", - "kAMDCryptoError", - "kAMDInvalidResponseError", - "kAMDMissingKeyError", - "kAMDMissingValueError", - "kAMDGetProhibitedError", - "kAMDSetProhibitedError", - "kAMDRemoveProhibitedError", - "kAMDImmutableValueError", - "kAMDPasswordProtectedError", - "kAMDMissingHostIDError", - "kAMDInvalidHostIDError", - "kAMDSessionActiveError", - "kAMDSessionInactiveError", - "kAMDMissingSessionIDError", - "kAMDInvalidSessionIDError", - "kAMDMissingServiceError", - "kAMDInvalidServiceError", - "kAMDInvalidCheckinError", - "kAMDCheckinTimeoutError", - "kAMDMissingPairRecordError", - "kAMDInvalidActivationRecordError", - "kAMDMissingActivationRecordError", - "kAMDWrongDroidError", - "kAMDSUVerificationError", - "kAMDSUPatchError", - "kAMDSUFirmwareError", - "kAMDProvisioningProfileNotValid", - "kAMDSendMessageError", - "kAMDReceiveMessageError", - "kAMDMissingOptionsError", - "kAMDMissingImageTypeError", - "kAMDDigestFailedError", - "kAMDStartServiceError", - "kAMDInvalidDiskImageError", - "kAMDMissingDigestError", - "kAMDMuxError", - "kAMDApplicationAlreadyInstalledError", - "kAMDApplicationMoveFailedError", - "kAMDApplicationSINFCaptureFailedError", - "kAMDApplicationSandboxFailedError", - "kAMDApplicationVerificationFailedError", - "kAMDArchiveDestructionFailedError", - "kAMDBundleVerificationFailedError", - "kAMDCarrierBundleCopyFailedError", - "kAMDCarrierBundleDirectoryCreationFailedError", - "kAMDCarrierBundleMissingSupportedSIMsError", - "kAMDCommCenterNotificationFailedError", - "kAMDContainerCreationFailedError", - "kAMDContainerP0wnFailedError", - "kAMDContainerRemovalFailedError", - "kAMDEmbeddedProfileInstallFailedError", - "kAMDErrorError", - "kAMDExecutableTwiddleFailedError", - "kAMDExistenceCheckFailedError", - "kAMDInstallMapUpdateFailedError", - "kAMDManifestCaptureFailedError", - "kAMDMapGenerationFailedError", - "kAMDMissingBundleExecutableError", - "kAMDMissingBundleIdentifierError", - "kAMDMissingBundlePathError", - "kAMDMissingContainerError", - "kAMDNotificationFailedError", - "kAMDPackageExtractionFailedError", - "kAMDPackageInspectionFailedError", - "kAMDPackageMoveFailedError", - "kAMDPathConversionFailedError", - "kAMDRestoreContainerFailedError", - "kAMDSeatbeltProfileRemovalFailedError", - "kAMDStageCreationFailedError", - "kAMDSymlinkFailedError", - "kAMDiTunesArtworkCaptureFailedError", - "kAMDiTunesMetadataCaptureFailedError", - "kAMDAlreadyArchivedError", - "kAMDServiceLimitError", - "kAMDInvalidPairRecordError", - "kAMDServiceProhibitedError", - "kAMDCheckinSetupFailedError", - "kAMDCheckinConnectionFailedError", - "kAMDCheckinReceiveFailedError", - "kAMDCheckinResponseFailedError", - "kAMDCheckinSendFailedError", - "kAMDMuxCreateListenerError", - "kAMDMuxGetListenerError", - "kAMDMuxConnectError", - "kAMDUnknownCommandError", - "kAMDAPIInternalError", - "kAMDSavePairRecordFailedError", - "kAMDCheckinOutOfMemoryError", - "kAMDDeviceTooNewError", - "kAMDDeviceRefNoGood", - "kAMDCannotTranslateError", - "kAMDMobileImageMounterMissingImageSignature", - "kAMDMobileImageMounterResponseCreationFailed", - "kAMDMobileImageMounterMissingImageType", - "kAMDMobileImageMounterMissingImagePath", - "kAMDMobileImageMounterImageMapLoadFailed", - "kAMDMobileImageMounterAlreadyMounted", - "kAMDMobileImageMounterImageMoveFailed", - "kAMDMobileImageMounterMountPathMissing", - "kAMDMobileImageMounterMountPathNotEmpty", - "kAMDMobileImageMounterImageMountFailed", - "kAMDMobileImageMounterTrustCacheLoadFailed", - "kAMDMobileImageMounterDigestFailed", - "kAMDMobileImageMounterDigestCreationFailed", - "kAMDMobileImageMounterImageVerificationFailed", - "kAMDMobileImageMounterImageInfoCreationFailed", - "kAMDMobileImageMounterImageMapStoreFailed", - "kAMDBonjourSetupError", - "kAMDDeviceOSVersionTooLow", - "kAMDNoWifiSyncSupportError", - "kAMDDeviceFamilyNotSupported", - "kAMDEscrowLockedError", - "kAMDPairingProhibitedError", - "kAMDProhibitedBySupervision", - "kAMDDeviceDisconnectedError", - "kAMDTooBigError", - "kAMDPackagePatchFailedError", - "kAMDIncorrectArchitectureError", - "kAMDPluginCopyFailedError", - "kAMDBreadcrumbFailedError", - "kAMDBreadcrumbUnlockError", - "kAMDGeoJSONCaptureFailedError", - "kAMDNewsstandArtworkCaptureFailedError", - "kAMDMissingCommandError", - "kAMDNotEntitledError", - "kAMDMissingPackagePathError", - "kAMDMissingContainerPathError", - "kAMDMissingApplicationIdentifierError", - "kAMDMissingAttributeValueError", - "kAMDLookupFailedError", - "kAMDDictCreationFailedError", - "kAMDUserDeniedPairingError", - "kAMDPairingDialogResponsePendingError", - "kAMDInstallProhibitedError", - "kAMDUninstallProhibitedError", - "kAMDFMiPProtectedError", - "kAMDMCProtected", - "kAMDMCChallengeRequired", - "kAMDMissingBundleVersionError" // 0xe800009c - }; - - CFStringRef key = NULL; - static const size_t errorStringLast = ((sizeof(errorStrings) / sizeof(char *)) - 1) | 0xe8000000; - if (code <= errorStringLast) { - // Mask off some bits to get an index into the known error names array - key = QString::fromLatin1(errorStrings[code & ~0xe8000000]).toCFString(); - } else { - // Some errors don't have constant names; check a few other known error codes - switch (code) { - case 0xe8008015: - key = CFSTR("A valid provisioning profile for this executable was not found."); - break; - case 0xe8008016: - key = CFSTR("The executable was signed with invalid entitlements."); - break; - case 0xe8008017: - key = CFSTR("A signed resource has been added, modified, or deleted."); - break; - case 0xe8008018: - key = CFSTR("The identity used to sign the executable is no longer valid."); - break; - case 0xe8008019: - key = CFSTR("The application does not have a valid signature."); - break; - case 0xe800801c: - key = CFSTR("The signature was not valid."); - break; - default: - return QString(); - } - - CFRetain(key); - } - - CFURLRef url = QUrl::fromLocalFile( - QStringLiteral("/System/Library/PrivateFrameworks/MobileDevice.framework")).toCFURL(); - CFBundleRef mobileDeviceBundle = CFBundleCreate(kCFAllocatorDefault, url); - CFRelease(url); - - QString s; - if (mobileDeviceBundle) { - CFStringRef str = CFCopyLocalizedStringFromTableInBundle(key, CFSTR("Localizable"), - mobileDeviceBundle, nil); - - s = QString::fromCFString(str); - CFRelease(str); - } - - CFRelease(key); - return s; -} - bool AppOpSession::installApp() { ServiceSocket fd; @@ -1269,8 +1269,8 @@ bool AppOpSession::installApp() if (am_res_t error = lib()->deviceTransferApplication(fd, cfsBundlePath, 0, &appTransferSessionCallback, static_cast(this))) { - addError(QString::fromLatin1("TransferAppSession(%1,%2) failed, AMDeviceTransferApplication returned %3") - .arg(bundlePath, deviceId).arg(error)); + addError(QString::fromLatin1("TransferAppSession(%1,%2) failed, AMDeviceTransferApplication returned %3 (0x%4)") + .arg(bundlePath, deviceId).arg(mobileDeviceErrorString(error)).arg(error)); failure = true; } progressBase += 100; diff --git a/tests/auto/cplusplus/checksymbols/tst_checksymbols.cpp b/tests/auto/cplusplus/checksymbols/tst_checksymbols.cpp index d2de76e4d82..cf26114d9a1 100644 --- a/tests/auto/cplusplus/checksymbols/tst_checksymbols.cpp +++ b/tests/auto/cplusplus/checksymbols/tst_checksymbols.cpp @@ -219,6 +219,8 @@ private slots: void test_checksymbols_infiniteLoop_data(); void test_checksymbols_infiniteLoop(); + void test_checkForValidSymbolFileId(); + void test_parentOfBlock(); void findField(); @@ -1165,6 +1167,33 @@ void tst_CheckSymbols::test_checksymbols_infiniteLoop() TestCase::runCheckSymbols(document1, snapshot); } +void tst_CheckSymbols::test_checkForValidSymbolFileId() +{ + const QByteArray contents = + "constexpr int parent_of(const int f) { return 1; }\n" + "\n" + "template struct wrapper { const T* ptr; };\n" + "template struct Dummy;\n" + "\n" + "namespace impl {\n" + " template \n" + " struct dummy_impl {\n" + " wrapper> parent;\n" + " };\n" + "}\n" + "\n" + "template \n" + "struct Dummy : impl::dummy_impl {};\n" + "\n" + "void client()\n" + "{\n" + " wrapper> a;\n" + " a.ptr->parent.ptr;\n" + "}\n"; + + BaseTestCase tc(contents); +} + void tst_CheckSymbols::test_parentOfBlock() { const QByteArray source = "void C::f()\n" diff --git a/tests/system/suite_debugger/tst_simple_debug/test.py b/tests/system/suite_debugger/tst_simple_debug/test.py index acbcd4a6267..205ef99cfca 100644 --- a/tests/system/suite_debugger/tst_simple_debug/test.py +++ b/tests/system/suite_debugger/tst_simple_debug/test.py @@ -52,9 +52,6 @@ def main(): if result: expectedBreakpointsOrder = [{os.path.join(workingDir, projectName, "main.cpp"):8}, {os.path.join(workingDir, projectName, "main.qml"):10}] - if JIRA.isBugStillOpen(15806): - test.xfail("Breakpoint in QML file won't be hit (QTCREATORBUG-15806).") - expectedBreakpointsOrder = expectedBreakpointsOrder[:-1] # Only use 4.7.4 to work around QTBUG-25187 availableConfigs = iterateBuildConfigs(len(checkedTargets), "Debug") progressBarWait() diff --git a/tests/system/suite_general/tst_default_settings/test.py b/tests/system/suite_general/tst_default_settings/test.py index 6b6dc96d69f..5f77277bb03 100644 --- a/tests/system/suite_general/tst_default_settings/test.py +++ b/tests/system/suite_general/tst_default_settings/test.py @@ -189,6 +189,10 @@ def __getWinCompilers__(): if os.path.exists(compiler): parameters = testData.field(record, "displayedParameters").split(",") usedParameters = testData.field(record, "usedParameters").split(",") + idePath = testData.field(record, "IDEPath") + if len(idePath): + if not os.path.exists(os.path.abspath(os.path.join(envvar, idePath))): + continue if testData.field(record, "isSDK") == "true": for para, used in zip(parameters, usedParameters): result.append( 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 a9a8e548e3f..66149bb8919 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 @@ -1,23 +1,27 @@ -"envvar" "path" "file" "displayName" "displayedParameters" "usedParameters" "isSDK" -"ProgramFiles" "Microsoft SDKs\Windows\v7.0\Bin" "SetEnv.cmd" "Microsoft Windows SDK for Windows 7" "x86,amd64,x86_amd64,ia64,x86_ia64" "/x86,/x64,/x64,/ia64,/ia64" "true" -"ProgramFiles(x86)" "Microsoft SDKs\Windows\v7.0\Bin" "SetEnv.cmd" "Microsoft Windows SDK for Windows 7" "x86,amd64,x86_amd64,ia64,x86_ia64" "/x86,/x64,/x64,/ia64,/ia64" "true" -"ProgramW6432" "Microsoft SDKs\Windows\v7.0\Bin" "SetEnv.cmd" "Microsoft Windows SDK for Windows 7" "x86,amd64,x86_amd64,ia64,x86_ia64" "/x86,/x64,/x64,/ia64,/ia64" "true" -"ProgramFiles" "Microsoft SDKs\Windows\v7.1\Bin" "SetEnv.cmd" "Microsoft Windows SDK for Windows 7" "x86,amd64,x86_amd64,ia64,x86_ia64" "/x86,/x64,/x64,/ia64,/ia64" "true" -"ProgramFiles(x86)" "Microsoft SDKs\Windows\v7.1\Bin" "SetEnv.cmd" "Microsoft Windows SDK for Windows 7" "x86,amd64,x86_amd64,ia64,x86_ia64" "/x86,/x64,/x64,/ia64,/ia64" "true" -"ProgramW6432" "Microsoft SDKs\Windows\v7.1\Bin" "SetEnv.cmd" "Microsoft Windows SDK for Windows 7" "x86,amd64,x86_amd64,ia64,x86_ia64" "/x86,/x64,/x64,/ia64,/ia64" "true" -"VS80COMNTOOLS" "..\..\VC\Bin" "vcvars32.bat" "Microsoft Visual C++ Compiler 8.0" "x86" "" "false" -"VS80COMNTOOLS" "..\..\VC\Bin\amd64" "vcvarsamd64.bat" "Microsoft Visual C++ Compiler 8.0" "amd64" "amd64" "false" -"VS80COMNTOOLS" "..\..\VC\Bin" "vcvarsx86_amd64.bat" "Microsoft Visual C++ Compiler 8.0" "x86_amd64" "x86_amd64" "false" -"VS80COMNTOOLS" "..\..\VC\Bin" "vcvars64.bat" "Microsoft Visual C++ Compiler 8.0" "ia64" "ia64" "false" -"VS80COMNTOOLS" "..\..\VC\Bin" "vcvarsx86_ia64.bat" "Microsoft Visual C++ Compiler 8.0" "x86_ia64" "x86_ia64" "false" -"VS90COMNTOOLS" "..\..\VC\Bin" "vcvars32.bat" "Microsoft Visual C++ Compiler 9.0" "x86" "" "false" -"VS90COMNTOOLS" "..\..\VC\Bin\amd64" "vcvarsamd64.bat" "Microsoft Visual C++ Compiler 9.0" "amd64" "amd64" "false" -"VS90COMNTOOLS" "..\..\VC\Bin" "vcvarsx86_amd64.bat" "Microsoft Visual C++ Compiler 9.0" "x86_amd64" "x86_amd64" "false" -"VS90COMNTOOLS" "..\..\VC\Bin" "vcvars64.bat" "Microsoft Visual C++ Compiler 9.0" "ia64" "ia64" "false" -"VS90COMNTOOLS" "..\..\VC\Bin" "vcvarsx86_ia64.bat" "Microsoft Visual C++ Compiler 9.0" "x86_ia64" "x86_ia64" "false" -"VS100COMNTOOLS" "..\..\VC\Bin" "vcvars32.bat" "Microsoft Visual C++ Compiler 10.0" "x86" "" "false" -"VS100COMNTOOLS" "..\..\VC" "vcvarsall.bat" "Microsoft Visual C++ Compiler 10.0" "x86,amd64,x86_amd64,ia64,x86_ia64" "x86,amd64,x86_amd64,ia64,x86_ia64" "false" -"VS110COMNTOOLS" "..\..\VC\Bin" "vcvars32.bat" "Microsoft Visual C++ Compiler 11.0" "x86" "" "false" -"VS110COMNTOOLS" "..\..\VC" "vcvarsall.bat" "Microsoft Visual C++ Compiler 11.0" "x86,amd64,x86_amd64,ia64,x86_ia64" "x86,amd64,x86_amd64,ia64,x86_ia64" "false" -"VS120COMNTOOLS" "..\..\VC\Bin" "vcvars32.bat" "Microsoft Visual C++ Compiler 12.0" "x86" "" "false" -"VS120COMNTOOLS" "..\..\VC" "vcvarsall.bat" "Microsoft Visual C++ Compiler 12.0" "x86,amd64,x86_amd64,ia64,x86_ia64" "x86,amd64,x86_amd64,ia64,x86_ia64" "false" +"envvar" "path" "file" "displayName" "displayedParameters" "usedParameters" "isSDK" "IDEPath" +"ProgramFiles" "Microsoft SDKs\Windows\v7.0\Bin" "SetEnv.cmd" "Microsoft Windows SDK for Windows 7" "x86,amd64,x86_amd64,ia64,x86_ia64" "/x86,/x64,/x64,/ia64,/ia64" "true" "" +"ProgramFiles(x86)" "Microsoft SDKs\Windows\v7.0\Bin" "SetEnv.cmd" "Microsoft Windows SDK for Windows 7" "x86,amd64,x86_amd64,ia64,x86_ia64" "/x86,/x64,/x64,/ia64,/ia64" "true" "" +"ProgramW6432" "Microsoft SDKs\Windows\v7.0\Bin" "SetEnv.cmd" "Microsoft Windows SDK for Windows 7" "x86,amd64,x86_amd64,ia64,x86_ia64" "/x86,/x64,/x64,/ia64,/ia64" "true" "" +"ProgramFiles" "Microsoft SDKs\Windows\v7.1\Bin" "SetEnv.cmd" "Microsoft Windows SDK for Windows 7" "x86,amd64,x86_amd64,ia64,x86_ia64" "/x86,/x64,/x64,/ia64,/ia64" "true" "" +"ProgramFiles(x86)" "Microsoft SDKs\Windows\v7.1\Bin" "SetEnv.cmd" "Microsoft Windows SDK for Windows 7" "x86,amd64,x86_amd64,ia64,x86_ia64" "/x86,/x64,/x64,/ia64,/ia64" "true" "" +"ProgramW6432" "Microsoft SDKs\Windows\v7.1\Bin" "SetEnv.cmd" "Microsoft Windows SDK for Windows 7" "x86,amd64,x86_amd64,ia64,x86_ia64" "/x86,/x64,/x64,/ia64,/ia64" "true" "" +"VS80COMNTOOLS" "..\..\VC\Bin" "vcvars32.bat" "Microsoft Visual C++ Compiler 8.0" "x86" "" "false" "" +"VS80COMNTOOLS" "..\..\VC\Bin\amd64" "vcvarsamd64.bat" "Microsoft Visual C++ Compiler 8.0" "amd64" "amd64" "false" "" +"VS80COMNTOOLS" "..\..\VC\Bin" "vcvarsx86_amd64.bat" "Microsoft Visual C++ Compiler 8.0" "x86_amd64" "x86_amd64" "false" "" +"VS80COMNTOOLS" "..\..\VC\Bin" "vcvars64.bat" "Microsoft Visual C++ Compiler 8.0" "ia64" "ia64" "false" "" +"VS80COMNTOOLS" "..\..\VC\Bin" "vcvarsx86_ia64.bat" "Microsoft Visual C++ Compiler 8.0" "x86_ia64" "x86_ia64" "false" "" +"VS90COMNTOOLS" "..\..\VC\Bin" "vcvars32.bat" "Microsoft Visual C++ Compiler 9.0" "x86" "" "false" "" +"VS90COMNTOOLS" "..\..\VC\Bin\amd64" "vcvarsamd64.bat" "Microsoft Visual C++ Compiler 9.0" "amd64" "amd64" "false" "" +"VS90COMNTOOLS" "..\..\VC\Bin" "vcvarsx86_amd64.bat" "Microsoft Visual C++ Compiler 9.0" "x86_amd64" "x86_amd64" "false" "" +"VS90COMNTOOLS" "..\..\VC\Bin" "vcvars64.bat" "Microsoft Visual C++ Compiler 9.0" "ia64" "ia64" "false" "" +"VS90COMNTOOLS" "..\..\VC\Bin" "vcvarsx86_ia64.bat" "Microsoft Visual C++ Compiler 9.0" "x86_ia64" "x86_ia64" "false" "" +"VS100COMNTOOLS" "..\..\VC\Bin" "vcvars32.bat" "Microsoft Visual C++ Compiler 10.0" "x86" "" "false" "" +"VS100COMNTOOLS" "..\..\VC" "vcvarsall.bat" "Microsoft Visual C++ Compiler 10.0" "x86,amd64,x86_amd64,ia64,x86_ia64" "x86,amd64,x86_amd64,ia64,x86_ia64" "false" "" +"VS110COMNTOOLS" "..\..\VC\Bin" "vcvars32.bat" "Microsoft Visual C++ Compiler 11.0" "x86" "" "false" "" +"VS110COMNTOOLS" "..\..\VC" "vcvarsall.bat" "Microsoft Visual C++ Compiler 11.0" "x86,amd64,x86_amd64,ia64,x86_ia64" "x86,amd64,x86_amd64,ia64,x86_ia64" "false" "" +"VS120COMNTOOLS" "..\..\VC\Bin" "vcvars32.bat" "Microsoft Visual C++ Compiler 12.0" "x86" "" "false" "" +"VS120COMNTOOLS" "..\..\VC" "vcvarsall.bat" "Microsoft Visual C++ Compiler 12.0" "x86,amd64,x86_amd64,ia64,x86_ia64" "x86,amd64,x86_amd64,ia64,x86_ia64" "false" "" +"VS140COMNTOOLS" "..\..\VC\Bin" "vcvars32.bat" "Microsoft Visual C++ Compiler 14.0" "x86" "" "false" "..\IDE\devenv.exe" +"VS140COMNTOOLS" "..\..\VC" "vcvarsall.bat" "Microsoft Visual C++ Compiler 14.0" "x86,amd64,x86_amd64,x86_arm,amd64_arm" "x86,amd64,x86_amd64,x86_arm,amd64_arm" "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" "" diff --git a/tests/unit/echoserver/echoserver.pro b/tests/unit/echoserver/echoserver.pro index ccafe5521b8..7058753f4f2 100644 --- a/tests/unit/echoserver/echoserver.pro +++ b/tests/unit/echoserver/echoserver.pro @@ -3,7 +3,7 @@ QT += core network QT -= gui TARGET = echo -CONFIG += console c++14 +CONFIG += console c++11 CONFIG -= app_bundle TEMPLATE = app diff --git a/tests/unit/unittest/gmock_dependency.pri b/tests/unit/unittest/gmock_dependency.pri index 0dbd28acbec..a78f11b6a80 100644 --- a/tests/unit/unittest/gmock_dependency.pri +++ b/tests/unit/unittest/gmock_dependency.pri @@ -29,7 +29,7 @@ isEmpty(GOOGLETEST_DIR) { } requires(exists($$GTEST_SRC_DIR):exists($$GMOCK_SRC_DIR)) -!exists($$GTEST_SRC_DIR):message("No gmock is found! To enabe unit tests set GOOGLETEST_DIR") +!exists($$GTEST_SRC_DIR):message("No gmock is found! To enable unit tests set GOOGLETEST_DIR") DEFINES += \ GTEST_HAS_STD_INITIALIZER_LIST_ \ diff --git a/tests/unit/unittest/unittest.pro b/tests/unit/unittest/unittest.pro index c53cc35172c..30d075079b6 100644 --- a/tests/unit/unittest/unittest.pro +++ b/tests/unit/unittest/unittest.pro @@ -6,7 +6,7 @@ include(creator_dependency.pri) include(benchmark_dependency.pri) QT += core network testlib widgets -CONFIG += console c++14 testcase object_parallel_to_source +CONFIG += console c++11 testcase object_parallel_to_source CONFIG -= app_bundle OBJECTS_DIR = $$OUT_PWD/obj # workaround for qmake bug in object_parallel_to_source