Merge remote-tracking branch 'origin/4.0'
Conflicts: src/plugins/projectexplorer/session.cpp src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp Change-Id: I6946139f5e5fa3a9cdbb322fd50be248e2c0133f
20
dist/changes-4.0.0.md
vendored
@@ -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
|
||||
|
@@ -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"
|
||||
}
|
||||
}
|
||||
|
@@ -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 <QGuiApplication>
|
||||
#include <QQmlApplicationEngine>
|
||||
|
||||
|
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 7.6 KiB |
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 9.7 KiB After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 109 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 80 KiB |
BIN
doc/images/qmldesigner-tutorial-ui-ready.png
Normal file
After Width: | Height: | Size: 99 KiB |
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 69 KiB |
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 9.7 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 6.9 KiB After Width: | Height: | Size: 9.7 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.4 KiB |
Before Width: | Height: | Size: 7.6 KiB After Width: | Height: | Size: 7.9 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 8.0 KiB |
@@ -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}.
|
||||
|
||||
|
@@ -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:
|
||||
|
@@ -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
|
||||
|
@@ -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).
|
||||
|
||||
*/
|
||||
|
@@ -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
|
||||
|
@@ -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:
|
||||
|
@@ -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)
|
||||
|
@@ -1,5 +1,5 @@
|
||||
[General]
|
||||
ThemeName=Default
|
||||
ThemeName=Classic
|
||||
PreferredStyles=
|
||||
|
||||
[Palette]
|
||||
|
@@ -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
|
@@ -341,7 +341,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>The process "%1" crashed.</source>
|
||||
<translation>Процесс «%1» завершился крахом.</translation>
|
||||
<translation>Процесс «%1» аварийно завершился.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>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?</source>
|
||||
</message>
|
||||
<message>
|
||||
<source>"%1" died.</source>
|
||||
<translation>«%1» завершился крахом.</translation>
|
||||
<translation>«%1» аварийно завершился.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unable to start "%1".</source>
|
||||
@@ -3633,8 +3633,8 @@ For example, "Revision: 15" will leave the branch at revision 15.</sou
|
||||
<context>
|
||||
<name>CMakeProjectManager::CMakeBuildStep</name>
|
||||
<message>
|
||||
<source>Qt Creator needs a cmake tool set up to build. Configure a cmake tool in the kit options.</source>
|
||||
<translation>Для сборки необходимо, чтобы была задана утилита cmake. Задайте её в настройках комлекта.</translation>
|
||||
<source>Qt Creator needs a CMake Tool set up to build. Configure a CMake Tool in the kit options.</source>
|
||||
<translation>Для сборки необходимо, чтобы была задана утилита CMake. Задайте её в настройках комлекта.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -3790,7 +3790,7 @@ For example, "Revision: 15" will leave the branch at revision 15.</sou
|
||||
</message>
|
||||
<message>
|
||||
<source>*** cmake process crashed!</source>
|
||||
<translation>*** процесс cmake завершился крахом!</translation>
|
||||
<translation>*** процесс cmake аварийно завершился!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>*** cmake process exited with exit code %1.</source>
|
||||
@@ -4172,9 +4172,9 @@ For example, "Revision: 15" will leave the branch at revision 15.</sou
|
||||
<name>ClangStaticAnalyzer</name>
|
||||
<message>
|
||||
<source>The chosen file "%1" seems to point to an icecc binary not suitable for analyzing.
|
||||
Please set a real clang executable.</source>
|
||||
Please set a real Clang executable.</source>
|
||||
<translation>Кажется, выбранный файл «%1» указывает на программу icecc непригодную для анализа.
|
||||
Укажите реальную программу clang.</translation>
|
||||
Укажите реальный исполняемый файл Clang.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -4203,7 +4203,7 @@ Please set a real clang executable.</source>
|
||||
<translation>Сообщение:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Extended Message:</source>
|
||||
<source>Extended message:</source>
|
||||
<translation>Подробное сообщение:</translation>
|
||||
</message>
|
||||
<message>
|
||||
@@ -4248,7 +4248,7 @@ Please set a real clang executable.</source>
|
||||
<context>
|
||||
<name>ClangStaticAnalyzer::Internal::ClangStaticAnalyzerDiagnosticView</name>
|
||||
<message>
|
||||
<source>Suppress this diagnostic</source>
|
||||
<source>Suppress This Diagnostic</source>
|
||||
<translation>Подавить эту диагностику</translation>
|
||||
</message>
|
||||
</context>
|
||||
@@ -4262,8 +4262,8 @@ Please set a real clang executable.</source>
|
||||
<context>
|
||||
<name>ClangStaticAnalyzer::Internal::ClangStaticAnalyzerPlugin</name>
|
||||
<message>
|
||||
<source>Clang Static Analyzer Settings</source>
|
||||
<translation>Настройки статического анализатора Clang</translation>
|
||||
<source>Clang Static Analyzer</source>
|
||||
<translation>Статический анализатор Clang</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -4328,8 +4328,8 @@ Please set a real clang executable.</source>
|
||||
<translation>К следующей проблеме.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Clang Static Analyzer uses the analyzer from the clang project to find bugs.</source>
|
||||
<translation>Статический анализатор Clang использует анализатор из проекта clang для поиска проблем.</translation>
|
||||
<source>Clang Static Analyzer uses the analyzer from the Clang project to find bugs.</source>
|
||||
<translation>Статический анализатор Clang использует анализатор из проекта Clang для поиска ошибок.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Clang Static Analyzer</source>
|
||||
@@ -4356,7 +4356,7 @@ Please set a real clang executable.</source>
|
||||
<translation>Запустить статический анализатор Clang.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Clang Static Analyzer running.</source>
|
||||
<source>Clang Static Analyzer is running.</source>
|
||||
<translation>Статический анализатор Clang работает.</translation>
|
||||
</message>
|
||||
<message>
|
||||
@@ -4382,10 +4382,6 @@ Please set a real clang executable.</source>
|
||||
<source>Form</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Suppressed Diagnostics:</source>
|
||||
<translation>Подавляемые диагностики:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Remove Selected</source>
|
||||
<translation>Удалить выбранное</translation>
|
||||
@@ -4394,6 +4390,10 @@ Please set a real clang executable.</source>
|
||||
<source>Remove All</source>
|
||||
<translation>Удалить всё</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Suppressed diagnostics:</source>
|
||||
<translation>Подавляемые диагностики:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ClangStaticAnalyzer::Internal::SuppressedDiagnosticsModel</name>
|
||||
@@ -7037,18 +7037,10 @@ Do you want to kill it?</source>
|
||||
<source>Recent &Files</source>
|
||||
<translation>Недавние фа&йлы</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Save</source>
|
||||
<translation>&Сохранить</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Save</source>
|
||||
<translation>Сохранить</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Save &As...</source>
|
||||
<translation>Сохранить &как...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ctrl+Shift+S</source>
|
||||
<translation>Ctrl+Shift+S</translation>
|
||||
@@ -7811,7 +7803,7 @@ Do you want to kill it?</source>
|
||||
</message>
|
||||
<message>
|
||||
<source>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.</source>
|
||||
<translation>Автоматически создавать копии изменённых файлов. Если работа Qt Creator завершилась в результате краха или сбоя питания, то при перезапуске он предложит восстановить их содержимое.</translation>
|
||||
<translation>Автоматически создавать копии изменённых файлов. Если работа Qt Creator завершится аварийно или из-за сбоя питания, то при перезапуске он предложит восстановить их содержимое.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Auto-save modified files</source>
|
||||
@@ -8007,7 +7999,7 @@ Do you want to kill it?</source>
|
||||
</message>
|
||||
<message>
|
||||
<source>"%1" crashed.</source>
|
||||
<translation>«%1» завершился аварийно.</translation>
|
||||
<translation>«%1» аварийно завершился.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>"%1" failed (exit code %2).</source>
|
||||
@@ -11498,11 +11490,11 @@ Affected are breakpoints %1</source>
|
||||
</message>
|
||||
<message>
|
||||
<source>Crashed process %1</source>
|
||||
<translation>Завершившийся крахом процесс %1</translation>
|
||||
<translation>Аварийно завершившийся процесс %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Attaching to crashed process %1</source>
|
||||
<translation>Подключение к завершившемуся крахом процессу %1</translation>
|
||||
<translation>Подключение к аварийно завершившемуся процессу %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Process Already Under Debugger Control</source>
|
||||
@@ -12248,7 +12240,7 @@ Qt Creator не может подключиться к нему.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The gdb process crashed some time after starting successfully.</source>
|
||||
<translation>Процесс gdb завершился крахом через некоторое время после успешного запуска.</translation>
|
||||
<translation>Процесс gdb аварийно завершился через некоторое время после успешного запуска.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The gdb process was ended forcefully</source>
|
||||
@@ -12913,7 +12905,7 @@ markers in the source code editor.</source>
|
||||
</message>
|
||||
<message>
|
||||
<source>The LLDB process crashed some time after starting successfully.</source>
|
||||
<translation>Процесс LLDB завершился крахом через некоторое время после успешного старта.</translation>
|
||||
<translation>Процесс LLDB аварийно завершился через некоторое время после успешного старта.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>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.</source>
|
||||
@@ -13304,10 +13296,6 @@ Do you want to retry?</source>
|
||||
<source>QML Debugger disconnected.</source>
|
||||
<translation>Отладчик QML отключён.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Context:</source>
|
||||
<translation>Контекст:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Debugger::Internal::QmlInspectorAgent</name>
|
||||
@@ -16176,7 +16164,7 @@ will also disable the following plugins:
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 crashed.</source>
|
||||
<translation>%1 завершился крахом.</translation>
|
||||
<translation>%1 аварийно завершился.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 returned %2.</source>
|
||||
@@ -16455,7 +16443,7 @@ Partial names can be used if they are unambiguous.</source>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 crashed.</source>
|
||||
<translation>%1 завершился крахом.</translation>
|
||||
<translation>%1 аварийно завершился.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 returned %2.</source>
|
||||
@@ -18259,7 +18247,7 @@ Leave empty to search through the file system.</source>
|
||||
<message>
|
||||
<source>Ref: %1
|
||||
%2</source>
|
||||
<translation type="unfinished">Ссылка: %1
|
||||
<translation>Ссылка: %1
|
||||
%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
@@ -19140,7 +19128,7 @@ Would you like to overwrite it?</source>
|
||||
<translation>Ctrl+0</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Fit To Screen</source>
|
||||
<source>Fit to Screen</source>
|
||||
<translation>На весь экран</translation>
|
||||
</message>
|
||||
<message>
|
||||
@@ -20009,80 +19997,80 @@ Ids must begin with a lowercase letter.</source>
|
||||
</message>
|
||||
<message>
|
||||
<source>Polish</source>
|
||||
<translation type="unfinished">Полировка</translation>
|
||||
<translation>Полировка</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wait</source>
|
||||
<translation type="unfinished">Ожидание</translation>
|
||||
<translation>Ожидание</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>GUI Thread Sync</source>
|
||||
<translation type="unfinished">Синхронизация с потоком GUI</translation>
|
||||
<translation>Синхронизация с потоком GUI</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Render Thread Sync</source>
|
||||
<translation type="unfinished">Синхронизация с потоком рендера</translation>
|
||||
<translation>Синхронизация с потоком рендера</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Render</source>
|
||||
<translation type="unfinished">Рендер</translation>
|
||||
<translation>Рендер</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Swap</source>
|
||||
<translation type="unfinished">Переключение</translation>
|
||||
<translation>Переключение</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Render Preprocess</source>
|
||||
<translation type="unfinished">Рендер - преобработка</translation>
|
||||
<translation>Рендер - преобработка</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Render Update</source>
|
||||
<translation type="unfinished">Рендер - обновление</translation>
|
||||
<translation>Рендер - обновление</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Render Bind</source>
|
||||
<translation type="unfinished">Рендер - привязка</translation>
|
||||
<translation>Рендер - привязка</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Render Render</source>
|
||||
<translation type="unfinished">Рендер - рендеринг</translation>
|
||||
<translation>Рендер - рендеринг</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Material Compile</source>
|
||||
<translation type="unfinished">Компиляция материала</translation>
|
||||
<translation>Компиляция материала</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Glyph Render</source>
|
||||
<translation type="unfinished">Отрисовка глифов</translation>
|
||||
<translation>Отрисовка глифов</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Glyph Upload</source>
|
||||
<translation type="unfinished">Выгрузка глифов</translation>
|
||||
<translation>Выгрузка глифов</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Texture Bind</source>
|
||||
<translation type="unfinished">Текстуры - привязка</translation>
|
||||
<translation>Текстуры - привязка</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Texture Convert</source>
|
||||
<translation type="unfinished">Текстуры - преобразование</translation>
|
||||
<translation>Текстуры - преобразование</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Texture Swizzle</source>
|
||||
<translatorcomment>не знаю, как выбор/обмен цветовых каналов перевести на русский</translatorcomment>
|
||||
<translation type="unfinished">Текстуры - смешивание</translation>
|
||||
<translation>Текстуры - смешивание</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Texture Upload</source>
|
||||
<translation type="unfinished">Текстуры - выгрузка</translation>
|
||||
<translation>Текстуры - выгрузка</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Texture Mipmap</source>
|
||||
<translation type="unfinished">Текстуры - мипмамминг</translation>
|
||||
<translation>Текстуры - мипмамминг</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Texture Delete</source>
|
||||
<translation type="unfinished">Текстуры - удаление</translation>
|
||||
<translation>Текстуры - удаление</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -20738,7 +20726,7 @@ Ids must begin with a lowercase letter.</source>
|
||||
<translation>Выбор особого каталога настроек</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Config Path:</source>
|
||||
<source>Config path:</source>
|
||||
<translation>Путь к настройкам:</translation>
|
||||
</message>
|
||||
<message>
|
||||
@@ -21801,6 +21789,10 @@ Ids must begin with a lowercase letter.</source>
|
||||
<source>Name of current build</source>
|
||||
<translation>Имя текущей сборки</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The currently active run configuration's name.</source>
|
||||
<translation>Имя текущей активной конфигурации запуска.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ProjectExplorer::AbiWidget</name>
|
||||
@@ -21833,7 +21825,7 @@ Ids must begin with a lowercase letter.</source>
|
||||
</message>
|
||||
<message>
|
||||
<source>The process "%1" crashed.</source>
|
||||
<translation>Процесс «%1» завершился крахом.</translation>
|
||||
<translation>Процесс «%1» завершился аварийно.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Could not start process "%1" %2</source>
|
||||
@@ -21984,7 +21976,7 @@ Ids must begin with a lowercase letter.</source>
|
||||
</message>
|
||||
<message>
|
||||
<source>The process crashed.</source>
|
||||
<translation>Процесс завершился крахом.</translation>
|
||||
<translation>Процесс аварийно завершился.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The process returned exit code %1:
|
||||
@@ -22504,7 +22496,7 @@ Ids must begin with a lowercase letter.</source>
|
||||
</message>
|
||||
<message>
|
||||
<source>Remote process crashed: %1</source>
|
||||
<translation>Внешний процесс завершился крахом: %1</translation>
|
||||
<translation>Внешний процесс аварийно завершился: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Remote process failed; exit code was %1.</source>
|
||||
@@ -23482,8 +23474,8 @@ Ids must begin with a lowercase letter.</source>
|
||||
<translation>Запускается %1...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 crashed</source>
|
||||
<translation>%1 завершился крахом</translation>
|
||||
<source>%1 crashed.</source>
|
||||
<translation>%1 аварийно завершился.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 exited with code %2</source>
|
||||
@@ -25874,6 +25866,10 @@ Please close all running instances of your application before starting a build.<
|
||||
<source>The name of the currently active kit.</source>
|
||||
<translation>Название активного комплекта.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The currently active run configuration's name.</source>
|
||||
<translation>Имя текущей активной конфигурации запуска.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cancel Build && Unload</source>
|
||||
<translation>Отменить сборку и выгрузить</translation>
|
||||
@@ -26411,6 +26407,10 @@ These files are preserved.</source>
|
||||
</context>
|
||||
<context>
|
||||
<name>ProjectExplorer::SshDeviceProcess</name>
|
||||
<message>
|
||||
<source>Internal error</source>
|
||||
<translation>Внутренняя ошибка</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Failed to kill remote process: %1</source>
|
||||
<translation>Не удалось завершить удалённый процесс: %1</translation>
|
||||
@@ -26436,7 +26436,7 @@ These files are preserved.</source>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error: Process listing command crashed: %1</source>
|
||||
<translation>Ошибка: Команда вывода списка завершилась крахом: %1</translation>
|
||||
<translation>Ошибка: Команда вывода списка аварийно завершилась: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Process listing command failed with exit code %1.</source>
|
||||
@@ -26696,7 +26696,7 @@ These files are preserved.</source>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 crashed</source>
|
||||
<translation>%1 завершился крахом</translation>
|
||||
<translation>%1 аварийно завершился</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 exited with code %2</source>
|
||||
@@ -26839,15 +26839,15 @@ Maybe raise the timeout?</source>
|
||||
<translation>Ожидается целочисленный элемент.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>An error occurred with the clang static analyzer process.</source>
|
||||
<source>An error occurred with the Clang Static Analyzer process.</source>
|
||||
<translation>Возникла ошибка при статическом анализе Clang.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Clang static analyzer crashed.</source>
|
||||
<translation>Статический анализ Clang завершился крахом.</translation>
|
||||
<source>Clang Static Analyzer crashed.</source>
|
||||
<translation>Статический анализ Clang аварийно завершился.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Clang static analyzer finished with exit code: %1.</source>
|
||||
<source>Clang Static Analyzer finished with exit code: %1.</source>
|
||||
<translation>Статический анализ Clang завершился с кодом %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
@@ -26873,7 +26873,7 @@ Output:
|
||||
</message>
|
||||
<message>
|
||||
<source>The SFTP server crashed: %1.</source>
|
||||
<translation>Сервер SFTP завершился крахом: %1.</translation>
|
||||
<translation>Сервер SFTP аварийно завершился: %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unexpected packet of type %1.</source>
|
||||
@@ -27598,6 +27598,10 @@ Output:
|
||||
<source>Parsing of .qbs files has failed.</source>
|
||||
<translation>Не удалось обработать файлы .qbs.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error retrieving run environment: %1</source>
|
||||
<translation>Не удалось получить среду запуска: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Qbs Run Configuration</source>
|
||||
<translation>Конфигурация выполнения Qbs</translation>
|
||||
@@ -28941,8 +28945,8 @@ Neither the path to the library nor the path to its includes is added to the .pr
|
||||
<translation>Формы</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>StateCharts</source>
|
||||
<translation type="unfinished">Диаграммы состояний</translation>
|
||||
<source>State charts</source>
|
||||
<translation>Диаграммы состояний</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Resources</source>
|
||||
@@ -29457,7 +29461,7 @@ Neither the path to the library nor the path to its includes is added to the .pr
|
||||
</message>
|
||||
<message>
|
||||
<source>Qt Quick emulation layer crashed</source>
|
||||
<translation>Слой эмуляции Qt Quick завершился крахом</translation>
|
||||
<translation>Слой эмуляции Qt Quick аварийно завершился</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -29709,17 +29713,17 @@ Neither the path to the library nor the path to its includes is added to the .pr
|
||||
<source>Show property editor warnings</source>
|
||||
<translation>Показывать предупреждения редактора свойств</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Forward puppet output:</source>
|
||||
<translation>Перенаправление вывода:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show warn exceptions</source>
|
||||
<translation>Предупреждающие исключения</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Debug puppet:</source>
|
||||
<translation>Отладка эмулятора:</translation>
|
||||
<source>Forward QML emulation layer output:</source>
|
||||
<translation>Перенаправление вывода эмулятора QML:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Debug QML emulation layer:</source>
|
||||
<translation>Отладка эмулятора QML:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -29822,11 +29826,11 @@ This is independent of the visibility property in QML.</source>
|
||||
</message>
|
||||
<message>
|
||||
<source>QML Emulation Layer (QML Puppet) Crashed</source>
|
||||
<translation>Слой эмуляции QML (QML Puppet) завершился крахом</translation>
|
||||
<translation>Слой эмуляции QML (QML Puppet) аварийно завершился</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>You are recording a puppet stream and the emulations layer crashed. It is recommended to reopen the Qt Quick Designer and start again.</source>
|
||||
<translation>Эмуляция завершилась крахом при записи puppet-потока. Рекомендуется переоткрыть Qt Quick Designer и запустить запись снова.</translation>
|
||||
<translation>Эмуляция аварийно завершилась при записи puppet-потока. Рекомендуется переоткрыть Qt Quick Designer и запустить запись снова.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -31687,13 +31691,21 @@ references to elements in other files, loops, and so on.)</source>
|
||||
<translation>Профайлер QML (внешний)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>A Qml Profiler analysis is still in progress.</source>
|
||||
<source>A QML Profiler analysis is still in progress.</source>
|
||||
<translation>Выполняется профилирование QML.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Start Qml Profiler analysis.</source>
|
||||
<source>Start QML Profiler analysis.</source>
|
||||
<translation>Начать профилирование QML.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Disable Profiling</source>
|
||||
<translation>Отключить профилирование</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enable Profiling</source>
|
||||
<translation>Включить профилирование</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 s</source>
|
||||
<translation>%1 сек</translation>
|
||||
@@ -31734,14 +31746,6 @@ Do you want to save the data first?</source>
|
||||
<source>Hide or show event categories.</source>
|
||||
<translation>Показ или скрытие категорий событий.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Disable profiling</source>
|
||||
<translation>Отключить профилирование</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enable profiling</source>
|
||||
<translation>Включить профилирование</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QmlProfiler::Internal::QmlProfilerTraceView</name>
|
||||
@@ -32078,12 +32082,12 @@ Do you want to save the data first?</source>
|
||||
<context>
|
||||
<name>QmlProfilerExtension::Internal::QmlProfilerExtensionPlugin</name>
|
||||
<message>
|
||||
<source>Action triggered</source>
|
||||
<source>Action Triggered</source>
|
||||
<translation>Действие сработало</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This is an action from QmlProfilerExtension.</source>
|
||||
<translation>Это действие из QmlProfilerExtension.</translation>
|
||||
<source>This is an action from QML Profiler Extension.</source>
|
||||
<translation>Это действие из расширения QML Profiler.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -33765,6 +33769,10 @@ In addition, device connectivity will be tested.</source>
|
||||
</context>
|
||||
<context>
|
||||
<name>RemoteLinux::Internal::RemoteLinuxEnvironmentReader</name>
|
||||
<message>
|
||||
<source>Error: No device</source>
|
||||
<translation>Ошибка: Нет устройства</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error: %1</source>
|
||||
<translation>Ошибка: %1</translation>
|
||||
@@ -33872,7 +33880,7 @@ In addition, device connectivity will be tested.</source>
|
||||
</message>
|
||||
<message>
|
||||
<source>Remote process crashed.</source>
|
||||
<translation>Удалённый процесс завершился крахом.</translation>
|
||||
<translation>Удалённый процесс аварийно завершился.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unexpected output from remote process: "%1"</source>
|
||||
@@ -37470,8 +37478,8 @@ Will not be applied to whitespace in comments and strings.</source>
|
||||
<translation>Удалить</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>To-Do Settings</source>
|
||||
<translation>Настройки To-Do</translation>
|
||||
<source>To-Do</source>
|
||||
<translation>To-Do</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -38789,7 +38797,7 @@ Will not be applied to whitespace in comments and strings.</source>
|
||||
<context>
|
||||
<name>Valgrind::Internal::CallgrindTool</name>
|
||||
<message>
|
||||
<source>Valgrind Function Profile uses the Callgrind tool to record function calls when a program runs.</source>
|
||||
<source>Valgrind Function Profiler uses the Callgrind tool to record function calls when a program runs.</source>
|
||||
<translation>Профайлер функций Valgrind использует утилиту Callgrind для записи вызовов функций при работе программы.</translation>
|
||||
</message>
|
||||
<message>
|
||||
@@ -38869,9 +38877,17 @@ Will not be applied to whitespace in comments and strings.</source>
|
||||
<translation>Цены, относительные к родительской</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show costs relative to parent functions inclusive cost.</source>
|
||||
<source>Show costs relative to parent function's inclusive cost.</source>
|
||||
<translation>Показывать цены относительно общей цены вызвавшей функции.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Remove template parameter lists when displaying function names.</source>
|
||||
<translation>Убирать списки шаблонных параметров при отображении имён функций.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Select This Function in the Analyzer Output</source>
|
||||
<translation>Выбрать эту функцию в выводе анализатора</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cost Format</source>
|
||||
<translation>Формат цены</translation>
|
||||
@@ -38880,10 +38896,6 @@ Will not be applied to whitespace in comments and strings.</source>
|
||||
<source>Enable cycle detection to properly handle recursive or circular function calls.</source>
|
||||
<translation>Включить определение циклов для корректной обработки рекурсивных и циклических вызовов.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This removes template parameter lists when displaying function names.</source>
|
||||
<translation>Убирает списки шаблонных параметров при отображении имён функций.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show Project Costs Only</source>
|
||||
<translation>Показать только цены проекта</translation>
|
||||
@@ -38924,10 +38936,6 @@ Will not be applied to whitespace in comments and strings.</source>
|
||||
<source>Parsing failed.</source>
|
||||
<translation>Не удалось обработать.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Select this Function in the Analyzer Output</source>
|
||||
<translation>Выберите эту функцию в выводе анализатора</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Populating...</source>
|
||||
<translation>Заполнение...</translation>
|
||||
|
4
src/libs/3rdparty/cplusplus/Symbol.cpp
vendored
@@ -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
|
||||
{
|
||||
|
@@ -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()
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -434,6 +434,8 @@ static bool checkQmlDocumentForTestCode(QFutureInterface<TestParseResult> 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);
|
||||
|
@@ -137,6 +137,13 @@ TestOutputReader::TestOutputReader(const QFutureInterface<TestResultPtr> &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<TestResultPtr> &futureInterface,
|
||||
|
@@ -48,6 +48,7 @@ public:
|
||||
|
||||
protected:
|
||||
virtual void processOutput() = 0;
|
||||
virtual void processStdError();
|
||||
QFutureInterface<TestResultPtr> m_futureInterface;
|
||||
QProcess *m_testApplication; // not owned
|
||||
QString m_buildDir;
|
||||
|
@@ -137,7 +137,6 @@ static void performTestRun(QFutureInterface<TestResultPtr> &futureInterface,
|
||||
}
|
||||
|
||||
QProcess testProcess;
|
||||
testProcess.setReadChannelMode(QProcess::MergedChannels);
|
||||
testProcess.setReadChannel(QProcess::StandardOutput);
|
||||
|
||||
futureInterface.setProgressRange(0, testCaseCount);
|
||||
@@ -221,6 +220,10 @@ static void performTestRun(QFutureInterface<TestResultPtr> &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) {
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
|
@@ -37,6 +37,7 @@
|
||||
#include <projectexplorer/projectexplorer.h>
|
||||
#include <projectexplorer/session.h>
|
||||
#include <texteditor/texteditor.h>
|
||||
#include <utils/icon.h>
|
||||
#include <utils/tooltip/tooltip.h>
|
||||
#include <utils/qtcassert.h>
|
||||
#include <utils/checkablemessagebox.h>
|
||||
@@ -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,
|
||||
|
@@ -1,5 +1,6 @@
|
||||
<RCC>
|
||||
<qresource prefix="/bookmarks" >
|
||||
<file>images/bookmark.png</file>
|
||||
<file>images/bookmark@2x.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
Before Width: | Height: | Size: 913 B After Width: | Height: | Size: 131 B |
BIN
src/plugins/bookmarks/images/bookmark@2x.png
Normal file
After Width: | Height: | Size: 162 B |
@@ -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 (*)");
|
||||
|
||||
|
@@ -27,8 +27,9 @@
|
||||
#include "locatorfiltersfilter.h"
|
||||
#include "locatorwidget.h"
|
||||
|
||||
#include <coreplugin/coreicons.h>
|
||||
#include <utils/icon.h>
|
||||
#include <utils/qtcassert.h>
|
||||
#include <utils/theme/theme.h>
|
||||
|
||||
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"));
|
||||
|
@@ -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();
|
||||
|
@@ -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()
|
||||
|
@@ -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());
|
||||
|
@@ -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);
|
||||
|
@@ -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<QByteArray> 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);
|
||||
|
@@ -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);
|
||||
|
||||
|
@@ -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;
|
||||
|
@@ -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)
|
||||
|
@@ -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) {
|
||||
|
@@ -36,53 +36,51 @@
|
||||
#include "branchadddialog.h"
|
||||
#include "gerrit/gerritplugin.h"
|
||||
|
||||
#include <vcsbase/submitfilemodel.h>
|
||||
|
||||
#include <coreplugin/coreconstants.h>
|
||||
#include <coreplugin/editormanager/editormanager.h>
|
||||
#include <coreplugin/icore.h>
|
||||
#include <coreplugin/idocument.h>
|
||||
#include <coreplugin/vcsmanager.h>
|
||||
#include <coreplugin/id.h>
|
||||
#include <coreplugin/idocument.h>
|
||||
#include <coreplugin/iversioncontrol.h>
|
||||
#include <coreplugin/coreconstants.h>
|
||||
#include <coreplugin/vcsmanager.h>
|
||||
|
||||
#include <utils/fileutils.h>
|
||||
#include <utils/hostosinfo.h>
|
||||
#include <utils/qtcassert.h>
|
||||
#include <utils/qtcprocess.h>
|
||||
#include <utils/synchronousprocess.h>
|
||||
#include <utils/fileutils.h>
|
||||
#include <vcsbase/vcscommand.h>
|
||||
|
||||
#include <vcsbase/submitfilemodel.h>
|
||||
#include <vcsbase/vcsbaseeditor.h>
|
||||
#include <vcsbase/vcsbaseeditorparameterwidget.h>
|
||||
#include <vcsbase/vcsoutputwindow.h>
|
||||
#include <vcsbase/vcsbaseplugin.h>
|
||||
#include <vcsbase/vcscommand.h>
|
||||
#include <vcsbase/vcsoutputwindow.h>
|
||||
|
||||
#include <diffeditor/diffeditorconstants.h>
|
||||
#include <diffeditor/diffeditorcontroller.h>
|
||||
#include <diffeditor/diffutils.h>
|
||||
|
||||
#include <QAction>
|
||||
#include <QCoreApplication>
|
||||
#include <QDir>
|
||||
#include <QFileInfo>
|
||||
#include <QHash>
|
||||
#include <QRegExp>
|
||||
#include <QSignalMapper>
|
||||
#include <QTemporaryFile>
|
||||
|
||||
#include <QAction>
|
||||
#include <QMenu>
|
||||
#include <QMessageBox>
|
||||
#include <QPushButton>
|
||||
#include <QToolButton>
|
||||
#include <QRegExp>
|
||||
#include <QTemporaryFile>
|
||||
#include <QTextCodec>
|
||||
#include <QToolButton>
|
||||
|
||||
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"
|
||||
|
@@ -40,9 +40,6 @@
|
||||
#include <QWidget>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
class QCheckBox;
|
||||
class QSignalMapper;
|
||||
class QDebug;
|
||||
class QProcessEnvironment;
|
||||
class QMenu;
|
||||
QT_END_NAMESPACE
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -65,6 +65,7 @@ public slots:
|
||||
void zoomOut();
|
||||
void resetToOriginalSize();
|
||||
void fitToScreen();
|
||||
void updateToolButtons();
|
||||
void togglePlay();
|
||||
|
||||
private slots:
|
||||
|
@@ -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)) {
|
||||
|
@@ -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) {
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
|
@@ -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");
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
|
@@ -101,7 +101,7 @@ QmlProfilerRunControl::QmlProfilerRunControl(RunConfiguration *runConfiguration,
|
||||
|
||||
QmlProfilerRunControl::~QmlProfilerRunControl()
|
||||
{
|
||||
if (d->m_profilerState)
|
||||
if (d->m_running && d->m_profilerState)
|
||||
stop();
|
||||
delete d;
|
||||
}
|
||||
|
@@ -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;
|
||||
|
@@ -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<Utils::Port> usedPorts(const QByteArray &output) const
|
||||
{
|
||||
QList<Utils::Port> ports;
|
||||
QList<QByteArray> 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));
|
||||
|
@@ -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
|
||||
|
@@ -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()) {
|
||||
|
@@ -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" }
|
||||
|
||||
|
@@ -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"));
|
||||
|
Before Width: | Height: | Size: 514 B |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 452 B |
Before Width: | Height: | Size: 497 B |
Before Width: | Height: | Size: 350 B |
Before Width: | Height: | Size: 473 B |
Before Width: | Height: | Size: 599 B |
@@ -1,109 +0,0 @@
|
||||
<!DOCTYPE ProItemInfo>
|
||||
<proiteminfo>
|
||||
<scope>
|
||||
<id>win32</id>
|
||||
<name>Windows</name>
|
||||
</scope>
|
||||
|
||||
<scope>
|
||||
<id>unix</id>
|
||||
<name>Unix</name>
|
||||
</scope>
|
||||
|
||||
<scope>
|
||||
<id>mac</id>
|
||||
<name>Mac</name>
|
||||
</scope>
|
||||
|
||||
<variable multiple="false">
|
||||
<id>TARGET</id>
|
||||
<name>Output Target</name>
|
||||
<description>This specifies the name of the target file.</description>
|
||||
</variable>
|
||||
|
||||
<variable multiple="false">
|
||||
<id>TEMPLATE</id>
|
||||
<name>Output Template</name>
|
||||
<description>This variable contains the name of the template to use when generating the project.</description>
|
||||
<value>
|
||||
<id>app</id>
|
||||
<name>Application</name>
|
||||
</value>
|
||||
<value>
|
||||
<id>lib</id>
|
||||
<name>Library</name>
|
||||
</value>
|
||||
<value>
|
||||
<id>subdirs</id>
|
||||
<name>Subdirectories</name>
|
||||
</value>
|
||||
</variable>
|
||||
|
||||
<variable multiple="true" operator="0">
|
||||
<id>HEADERS</id>
|
||||
<name>Header Files</name>
|
||||
<description>Defines the header files for the project</description>
|
||||
</variable>
|
||||
|
||||
<variable multiple="true" operator="0">
|
||||
<id>SOURCES</id>
|
||||
<name>Source Files</name>
|
||||
<description>Defines the source files for the project</description>
|
||||
</variable>
|
||||
|
||||
<variable multiple="true" operator="0">
|
||||
<id>INCLUDEPATH</id>
|
||||
<name>Include Path</name>
|
||||
<description>Defines the include path for the project</description>
|
||||
</variable>
|
||||
|
||||
<variable multiple="true" operator="0">
|
||||
<id>FORMS</id>
|
||||
<name>Form Files</name>
|
||||
<description>Defines the form files for the project</description>
|
||||
</variable>
|
||||
|
||||
<variable multiple="true" operator="0">
|
||||
<id>RESOURCES</id>
|
||||
<name>Resource Files</name>
|
||||
<description>Defines the resource files for the project</description>
|
||||
</variable>
|
||||
|
||||
<variable multiple="true" operator="0">
|
||||
<id>QT</id>
|
||||
<name>Qt Modules</name>
|
||||
<description>The values stored in the QT variable control which of the Qt modules are used by your project.</description>
|
||||
<value>
|
||||
<id>core</id>
|
||||
<name>QtCore module</name>
|
||||
</value>
|
||||
<value>
|
||||
<id>gui</id>
|
||||
<name>QtGui module</name>
|
||||
</value>
|
||||
<value>
|
||||
<id>network</id>
|
||||
<name>QtNetwork module</name>
|
||||
</value>
|
||||
<value>
|
||||
<id>opengl</id>
|
||||
<name>QtOpenGL module</name>
|
||||
</value>
|
||||
<value>
|
||||
<id>sql</id>
|
||||
<name>QtSql module</name>
|
||||
</value>
|
||||
<value>
|
||||
<id>svg</id>
|
||||
<name>QtSvg module</name>
|
||||
</value>
|
||||
<value>
|
||||
<id>xml</id>
|
||||
<name>QtXml module</name>
|
||||
</value>
|
||||
<value>
|
||||
<id>qt3support</id>
|
||||
<name>Qt3Support module</name>
|
||||
</value>
|
||||
</variable>
|
||||
</proiteminfo>
|