QGCToolBarButton.qml 2.21 KB
Newer Older
1 2
/****************************************************************************
 *
Gus Grubba's avatar
Gus Grubba committed
3
 * (c) 2009-2020 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
4 5 6 7 8
 *
 * QGroundControl is licensed according to the terms in the file
 * COPYING.md in the root of the source code directory.
 *
 ****************************************************************************/
9

10
import QtQuick          2.3
Gus Grubba's avatar
Gus Grubba committed
11
import QtQuick.Controls 2.4
12

13 14 15
import QGroundControl.Controls      1.0
import QGroundControl.Palette       1.0
import QGroundControl.ScreenTools   1.0
16

17 18 19
// Important Note: Toolbar buttons must manage their checked state manually in order to support
// view switch prevention. This means they can't be checkable or autoExclusive.

Gus Grubba's avatar
Gus Grubba committed
20 21 22
Button {
    id:                 button
    height:             ScreenTools.defaultFontPixelHeight * 3
Don Gagne's avatar
Don Gagne committed
23 24
    leftPadding:        _horizontalMargin
    rightPadding:       _horizontalMargin
25
    checkable:          false
dogmaphobic's avatar
dogmaphobic committed
26

27 28
    property bool logo: false

Don Gagne's avatar
Don Gagne committed
29 30
    property real _horizontalMargin: ScreenTools.defaultFontPixelWidth

31 32
    onCheckedChanged: checkable = false

Gus Grubba's avatar
Gus Grubba committed
33 34
    background: Rectangle {
        anchors.fill: parent
35
        color:  logo ? qgcPal.brandingPurple : (button.checked ? qgcPal.buttonHighlight : Qt.rgba(0,0,0,0))
dogmaphobic's avatar
dogmaphobic committed
36 37
    }

Gus Grubba's avatar
Gus Grubba committed
38
    contentItem: Row {
Don Gagne's avatar
Don Gagne committed
39 40
        spacing:                ScreenTools.defaultFontPixelWidth
        anchors.verticalCenter: button.verticalCenter
Gus Grubba's avatar
Gus Grubba committed
41 42 43 44 45 46
        QGCColoredImage {
            id:                     _icon
            height:                 ScreenTools.defaultFontPixelHeight * 2
            width:                  height
            sourceSize.height:      parent.height
            fillMode:               Image.PreserveAspectFit
47
            color:                  logo ? "white" : (button.checked ? qgcPal.buttonHighlightText : qgcPal.buttonText)
Gus Grubba's avatar
Gus Grubba committed
48 49 50 51 52
            source:                 button.icon.source
            anchors.verticalCenter: parent.verticalCenter
        }
        Label {
            id:                     _label
53
            visible:                text !== ""
Gus Grubba's avatar
Gus Grubba committed
54 55 56
            text:                   button.text
            color:                  button.checked ? qgcPal.buttonHighlightText : qgcPal.buttonText
            anchors.verticalCenter: parent.verticalCenter
dogmaphobic's avatar
dogmaphobic committed
57 58 59
        }
    }
}