forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/4.9'
Conflicts: src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp Change-Id: I473084232ab99c18e2316154656de0035af02628
This commit is contained in:
@@ -339,24 +339,17 @@
|
|||||||
Besides \c docs, you have the following options:
|
Besides \c docs, you have the following options:
|
||||||
|
|
||||||
\list
|
\list
|
||||||
\li html_docs - build \QC Manual in help format, but do not generate a
|
\li html_docs_qtcreator - build \QC Manual in help format, but do not
|
||||||
help file
|
generate a help file
|
||||||
|
|
||||||
\li dev_html_docs - build Extending \QC Manual in help format, but do
|
\li html_docs_qtcreator-dev - build Extending \QC Manual in help
|
||||||
not generate a help file
|
format, but do not generate a help file
|
||||||
|
|
||||||
\li qch_docs - build \QC Manual in help format and generate a help file
|
\li qch_docs_qtcreator - build \QC Manual in help format and generate
|
||||||
(.qch)
|
a help file (.qch)
|
||||||
|
|
||||||
\li dev_qch_docs - build Extending \QC Manual in help format and
|
\li qch_docs_qtcreator-dev - build Extending \QC Manual in help format
|
||||||
generate a help file (.qch)
|
and generate a help file (.qch)
|
||||||
|
|
||||||
\li docs_online - build \QC Manual and Extending \QC Manual in online
|
|
||||||
format
|
|
||||||
|
|
||||||
\li html_docs_online - build \QC Manual in online format
|
|
||||||
|
|
||||||
\li dev_html_docs_online - build Extending \QC Manual in online format
|
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2018 The Qt Company Ltd.
|
** Copyright (C) 2019 The Qt Company Ltd.
|
||||||
** Contact: https://www.qt.io/licensing/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of the Qt Creator documentation.
|
** This file is part of the Qt Creator documentation.
|
||||||
@@ -26,13 +26,8 @@
|
|||||||
/*!
|
/*!
|
||||||
\contentspage index.html
|
\contentspage index.html
|
||||||
\page qtquick-iso-icon-browser.html
|
\page qtquick-iso-icon-browser.html
|
||||||
\if defined(qtdesignstudio)
|
|
||||||
\previouspage qmldesigner-pathview-editor.html
|
\previouspage qmldesigner-pathview-editor.html
|
||||||
\nextpage creator-quick-ui-forms.html
|
\nextpage creator-quick-ui-forms.html
|
||||||
\else
|
|
||||||
\previouspage quick-states.html
|
|
||||||
\nextpage quick-export-to-qml.html
|
|
||||||
\endif
|
|
||||||
|
|
||||||
\title Browsing ISO 7000 Icons
|
\title Browsing ISO 7000 Icons
|
||||||
|
|
||||||
@@ -92,24 +92,24 @@
|
|||||||
You can use the following QML types to create components:
|
You can use the following QML types to create components:
|
||||||
|
|
||||||
\list
|
\list
|
||||||
\li \l [QML]{AnimatedImage}{Animated Image} provides a way to play
|
\li \l [QtQuick]{AnimatedImage}{Animated Image} provides a way to play
|
||||||
animations stored as images containing a series of frames, such
|
animations stored as images containing a series of frames, such
|
||||||
as those stored in GIF files.
|
as those stored in GIF files.
|
||||||
\li \l [QML]{BorderImage}{Border Image} uses an image as a border or
|
\li \l [QtQuick]{BorderImage}{Border Image} uses an image as a border or
|
||||||
background.
|
background.
|
||||||
\li \l [QML]{Image} adds a bitmap to the scene. You can stretch and
|
\li \l [QtQuick]{Image} adds a bitmap to the scene. You can stretch and
|
||||||
tile images.
|
tile images.
|
||||||
\li \l [QML]{Item} is the most basic of all visual types in QML. Even
|
\li \l [QtQuick]{Item} is the most basic of all visual types in QML. Even
|
||||||
though it has no visual appearance, it defines all the properties
|
though it has no visual appearance, it defines all the properties
|
||||||
that are common across visual types, such as the x and y position,
|
that are common across visual types, such as the x and y position,
|
||||||
width and height, anchoring, and key handling.
|
width and height, anchoring, and key handling.
|
||||||
\li \l [QML]{Rectangle} adds a rectangle that is painted with a solid
|
\li \l [QtQuick] {Rectangle} adds a rectangle that is painted with a solid
|
||||||
fill color and an optional border. You can use the radius property
|
fill color and an optional border. You can use the radius property
|
||||||
to create rounded rectangles.
|
to create rounded rectangles.
|
||||||
\li \l [QML]{Text} adds formatted read-only text.
|
\li \l [QtQuick]{Text} adds formatted read-only text.
|
||||||
\li \l [QML]{TextEdit}{Text Edit} adds a single line of editable
|
\li \l [QtQuick]{TextEdit}{Text Edit} adds a single line of editable
|
||||||
formatted text that can be validated.
|
formatted text that can be validated.
|
||||||
\li \l [QML]{TextInput}{Text Input} adds a single line of editable
|
\li \l [QtQuick]{TextInput}{Text Input} adds a single line of editable
|
||||||
plain text that can be validated.
|
plain text that can be validated.
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
@@ -267,12 +267,12 @@
|
|||||||
You can use the following positioners to arrange items in UIs:
|
You can use the following positioners to arrange items in UIs:
|
||||||
|
|
||||||
\list
|
\list
|
||||||
\li \l[QML] {Column} arranges its child items vertically.
|
\li \l[QtQuick] {Column} arranges its child items vertically.
|
||||||
\li \l[QML] {Row} arranges its child items horizontally.
|
\li \l[QtQuick] {Row} arranges its child items horizontally.
|
||||||
\li \l[QML] {Grid}
|
\li \l[QtQuick] {Grid}
|
||||||
arranges its child items so that they are aligned in a grid and
|
arranges its child items so that they are aligned in a grid and
|
||||||
are not overlapping.
|
are not overlapping.
|
||||||
\li \l[QML] {Flow}
|
\li \l[QtQuick] {Flow}
|
||||||
arranges its child items side by side, wrapping as necessary.
|
arranges its child items side by side, wrapping as necessary.
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
@@ -365,7 +365,7 @@
|
|||||||
\li \l{FocusScope}{Focus Scope}
|
\li \l{FocusScope}{Focus Scope}
|
||||||
assists in keyboard focus handling when building reusable QML
|
assists in keyboard focus handling when building reusable QML
|
||||||
components.
|
components.
|
||||||
\li \l [QML]{MouseArea}{Mouse Area} enables simple mouse handling.
|
\li \l [QtQuick]{MouseArea}{Mouse Area} enables simple mouse handling.
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
Since Qt 5.7, you can also use the following \l{Qt Quick Controls} types
|
Since Qt 5.7, you can also use the following \l{Qt Quick Controls} types
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2018 The Qt Company Ltd.
|
** Copyright (C) 2019 The Qt Company Ltd.
|
||||||
** Contact: https://www.qt.io/licensing/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of the Qt Creator documentation.
|
** This file is part of the Qt Creator documentation.
|
||||||
@@ -56,14 +56,14 @@
|
|||||||
\li In the \uicontrol {Connections} view, select the
|
\li In the \uicontrol {Connections} view, select the
|
||||||
\uicontrol {Bindings} tab.
|
\uicontrol {Bindings} tab.
|
||||||
\li Select the \inlineimage plus.png
|
\li Select the \inlineimage plus.png
|
||||||
(\uicontrol Add) button to add a binding.
|
(\uicontrol Add) button to add a binding for the currently selected
|
||||||
\li Select \uicontrol Item to select the target object whose property
|
item. The ID is displayed in the \uicontrol Item column.
|
||||||
you want to change dynamically.
|
\li Double-click the value in the \uicontrol Property column to select
|
||||||
\li Select \uicontrol Property to select the property to bind to a
|
the property to bind to a source property.
|
||||||
source property.
|
\li Double-click the value in the \uicontrol {Source Item} column to
|
||||||
\li Select \uicontrol {Source Item} to select the object whose property
|
select the object whose property you want to use to determine the
|
||||||
you want to use to determine the behavior of the target object.
|
behavior of the target object.
|
||||||
\li Select \uicontrol {Source Property} to select the property to bind
|
\li Double-click the value in the \uicontrol {Source Property} column
|
||||||
the target property to.
|
to select the property to bind the target property to.
|
||||||
\endlist
|
\endlist
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2018 The Qt Company Ltd.
|
** Copyright (C) 2019 The Qt Company Ltd.
|
||||||
** Contact: https://www.qt.io/licensing/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of the Qt Creator documentation.
|
** This file is part of the Qt Creator documentation.
|
||||||
@@ -46,13 +46,16 @@
|
|||||||
\list 1
|
\list 1
|
||||||
\li In the \uicontrol {Connections} view, select the
|
\li In the \uicontrol {Connections} view, select the
|
||||||
\uicontrol {Properties} tab.
|
\uicontrol {Properties} tab.
|
||||||
\li Select \uicontrol Item to select the object to specify the property
|
\li Select the \inlineimage plus.png
|
||||||
for.
|
(\uicontrol Add) button to add a dynamic property for the currently
|
||||||
\li Select \uicontrol Property to give a name to the property.
|
selected item. The item ID is displayed in the \uicontrol Item
|
||||||
\li Select \uicontrol {Property Type} to specify the type of the
|
column.
|
||||||
property.
|
\li Double-click the value in the \uicontrol Property column to give a
|
||||||
\li Select \uicontrol {Property Value} to specify the value of the
|
name to the property.
|
||||||
property.
|
\li Double-click the value in the \uicontrol {Property Type} column to
|
||||||
|
specify the type of the property.
|
||||||
|
\li Double-click the value in the \uicontrol {Property Value} column
|
||||||
|
to specify the value of the property.
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2016 The Qt Company Ltd.
|
** Copyright (C) 2019 The Qt Company Ltd.
|
||||||
** Contact: https://www.qt.io/licensing/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of the Qt Creator documentation.
|
** This file is part of the Qt Creator documentation.
|
||||||
@@ -61,11 +61,18 @@
|
|||||||
\uicontrol {Connections} tab.
|
\uicontrol {Connections} tab.
|
||||||
\li Select the \inlineimage plus.png
|
\li Select the \inlineimage plus.png
|
||||||
(\uicontrol Add) button to add a connection.
|
(\uicontrol Add) button to add a connection.
|
||||||
\li Select \uicontrol Target to add the object to connect to a signal.
|
\li Double-click the value in the \uicontrol Target column to add the
|
||||||
\li Select \uicontrol {Signal Handler} to select the signal that the
|
object to connect to a signal.
|
||||||
connection will listen to from a list of all signals available for
|
\li Double-click the value in the \uicontrol {Signal Handler} column to
|
||||||
the object.
|
select the signal that the connection will listen to from a list of
|
||||||
\li Select \uicontrol Actions to specify the action to perform when
|
all signals available for the object.
|
||||||
the signal is emitted. You use JavaScript to specify the actions.
|
\li Double-click the value in the \uicontrol Actions column to specify
|
||||||
|
the action to perform when the signal is emitted. You use JavaScript
|
||||||
|
to specify the actions.
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
|
\if defined(qtdesignstudio)
|
||||||
|
For an example of connecting the \c clicked signal of a button to a
|
||||||
|
\l{Adding States}{state}, see \l {Log In UI - Part 3}.
|
||||||
|
\endif
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2018 The Qt Company Ltd.
|
** Copyright (C) 2019 The Qt Company Ltd.
|
||||||
** Contact: https://www.qt.io/licensing/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of the Qt Creator documentation.
|
** This file is part of the Qt Creator documentation.
|
||||||
@@ -70,4 +70,7 @@
|
|||||||
\li \l{Managing C++ Backend Objects}
|
\li \l{Managing C++ Backend Objects}
|
||||||
\endif
|
\endif
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
|
For an example of using properties, bindings, and connections to create a
|
||||||
|
scalable push button, see \l{Creating Scalable Buttons and Borders}.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -28,10 +28,12 @@
|
|||||||
\page qmldesigner-pathview-editor.html
|
\page qmldesigner-pathview-editor.html
|
||||||
\if defined(qtdesignstudio)
|
\if defined(qtdesignstudio)
|
||||||
\previouspage studio-fonts.html
|
\previouspage studio-fonts.html
|
||||||
|
\nextpage creator-quick-ui-forms.html
|
||||||
\else
|
\else
|
||||||
\previouspage quick-states.html
|
\previouspage quick-states.html
|
||||||
\endif
|
|
||||||
\nextpage qtquick-iso-icon-browser.html
|
\nextpage qtquick-iso-icon-browser.html
|
||||||
|
\endif
|
||||||
|
|
||||||
|
|
||||||
\title Editing PathView Properties
|
\title Editing PathView Properties
|
||||||
|
|
||||||
@@ -64,4 +66,8 @@
|
|||||||
initiates mouse dragging and what is the rate at which a flick will
|
initiates mouse dragging and what is the rate at which a flick will
|
||||||
decelerate.
|
decelerate.
|
||||||
|
|
||||||
|
\if defined(qtdesignstudio)
|
||||||
|
\note You can also use the \l SvgPath Qt Quick Studio Component to
|
||||||
|
specify an SVG path data string that draws a path.
|
||||||
|
\endif
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2018 The Qt Company Ltd.
|
** Copyright (C) 2019 The Qt Company Ltd.
|
||||||
** Contact: https://www.qt.io/licensing/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of the Qt Creator documentation.
|
** This file is part of the Qt Creator documentation.
|
||||||
@@ -161,4 +161,8 @@
|
|||||||
|
|
||||||
You can use the \uicontrol {Text Editor} to specify transitions. For more
|
You can use the \uicontrol {Text Editor} to specify transitions. For more
|
||||||
information, see \l{Transition}.
|
information, see \l{Transition}.
|
||||||
|
|
||||||
|
Alternatively, you can use the \uicontrol Timeline view to animate the
|
||||||
|
properties of UI components and to bind the animations to states. For more
|
||||||
|
information, see \l {Binding Animations to States}.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -312,11 +312,11 @@
|
|||||||
You can use the Studio components to animate the following shapes:
|
You can use the Studio components to animate the following shapes:
|
||||||
|
|
||||||
\list
|
\list
|
||||||
\li Arc
|
\li \l Arc
|
||||||
\li Border
|
\li \l Border
|
||||||
\li Pie
|
\li \l Pie
|
||||||
\li Rectangle
|
\li \l Rectangle
|
||||||
\li Triangle
|
\li \l Triangle
|
||||||
\endlist
|
\endlist
|
||||||
\endif
|
\endif
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -33,10 +33,11 @@
|
|||||||
|
|
||||||
\contentspage index.html
|
\contentspage index.html
|
||||||
\page creator-quick-ui-forms.html
|
\page creator-quick-ui-forms.html
|
||||||
\previouspage qtquick-iso-icon-browser.html
|
|
||||||
\if defined(qtdesignstudio)
|
\if defined(qtdesignstudio)
|
||||||
|
\previouspage qmldesigner-pathview-editor.html
|
||||||
\nextpage studio-live-preview.html
|
\nextpage studio-live-preview.html
|
||||||
\else
|
\else
|
||||||
|
\previouspage qtquick-iso-icon-browser.html
|
||||||
\nextpage quick-export-to-qml.html
|
\nextpage quick-export-to-qml.html
|
||||||
\endif
|
\endif
|
||||||
|
|
||||||
|
|||||||
@@ -108,14 +108,17 @@
|
|||||||
"QtQuick.Controls 2.3",
|
"QtQuick.Controls 2.3",
|
||||||
"QtQuick.Controls 2.4",
|
"QtQuick.Controls 2.4",
|
||||||
"QtQuick.Controls 2.5",
|
"QtQuick.Controls 2.5",
|
||||||
|
"QtQuick.Controls 2.12",
|
||||||
"QtQuick.Controls.Material 2.0",
|
"QtQuick.Controls.Material 2.0",
|
||||||
"QtQuick.Controls.Material 2.1",
|
"QtQuick.Controls.Material 2.1",
|
||||||
"QtQuick.Controls.Material 2.2",
|
"QtQuick.Controls.Material 2.2",
|
||||||
"QtQuick.Controls.Material 2.3",
|
"QtQuick.Controls.Material 2.3",
|
||||||
|
"QtQuick.Controls.Material 2.12",
|
||||||
"QtQuick.Controls.Universal 2.0",
|
"QtQuick.Controls.Universal 2.0",
|
||||||
"QtQuick.Controls.Universal 2.1",
|
"QtQuick.Controls.Universal 2.1",
|
||||||
"QtQuick.Controls.Universal 2.2",
|
"QtQuick.Controls.Universal 2.2",
|
||||||
"QtQuick.Controls.Universal 2.3",
|
"QtQuick.Controls.Universal 2.3",
|
||||||
|
"QtQuick.Controls.Universal 2.12",
|
||||||
"QtQuick.Controls.Styles 1.0",
|
"QtQuick.Controls.Styles 1.0",
|
||||||
"QtQuick.Controls.Styles 1.1",
|
"QtQuick.Controls.Styles 1.1",
|
||||||
"QtQuick.Controls.Styles 1.2",
|
"QtQuick.Controls.Styles 1.2",
|
||||||
@@ -140,6 +143,7 @@
|
|||||||
"QtQuick.Templates 2.1",
|
"QtQuick.Templates 2.1",
|
||||||
"QtQuick.Templates 2.2",
|
"QtQuick.Templates 2.2",
|
||||||
"QtQuick.Templates 2.5",
|
"QtQuick.Templates 2.5",
|
||||||
|
"QtQuick.Templates 2.12",
|
||||||
"QtQuick.Window 2.0",
|
"QtQuick.Window 2.0",
|
||||||
"QtQuick.Window 2.1",
|
"QtQuick.Window 2.1",
|
||||||
"QtQuick.Window 2.2",
|
"QtQuick.Window 2.2",
|
||||||
|
|||||||
@@ -295,12 +295,12 @@ Column {
|
|||||||
anchors.leftMargin: 12
|
anchors.leftMargin: 12
|
||||||
anchors.rightMargin: 6
|
anchors.rightMargin: 6
|
||||||
|
|
||||||
anchors.topMargin: 24
|
anchors.topMargin: 28
|
||||||
anchors.bottomMargin: 6
|
anchors.bottomMargin: 6
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: "X1"
|
text: "X1"
|
||||||
width: 16
|
width: 18
|
||||||
tooltip: qsTr("Defines the start point for color interpolation.")
|
tooltip: qsTr("Defines the start point for color interpolation.")
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -310,7 +310,7 @@ Column {
|
|||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: "X2"
|
text: "X2"
|
||||||
width: 16
|
width: 18
|
||||||
tooltip: qsTr("Defines the end point for color interpolation.")
|
tooltip: qsTr("Defines the end point for color interpolation.")
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -320,7 +320,7 @@ Column {
|
|||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: "y1"
|
text: "y1"
|
||||||
width: 16
|
width: 18
|
||||||
tooltip: qsTr("Defines the start point for color interpolation.")
|
tooltip: qsTr("Defines the start point for color interpolation.")
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -330,7 +330,7 @@ Column {
|
|||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: "Y2"
|
text: "Y2"
|
||||||
width: 16
|
width: 18
|
||||||
tooltip: qsTr("Defines the end point for color interpolation.")
|
tooltip: qsTr("Defines the end point for color interpolation.")
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -361,7 +361,6 @@ Column {
|
|||||||
GradientDialogPopup {
|
GradientDialogPopup {
|
||||||
id: gradientDialogPopupRadial
|
id: gradientDialogPopupRadial
|
||||||
dialogHeight: 140
|
dialogHeight: 140
|
||||||
dialogWidth: 340
|
|
||||||
content: GridLayout {
|
content: GridLayout {
|
||||||
rowSpacing: 4
|
rowSpacing: 4
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
@@ -373,12 +372,12 @@ Column {
|
|||||||
anchors.leftMargin: 12
|
anchors.leftMargin: 12
|
||||||
anchors.rightMargin: 6
|
anchors.rightMargin: 6
|
||||||
|
|
||||||
anchors.topMargin: 24
|
anchors.topMargin: 28
|
||||||
anchors.bottomMargin: 6
|
anchors.bottomMargin: 6
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: "CenterX"
|
text: "CenterX"
|
||||||
width: 54
|
width: 64
|
||||||
tooltip: qsTr("Defines the center point.")
|
tooltip: qsTr("Defines the center point.")
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -388,7 +387,7 @@ Column {
|
|||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: "CenterY"
|
text: "CenterY"
|
||||||
width: 54
|
width: 64
|
||||||
tooltip: qsTr("Defines the center point.")
|
tooltip: qsTr("Defines the center point.")
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -398,7 +397,7 @@ Column {
|
|||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: "FocalX"
|
text: "FocalX"
|
||||||
width: 54
|
width: 64
|
||||||
tooltip: qsTr("Defines the focal point.")
|
tooltip: qsTr("Defines the focal point.")
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -408,7 +407,7 @@ Column {
|
|||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: "FocalY"
|
text: "FocalY"
|
||||||
width: 54
|
width: 64
|
||||||
tooltip: qsTr("Defines the focal point.")
|
tooltip: qsTr("Defines the focal point.")
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -418,7 +417,7 @@ Column {
|
|||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: "Center Radius"
|
text: "Center Radius"
|
||||||
width: 54
|
width: 64
|
||||||
tooltip: qsTr("Defines the center point.")
|
tooltip: qsTr("Defines the center point.")
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -428,7 +427,7 @@ Column {
|
|||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: "Focal Radius"
|
text: "Focal Radius"
|
||||||
width: 54
|
width: 64
|
||||||
tooltip: qsTr("Defines the focal radius. Set to 0 for simple radial gradients.")
|
tooltip: qsTr("Defines the focal radius. Set to 0 for simple radial gradients.")
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -471,12 +470,12 @@ Column {
|
|||||||
anchors.leftMargin: 12
|
anchors.leftMargin: 12
|
||||||
anchors.rightMargin: 6
|
anchors.rightMargin: 6
|
||||||
|
|
||||||
anchors.topMargin: 24
|
anchors.topMargin: 28
|
||||||
anchors.bottomMargin: 6
|
anchors.bottomMargin: 6
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: "CenterX"
|
text: "CenterX"
|
||||||
width: 32
|
width: 64
|
||||||
tooltip: qsTr("Defines the center point.")
|
tooltip: qsTr("Defines the center point.")
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -486,7 +485,7 @@ Column {
|
|||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: "CenterY"
|
text: "CenterY"
|
||||||
width: 32
|
width: 64
|
||||||
tooltip: qsTr("Defines the center point.")
|
tooltip: qsTr("Defines the center point.")
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -496,7 +495,7 @@ Column {
|
|||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: "Angle"
|
text: "Angle"
|
||||||
width: 32
|
width: 64
|
||||||
tooltip: qsTr("Defines the start angle for the conical gradient. The value is in degrees (0-360).")
|
tooltip: qsTr("Defines the start angle for the conical gradient. The value is in degrees (0-360).")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ Loader {
|
|||||||
property Component content
|
property Component content
|
||||||
|
|
||||||
property int dialogHeight: 240
|
property int dialogHeight: 240
|
||||||
property int dialogWidth: 280
|
property int dialogWidth: 440
|
||||||
|
|
||||||
sourceComponent: Component {
|
sourceComponent: Component {
|
||||||
FocusScope {
|
FocusScope {
|
||||||
|
|||||||
@@ -31,6 +31,8 @@ import QtQuick.Controls.Styles 1.1
|
|||||||
|
|
||||||
DoubleSpinBox {
|
DoubleSpinBox {
|
||||||
id: spinBox
|
id: spinBox
|
||||||
|
width: 82
|
||||||
|
Layout.minimumWidth: 82
|
||||||
|
|
||||||
property string propertyName
|
property string propertyName
|
||||||
|
|
||||||
|
|||||||
@@ -45,7 +45,8 @@
|
|||||||
{
|
{
|
||||||
"source": "file.pro",
|
"source": "file.pro",
|
||||||
"target": "%{ProFileName}",
|
"target": "%{ProFileName}",
|
||||||
"openAsProject": true
|
"openAsProject": true,
|
||||||
|
"openInEditor": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"source": "../../git.ignore",
|
"source": "../../git.ignore",
|
||||||
|
|||||||
@@ -234,8 +234,12 @@ static inline QStringList getPluginPaths()
|
|||||||
Core::Constants::IDE_DISPLAY_NAME :
|
Core::Constants::IDE_DISPLAY_NAME :
|
||||||
Core::Constants::IDE_ID);
|
Core::Constants::IDE_ID);
|
||||||
pluginPath += QLatin1String("/plugins/");
|
pluginPath += QLatin1String("/plugins/");
|
||||||
pluginPath += QLatin1String(Core::Constants::IDE_VERSION_LONG);
|
// Qt Creator X.Y.Z can load plugins from X.Y.(Z-1) etc, so add current and previous
|
||||||
rc.push_back(pluginPath);
|
// patch versions
|
||||||
|
const QString minorVersion = QString::number(IDE_VERSION_MAJOR) + '.'
|
||||||
|
+ QString::number(IDE_VERSION_MINOR) + '.';
|
||||||
|
for (int patchVersion = IDE_VERSION_RELEASE; patchVersion >= 0; --patchVersion)
|
||||||
|
rc.push_back(pluginPath + minorVersion + QString::number(patchVersion));
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -53,8 +53,8 @@ Utils::optional<Diagnostic::Code> Diagnostic::code() const
|
|||||||
if (codeValue.isUndefined())
|
if (codeValue.isUndefined())
|
||||||
return Utils::nullopt;
|
return Utils::nullopt;
|
||||||
QJsonValue::Type type = it.value().type();
|
QJsonValue::Type type = it.value().type();
|
||||||
QTC_ASSERT(type == QJsonValue::String || type == QJsonValue::Double,
|
if (type != QJsonValue::String && type != QJsonValue::Double)
|
||||||
return Utils::make_optional(Code(QString())));
|
return Utils::make_optional(Code(QString()));
|
||||||
return Utils::make_optional(codeValue.isDouble() ? Code(codeValue.toInt())
|
return Utils::make_optional(codeValue.isDouble() ? Code(codeValue.toInt())
|
||||||
: Code(codeValue.toString()));
|
: Code(codeValue.toString()));
|
||||||
}
|
}
|
||||||
@@ -81,8 +81,7 @@ Utils::optional<WorkspaceEdit::Changes> WorkspaceEdit::changes() const
|
|||||||
auto it = find(changesKey);
|
auto it = find(changesKey);
|
||||||
if (it == end())
|
if (it == end())
|
||||||
return Utils::nullopt;
|
return Utils::nullopt;
|
||||||
QTC_ASSERT(it.value().type() == QJsonValue::Object, return Changes());
|
const QJsonObject &changesObject = it.value().toObject();
|
||||||
QJsonObject changesObject(it.value().toObject());
|
|
||||||
Changes changesResult;
|
Changes changesResult;
|
||||||
for (const QString &key : changesObject.keys())
|
for (const QString &key : changesObject.keys())
|
||||||
changesResult[DocumentUri::fromProtocol(key)] = LanguageClientArray<TextEdit>(changesObject.value(key)).toList();
|
changesResult[DocumentUri::fromProtocol(key)] = LanguageClientArray<TextEdit>(changesObject.value(key)).toList();
|
||||||
@@ -122,12 +121,14 @@ MarkupOrString::MarkupOrString(const MarkupContent &val)
|
|||||||
|
|
||||||
MarkupOrString::MarkupOrString(const QJsonValue &val)
|
MarkupOrString::MarkupOrString(const QJsonValue &val)
|
||||||
{
|
{
|
||||||
QTC_ASSERT(val.isString() | val.isObject(), return);
|
if (val.isString()) {
|
||||||
if (val.isString())
|
|
||||||
emplace<QString>(val.toString());
|
emplace<QString>(val.toString());
|
||||||
else
|
} else {
|
||||||
|
MarkupContent markupContent(val.toObject());
|
||||||
|
if (markupContent.isValid(nullptr))
|
||||||
emplace<MarkupContent>(MarkupContent(val.toObject()));
|
emplace<MarkupContent>(MarkupContent(val.toObject()));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool MarkupOrString::isValid(QStringList *error) const
|
bool MarkupOrString::isValid(QStringList *error) const
|
||||||
{
|
{
|
||||||
@@ -401,9 +402,7 @@ Utils::Link Location::toLink() const
|
|||||||
|
|
||||||
DocumentUri::DocumentUri(const QString &other)
|
DocumentUri::DocumentUri(const QString &other)
|
||||||
: QUrl(QUrl::fromPercentEncoding(other.toLocal8Bit()))
|
: QUrl(QUrl::fromPercentEncoding(other.toLocal8Bit()))
|
||||||
{
|
{ }
|
||||||
QTC_ASSERT(isValid(), qWarning() << other);
|
|
||||||
}
|
|
||||||
|
|
||||||
DocumentUri::DocumentUri(const Utils::FileName &other)
|
DocumentUri::DocumentUri(const Utils::FileName &other)
|
||||||
: QUrl(QUrl::fromLocalFile(other.toString()))
|
: QUrl(QUrl::fromLocalFile(other.toString()))
|
||||||
|
|||||||
@@ -28,42 +28,50 @@
|
|||||||
#include <utils/mimetypes/mimedatabase.h>
|
#include <utils/mimetypes/mimedatabase.h>
|
||||||
|
|
||||||
#include <QHash>
|
#include <QHash>
|
||||||
|
#include <QLoggingCategory>
|
||||||
#include <QVector>
|
#include <QVector>
|
||||||
|
|
||||||
namespace LanguageServerProtocol {
|
namespace LanguageServerProtocol {
|
||||||
|
|
||||||
|
Q_LOGGING_CATEGORY(conversionLog, "qtc.languageserverprotocol.conversion", QtWarningMsg)
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
QString fromJsonValue<QString>(const QJsonValue &value)
|
QString fromJsonValue<QString>(const QJsonValue &value)
|
||||||
{
|
{
|
||||||
QTC_ASSERT(value.isString(), return QString());
|
if (conversionLog().isDebugEnabled() && !value.isString())
|
||||||
|
qCDebug(conversionLog) << "Expected String in json value but got: " << value;
|
||||||
return value.toString();
|
return value.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
int fromJsonValue<int>(const QJsonValue &value)
|
int fromJsonValue<int>(const QJsonValue &value)
|
||||||
{
|
{
|
||||||
QTC_ASSERT(value.isDouble(), return 0);
|
if (conversionLog().isDebugEnabled() && !value.isDouble())
|
||||||
return int(value.toDouble());
|
qCDebug(conversionLog) << "Expected double in json value but got: " << value;
|
||||||
|
return value.toInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
double fromJsonValue<double>(const QJsonValue &value)
|
double fromJsonValue<double>(const QJsonValue &value)
|
||||||
{
|
{
|
||||||
QTC_ASSERT(value.isDouble(), return 0);
|
if (conversionLog().isDebugEnabled() && !value.isDouble())
|
||||||
|
qCDebug(conversionLog) << "Expected double in json value but got: " << value;
|
||||||
return value.toDouble();
|
return value.toDouble();
|
||||||
}
|
}
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
bool fromJsonValue<bool>(const QJsonValue &value)
|
bool fromJsonValue<bool>(const QJsonValue &value)
|
||||||
{
|
{
|
||||||
QTC_ASSERT(value.isBool(), return false);
|
if (conversionLog().isDebugEnabled() && !value.isBool())
|
||||||
|
qCDebug(conversionLog) << "Expected bool in json value but got: " << value;
|
||||||
return value.toBool();
|
return value.toBool();
|
||||||
}
|
}
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
QJsonArray fromJsonValue<QJsonArray>(const QJsonValue &value)
|
QJsonArray fromJsonValue<QJsonArray>(const QJsonValue &value)
|
||||||
{
|
{
|
||||||
QTC_ASSERT(value.isArray(), return QJsonArray());
|
if (conversionLog().isDebugEnabled() && !value.isArray())
|
||||||
|
qCDebug(conversionLog) << "Expected Array in json value but got: " << value;
|
||||||
return value.toArray();
|
return value.toArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -35,13 +35,17 @@
|
|||||||
|
|
||||||
#include <QJsonArray>
|
#include <QJsonArray>
|
||||||
#include <QJsonObject>
|
#include <QJsonObject>
|
||||||
|
#include <QLoggingCategory>
|
||||||
|
|
||||||
namespace LanguageServerProtocol {
|
namespace LanguageServerProtocol {
|
||||||
|
|
||||||
|
LANGUAGESERVERPROTOCOL_EXPORT Q_DECLARE_LOGGING_CATEGORY(conversionLog)
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
T fromJsonValue(const QJsonValue &value)
|
T fromJsonValue(const QJsonValue &value)
|
||||||
{
|
{
|
||||||
QTC_ASSERT(value.isObject(), return T());
|
if (conversionLog().isDebugEnabled() && !value.isObject())
|
||||||
|
qCDebug(conversionLog) << "Expected Object in json value but got: " << value;
|
||||||
return T(value.toObject());
|
return T(value.toObject());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2306,7 +2306,9 @@ void EditorManagerPrivate::findInDirectory()
|
|||||||
{
|
{
|
||||||
if (!d->m_contextMenuEntry || d->m_contextMenuEntry->fileName().isEmpty())
|
if (!d->m_contextMenuEntry || d->m_contextMenuEntry->fileName().isEmpty())
|
||||||
return;
|
return;
|
||||||
emit m_instance->findOnFileSystemRequest(d->m_contextMenuEntry->fileName().parentDir().toString());
|
const FileName path = d->m_contextMenuEntry->fileName();
|
||||||
|
emit m_instance->findOnFileSystemRequest(
|
||||||
|
(path.toFileInfo().isDir() ? path : path.parentDir()).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
void EditorManagerPrivate::togglePinned()
|
void EditorManagerPrivate::togglePinned()
|
||||||
|
|||||||
@@ -869,6 +869,16 @@ static void getExpandedCompilerFlags(QStringList &cFlags, QStringList &cxxFlags,
|
|||||||
cFlags << "-std=c99";
|
cFlags << "-std=c99";
|
||||||
else if (!cLanguageVersion.isEmpty())
|
else if (!cLanguageVersion.isEmpty())
|
||||||
cFlags << ("-std=" + cLanguageVersion.first());
|
cFlags << ("-std=" + cLanguageVersion.first());
|
||||||
|
|
||||||
|
if (targetOS.contains("darwin")) {
|
||||||
|
const auto darwinVersion = getCppProp("minimumDarwinVersion").toString();
|
||||||
|
if (!darwinVersion.isEmpty()) {
|
||||||
|
const auto darwinVersionFlag = getCppProp("minimumDarwinVersionCompilerFlag")
|
||||||
|
.toString();
|
||||||
|
if (!darwinVersionFlag.isEmpty())
|
||||||
|
cxxFlags << (darwinVersionFlag + '=' + darwinVersion);
|
||||||
|
}
|
||||||
|
}
|
||||||
} else if (toolchain.contains("msvc")) {
|
} else if (toolchain.contains("msvc")) {
|
||||||
if (enableExceptions.toBool()) {
|
if (enableExceptions.toBool()) {
|
||||||
const QString exceptionModel = getCppProp("exceptionHandlingModel").toString();
|
const QString exceptionModel = getCppProp("exceptionHandlingModel").toString();
|
||||||
|
|||||||
@@ -26,9 +26,11 @@
|
|||||||
#include "qbsrunconfiguration.h"
|
#include "qbsrunconfiguration.h"
|
||||||
|
|
||||||
#include "qbsnodes.h"
|
#include "qbsnodes.h"
|
||||||
|
#include "qbspmlogging.h"
|
||||||
#include "qbsprojectmanagerconstants.h"
|
#include "qbsprojectmanagerconstants.h"
|
||||||
#include "qbsproject.h"
|
#include "qbsproject.h"
|
||||||
|
|
||||||
|
#include <projectexplorer/buildmanager.h>
|
||||||
#include <projectexplorer/deploymentdata.h>
|
#include <projectexplorer/deploymentdata.h>
|
||||||
#include <projectexplorer/localenvironmentaspect.h>
|
#include <projectexplorer/localenvironmentaspect.h>
|
||||||
#include <projectexplorer/project.h>
|
#include <projectexplorer/project.h>
|
||||||
@@ -64,8 +66,13 @@ QbsRunConfiguration::QbsRunConfiguration(Target *target, Core::Id id)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
BuildTargetInfo bti = buildTargetInfo();
|
BuildTargetInfo bti = buildTargetInfo();
|
||||||
if (bti.runEnvModifier)
|
if (bti.runEnvModifier) {
|
||||||
|
if (project()->isParsing() || BuildManager::isBuilding(this->target())) {
|
||||||
|
qCDebug(qbsPmLog) << "qbs project in flux, cannot modify environment";
|
||||||
|
return; // Intentionally skips the cache update below.
|
||||||
|
}
|
||||||
bti.runEnvModifier(env, usingLibraryPaths);
|
bti.runEnvModifier(env, usingLibraryPaths);
|
||||||
|
}
|
||||||
m_envCache.insert(key, env);
|
m_envCache.insert(key, env);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -234,6 +234,16 @@ QSet<FileName> QmakePriFile::files(const FileType &type) const
|
|||||||
return m_files.value(type);
|
return m_files.value(type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const QSet<FileName> QmakePriFile::collectFiles(const FileType &type) const
|
||||||
|
{
|
||||||
|
QSet<FileName> allFiles = files(type);
|
||||||
|
for (const QmakePriFile * const priFile : qAsConst(m_children)) {
|
||||||
|
if (!dynamic_cast<const QmakeProFile *>(priFile))
|
||||||
|
allFiles.unite(priFile->collectFiles(type));
|
||||||
|
}
|
||||||
|
return allFiles;
|
||||||
|
}
|
||||||
|
|
||||||
QmakePriFile::~QmakePriFile()
|
QmakePriFile::~QmakePriFile()
|
||||||
{
|
{
|
||||||
watchFolders( {} );
|
watchFolders( {} );
|
||||||
@@ -1957,13 +1967,12 @@ QList<ExtraCompiler *> QmakeProFile::extraCompilers() const
|
|||||||
void QmakeProFile::setupExtraCompiler(const FileName &buildDir,
|
void QmakeProFile::setupExtraCompiler(const FileName &buildDir,
|
||||||
const FileType &fileType, ExtraCompilerFactory *factory)
|
const FileType &fileType, ExtraCompilerFactory *factory)
|
||||||
{
|
{
|
||||||
foreach (const FileName &fn, files(fileType)) {
|
for (const FileName &fn : collectFiles(fileType)) {
|
||||||
const FileNameList generated = generatedFiles(buildDir, fn, fileType);
|
const FileNameList generated = generatedFiles(buildDir, fn, fileType);
|
||||||
if (!generated.isEmpty()) {
|
if (!generated.isEmpty())
|
||||||
m_extraCompilers.append(factory->create(m_project, fn, generated));
|
m_extraCompilers.append(factory->create(m_project, fn, generated));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
void QmakeProFile::updateGeneratedFiles(const FileName &buildDir)
|
void QmakeProFile::updateGeneratedFiles(const FileName &buildDir)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -133,8 +133,12 @@ public:
|
|||||||
|
|
||||||
void makeEmpty();
|
void makeEmpty();
|
||||||
|
|
||||||
|
// Files of the specified type declared in this file.
|
||||||
QSet<Utils::FileName> files(const ProjectExplorer::FileType &type) const;
|
QSet<Utils::FileName> files(const ProjectExplorer::FileType &type) const;
|
||||||
|
|
||||||
|
// Files of the specified type declared in this file and in included .pri files.
|
||||||
|
const QSet<Utils::FileName> collectFiles(const ProjectExplorer::FileType &type) const;
|
||||||
|
|
||||||
void update(const Internal::QmakePriFileEvalResult &result);
|
void update(const Internal::QmakePriFileEvalResult &result);
|
||||||
|
|
||||||
bool canAddSubProject(const QString &proFilePath) const;
|
bool canAddSubProject(const QString &proFilePath) const;
|
||||||
|
|||||||
@@ -85,7 +85,6 @@ void Exception::setShouldAssert(bool assert)
|
|||||||
|
|
||||||
bool Exception::shouldAssert()
|
bool Exception::shouldAssert()
|
||||||
{
|
{
|
||||||
return true;
|
|
||||||
return s_shouldAssert;
|
return s_shouldAssert;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -463,20 +463,19 @@ def __createProjectHandleClassInformation__(className, baseClass=None):
|
|||||||
|
|
||||||
def waitForProcessRunning(running=True):
|
def waitForProcessRunning(running=True):
|
||||||
outputButton = waitForObject(":Qt Creator_AppOutput_Core::Internal::OutputPaneToggleButton")
|
outputButton = waitForObject(":Qt Creator_AppOutput_Core::Internal::OutputPaneToggleButton")
|
||||||
if not waitFor("outputButton.checked", 10000):
|
if not waitFor("outputButton.checked", 5000):
|
||||||
ensureChecked(outputButton)
|
ensureChecked(outputButton)
|
||||||
waitFor("object.exists(':Qt Creator.ReRun_QToolButton')", 20000)
|
waitFor("object.exists(':Qt Creator.ReRun_QToolButton')", 20000)
|
||||||
reRunButton = findObject(":Qt Creator.ReRun_QToolButton")
|
reRunButton = findObject(":Qt Creator.ReRun_QToolButton")
|
||||||
waitFor("object.exists(':Qt Creator.Stop_QToolButton')", 20000)
|
waitFor("object.exists(':Qt Creator.Stop_QToolButton')", 20000)
|
||||||
stopButton = findObject(":Qt Creator.Stop_QToolButton")
|
stopButton = findObject(":Qt Creator.Stop_QToolButton")
|
||||||
return waitFor("(reRunButton.enabled != running) and (stopButton.enabled == running)", 10000)
|
return waitFor("(reRunButton.enabled != running) and (stopButton.enabled == running)", 5000)
|
||||||
|
|
||||||
# run and close an application
|
# run and close an application
|
||||||
# returns None if the build failed, False if the subprocess did not start, and True otherwise
|
# returns None if the build failed, False if the subprocess did not start, and True otherwise
|
||||||
def runAndCloseApp(isQtQuickUI=False):
|
def runAndCloseApp():
|
||||||
runButton = waitForObject(":*Qt Creator.Run_Core::Internal::FancyToolButton")
|
runButton = waitForObject(":*Qt Creator.Run_Core::Internal::FancyToolButton")
|
||||||
clickButton(runButton)
|
clickButton(runButton)
|
||||||
if not isQtQuickUI:
|
|
||||||
waitForCompile(300000)
|
waitForCompile(300000)
|
||||||
buildSucceeded = checkLastBuild()
|
buildSucceeded = checkLastBuild()
|
||||||
ensureChecked(waitForObject(":Qt Creator_AppOutput_Core::Internal::OutputPaneToggleButton"))
|
ensureChecked(waitForObject(":Qt Creator_AppOutput_Core::Internal::OutputPaneToggleButton"))
|
||||||
@@ -486,7 +485,7 @@ def runAndCloseApp(isQtQuickUI=False):
|
|||||||
if not waitForProcessRunning():
|
if not waitForProcessRunning():
|
||||||
test.fatal("Couldn't start application - leaving test")
|
test.fatal("Couldn't start application - leaving test")
|
||||||
return False
|
return False
|
||||||
__closeSubprocessByPushingStop__(isQtQuickUI)
|
__closeSubprocessByPushingStop__(False)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def __closeSubprocessByPushingStop__(isQtQuickUI):
|
def __closeSubprocessByPushingStop__(isQtQuickUI):
|
||||||
|
|||||||
@@ -25,21 +25,39 @@
|
|||||||
|
|
||||||
source("../../shared/qtcreator.py")
|
source("../../shared/qtcreator.py")
|
||||||
|
|
||||||
|
def _exactlyOne_(iterable):
|
||||||
|
trueElements = 0
|
||||||
|
for element in iterable:
|
||||||
|
if element:
|
||||||
|
trueElements += 1
|
||||||
|
return trueElements == 1
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
startQC()
|
startQC()
|
||||||
if not startedWithoutPluginError():
|
if not startedWithoutPluginError():
|
||||||
return
|
return
|
||||||
available = ["5.6"]
|
available = ["5.6", "5.10"]
|
||||||
|
|
||||||
for qtVersion in available:
|
for qtVersion in available:
|
||||||
# using a temporary directory won't mess up a potentially existing
|
# using a temporary directory won't mess up a potentially existing
|
||||||
workingDir = tempDir()
|
workingDir = tempDir()
|
||||||
createNewQtQuickUI(workingDir, qtVersion)
|
checkedKits, projectName = createNewQtQuickUI(workingDir, qtVersion)
|
||||||
if runAndCloseApp(True) == None:
|
checkedKitNames = Targets.getTargetsAsStrings(checkedKits)
|
||||||
checkCompile()
|
test.verify(_exactlyOne_(map(lambda name: qtVersion in name, checkedKitNames)),
|
||||||
else:
|
"The requested kit should have been checked")
|
||||||
|
if qtVersion == "5.10":
|
||||||
|
test.verify(not any(map(lambda name: "5.6" in name, checkedKitNames)),
|
||||||
|
"The 5.6 kit should not have been checked when 5.10 is required")
|
||||||
|
clickButton(waitForObject(":*Qt Creator.Run_Core::Internal::FancyToolButton"))
|
||||||
|
if not waitForProcessRunning():
|
||||||
|
test.fatal("Couldn't start application - leaving test")
|
||||||
|
continue
|
||||||
|
if test.verify(not waitForProcessRunning(False), "The application should keep running"):
|
||||||
|
__closeSubprocessByPushingStop__(True)
|
||||||
appOutput = logApplicationOutput()
|
appOutput = logApplicationOutput()
|
||||||
test.verify(not ("untitled.qml" in appOutput or "MainForm.ui.qml" in appOutput),
|
test.verify(_exactlyOne_(map(lambda ver: ver in appOutput, available)),
|
||||||
|
"Does Creator use qmlscene from a checked kit?")
|
||||||
|
test.verify(projectName + ".qml:" not in appOutput,
|
||||||
"Does the Application Output indicate QML errors?")
|
"Does the Application Output indicate QML errors?")
|
||||||
invokeMenuItem("File", "Close All Projects and Editors")
|
invokeMenuItem("File", "Close All Projects and Editors")
|
||||||
invokeMenuItem("File", "Exit")
|
invokeMenuItem("File", "Exit")
|
||||||
|
|||||||
Reference in New Issue
Block a user