forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/master' into 4.12
Change-Id: I091e191d1a9398cacd0ff0e063f89ffbe308189f
This commit is contained in:
@@ -75,7 +75,7 @@
|
|||||||
|
|
||||||
To use \e {Bluebubble.svg} in your project,
|
To use \e {Bluebubble.svg} in your project,
|
||||||
copy it to the project directory (same subdirectory as the QML file).
|
copy it to the project directory (same subdirectory as the QML file).
|
||||||
The image appears in \uicontrol Resources. You can also use any other
|
The image appears in \uicontrol Assets. You can also use any other
|
||||||
image or a QML type, instead.
|
image or a QML type, instead.
|
||||||
|
|
||||||
To create the UI in the Design mode:
|
To create the UI in the Design mode:
|
||||||
@@ -106,7 +106,7 @@
|
|||||||
|
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
\li In \uicontrol Library > \uicontrol Resources, select Bluebubble.svg
|
\li In \uicontrol Library > \uicontrol Assets, select Bluebubble.svg
|
||||||
and drag and drop it to \e mainWindow in the navigator.
|
and drag and drop it to \e mainWindow in the navigator.
|
||||||
|
|
||||||
\li In the \uicontrol Properties pane, \uicontrol Id field, enter
|
\li In the \uicontrol Properties pane, \uicontrol Id field, enter
|
||||||
@@ -257,15 +257,15 @@
|
|||||||
After adding the dependencies, select \uicontrol Build > \uicontrol {Run qmake} to apply
|
After adding the dependencies, select \uicontrol Build > \uicontrol {Run qmake} to apply
|
||||||
the changes to the Makefile of the project.
|
the changes to the Makefile of the project.
|
||||||
|
|
||||||
\section1 Adding Resources
|
\section1 Adding Assets
|
||||||
|
|
||||||
You need to add the Bluebubble.svg image file to the application resources
|
You need to add the Bluebubble.svg image file to the application assets
|
||||||
for deployment to mobile devices:
|
for deployment to mobile devices:
|
||||||
|
|
||||||
\list 1
|
\list 1
|
||||||
|
|
||||||
\li In the \uicontrol Projects view, double-click the qml.qrc file to open it
|
\li In the \uicontrol Projects view, double-click the qml.qrc file to open it
|
||||||
in the resource editor.
|
in the assets editor.
|
||||||
|
|
||||||
\li Select \uicontrol Add to add Bluebubble.svg.
|
\li Select \uicontrol Add to add Bluebubble.svg.
|
||||||
|
|
||||||
|
@@ -62,7 +62,7 @@
|
|||||||
|
|
||||||
To use the \e qt-logo.png image in your application, you must copy it from
|
To use the \e qt-logo.png image in your application, you must copy it from
|
||||||
the Qt examples directory to the project directory (same subdirectory as
|
the Qt examples directory to the project directory (same subdirectory as
|
||||||
the QML file). The image appears in \uicontrol Resources. You can also use
|
the QML file). The image appears in \uicontrol Assets. You can also use
|
||||||
any other image or a QML type, instead.
|
any other image or a QML type, instead.
|
||||||
|
|
||||||
\list 1
|
\list 1
|
||||||
@@ -78,7 +78,7 @@
|
|||||||
\li Select \uicontrol Page in the navigator, and enter \e page in the
|
\li Select \uicontrol Page in the navigator, and enter \e page in the
|
||||||
\uicontrol Id field.
|
\uicontrol Id field.
|
||||||
|
|
||||||
\li In \uicontrol Library > \uicontrol Resources, select qt-logo.png and
|
\li In \uicontrol Library > \uicontrol Assets, select qt-logo.png and
|
||||||
drag and drop it to the \e page in the navigator.
|
drag and drop it to the \e page in the navigator.
|
||||||
|
|
||||||
\image qmldesigner-tutorial-user-icon.png "Image properties"
|
\image qmldesigner-tutorial-user-icon.png "Image properties"
|
||||||
|
@@ -48,7 +48,7 @@
|
|||||||
applications.
|
applications.
|
||||||
|
|
||||||
The \uicontrol {Library} pane lists the available QML types, UI
|
The \uicontrol {Library} pane lists the available QML types, UI
|
||||||
components, resources, and imports.
|
components, assets, and imports.
|
||||||
|
|
||||||
\image qmldesigner-qml-components.png "QML Components"
|
\image qmldesigner-qml-components.png "QML Components"
|
||||||
|
|
||||||
@@ -66,7 +66,7 @@
|
|||||||
the import statements automatically. You can remove import statements in
|
the import statements automatically. You can remove import statements in
|
||||||
\uicontrol Imports
|
\uicontrol Imports
|
||||||
|
|
||||||
\uicontrol {Resources} displays the images and other files that you copy
|
\uicontrol {Assets} displays the images and other files that you copy
|
||||||
to the project folder (to the same subfolder as the QML files).
|
to the project folder (to the same subfolder as the QML files).
|
||||||
|
|
||||||
\section1 Adding Components to Designs
|
\section1 Adding Components to Designs
|
||||||
|
@@ -42,8 +42,8 @@
|
|||||||
To add fonts:
|
To add fonts:
|
||||||
|
|
||||||
\list 1
|
\list 1
|
||||||
\li Select \uicontrol Library > \uicontrol Resources >
|
\li Select \uicontrol Library > \uicontrol Assets >
|
||||||
\uicontrol {Add New Resources}.
|
\uicontrol {Add New Assets}.
|
||||||
\li Browse to the folder that contains the font files and select them.
|
\li Browse to the folder that contains the font files and select them.
|
||||||
\li Enter the name of the directory to save the fonts. By default, \QDS
|
\li Enter the name of the directory to save the fonts. By default, \QDS
|
||||||
suggests the project directory.
|
suggests the project directory.
|
||||||
|
@@ -77,8 +77,8 @@
|
|||||||
instructions of the wizard to create an empty project.
|
instructions of the wizard to create an empty project.
|
||||||
\li In \uicontrol Projects, double-click \e Screen01.ui.qml to move to
|
\li In \uicontrol Projects, double-click \e Screen01.ui.qml to move to
|
||||||
the Design mode.
|
the Design mode.
|
||||||
\li Select \uicontrol Library > \uicontrol Resources >
|
\li Select \uicontrol Library > \uicontrol Assets >
|
||||||
\uicontrol {Add New Resources}.
|
\uicontrol {Add New Assets}.
|
||||||
\li Select the folder where you exported the assets.
|
\li Select the folder where you exported the assets.
|
||||||
\li Select \uicontrol {Exported Assets (*.metadata)} in the dropdown
|
\li Select \uicontrol {Exported Assets (*.metadata)} in the dropdown
|
||||||
menu to filter \e .metadata files.
|
menu to filter \e .metadata files.
|
||||||
@@ -106,7 +106,7 @@
|
|||||||
might take a little while for complex projects.
|
might take a little while for complex projects.
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
The imported assets are displayed in the \uicontrol Resources tab in the
|
The imported assets are displayed in the \uicontrol Assets tab in the
|
||||||
\uicontrol Library as PNG images. The components that you specified in
|
\uicontrol Library as PNG images. The components that you specified in
|
||||||
the design tool are displayed in the \uicontrol {My QML Components} tab,
|
the design tool are displayed in the \uicontrol {My QML Components} tab,
|
||||||
as well as in the \uicontrol Project tab of the \uicontrol Navigator as
|
as well as in the \uicontrol Project tab of the \uicontrol Navigator as
|
||||||
@@ -161,8 +161,8 @@
|
|||||||
To import 3D assets to \QDS projects:
|
To import 3D assets to \QDS projects:
|
||||||
|
|
||||||
\list 1
|
\list 1
|
||||||
\li In the Design mode, select \uicontrol Library > \uicontrol Resources
|
\li In the Design mode, select \uicontrol Library > \uicontrol Assets
|
||||||
> \uicontrol {Add New Resources}.
|
> \uicontrol {Add New Assets}.
|
||||||
\li Select \uicontrol {3D Assets} in the dropdown menu to filter 3D
|
\li Select \uicontrol {3D Assets} in the dropdown menu to filter 3D
|
||||||
graphics files.
|
graphics files.
|
||||||
\li Select a file to import, and then select \uicontrol Open.
|
\li Select a file to import, and then select \uicontrol Open.
|
||||||
|
@@ -36,7 +36,7 @@
|
|||||||
|
|
||||||
\list
|
\list
|
||||||
\li Group files together
|
\li Group files together
|
||||||
\li Include forms and resource files
|
\li Include forms and assets files
|
||||||
\li Specify settings for previewing UIs
|
\li Specify settings for previewing UIs
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
|
@@ -32,7 +32,7 @@
|
|||||||
\title Editing 3D Assets in Design Mode
|
\title Editing 3D Assets in Design Mode
|
||||||
|
|
||||||
\QDS opens QML files that contain 3D scenes in the Design mode and the
|
\QDS opens QML files that contain 3D scenes in the Design mode and the
|
||||||
scenes in the 3D editor. You can add imported 3D assets as resources
|
scenes in the 3D editor. You can add imported 3D assets
|
||||||
to projects and edit them to create scenes and states, as well as the
|
to projects and edit them to create scenes and states, as well as the
|
||||||
transitions between them.
|
transitions between them.
|
||||||
|
|
||||||
@@ -55,7 +55,7 @@
|
|||||||
\li \uicontrol {Library} (3) displays the building blocks that you
|
\li \uicontrol {Library} (3) displays the building blocks that you
|
||||||
can use to create scenes: predefined Qt Quick 3D Components,
|
can use to create scenes: predefined Qt Quick 3D Components,
|
||||||
Qt Quick Controls, your own 3D assets that you import to the
|
Qt Quick Controls, your own 3D assets that you import to the
|
||||||
project, and other resources. For more information, see
|
project, and other assets. For more information, see
|
||||||
\l {Adding 3D Views}.
|
\l {Adding 3D Views}.
|
||||||
\li \uicontrol {Navigator} (4) displays the items in the current QML
|
\li \uicontrol {Navigator} (4) displays the items in the current QML
|
||||||
file as a tree structure. For more information, see
|
file as a tree structure. For more information, see
|
||||||
|
@@ -48,8 +48,8 @@
|
|||||||
\li \l {Editing 3D Assets in Design Mode}
|
\li \l {Editing 3D Assets in Design Mode}
|
||||||
|
|
||||||
\QDS opens QML files that contain 3D scenes in the Design mode and
|
\QDS opens QML files that contain 3D scenes in the Design mode and
|
||||||
the scenes in the 3D editor. You can add imported 3D assets as
|
the scenes in the 3D editor. You can add imported 3D assets
|
||||||
resources to projects as 3D components.
|
to projects as 3D components.
|
||||||
\li \l {Working in the 3D Editor}
|
\li \l {Working in the 3D Editor}
|
||||||
|
|
||||||
You can select 3D components in the 3D editor to move, rotate, and
|
You can select 3D components in the 3D editor to move, rotate, and
|
||||||
|
@@ -0,0 +1,104 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 The Qt Company Ltd.
|
||||||
|
** Contact: https://www.qt.io/licensing/
|
||||||
|
**
|
||||||
|
** This file is part of Qt Creator.
|
||||||
|
**
|
||||||
|
** Commercial License Usage
|
||||||
|
** Licensees holding valid commercial Qt licenses may use this file in
|
||||||
|
** accordance with the commercial license agreement provided with the
|
||||||
|
** Software or, alternatively, in accordance with the terms contained in
|
||||||
|
** a written agreement between you and The Qt Company. For licensing terms
|
||||||
|
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||||
|
** information use the contact form at https://www.qt.io/contact-us.
|
||||||
|
**
|
||||||
|
** GNU General Public License Usage
|
||||||
|
** Alternatively, this file may be used under the terms of the GNU
|
||||||
|
** General Public License version 3 as published by the Free Software
|
||||||
|
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
||||||
|
** included in the packaging of this file. Please review the following
|
||||||
|
** information to ensure the GNU General Public License requirements will
|
||||||
|
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
import HelperWidgets 2.0
|
||||||
|
import QtQuick 2.1
|
||||||
|
import QtQuick.Layouts 1.1
|
||||||
|
Section {
|
||||||
|
id: section
|
||||||
|
caption: qsTr("Animation")
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
|
||||||
|
property bool showDuration: true
|
||||||
|
|
||||||
|
SectionLayout {
|
||||||
|
Label {
|
||||||
|
text: qsTr("Running")
|
||||||
|
tooltip: qsTr("Sets whether the animation should run to completion when it is stopped.")
|
||||||
|
}
|
||||||
|
|
||||||
|
CheckBox {
|
||||||
|
text: backendValues.running.valueToString
|
||||||
|
backendValue: backendValues.running
|
||||||
|
}
|
||||||
|
|
||||||
|
Label {
|
||||||
|
text: qsTr("Paused")
|
||||||
|
tooltip: qsTr("Sets whether the animation is currently paused.")
|
||||||
|
}
|
||||||
|
|
||||||
|
CheckBox {
|
||||||
|
text: backendValues.paused.valueToString
|
||||||
|
backendValue: backendValues.paused
|
||||||
|
}
|
||||||
|
Label {
|
||||||
|
text: qsTr("Loops")
|
||||||
|
tooltip: qsTr("Sets the number of times the animation should play.")
|
||||||
|
}
|
||||||
|
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
maximumValue: 9999999
|
||||||
|
minimumValue: -1
|
||||||
|
backendValue: backendValues.loops
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.maximumWidth: 100
|
||||||
|
}
|
||||||
|
|
||||||
|
ExpandingSpacer {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Label {
|
||||||
|
visible: section.showDuration
|
||||||
|
text: qsTr("Duration")
|
||||||
|
tooltip: qsTr("Sets the duration of the animation, in milliseconds.")
|
||||||
|
}
|
||||||
|
|
||||||
|
SecondColumnLayout {
|
||||||
|
visible: section.showDuration
|
||||||
|
SpinBox {
|
||||||
|
maximumValue: 9999999
|
||||||
|
minimumValue: -9999999
|
||||||
|
backendValue: backendValues.duration
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.maximumWidth: 100
|
||||||
|
}
|
||||||
|
|
||||||
|
ExpandingSpacer {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Label {
|
||||||
|
text: qsTr("Always Run To End")
|
||||||
|
tooltip: qsTr("Sets whether the animation should run to completion when it is stopped.")
|
||||||
|
}
|
||||||
|
|
||||||
|
CheckBox {
|
||||||
|
text: backendValues.alwaysRunToEnd.valueToString
|
||||||
|
backendValue: backendValues.alwaysRunToEnd
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,70 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 The Qt Company Ltd.
|
||||||
|
** Contact: https://www.qt.io/licensing/
|
||||||
|
**
|
||||||
|
** This file is part of Qt Creator.
|
||||||
|
**
|
||||||
|
** Commercial License Usage
|
||||||
|
** Licensees holding valid commercial Qt licenses may use this file in
|
||||||
|
** accordance with the commercial license agreement provided with the
|
||||||
|
** Software or, alternatively, in accordance with the terms contained in
|
||||||
|
** a written agreement between you and The Qt Company. For licensing terms
|
||||||
|
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||||
|
** information use the contact form at https://www.qt.io/contact-us.
|
||||||
|
**
|
||||||
|
** GNU General Public License Usage
|
||||||
|
** Alternatively, this file may be used under the terms of the GNU
|
||||||
|
** General Public License version 3 as published by the Free Software
|
||||||
|
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
||||||
|
** included in the packaging of this file. Please review the following
|
||||||
|
** information to ensure the GNU General Public License requirements will
|
||||||
|
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
import HelperWidgets 2.0
|
||||||
|
import QtQuick 2.1
|
||||||
|
import QtQuick.Layouts 1.1
|
||||||
|
Section {
|
||||||
|
id: section
|
||||||
|
caption: qsTr("Animation Targets")
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
|
||||||
|
SectionLayout {
|
||||||
|
Label {
|
||||||
|
text: qsTr("Target")
|
||||||
|
tooltip: qsTr("Sets the target to animate the properties of.")
|
||||||
|
}
|
||||||
|
SecondColumnLayout {
|
||||||
|
ItemFilterComboBox {
|
||||||
|
typeFilter: "QtQuick.QtObject"
|
||||||
|
validator: RegExpValidator { regExp: /(^$|^[a-z_]\w*)/ }
|
||||||
|
backendValue: backendValues.target
|
||||||
|
Layout.fillWidth: true
|
||||||
|
}
|
||||||
|
|
||||||
|
ExpandingSpacer {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Label {
|
||||||
|
text: qsTr("Property")
|
||||||
|
tooltip: qsTr("Sets the property to animate.")
|
||||||
|
}
|
||||||
|
LineEdit {
|
||||||
|
backendValue: backendValues.property
|
||||||
|
Layout.fillWidth: true
|
||||||
|
}
|
||||||
|
Label {
|
||||||
|
text: qsTr("Properties")
|
||||||
|
tooltip: qsTr("Sets the properties to animate.")
|
||||||
|
}
|
||||||
|
LineEdit {
|
||||||
|
backendValue: backendValues.properties
|
||||||
|
Layout.fillWidth: true
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,62 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 The Qt Company Ltd.
|
||||||
|
** Contact: https://www.qt.io/licensing/
|
||||||
|
**
|
||||||
|
** This file is part of Qt Creator.
|
||||||
|
**
|
||||||
|
** Commercial License Usage
|
||||||
|
** Licensees holding valid commercial Qt licenses may use this file in
|
||||||
|
** accordance with the commercial license agreement provided with the
|
||||||
|
** Software or, alternatively, in accordance with the terms contained in
|
||||||
|
** a written agreement between you and The Qt Company. For licensing terms
|
||||||
|
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||||
|
** information use the contact form at https://www.qt.io/contact-us.
|
||||||
|
**
|
||||||
|
** GNU General Public License Usage
|
||||||
|
** Alternatively, this file may be used under the terms of the GNU
|
||||||
|
** General Public License version 3 as published by the Free Software
|
||||||
|
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
||||||
|
** included in the packaging of this file. Please review the following
|
||||||
|
** information to ensure the GNU General Public License requirements will
|
||||||
|
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
import HelperWidgets 2.0
|
||||||
|
import QtQuick 2.1
|
||||||
|
import QtQuick.Layouts 1.1
|
||||||
|
Column {
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
|
||||||
|
Section {
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
caption: qsTr("To Color")
|
||||||
|
|
||||||
|
ColorEditor {
|
||||||
|
backendValue: backendValues.to
|
||||||
|
supportGradient: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Section {
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
caption: qsTr("From Color")
|
||||||
|
|
||||||
|
ColorEditor {
|
||||||
|
backendValue: backendValues.from
|
||||||
|
supportGradient: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
AnimationTargetSection {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
AnimationSection {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@@ -0,0 +1,84 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 The Qt Company Ltd.
|
||||||
|
** Contact: https://www.qt.io/licensing/
|
||||||
|
**
|
||||||
|
** This file is part of Qt Creator.
|
||||||
|
**
|
||||||
|
** Commercial License Usage
|
||||||
|
** Licensees holding valid commercial Qt licenses may use this file in
|
||||||
|
** accordance with the commercial license agreement provided with the
|
||||||
|
** Software or, alternatively, in accordance with the terms contained in
|
||||||
|
** a written agreement between you and The Qt Company. For licensing terms
|
||||||
|
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||||
|
** information use the contact form at https://www.qt.io/contact-us.
|
||||||
|
**
|
||||||
|
** GNU General Public License Usage
|
||||||
|
** Alternatively, this file may be used under the terms of the GNU
|
||||||
|
** General Public License version 3 as published by the Free Software
|
||||||
|
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
||||||
|
** included in the packaging of this file. Please review the following
|
||||||
|
** information to ensure the GNU General Public License requirements will
|
||||||
|
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
import HelperWidgets 2.0
|
||||||
|
import QtQuick 2.1
|
||||||
|
import QtQuick.Layouts 1.1
|
||||||
|
Column {
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
|
||||||
|
Section {
|
||||||
|
caption: qsTr("Number Animation")
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
|
||||||
|
SectionLayout {
|
||||||
|
Label {
|
||||||
|
text: qsTr("From")
|
||||||
|
tooltip: qsTr("Sets the starting value for the animation.")
|
||||||
|
}
|
||||||
|
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
maximumValue: 9999999
|
||||||
|
minimumValue: -1
|
||||||
|
backendValue: backendValues.from
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.maximumWidth: 100
|
||||||
|
}
|
||||||
|
|
||||||
|
ExpandingSpacer {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Label {
|
||||||
|
text: qsTr("To")
|
||||||
|
tooltip: qsTr("Sets the end value for the animation.")
|
||||||
|
}
|
||||||
|
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
maximumValue: 9999999
|
||||||
|
minimumValue: -1
|
||||||
|
backendValue: backendValues.to
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.maximumWidth: 100
|
||||||
|
}
|
||||||
|
|
||||||
|
ExpandingSpacer {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
AnimationTargetSection {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
AnimationSection {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@@ -0,0 +1,37 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** Copyright (C) 2016 The Qt Company Ltd.
|
||||||
|
** Contact: https://www.qt.io/licensing/
|
||||||
|
**
|
||||||
|
** This file is part of Qt Creator.
|
||||||
|
**
|
||||||
|
** Commercial License Usage
|
||||||
|
** Licensees holding valid commercial Qt licenses may use this file in
|
||||||
|
** accordance with the commercial license agreement provided with the
|
||||||
|
** Software or, alternatively, in accordance with the terms contained in
|
||||||
|
** a written agreement between you and The Qt Company. For licensing terms
|
||||||
|
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||||
|
** information use the contact form at https://www.qt.io/contact-us.
|
||||||
|
**
|
||||||
|
** GNU General Public License Usage
|
||||||
|
** Alternatively, this file may be used under the terms of the GNU
|
||||||
|
** General Public License version 3 as published by the Free Software
|
||||||
|
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
||||||
|
** included in the packaging of this file. Please review the following
|
||||||
|
** information to ensure the GNU General Public License requirements will
|
||||||
|
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
import HelperWidgets 2.0
|
||||||
|
import QtQuick 2.1
|
||||||
|
import QtQuick.Layouts 1.1
|
||||||
|
Column {
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
|
||||||
|
AnimationSection {
|
||||||
|
showDuration: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@@ -0,0 +1,36 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 The Qt Company Ltd.
|
||||||
|
** Contact: https://www.qt.io/licensing/
|
||||||
|
**
|
||||||
|
** This file is part of Qt Creator.
|
||||||
|
**
|
||||||
|
** Commercial License Usage
|
||||||
|
** Licensees holding valid commercial Qt licenses may use this file in
|
||||||
|
** accordance with the commercial license agreement provided with the
|
||||||
|
** Software or, alternatively, in accordance with the terms contained in
|
||||||
|
** a written agreement between you and The Qt Company. For licensing terms
|
||||||
|
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||||
|
** information use the contact form at https://www.qt.io/contact-us.
|
||||||
|
**
|
||||||
|
** GNU General Public License Usage
|
||||||
|
** Alternatively, this file may be used under the terms of the GNU
|
||||||
|
** General Public License version 3 as published by the Free Software
|
||||||
|
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
||||||
|
** included in the packaging of this file. Please review the following
|
||||||
|
** information to ensure the GNU General Public License requirements will
|
||||||
|
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
import HelperWidgets 2.0
|
||||||
|
import QtQuick 2.1
|
||||||
|
import QtQuick.Layouts 1.1
|
||||||
|
Column {
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
|
||||||
|
AnimationSection {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@@ -0,0 +1,60 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 The Qt Company Ltd.
|
||||||
|
** Contact: https://www.qt.io/licensing/
|
||||||
|
**
|
||||||
|
** This file is part of Qt Creator.
|
||||||
|
**
|
||||||
|
** Commercial License Usage
|
||||||
|
** Licensees holding valid commercial Qt licenses may use this file in
|
||||||
|
** accordance with the commercial license agreement provided with the
|
||||||
|
** Software or, alternatively, in accordance with the terms contained in
|
||||||
|
** a written agreement between you and The Qt Company. For licensing terms
|
||||||
|
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||||
|
** information use the contact form at https://www.qt.io/contact-us.
|
||||||
|
**
|
||||||
|
** GNU General Public License Usage
|
||||||
|
** Alternatively, this file may be used under the terms of the GNU
|
||||||
|
** General Public License version 3 as published by the Free Software
|
||||||
|
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
||||||
|
** included in the packaging of this file. Please review the following
|
||||||
|
** information to ensure the GNU General Public License requirements will
|
||||||
|
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
import HelperWidgets 2.0
|
||||||
|
import QtQuick 2.1
|
||||||
|
import QtQuick.Layouts 1.1
|
||||||
|
Column {
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
|
||||||
|
Section {
|
||||||
|
id: section
|
||||||
|
caption: qsTr("Property Action")
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
|
||||||
|
SectionLayout {
|
||||||
|
Label {
|
||||||
|
text: qsTr("Value")
|
||||||
|
tooltip: qsTr("Sets the value of the property.")
|
||||||
|
}
|
||||||
|
LineEdit {
|
||||||
|
backendValue: backendValues.value
|
||||||
|
Layout.fillWidth: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
AnimationTargetSection {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
AnimationSection {
|
||||||
|
showDuration: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@@ -0,0 +1,40 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** Copyright (C) 2016 The Qt Company Ltd.
|
||||||
|
** Contact: https://www.qt.io/licensing/
|
||||||
|
**
|
||||||
|
** This file is part of Qt Creator.
|
||||||
|
**
|
||||||
|
** Commercial License Usage
|
||||||
|
** Licensees holding valid commercial Qt licenses may use this file in
|
||||||
|
** accordance with the commercial license agreement provided with the
|
||||||
|
** Software or, alternatively, in accordance with the terms contained in
|
||||||
|
** a written agreement between you and The Qt Company. For licensing terms
|
||||||
|
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||||
|
** information use the contact form at https://www.qt.io/contact-us.
|
||||||
|
**
|
||||||
|
** GNU General Public License Usage
|
||||||
|
** Alternatively, this file may be used under the terms of the GNU
|
||||||
|
** General Public License version 3 as published by the Free Software
|
||||||
|
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
||||||
|
** included in the packaging of this file. Please review the following
|
||||||
|
** information to ensure the GNU General Public License requirements will
|
||||||
|
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
import HelperWidgets 2.0
|
||||||
|
import QtQuick 2.1
|
||||||
|
import QtQuick.Layouts 1.1
|
||||||
|
Column {
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
|
||||||
|
AnimationTargetSection {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
AnimationSection {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@@ -0,0 +1,37 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 The Qt Company Ltd.
|
||||||
|
** Contact: https://www.qt.io/licensing/
|
||||||
|
**
|
||||||
|
** This file is part of Qt Creator.
|
||||||
|
**
|
||||||
|
** Commercial License Usage
|
||||||
|
** Licensees holding valid commercial Qt licenses may use this file in
|
||||||
|
** accordance with the commercial license agreement provided with the
|
||||||
|
** Software or, alternatively, in accordance with the terms contained in
|
||||||
|
** a written agreement between you and The Qt Company. For licensing terms
|
||||||
|
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||||
|
** information use the contact form at https://www.qt.io/contact-us.
|
||||||
|
**
|
||||||
|
** GNU General Public License Usage
|
||||||
|
** Alternatively, this file may be used under the terms of the GNU
|
||||||
|
** General Public License version 3 as published by the Free Software
|
||||||
|
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
||||||
|
** included in the packaging of this file. Please review the following
|
||||||
|
** information to ensure the GNU General Public License requirements will
|
||||||
|
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
import HelperWidgets 2.0
|
||||||
|
import QtQuick 2.1
|
||||||
|
import QtQuick.Layouts 1.1
|
||||||
|
Column {
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
|
||||||
|
AnimationSection {
|
||||||
|
showDuration: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@@ -0,0 +1,37 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 The Qt Company Ltd.
|
||||||
|
** Contact: https://www.qt.io/licensing/
|
||||||
|
**
|
||||||
|
** This file is part of Qt Creator.
|
||||||
|
**
|
||||||
|
** Commercial License Usage
|
||||||
|
** Licensees holding valid commercial Qt licenses may use this file in
|
||||||
|
** accordance with the commercial license agreement provided with the
|
||||||
|
** Software or, alternatively, in accordance with the terms contained in
|
||||||
|
** a written agreement between you and The Qt Company. For licensing terms
|
||||||
|
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||||
|
** information use the contact form at https://www.qt.io/contact-us.
|
||||||
|
**
|
||||||
|
** GNU General Public License Usage
|
||||||
|
** Alternatively, this file may be used under the terms of the GNU
|
||||||
|
** General Public License version 3 as published by the Free Software
|
||||||
|
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
||||||
|
** included in the packaging of this file. Please review the following
|
||||||
|
** information to ensure the GNU General Public License requirements will
|
||||||
|
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
import HelperWidgets 2.0
|
||||||
|
import QtQuick 2.1
|
||||||
|
import QtQuick.Layouts 1.1
|
||||||
|
Column {
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
|
||||||
|
AnimationSection {
|
||||||
|
showDuration: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@@ -45,7 +45,7 @@ namespace Internal {
|
|||||||
|
|
||||||
class ActionHandler::ActionHandlerPrivate {
|
class ActionHandler::ActionHandlerPrivate {
|
||||||
public:
|
public:
|
||||||
Core::Context context;
|
Core::Context context{Constants::MODEL_EDITOR_ID};
|
||||||
QAction *undoAction = nullptr;
|
QAction *undoAction = nullptr;
|
||||||
QAction *redoAction = nullptr;
|
QAction *redoAction = nullptr;
|
||||||
QAction *cutAction = nullptr;
|
QAction *cutAction = nullptr;
|
||||||
@@ -60,11 +60,9 @@ public:
|
|||||||
QAction *exportSelectedElementsAction = nullptr;
|
QAction *exportSelectedElementsAction = nullptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
ActionHandler::ActionHandler(const Core::Context &context, QObject *parent)
|
ActionHandler::ActionHandler()
|
||||||
: QObject(parent),
|
: d(new ActionHandlerPrivate)
|
||||||
d(new ActionHandlerPrivate)
|
|
||||||
{
|
{
|
||||||
d->context = context;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ActionHandler::~ActionHandler()
|
ActionHandler::~ActionHandler()
|
||||||
|
@@ -52,7 +52,7 @@ class ActionHandler :
|
|||||||
class ActionHandlerPrivate;
|
class ActionHandlerPrivate;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
ActionHandler(const Core::Context &context, QObject *parent = nullptr);
|
ActionHandler();
|
||||||
~ActionHandler();
|
~ActionHandler();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@@ -32,6 +32,7 @@
|
|||||||
#include "modelsmanager.h"
|
#include "modelsmanager.h"
|
||||||
#include "settingscontroller.h"
|
#include "settingscontroller.h"
|
||||||
#include "uicontroller.h"
|
#include "uicontroller.h"
|
||||||
|
#include "actionhandler.h"
|
||||||
|
|
||||||
#include "qmt/infrastructure/uid.h"
|
#include "qmt/infrastructure/uid.h"
|
||||||
|
|
||||||
@@ -59,7 +60,8 @@ class ModelEditorPluginPrivate final
|
|||||||
public:
|
public:
|
||||||
ModelsManager modelsManager;
|
ModelsManager modelsManager;
|
||||||
UiController uiController;
|
UiController uiController;
|
||||||
ModelEditorFactory modelFactory{&uiController};
|
ActionHandler actionHandler;
|
||||||
|
ModelEditorFactory modelFactory{&uiController, &actionHandler};
|
||||||
SettingsController settingsController;
|
SettingsController settingsController;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -93,10 +95,7 @@ bool ModelEditorPlugin::initialize(const QStringList &arguments, QString *errorS
|
|||||||
|
|
||||||
void ModelEditorPlugin::extensionsInitialized()
|
void ModelEditorPlugin::extensionsInitialized()
|
||||||
{
|
{
|
||||||
// Retrieve objects from the plugin manager's object pool
|
d->actionHandler.createActions();
|
||||||
// In the extensionsInitialized method, a plugin can be sure that all
|
|
||||||
// plugins that depend on it are completely initialized.
|
|
||||||
d->modelFactory.extensionsInitialized();
|
|
||||||
d->settingsController.load(Core::ICore::settings());
|
d->settingsController.load(Core::ICore::settings());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -34,24 +34,12 @@
|
|||||||
namespace ModelEditor {
|
namespace ModelEditor {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
ModelEditorFactory::ModelEditorFactory(UiController *uiController)
|
ModelEditorFactory::ModelEditorFactory(UiController *uiController, ActionHandler *actionHandler)
|
||||||
{
|
{
|
||||||
setId(Constants::MODEL_EDITOR_ID);
|
setId(Constants::MODEL_EDITOR_ID);
|
||||||
setDisplayName(QCoreApplication::translate("OpenWith::Editors", Constants::MODEL_EDITOR_DISPLAY_NAME));
|
setDisplayName(QCoreApplication::translate("OpenWith::Editors", Constants::MODEL_EDITOR_DISPLAY_NAME));
|
||||||
addMimeType(Constants::MIME_TYPE_MODEL);
|
addMimeType(Constants::MIME_TYPE_MODEL);
|
||||||
m_uiController = uiController;
|
setEditorCreator([uiController, actionHandler] { return new ModelEditor(uiController, actionHandler); });
|
||||||
m_actionHandler = new ActionHandler(Core::Context(Constants::MODEL_EDITOR_ID), this);
|
|
||||||
setEditorCreator([this] { return new ModelEditor(m_uiController, m_actionHandler); });
|
|
||||||
}
|
|
||||||
|
|
||||||
ModelEditorFactory::~ModelEditorFactory()
|
|
||||||
{
|
|
||||||
delete m_actionHandler;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ModelEditorFactory::extensionsInitialized()
|
|
||||||
{
|
|
||||||
m_actionHandler->createActions();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
@@ -37,14 +37,7 @@ class UiController;
|
|||||||
class ModelEditorFactory : public Core::IEditorFactory
|
class ModelEditorFactory : public Core::IEditorFactory
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit ModelEditorFactory(UiController *uiController);
|
ModelEditorFactory(UiController *uiController, ActionHandler *actionHandler);
|
||||||
~ModelEditorFactory();
|
|
||||||
|
|
||||||
void extensionsInitialized();
|
|
||||||
|
|
||||||
private:
|
|
||||||
UiController *m_uiController = nullptr;
|
|
||||||
ActionHandler *m_actionHandler = nullptr;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
@@ -261,84 +261,7 @@ QString QbsBuildConfiguration::configurationName() const
|
|||||||
return m_configurationName->value();
|
return m_configurationName->value();
|
||||||
}
|
}
|
||||||
|
|
||||||
class StepProxy
|
QString QbsBuildConfiguration::equivalentCommandLine(const QbsBuildStepData &stepData) const
|
||||||
{
|
|
||||||
public:
|
|
||||||
StepProxy(const BuildStep *buildStep)
|
|
||||||
: m_qbsBuildStep(qobject_cast<const QbsBuildStep *>(buildStep))
|
|
||||||
, m_qbsCleanStep(qobject_cast<const QbsCleanStep *>(buildStep))
|
|
||||||
, m_qbsInstallStep(qobject_cast<const QbsInstallStep *>(buildStep))
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
QString command() const {
|
|
||||||
if (m_qbsBuildStep)
|
|
||||||
return QLatin1String("build");
|
|
||||||
if (m_qbsInstallStep)
|
|
||||||
return QLatin1String("install");
|
|
||||||
return QLatin1String("clean");
|
|
||||||
}
|
|
||||||
|
|
||||||
bool dryRun() const {
|
|
||||||
if (m_qbsBuildStep)
|
|
||||||
return false;
|
|
||||||
if (m_qbsInstallStep)
|
|
||||||
return m_qbsInstallStep->dryRun();
|
|
||||||
return m_qbsCleanStep->dryRun();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool keepGoing() const {
|
|
||||||
if (m_qbsBuildStep)
|
|
||||||
return m_qbsBuildStep->keepGoing();
|
|
||||||
if (m_qbsInstallStep)
|
|
||||||
return m_qbsInstallStep->keepGoing();
|
|
||||||
return m_qbsCleanStep->keepGoing();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool forceProbeExecution() const { return m_qbsBuildStep && m_qbsBuildStep->forceProbes(); }
|
|
||||||
|
|
||||||
bool showCommandLines() const {
|
|
||||||
return m_qbsBuildStep ? m_qbsBuildStep->showCommandLines() : false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool noInstall() const {
|
|
||||||
return m_qbsBuildStep ? !m_qbsBuildStep->install() : false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool noBuild() const { return m_qbsInstallStep; }
|
|
||||||
|
|
||||||
bool cleanInstallRoot() const {
|
|
||||||
if (m_qbsBuildStep)
|
|
||||||
return m_qbsBuildStep->cleanInstallRoot();
|
|
||||||
if (m_qbsInstallStep)
|
|
||||||
return m_qbsInstallStep->removeFirst();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
int jobCount() const {
|
|
||||||
return m_qbsBuildStep ? m_qbsBuildStep->maxJobs() : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
Utils::FilePath installRoot() const {
|
|
||||||
const QbsBuildStep *bs = nullptr;
|
|
||||||
if (m_qbsBuildStep) {
|
|
||||||
bs = m_qbsBuildStep;
|
|
||||||
} else if (m_qbsInstallStep) {
|
|
||||||
bs = static_cast<QbsBuildConfiguration *>(m_qbsInstallStep->deployConfiguration()
|
|
||||||
->target()->activeBuildConfiguration())->qbsStep();
|
|
||||||
}
|
|
||||||
if (bs)
|
|
||||||
return bs->installRoot();
|
|
||||||
return Utils::FilePath();
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
const QbsBuildStep * const m_qbsBuildStep;
|
|
||||||
const QbsCleanStep * const m_qbsCleanStep;
|
|
||||||
const QbsInstallStep * const m_qbsInstallStep;
|
|
||||||
};
|
|
||||||
|
|
||||||
QString QbsBuildConfiguration::equivalentCommandLine(const BuildStep *buildStep) const
|
|
||||||
{
|
{
|
||||||
CommandLine commandLine;
|
CommandLine commandLine;
|
||||||
const QString qbsInstallDir = QString::fromLocal8Bit(qgetenv("QBS_INSTALL_DIR"));
|
const QString qbsInstallDir = QString::fromLocal8Bit(qgetenv("QBS_INSTALL_DIR"));
|
||||||
@@ -346,42 +269,41 @@ QString QbsBuildConfiguration::equivalentCommandLine(const BuildStep *buildStep)
|
|||||||
? qbsInstallDir + QLatin1String("/bin/qbs")
|
? qbsInstallDir + QLatin1String("/bin/qbs")
|
||||||
: QCoreApplication::applicationDirPath() + QLatin1String("/qbs"));
|
: QCoreApplication::applicationDirPath() + QLatin1String("/qbs"));
|
||||||
commandLine.addArg(QDir::toNativeSeparators(qbsFilePath));
|
commandLine.addArg(QDir::toNativeSeparators(qbsFilePath));
|
||||||
const StepProxy stepProxy(buildStep);
|
commandLine.addArg(stepData.command);
|
||||||
commandLine.addArg(stepProxy.command());
|
|
||||||
const QString buildDir = buildDirectory().toUserOutput();
|
const QString buildDir = buildDirectory().toUserOutput();
|
||||||
commandLine.addArgs({"-d", buildDir});
|
commandLine.addArgs({"-d", buildDir});
|
||||||
commandLine.addArgs({"-f", buildStep->project()->projectFilePath().toUserOutput()});
|
commandLine.addArgs({"-f", project()->projectFilePath().toUserOutput()});
|
||||||
if (QbsSettings::useCreatorSettingsDirForQbs()) {
|
if (QbsSettings::useCreatorSettingsDirForQbs()) {
|
||||||
commandLine.addArgs({"--settings-dir",
|
commandLine.addArgs({"--settings-dir",
|
||||||
QDir::toNativeSeparators(QbsSettings::qbsSettingsBaseDir())});
|
QDir::toNativeSeparators(QbsSettings::qbsSettingsBaseDir())});
|
||||||
}
|
}
|
||||||
if (stepProxy.dryRun())
|
if (stepData.dryRun)
|
||||||
commandLine.addArg("--dry-run");
|
commandLine.addArg("--dry-run");
|
||||||
if (stepProxy.keepGoing())
|
if (stepData.keepGoing)
|
||||||
commandLine.addArg("--keep-going");
|
commandLine.addArg("--keep-going");
|
||||||
if (stepProxy.forceProbeExecution())
|
if (stepData.forceProbeExecution)
|
||||||
commandLine.addArg("--force-probe-execution");
|
commandLine.addArg("--force-probe-execution");
|
||||||
if (stepProxy.showCommandLines())
|
if (stepData.showCommandLines)
|
||||||
commandLine.addArgs({"--command-echo-mode", "command-line"});
|
commandLine.addArgs({"--command-echo-mode", "command-line"});
|
||||||
if (stepProxy.noInstall())
|
if (stepData.noInstall)
|
||||||
commandLine.addArg("--no-install");
|
commandLine.addArg("--no-install");
|
||||||
if (stepProxy.noBuild())
|
if (stepData.noBuild)
|
||||||
commandLine.addArg("--no-build");
|
commandLine.addArg("--no-build");
|
||||||
if (stepProxy.cleanInstallRoot())
|
if (stepData.cleanInstallRoot)
|
||||||
commandLine.addArg("--clean-install-root");
|
commandLine.addArg("--clean-install-root");
|
||||||
const int jobCount = stepProxy.jobCount();
|
const int jobCount = stepData.jobCount;
|
||||||
if (jobCount > 0)
|
if (jobCount > 0)
|
||||||
commandLine.addArgs({"--jobs", QString::number(jobCount)});
|
commandLine.addArgs({"--jobs", QString::number(jobCount)});
|
||||||
|
|
||||||
const QString profileName = QbsProfileManager::profileNameForKit(buildStep->target()->kit());
|
const QString profileName = QbsProfileManager::profileNameForKit(target()->kit());
|
||||||
const QString buildVariant = qbsConfiguration()
|
const QString buildVariant = qbsConfiguration()
|
||||||
.value(QLatin1String(Constants::QBS_CONFIG_VARIANT_KEY)).toString();
|
.value(QLatin1String(Constants::QBS_CONFIG_VARIANT_KEY)).toString();
|
||||||
commandLine.addArg("config:" + configurationName());
|
commandLine.addArg("config:" + configurationName());
|
||||||
commandLine.addArg(QString(Constants::QBS_CONFIG_VARIANT_KEY) + ':' + buildVariant);
|
commandLine.addArg(QString(Constants::QBS_CONFIG_VARIANT_KEY) + ':' + buildVariant);
|
||||||
const FilePath installRoot = stepProxy.installRoot();
|
const FilePath installRoot = stepData.installRoot;
|
||||||
if (!installRoot.isEmpty()) {
|
if (!installRoot.isEmpty()) {
|
||||||
commandLine.addArg(QString(Constants::QBS_INSTALL_ROOT_KEY) + ':' + installRoot.toUserOutput());
|
commandLine.addArg(QString(Constants::QBS_INSTALL_ROOT_KEY) + ':' + installRoot.toUserOutput());
|
||||||
if (qobject_cast<const QbsInstallStep *>(buildStep))
|
if (stepData.isInstallStep)
|
||||||
commandLine.addArgs({"--installRoot", installRoot.toUserOutput()});
|
commandLine.addArgs({"--installRoot", installRoot.toUserOutput()});
|
||||||
}
|
}
|
||||||
commandLine.addArg("profile:" + profileName);
|
commandLine.addArg("profile:" + profileName);
|
||||||
|
@@ -40,7 +40,22 @@ namespace QbsProjectManager {
|
|||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
class QbsBuildStep;
|
class QbsBuildStep;
|
||||||
class QbsProject;
|
|
||||||
|
class QbsBuildStepData
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
QString command;
|
||||||
|
bool dryRun = false;
|
||||||
|
bool keepGoing = false;
|
||||||
|
bool forceProbeExecution = false;
|
||||||
|
bool showCommandLines = false;
|
||||||
|
bool noInstall = false;
|
||||||
|
bool noBuild = false;
|
||||||
|
bool cleanInstallRoot = false;
|
||||||
|
bool isInstallStep = false;
|
||||||
|
int jobCount = 0;
|
||||||
|
Utils::FilePath installRoot;
|
||||||
|
};
|
||||||
|
|
||||||
class QbsBuildConfiguration final : public ProjectExplorer::BuildConfiguration
|
class QbsBuildConfiguration final : public ProjectExplorer::BuildConfiguration
|
||||||
{
|
{
|
||||||
@@ -73,7 +88,7 @@ public:
|
|||||||
QStringList products() const;
|
QStringList products() const;
|
||||||
|
|
||||||
QString configurationName() const;
|
QString configurationName() const;
|
||||||
QString equivalentCommandLine(const ProjectExplorer::BuildStep *buildStep) const;
|
QString equivalentCommandLine(const QbsBuildStepData &stepData) const;
|
||||||
|
|
||||||
bool isQmlDebuggingEnabled() const;
|
bool isQmlDebuggingEnabled() const;
|
||||||
ProjectExplorer::TriState qmlDebuggingSetting() const;
|
ProjectExplorer::TriState qmlDebuggingSetting() const;
|
||||||
|
@@ -523,6 +523,23 @@ void QbsBuildStep::finish()
|
|||||||
emit finished(m_lastWasSuccess);
|
emit finished(m_lastWasSuccess);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QbsBuildStepData QbsBuildStep::stepData() const
|
||||||
|
{
|
||||||
|
QbsBuildStepData data;
|
||||||
|
data.command = "build";
|
||||||
|
data.dryRun = false;
|
||||||
|
data.keepGoing = m_keepGoing;
|
||||||
|
data.forceProbeExecution = m_forceProbes;
|
||||||
|
data.showCommandLines = m_showCommandLines;
|
||||||
|
data.noInstall = !m_install;
|
||||||
|
data.noBuild = false;
|
||||||
|
data.cleanInstallRoot = m_cleanInstallDir;
|
||||||
|
data.jobCount = maxJobs();
|
||||||
|
data.installRoot = installRoot();
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// --------------------------------------------------------------------
|
// --------------------------------------------------------------------
|
||||||
// QbsBuildStepConfigWidget:
|
// QbsBuildStepConfigWidget:
|
||||||
// --------------------------------------------------------------------
|
// --------------------------------------------------------------------
|
||||||
@@ -674,7 +691,8 @@ void QbsBuildStepConfigWidget::updateState()
|
|||||||
const int idx = (buildVariant == Constants::QBS_VARIANT_DEBUG) ? 0 : 1;
|
const int idx = (buildVariant == Constants::QBS_VARIANT_DEBUG) ? 0 : 1;
|
||||||
buildVariantComboBox->setCurrentIndex(idx);
|
buildVariantComboBox->setCurrentIndex(idx);
|
||||||
const auto qbsBuildConfig = static_cast<QbsBuildConfiguration *>(step()->buildConfiguration());
|
const auto qbsBuildConfig = static_cast<QbsBuildConfiguration *>(step()->buildConfiguration());
|
||||||
QString command = qbsBuildConfig->equivalentCommandLine(qbsStep());
|
|
||||||
|
QString command = qbsBuildConfig->equivalentCommandLine(qbsStep()->stepData());
|
||||||
|
|
||||||
for (int i = 0; i < m_propertyCache.count(); ++i) {
|
for (int i = 0; i < m_propertyCache.count(); ++i) {
|
||||||
command += ' ' + m_propertyCache.at(i).name + ':' + m_propertyCache.at(i).effectiveValue;
|
command += ' ' + m_propertyCache.at(i).name + ':' + m_propertyCache.at(i).effectiveValue;
|
||||||
|
@@ -70,6 +70,7 @@ public:
|
|||||||
bool forceProbes() const { return m_forceProbes; }
|
bool forceProbes() const { return m_forceProbes; }
|
||||||
|
|
||||||
QbsBuildSystem *qbsBuildSystem() const;
|
QbsBuildSystem *qbsBuildSystem() const;
|
||||||
|
QbsBuildStepData stepData() const;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void qbsConfigurationChanged();
|
void qbsConfigurationChanged();
|
||||||
|
@@ -67,8 +67,12 @@ QbsCleanStep::QbsCleanStep(BuildStepList *bsl, Core::Id id)
|
|||||||
effectiveCommandAspect->setLabelText(tr("Equivalent command line:"));
|
effectiveCommandAspect->setLabelText(tr("Equivalent command line:"));
|
||||||
|
|
||||||
setSummaryUpdater([this, effectiveCommandAspect] {
|
setSummaryUpdater([this, effectiveCommandAspect] {
|
||||||
|
QbsBuildStepData data;
|
||||||
|
data.command = "clean";
|
||||||
|
data.dryRun = m_dryRunAspect->value();
|
||||||
|
data.keepGoing = m_keepGoingAspect->value();
|
||||||
QString command = static_cast<QbsBuildConfiguration *>(buildConfiguration())
|
QString command = static_cast<QbsBuildConfiguration *>(buildConfiguration())
|
||||||
->equivalentCommandLine(this);
|
->equivalentCommandLine(data);
|
||||||
effectiveCommandAspect->setValue(command);
|
effectiveCommandAspect->setValue(command);
|
||||||
return tr("<b>Qbs:</b> %1").arg(command);
|
return tr("<b>Qbs:</b> %1").arg(command);
|
||||||
});
|
});
|
||||||
|
@@ -44,8 +44,7 @@ public:
|
|||||||
QbsCleanStep(ProjectExplorer::BuildStepList *bsl, Core::Id id);
|
QbsCleanStep(ProjectExplorer::BuildStepList *bsl, Core::Id id);
|
||||||
~QbsCleanStep() override;
|
~QbsCleanStep() override;
|
||||||
|
|
||||||
bool dryRun() const { return m_dryRunAspect->value(); }
|
QbsBuildStepData stepData() const;
|
||||||
bool keepGoing() const { return m_keepGoingAspect->value(); }
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool init() override;
|
bool init() override;
|
||||||
|
@@ -182,7 +182,7 @@ void QbsInstallStep::installDone(const ErrorInfo &error)
|
|||||||
m_session = nullptr;
|
m_session = nullptr;
|
||||||
|
|
||||||
for (const ErrorInfoItem &item : error.items)
|
for (const ErrorInfoItem &item : error.items)
|
||||||
createTaskAndOutput(Task::Error, item.description, item.filePath.toString(), item.line);
|
createTaskAndOutput(Task::Error, item.description, item.filePath, item.line);
|
||||||
|
|
||||||
emit finished(!error.hasError());
|
emit finished(!error.hasError());
|
||||||
}
|
}
|
||||||
@@ -199,10 +199,10 @@ void QbsInstallStep::handleProgress(int value)
|
|||||||
emit progress(value * 100 / m_maxProgress, m_description);
|
emit progress(value * 100 / m_maxProgress, m_description);
|
||||||
}
|
}
|
||||||
|
|
||||||
void QbsInstallStep::createTaskAndOutput(ProjectExplorer::Task::TaskType type,
|
void QbsInstallStep::createTaskAndOutput(Task::TaskType type, const QString &message,
|
||||||
const QString &message, const QString &file, int line)
|
const Utils::FilePath &file, int line)
|
||||||
{
|
{
|
||||||
const CompileTask task(type, message, Utils::FilePath::fromString(file), line);
|
const CompileTask task(type, message, file, line);
|
||||||
emit addTask(task, 1);
|
emit addTask(task, 1);
|
||||||
emit addOutput(message, OutputFormat::Stdout);
|
emit addOutput(message, OutputFormat::Stdout);
|
||||||
}
|
}
|
||||||
@@ -231,6 +231,21 @@ void QbsInstallStep::setKeepGoing(bool kg)
|
|||||||
emit changed();
|
emit changed();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QbsBuildStepData QbsInstallStep::stepData() const
|
||||||
|
{
|
||||||
|
QbsBuildStepData data;
|
||||||
|
data.command = "install";
|
||||||
|
data.dryRun = dryRun();
|
||||||
|
data.keepGoing = keepGoing();
|
||||||
|
data.noBuild = true;
|
||||||
|
data.cleanInstallRoot = removeFirst();
|
||||||
|
data.isInstallStep = true;
|
||||||
|
auto bs = static_cast<QbsBuildConfiguration *>(target()->activeBuildConfiguration())->qbsStep();
|
||||||
|
if (bs)
|
||||||
|
data.installRoot = bs->installRoot();
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
// --------------------------------------------------------------------
|
// --------------------------------------------------------------------
|
||||||
// QbsInstallStepConfigWidget:
|
// QbsInstallStepConfigWidget:
|
||||||
// --------------------------------------------------------------------
|
// --------------------------------------------------------------------
|
||||||
@@ -320,7 +335,7 @@ void QbsInstallStepConfigWidget::updateState()
|
|||||||
m_keepGoingCheckBox->setChecked(m_step->keepGoing());
|
m_keepGoingCheckBox->setChecked(m_step->keepGoing());
|
||||||
}
|
}
|
||||||
|
|
||||||
QString command = m_step->buildConfig()->equivalentCommandLine(m_step);
|
QString command = m_step->buildConfig()->equivalentCommandLine(m_step->stepData());
|
||||||
|
|
||||||
m_commandLineTextEdit->setPlainText(command);
|
m_commandLineTextEdit->setPlainText(command);
|
||||||
|
|
||||||
|
@@ -48,6 +48,7 @@ public:
|
|||||||
bool removeFirst() const { return m_cleanInstallRoot; }
|
bool removeFirst() const { return m_cleanInstallRoot; }
|
||||||
bool dryRun() const { return m_dryRun; }
|
bool dryRun() const { return m_dryRun; }
|
||||||
bool keepGoing() const { return m_keepGoing; }
|
bool keepGoing() const { return m_keepGoing; }
|
||||||
|
QbsBuildStepData stepData() const;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void changed();
|
void changed();
|
||||||
@@ -66,7 +67,7 @@ private:
|
|||||||
void handleProgress(int value);
|
void handleProgress(int value);
|
||||||
|
|
||||||
void createTaskAndOutput(ProjectExplorer::Task::TaskType type,
|
void createTaskAndOutput(ProjectExplorer::Task::TaskType type,
|
||||||
const QString &message, const QString &file, int line);
|
const QString &message, const Utils::FilePath &file, int line);
|
||||||
|
|
||||||
void setRemoveFirst(bool rf);
|
void setRemoveFirst(bool rf);
|
||||||
void setDryRun(bool dr);
|
void setDryRun(bool dr);
|
||||||
|
@@ -33,6 +33,7 @@
|
|||||||
#include <nodeabstractproperty.h>
|
#include <nodeabstractproperty.h>
|
||||||
#include <exception.h>
|
#include <exception.h>
|
||||||
#include <nodemetainfo.h>
|
#include <nodemetainfo.h>
|
||||||
|
#include <nodelistproperty.h>
|
||||||
|
|
||||||
#include <QStandardItemModel>
|
#include <QStandardItemModel>
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
@@ -210,6 +211,10 @@ void ConnectionModel::updateTargetNode(int rowNumber)
|
|||||||
ModelNode connectionNode = signalHandlerProperty.parentModelNode();
|
ModelNode connectionNode = signalHandlerProperty.parentModelNode();
|
||||||
|
|
||||||
if (!newTarget.isEmpty()) {
|
if (!newTarget.isEmpty()) {
|
||||||
|
const ModelNode parent = connectionView()->modelNodeForId(newTarget);
|
||||||
|
if (parent.isValid() && QmlItemNode::isValidQmlItemNode(parent))
|
||||||
|
parent.nodeListProperty("data").reparentHere(connectionNode);
|
||||||
|
|
||||||
connectionView()->executeInTransaction("ConnectionModel::updateTargetNode", [= ,&connectionNode](){
|
connectionView()->executeInTransaction("ConnectionModel::updateTargetNode", [= ,&connectionNode](){
|
||||||
connectionNode.bindingProperty("target").setExpression(newTarget);
|
connectionNode.bindingProperty("target").setExpression(newTarget);
|
||||||
});
|
});
|
||||||
@@ -255,14 +260,21 @@ void ConnectionModel::addConnection()
|
|||||||
nodeMetaInfo.majorVersion(),
|
nodeMetaInfo.majorVersion(),
|
||||||
nodeMetaInfo.minorVersion());
|
nodeMetaInfo.minorVersion());
|
||||||
|
|
||||||
rootModelNode.nodeAbstractProperty(rootModelNode.metaInfo().defaultPropertyName()).reparentHere(newNode);
|
|
||||||
newNode.signalHandlerProperty("onClicked").setSource(QLatin1String("print(\"clicked\")"));
|
newNode.signalHandlerProperty("onClicked").setSource(QLatin1String("print(\"clicked\")"));
|
||||||
|
|
||||||
if (connectionView()->selectedModelNodes().count() == 1
|
if (connectionView()->selectedModelNodes().count() == 1) {
|
||||||
&& !connectionView()->selectedModelNodes().constFirst().id().isEmpty()) {
|
|
||||||
const ModelNode selectedNode = connectionView()->selectedModelNodes().constFirst();
|
const ModelNode selectedNode = connectionView()->selectedModelNodes().constFirst();
|
||||||
|
if (QmlItemNode::isValidQmlItemNode(selectedNode))
|
||||||
|
selectedNode.nodeAbstractProperty("data").reparentHere(newNode);
|
||||||
|
else
|
||||||
|
rootModelNode.nodeAbstractProperty(rootModelNode.metaInfo().defaultPropertyName()).reparentHere(newNode);
|
||||||
|
|
||||||
|
if (!connectionView()->selectedModelNodes().constFirst().id().isEmpty())
|
||||||
newNode.bindingProperty("target").setExpression(selectedNode.id());
|
newNode.bindingProperty("target").setExpression(selectedNode.id());
|
||||||
|
else
|
||||||
|
newNode.bindingProperty("target").setExpression(QLatin1String("parent"));
|
||||||
} else {
|
} else {
|
||||||
|
rootModelNode.nodeAbstractProperty(rootModelNode.metaInfo().defaultPropertyName()).reparentHere(newNode);
|
||||||
newNode.bindingProperty("target").setExpression(QLatin1String("parent"));
|
newNode.bindingProperty("target").setExpression(QLatin1String("parent"));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@@ -394,6 +394,9 @@ static void scatterItem(const ModelNode &pastedNode, const ModelNode &targetNode
|
|||||||
if (targetNode.metaInfo().isValid() && targetNode.metaInfo().isLayoutable())
|
if (targetNode.metaInfo().isValid() && targetNode.metaInfo().isLayoutable())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (!(pastedNode.hasVariantProperty("x") && pastedNode.hasVariantProperty("y")))
|
||||||
|
return;
|
||||||
|
|
||||||
bool scatter = false;
|
bool scatter = false;
|
||||||
foreach (const ModelNode &childNode, targetNode.directSubModelNodes()) {
|
foreach (const ModelNode &childNode, targetNode.directSubModelNodes()) {
|
||||||
if ((childNode.variantProperty("x").value() == pastedNode.variantProperty("x").value()) &&
|
if ((childNode.variantProperty("x").value() == pastedNode.variantProperty("x").value()) &&
|
||||||
|
@@ -120,7 +120,7 @@ ItemLibraryWidget::ItemLibraryWidget(QWidget *parent) :
|
|||||||
/* other widgets */
|
/* other widgets */
|
||||||
auto tabBar = new QTabBar(this);
|
auto tabBar = new QTabBar(this);
|
||||||
tabBar->addTab(tr("QML Types", "Title of library QML types view"));
|
tabBar->addTab(tr("QML Types", "Title of library QML types view"));
|
||||||
tabBar->addTab(tr("Resources", "Title of library resources view"));
|
tabBar->addTab(tr("Assets", "Title of library assets view"));
|
||||||
tabBar->addTab(tr("Imports", "Title of library imports view"));
|
tabBar->addTab(tr("Imports", "Title of library imports view"));
|
||||||
tabBar->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
|
tabBar->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
|
||||||
connect(tabBar, &QTabBar::currentChanged, this, &ItemLibraryWidget::setCurrentIndexOfStackedWidget);
|
connect(tabBar, &QTabBar::currentChanged, this, &ItemLibraryWidget::setCurrentIndexOfStackedWidget);
|
||||||
@@ -184,8 +184,8 @@ ItemLibraryWidget::ItemLibraryWidget(QWidget *parent) :
|
|||||||
font.setPixelSize(Theme::instance()->smallFontPixelSize());
|
font.setPixelSize(Theme::instance()->smallFontPixelSize());
|
||||||
button->setFont(font);
|
button->setFont(font);
|
||||||
button->setIcon(Utils::Icons::PLUS.icon());
|
button->setIcon(Utils::Icons::PLUS.icon());
|
||||||
button->setText(tr("Add New Resources..."));
|
button->setText(tr("Add New Assets..."));
|
||||||
button->setToolTip(tr("Add new resources to project."));
|
button->setToolTip(tr("Add new assets to project."));
|
||||||
button->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
|
button->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
|
||||||
flowLayout->addWidget(button);
|
flowLayout->addWidget(button);
|
||||||
connect(button, &QToolButton::clicked, this, &ItemLibraryWidget::addResources);
|
connect(button, &QToolButton::clicked, this, &ItemLibraryWidget::addResources);
|
||||||
@@ -511,7 +511,7 @@ void ItemLibraryWidget::addResources()
|
|||||||
const QString currentDir = lastDir.isEmpty() ? document->fileName().parentDir().toString() : lastDir;
|
const QString currentDir = lastDir.isEmpty() ? document->fileName().parentDir().toString() : lastDir;
|
||||||
|
|
||||||
const auto fileNames = QFileDialog::getOpenFileNames(Core::ICore::mainWindow(),
|
const auto fileNames = QFileDialog::getOpenFileNames(Core::ICore::mainWindow(),
|
||||||
tr("Add Resources"),
|
tr("Add Assets"),
|
||||||
currentDir,
|
currentDir,
|
||||||
filters.join(";;"));
|
filters.join(";;"));
|
||||||
|
|
||||||
|
@@ -149,10 +149,10 @@
|
|||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="minimum">
|
<property name="minimum">
|
||||||
<number>-10000</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="maximum">
|
<property name="maximum">
|
||||||
<number>10000</number>
|
<number>100000</number>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@@ -244,10 +244,10 @@
|
|||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="minimum">
|
<property name="minimum">
|
||||||
<number>-10000</number>
|
<number>-100000</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="maximum">
|
<property name="maximum">
|
||||||
<number>10000</number>
|
<number>100000</number>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@@ -313,10 +313,10 @@
|
|||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="minimum">
|
<property name="minimum">
|
||||||
<number>-10000</number>
|
<number>-100000</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="maximum">
|
<property name="maximum">
|
||||||
<number>10000</number>
|
<number>100000</number>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@@ -47,8 +47,6 @@ TimelineForm::TimelineForm(QWidget *parent)
|
|||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
ui->duration->setVisible(false);
|
|
||||||
|
|
||||||
connect(ui->expressionBindingLineEdit, &QLineEdit::editingFinished, [this]() {
|
connect(ui->expressionBindingLineEdit, &QLineEdit::editingFinished, [this]() {
|
||||||
QTC_ASSERT(m_timeline.isValid(), return );
|
QTC_ASSERT(m_timeline.isValid(), return );
|
||||||
|
|
||||||
@@ -135,13 +133,10 @@ void TimelineForm::setTimeline(const QmlTimeline &timeline)
|
|||||||
|
|
||||||
if (m_timeline.isValid()) {
|
if (m_timeline.isValid()) {
|
||||||
ui->idLineEdit->setText(m_timeline.modelNode().displayName());
|
ui->idLineEdit->setText(m_timeline.modelNode().displayName());
|
||||||
ui->duration->setValue(qRound(m_timeline.duration()));
|
|
||||||
ui->startFrame->setValue(
|
ui->startFrame->setValue(
|
||||||
m_timeline.modelNode().variantProperty("startFrame").value().toInt());
|
m_timeline.modelNode().variantProperty("startFrame").value().toInt());
|
||||||
ui->endFrame->setValue(m_timeline.modelNode().variantProperty("endFrame").value().toInt());
|
ui->endFrame->setValue(m_timeline.modelNode().variantProperty("endFrame").value().toInt());
|
||||||
|
|
||||||
ui->duration->setValue(qRound(m_timeline.duration()));
|
|
||||||
|
|
||||||
if (m_timeline.modelNode().hasBindingProperty("currentFrame")) {
|
if (m_timeline.modelNode().hasBindingProperty("currentFrame")) {
|
||||||
ui->expressionBindingLineEdit->setText(
|
ui->expressionBindingLineEdit->setText(
|
||||||
m_timeline.modelNode().bindingProperty("currentFrame").expression());
|
m_timeline.modelNode().bindingProperty("currentFrame").expression());
|
||||||
@@ -173,7 +168,6 @@ void TimelineForm::setProperty(const PropertyName &propertyName, const QVariant
|
|||||||
} catch (const Exception &e) {
|
} catch (const Exception &e) {
|
||||||
e.showException();
|
e.showException();
|
||||||
}
|
}
|
||||||
ui->duration->setValue(qRound(m_timeline.duration()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void TimelineForm::connectSpinBox(QSpinBox *spinBox, const PropertyName &propertyName)
|
void TimelineForm::connectSpinBox(QSpinBox *spinBox, const PropertyName &propertyName)
|
||||||
|
@@ -6,16 +6,19 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>627</width>
|
<width>641</width>
|
||||||
<height>170</height>
|
<height>170</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
<item row="1" column="8" colspan="2">
|
<item row="3" column="6" colspan="2">
|
||||||
<spacer name="horizontalSpacer_11">
|
<spacer name="horizontalSpacer_12">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>QSizePolicy::Expanding</enum>
|
||||||
|
</property>
|
||||||
<property name="sizeHint" stdset="0">
|
<property name="sizeHint" stdset="0">
|
||||||
<size>
|
<size>
|
||||||
<width>49</width>
|
<width>49</width>
|
||||||
@@ -24,72 +27,8 @@
|
|||||||
</property>
|
</property>
|
||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="5">
|
<item row="1" column="6" colspan="2">
|
||||||
<widget class="QSpinBox" name="endFrame">
|
<spacer name="horizontalSpacer_11">
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>80</width>
|
|
||||||
<height>0</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>80</width>
|
|
||||||
<height>16777215</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="minimum">
|
|
||||||
<number>-10000</number>
|
|
||||||
</property>
|
|
||||||
<property name="maximum">
|
|
||||||
<number>10000</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="2" colspan="2">
|
|
||||||
<widget class="QSpinBox" name="startFrame">
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>80</width>
|
|
||||||
<height>0</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>80</width>
|
|
||||||
<height>16777215</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="minimum">
|
|
||||||
<number>-10000</number>
|
|
||||||
</property>
|
|
||||||
<property name="maximum">
|
|
||||||
<number>10000</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="6">
|
|
||||||
<widget class="QLabel" name="label_9">
|
|
||||||
<property name="text">
|
|
||||||
<string>Duration</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="4" column="0">
|
|
||||||
<widget class="QLabel" name="label_8">
|
|
||||||
<property name="text">
|
|
||||||
<string>Expression binding:</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="8" colspan="2">
|
|
||||||
<spacer name="horizontalSpacer_10">
|
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
@@ -111,66 +50,18 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="3" colspan="2">
|
<item row="2" column="1">
|
||||||
<widget class="QRadioButton" name="animation">
|
<widget class="QLabel" name="label_6">
|
||||||
<property name="enabled">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Animation</string>
|
<string>Start frame:</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="checked">
|
<property name="alignment">
|
||||||
<bool>true</bool>
|
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="8" colspan="2">
|
<item row="2" column="2" colspan="2">
|
||||||
<spacer name="horizontalSpacer_12">
|
<widget class="QSpinBox" name="startFrame">
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeType">
|
|
||||||
<enum>QSizePolicy::Expanding</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>49</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item row="4" column="1" colspan="5">
|
|
||||||
<widget class="QLineEdit" name="expressionBindingLineEdit">
|
|
||||||
<property name="enabled">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>240</width>
|
|
||||||
<height>0</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="4" column="8" colspan="2">
|
|
||||||
<spacer name="horizontalSpacer_9">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeType">
|
|
||||||
<enum>QSizePolicy::Expanding</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>49</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="7">
|
|
||||||
<widget class="QSpinBox" name="duration">
|
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>80</width>
|
<width>80</width>
|
||||||
@@ -183,11 +74,11 @@
|
|||||||
<height>16777215</height>
|
<height>16777215</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="readOnly">
|
<property name="minimum">
|
||||||
<bool>true</bool>
|
<number>-100000</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="maximum">
|
<property name="maximum">
|
||||||
<number>20000</number>
|
<number>100000</number>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@@ -201,13 +92,6 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="1" colspan="5">
|
|
||||||
<widget class="QLineEdit" name="idLineEdit">
|
|
||||||
<property name="text">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="0">
|
<item row="1" column="0">
|
||||||
<widget class="QLabel" name="label_5">
|
<widget class="QLabel" name="label_5">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@@ -237,16 +121,100 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="1">
|
<item row="3" column="3" colspan="2">
|
||||||
<widget class="QLabel" name="label_6">
|
<widget class="QRadioButton" name="animation">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Start frame:</string>
|
<string>Animation</string>
|
||||||
|
</property>
|
||||||
|
<property name="checked">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="6" colspan="2">
|
||||||
|
<spacer name="horizontalSpacer_9">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>QSizePolicy::Expanding</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>49</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="0">
|
||||||
|
<widget class="QLabel" name="label_8">
|
||||||
|
<property name="text">
|
||||||
|
<string>Expression binding:</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="2" column="5">
|
||||||
|
<widget class="QSpinBox" name="endFrame">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>80</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>80</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<number>-100000</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>100000</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1" colspan="5">
|
||||||
|
<widget class="QLineEdit" name="idLineEdit">
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="1" colspan="5">
|
||||||
|
<widget class="QLineEdit" name="expressionBindingLineEdit">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>240</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="6" colspan="2">
|
||||||
|
<spacer name="horizontalSpacer_10">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>49</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<resources/>
|
<resources/>
|
||||||
|
@@ -275,4 +275,149 @@ MetaInfo {
|
|||||||
Property { name: "height"; type: "int"; value: 400; }
|
Property { name: "height"; type: "int"; value: 400; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Type {
|
||||||
|
name: "QtQuick.PropertyAnimation"
|
||||||
|
icon: ":/qtquickplugin/images/item-icon16.png"
|
||||||
|
|
||||||
|
Hints {
|
||||||
|
visibleInNavigator: true
|
||||||
|
canBeDroppedInNavigator: true
|
||||||
|
canBeDroppedInFormEditor: false
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Property Animation"
|
||||||
|
category: "Qt Quick - Animation"
|
||||||
|
libraryIcon: ":/qtquickplugin/images/item-icon.png"
|
||||||
|
version: "2.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Type {
|
||||||
|
name: "QtQuick.PauseAnimation"
|
||||||
|
icon: ":/qtquickplugin/images/item-icon16.png"
|
||||||
|
|
||||||
|
Hints {
|
||||||
|
visibleInNavigator: true
|
||||||
|
canBeDroppedInNavigator: true
|
||||||
|
canBeDroppedInFormEditor: false
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Pause Animation"
|
||||||
|
category: "Qt Quick - Animation"
|
||||||
|
libraryIcon: ":/qtquickplugin/images/item-icon.png"
|
||||||
|
version: "2.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Type {
|
||||||
|
name: "QtQuick.SequentialAnimation"
|
||||||
|
icon: ":/qtquickplugin/images/item-icon16.png"
|
||||||
|
|
||||||
|
Hints {
|
||||||
|
visibleInNavigator: true
|
||||||
|
canBeDroppedInNavigator: true
|
||||||
|
canBeDroppedInFormEditor: false
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Sequential Animation"
|
||||||
|
category: "Qt Quick - Animation"
|
||||||
|
libraryIcon: ":/qtquickplugin/images/item-icon.png"
|
||||||
|
version: "2.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Type {
|
||||||
|
name: "QtQuick.ParallelAnimation"
|
||||||
|
icon: ":/qtquickplugin/images/item-icon16.png"
|
||||||
|
|
||||||
|
Hints {
|
||||||
|
visibleInNavigator: true
|
||||||
|
canBeDroppedInNavigator: true
|
||||||
|
canBeDroppedInFormEditor: false
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Parallel Animation"
|
||||||
|
category: "Qt Quick - Animation"
|
||||||
|
libraryIcon: ":/qtquickplugin/images/item-icon.png"
|
||||||
|
version: "2.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Type {
|
||||||
|
name: "QtQuick.PropertyAction"
|
||||||
|
icon: ":/qtquickplugin/images/item-icon16.png"
|
||||||
|
|
||||||
|
Hints {
|
||||||
|
visibleInNavigator: true
|
||||||
|
canBeDroppedInNavigator: true
|
||||||
|
canBeDroppedInFormEditor: false
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Property Action"
|
||||||
|
category: "Qt Quick - Animation"
|
||||||
|
libraryIcon: ":/qtquickplugin/images/item-icon.png"
|
||||||
|
version: "2.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Type {
|
||||||
|
name: "QtQuick.ScriptAction"
|
||||||
|
icon: ":/qtquickplugin/images/item-icon16.png"
|
||||||
|
|
||||||
|
Hints {
|
||||||
|
visibleInNavigator: true
|
||||||
|
canBeDroppedInNavigator: true
|
||||||
|
canBeDroppedInFormEditor: false
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Script Action"
|
||||||
|
category: "Qt Quick - Animation"
|
||||||
|
libraryIcon: ":/qtquickplugin/images/item-icon.png"
|
||||||
|
version: "2.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Type {
|
||||||
|
name: "QtQuick.ColorAnimation"
|
||||||
|
icon: ":/qtquickplugin/images/item-icon16.png"
|
||||||
|
|
||||||
|
Hints {
|
||||||
|
visibleInNavigator: true
|
||||||
|
canBeDroppedInNavigator: true
|
||||||
|
canBeDroppedInFormEditor: false
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "ColorAnimation"
|
||||||
|
category: "Qt Quick - Animation"
|
||||||
|
libraryIcon: ":/qtquickplugin/images/item-icon.png"
|
||||||
|
version: "2.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Type {
|
||||||
|
name: "QtQuick.NumberAnimation"
|
||||||
|
icon: ":/qtquickplugin/images/item-icon16.png"
|
||||||
|
|
||||||
|
Hints {
|
||||||
|
visibleInNavigator: true
|
||||||
|
canBeDroppedInNavigator: true
|
||||||
|
canBeDroppedInFormEditor: false
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Number Animation"
|
||||||
|
category: "Qt Quick - Animation"
|
||||||
|
libraryIcon: ":/qtquickplugin/images/item-icon.png"
|
||||||
|
version: "2.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user