QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
QGCToolBarButton.qml
Go to the documentation of this file.
1import QtQuick
2import QtQuick.Controls
3
4import QGroundControl
5import QGroundControl.Controls
6
7// Important Note: Toolbar buttons must manage their checked state manually in order to support
8// view switch prevention. This means they can't be checkable or autoExclusive.
9
10Button {
11 id: button
12 height: ScreenTools.defaultFontPixelHeight * 3
13 leftPadding: _horizontalMargin
14 rightPadding: _horizontalMargin
15 checkable: false
16
17 property bool logo: false
18
19 property real _horizontalMargin: ScreenTools.defaultFontPixelWidth
20
21 onCheckedChanged: checkable = false
22
23 background: Rectangle {
24 anchors.fill: parent
25 color: button.checked ? qgcPal.buttonHighlight : Qt.rgba(0,0,0,0)
26 border.color: "red"
27 border.width: QGroundControl.corePlugin.showTouchAreas ? 3 : 0
28 }
29
30 contentItem: Row {
31 spacing: ScreenTools.defaultFontPixelWidth
32 anchors.verticalCenter: button.verticalCenter
33 // Logo buttons render the multi-color SVG natively via VectorImage; non-logo buttons
34 // tint their monochrome icon through QGCColoredImage. Plain `Row` skips visible:false items.
35 QGCVectorImage {
36 visible: button.logo
37 height: ScreenTools.defaultFontPixelHeight * 2
38 width: height
39 source: visible ? button.icon.source : ""
40 anchors.verticalCenter: parent.verticalCenter
41 }
42 QGCColoredImage {
43 visible: !button.logo
44 height: ScreenTools.defaultFontPixelHeight * 2
45 width: height
46 sourceSize.height: parent.height
47 fillMode: Image.PreserveAspectFit
48 color: button.checked ? qgcPal.buttonHighlightText : qgcPal.buttonText
49 source: visible ? button.icon.source : ""
50 anchors.verticalCenter: parent.verticalCenter
51 }
52 Label {
53 id: _label
54 visible: text !== ""
55 text: button.text
56 color: button.checked ? qgcPal.buttonHighlightText : qgcPal.buttonText
57 anchors.verticalCenter: parent.verticalCenter
58 }
59 }
60}