13 changed files with 473 additions and 256 deletions
After Width: | Height: | Size: 10 KiB |
@ -0,0 +1,88 @@ |
|||||||
|
import QtQuick 2.2 |
||||||
|
import QtQuick.Controls 1.2 |
||||||
|
import QtQuick.Controls.Styles 1.2 |
||||||
|
import QtGraphicalEffects 1.0 |
||||||
|
import QGroundControl.FactSystem 1.0 |
||||||
|
|
||||||
|
Button { |
||||||
|
checkable: true |
||||||
|
height: 80 |
||||||
|
|
||||||
|
text: "Button" |
||||||
|
property bool setupComplete: true |
||||||
|
property bool setupIndicator: true |
||||||
|
|
||||||
|
style: ButtonStyle { |
||||||
|
id: buttonStyle |
||||||
|
|
||||||
|
property var __qgcpal: QGCPalette { |
||||||
|
colorGroup: control.enabled ? QGCPalette.Active : QGCPalette.Disabled |
||||||
|
} |
||||||
|
|
||||||
|
background: Rectangle { |
||||||
|
id: innerRect |
||||||
|
readonly property real titleHeight: 30 |
||||||
|
|
||||||
|
border.color: control.checked ? "#eee333" : "#676767" |
||||||
|
radius: 10 |
||||||
|
|
||||||
|
color: control.checked ? "#eee333" : "#343434" |
||||||
|
|
||||||
|
Text { |
||||||
|
id: titleBar |
||||||
|
|
||||||
|
width: parent.width |
||||||
|
height: parent.titleHeight |
||||||
|
|
||||||
|
verticalAlignment: TextEdit.AlignVCenter |
||||||
|
horizontalAlignment: TextEdit.AlignHCenter |
||||||
|
|
||||||
|
text: control.text |
||||||
|
font.pixelSize: 12 |
||||||
|
color: control.checked ? "black" : "white" |
||||||
|
|
||||||
|
Rectangle { |
||||||
|
id: setupIndicator |
||||||
|
|
||||||
|
readonly property real indicatorRadius: 6 |
||||||
|
|
||||||
|
x: parent.width - (indicatorRadius * 2) - 5 |
||||||
|
y: (parent.height - (indicatorRadius * 2)) / 2 |
||||||
|
width: indicatorRadius * 2 |
||||||
|
height: indicatorRadius * 2 |
||||||
|
|
||||||
|
radius: indicatorRadius |
||||||
|
color: control.setupIndicator ? (control.setupComplete ? "green" : "red") : innerRect.color |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
Rectangle { |
||||||
|
width: parent.width |
||||||
|
height: parent.height - parent.titleHeight |
||||||
|
|
||||||
|
y: parent.titleHeight |
||||||
|
|
||||||
|
color: __qgcpal.window |
||||||
|
border.color: control.checked ? "#eee333" : "#676767" |
||||||
|
|
||||||
|
Image { |
||||||
|
id: buttonImage |
||||||
|
source: "setupButtonImage.png" |
||||||
|
sourceSize: Qt.size(parent.width - 20, parent.height - 20) |
||||||
|
anchors.horizontalCenter: parent.horizontalCenter |
||||||
|
anchors.verticalCenter: parent.verticalCenter |
||||||
|
smooth: true |
||||||
|
visible: false |
||||||
|
} |
||||||
|
|
||||||
|
ColorOverlay { |
||||||
|
anchors.fill: buttonImage |
||||||
|
source: buttonImage |
||||||
|
color: control.checked ? "#eee333" : "#58585a" |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
label: Item {} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,2 @@ |
|||||||
|
Module QGroundControl.Controls |
||||||
|
SetupButton 1.0 SetupButton.qml |
@ -0,0 +1,90 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
<ui version="4.0"> |
||||||
|
<class>SetupView</class> |
||||||
|
<widget class="QWidget" name="SetupView"> |
||||||
|
<property name="geometry"> |
||||||
|
<rect> |
||||||
|
<x>0</x> |
||||||
|
<y>0</y> |
||||||
|
<width>946</width> |
||||||
|
<height>821</height> |
||||||
|
</rect> |
||||||
|
</property> |
||||||
|
<property name="windowTitle"> |
||||||
|
<string>Form</string> |
||||||
|
</property> |
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout"> |
||||||
|
<item> |
||||||
|
<widget class="QGCQuickWidget" name="buttonHolder"> |
||||||
|
<property name="sizePolicy"> |
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Preferred"> |
||||||
|
<horstretch>0</horstretch> |
||||||
|
<verstretch>0</verstretch> |
||||||
|
</sizepolicy> |
||||||
|
</property> |
||||||
|
<property name="minimumSize"> |
||||||
|
<size> |
||||||
|
<width>160</width> |
||||||
|
<height>0</height> |
||||||
|
</size> |
||||||
|
</property> |
||||||
|
<property name="maximumSize"> |
||||||
|
<size> |
||||||
|
<width>160</width> |
||||||
|
<height>16777215</height> |
||||||
|
</size> |
||||||
|
</property> |
||||||
|
<property name="resizeMode"> |
||||||
|
<enum>QGCQuickWidget::SizeRootObjectToView</enum> |
||||||
|
</property> |
||||||
|
</widget> |
||||||
|
</item> |
||||||
|
<item> |
||||||
|
<widget class="QWidget" name="setupWidget"> |
||||||
|
<property name="geometry"> |
||||||
|
<rect> |
||||||
|
<x>0</x> |
||||||
|
<y>0</y> |
||||||
|
<width>400</width> |
||||||
|
<height>300</height> |
||||||
|
</rect> |
||||||
|
</property> |
||||||
|
<property name="windowTitle"> |
||||||
|
<string>Form</string> |
||||||
|
</property> |
||||||
|
<property name="autoFillBackground"> |
||||||
|
<bool>true</bool> |
||||||
|
</property> |
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_2"> |
||||||
|
<item> |
||||||
|
<layout class="QVBoxLayout" name="setupWidgetLayout"/> |
||||||
|
</item> |
||||||
|
<item> |
||||||
|
<spacer name="verticalSpacer"> |
||||||
|
<property name="orientation"> |
||||||
|
<enum>Qt::Vertical</enum> |
||||||
|
</property> |
||||||
|
<property name="sizeHint" stdset="0"> |
||||||
|
<size> |
||||||
|
<width>20</width> |
||||||
|
<height>40</height> |
||||||
|
</size> |
||||||
|
</property> |
||||||
|
</spacer> |
||||||
|
</item> |
||||||
|
</layout> |
||||||
|
</widget> |
||||||
|
</item> |
||||||
|
</layout> |
||||||
|
</widget> |
||||||
|
<customwidgets> |
||||||
|
<customwidget> |
||||||
|
<class>QGCQuickWidget</class> |
||||||
|
<extends>QQuickWidget</extends> |
||||||
|
<header>QGCQuickWidget.h</header> |
||||||
|
<container>1</container> |
||||||
|
</customwidget> |
||||||
|
</customwidgets> |
||||||
|
<resources/> |
||||||
|
<connections/> |
||||||
|
</ui> |
@ -0,0 +1,88 @@ |
|||||||
|
import QtQuick 2.2 |
||||||
|
import QtQuick.Controls 1.2 |
||||||
|
import QtQuick.Controls.Styles 1.2 |
||||||
|
import QGroundControl.FactSystem 1.0 |
||||||
|
import QGroundControl.Controls 1.0 |
||||||
|
|
||||||
|
Rectangle { |
||||||
|
id: topLevel |
||||||
|
|
||||||
|
QGCPalette { id: palette; colorGroup: QGCPalette.Active } |
||||||
|
color: palette.window |
||||||
|
|
||||||
|
signal firmwareButtonClicked; |
||||||
|
signal summaryButtonClicked; |
||||||
|
signal parametersButtonClicked; |
||||||
|
signal setupButtonClicked(variant component); |
||||||
|
|
||||||
|
ExclusiveGroup { id: setupButtonGroup } |
||||||
|
|
||||||
|
Component { |
||||||
|
id: disconnectedButtons |
||||||
|
|
||||||
|
Column { |
||||||
|
spacing: 10 |
||||||
|
|
||||||
|
SetupButton { |
||||||
|
id: firmwareButton; objectName: "firmwareButton" |
||||||
|
width: parent.width |
||||||
|
text: "FIRMWARE" |
||||||
|
setupIndicator: false |
||||||
|
exclusiveGroup: setupButtonGroup |
||||||
|
onClicked: topLevel.firmwareButtonClicked() |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
Component { |
||||||
|
id: connectedButtons |
||||||
|
|
||||||
|
Column { |
||||||
|
spacing: 10 |
||||||
|
|
||||||
|
SetupButton { |
||||||
|
id: summaryButton; objectName: "summaryButton" |
||||||
|
width: parent.width |
||||||
|
text: "VEHICLE SUMMARY" |
||||||
|
setupIndicator: false |
||||||
|
exclusiveGroup: setupButtonGroup |
||||||
|
onClicked: topLevel.summaryButtonClicked() |
||||||
|
} |
||||||
|
|
||||||
|
SetupButton { |
||||||
|
id: firmwareButton; objectName: "firmwareButton" |
||||||
|
width: parent.width |
||||||
|
text: "FIRMWARE" |
||||||
|
setupIndicator: false |
||||||
|
exclusiveGroup: setupButtonGroup |
||||||
|
onClicked: topLevel.firmwareButtonClicked() |
||||||
|
} |
||||||
|
|
||||||
|
Repeater { |
||||||
|
model: autopilot.components |
||||||
|
|
||||||
|
SetupButton { |
||||||
|
width: parent.width |
||||||
|
text: modelData.name.toUpperCase() |
||||||
|
setupComplete: modelData.setupComplete |
||||||
|
exclusiveGroup: setupButtonGroup |
||||||
|
onClicked: topLevel.setupButtonClicked(modelData) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
SetupButton { |
||||||
|
width: parent.width |
||||||
|
text: "PARAMETERS" |
||||||
|
setupIndicator: false |
||||||
|
exclusiveGroup: setupButtonGroup |
||||||
|
onClicked: topLevel.parametersButtonClicked() |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
Loader { |
||||||
|
anchors.fill: parent |
||||||
|
sourceComponent: autopilot ? connectedButtons : disconnectedButtons |
||||||
|
} |
||||||
|
} |
@ -1,40 +0,0 @@ |
|||||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||||
<ui version="4.0"> |
|
||||||
<class>SetupWidgetHolder</class> |
|
||||||
<widget class="QDialog" name="SetupWidgetHolder"> |
|
||||||
<property name="geometry"> |
|
||||||
<rect> |
|
||||||
<x>0</x> |
|
||||||
<y>0</y> |
|
||||||
<width>400</width> |
|
||||||
<height>300</height> |
|
||||||
</rect> |
|
||||||
</property> |
|
||||||
<property name="windowTitle"> |
|
||||||
<string>Form</string> |
|
||||||
</property> |
|
||||||
<property name="autoFillBackground"> |
|
||||||
<bool>true</bool> |
|
||||||
</property> |
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_2"> |
|
||||||
<item> |
|
||||||
<layout class="QVBoxLayout" name="setupWidgetLayout"/> |
|
||||||
</item> |
|
||||||
<item> |
|
||||||
<spacer name="verticalSpacer"> |
|
||||||
<property name="orientation"> |
|
||||||
<enum>Qt::Vertical</enum> |
|
||||||
</property> |
|
||||||
<property name="sizeHint" stdset="0"> |
|
||||||
<size> |
|
||||||
<width>20</width> |
|
||||||
<height>40</height> |
|
||||||
</size> |
|
||||||
</property> |
|
||||||
</spacer> |
|
||||||
</item> |
|
||||||
</layout> |
|
||||||
</widget> |
|
||||||
<resources/> |
|
||||||
<connections/> |
|
||||||
</ui> |
|
@ -1,10 +1,14 @@ |
|||||||
import QtQuick 2.2 |
import QtQuick 2.2 |
||||||
import QtQuick.Controls 1.2 |
import QtQuick.Controls 1.2 |
||||||
import QtQuick.Controls.Styles 1.2 |
import QtQuick.Controls.Styles 1.2 |
||||||
//import QGroundControl.FactControls 1.0 |
import QGroundControl.FactControls 1.0 |
||||||
|
|
||||||
Row { |
|
||||||
width: 200 |
Rectangle { |
||||||
Text { id: firstCol; text: "Col 1" } |
QGCPalette { id: palette; colorGroup: enabled ? QGCPalette.Active : QGCPalette.Disabled } |
||||||
Text { horizontalAlignment: Text.AlignRight; width: parent.width - firstCol.contentWidth; text: "Col 2" } |
|
||||||
|
width: 100 |
||||||
|
height: 100 |
||||||
|
color: "#e43f3f" |
||||||
|
// palette.windowText |
||||||
} |
} |
||||||
|
Loading…
Reference in new issue