opaque/Toolbar.qml

120 lines
2.6 KiB
QML
Raw Normal View History

2020-05-19 19:49:52 +00:00
import QtGraphicalEffects 1.0
import QtQuick 2.7
import QtQuick.Controls 2.4
import QtQuick.Controls.Material 2.0
import QtQuick.Layouts 1.3
import "." as Widgets
2020-05-19 20:25:56 +00:00
import "theme"
import "../opaque/fonts"
2020-05-19 19:49:52 +00:00
Rectangle { // Global Toolbar
id: toolbar
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
height: 35 * gcd.themeScale
Layout.minimumHeight: height
Layout.maximumHeight: height
2020-08-28 22:08:33 +00:00
color: Theme.toolbarMainColor
2020-05-19 19:49:52 +00:00
property alias leftMenuVisible: btnLeftMenu.visible
property alias backVisible: btnLeftBack.visible
property alias rightMenuVisible: btnRightMenu.visible
property alias titleWidth: paneArea.width
signal leftMenu()
signal back()
signal rightMenu()
Icon {
id: btnLeftMenu
iconColor: Theme.toolbarIconColor
2020-11-17 20:02:12 +00:00
source: gcd.assetPath + "core/menu-24px.webp"
2020-05-19 19:49:52 +00:00
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
2020-11-17 20:02:12 +00:00
width: 30 * gcd.themeScale
height: 30 * gcd.themeScale
2020-05-19 19:49:52 +00:00
onClicked: { leftMenu() }
}
Icon {
id: btnLeftBack
iconColor: Theme.toolbarIconColor
2020-11-17 20:02:12 +00:00
source: gcd.assetPath + "core/chevron_left-24px.webp"
2020-05-19 19:49:52 +00:00
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
2020-11-17 20:02:12 +00:00
width: 30 * gcd.themeScale
height: 30 * gcd.themeScale
2020-05-19 19:49:52 +00:00
onClicked: { back() }
}
Rectangle {
id: paneArea
anchors.right: parent.right
Label {
2020-05-19 19:49:52 +00:00
id: paneTitle
visible: true
anchors.horizontalCenter: parent.horizontalCenter
color: Theme.mainTextColor
font.pixelSize: Theme.primaryTextSize * gcd.themeScale
elide: Text.ElideRight
font.weight: Font.Bold
font.family: Fonts.applicationFontRegular.name
font.styleName: "Bold"
2020-05-19 19:49:52 +00:00
text: "global toolbar"
}
}
Icon {
id: btnRightMenu
iconColor: Theme.toolbarIconColor
2020-11-17 20:02:12 +00:00
source: gcd.assetPath + "core/more_vert-24px.webp"
2020-05-19 19:49:52 +00:00
visible: false
anchors.verticalCenter: parent.verticalCenter
anchors.right: parent.right
width: 30
height: 30
onClicked: { rightMenu() }
}
function setTitle(text, width) {
paneTitle.text = text
paneArea.width = theStack.width
2020-05-19 19:49:52 +00:00
paneTitle.visible = true
}
function hideTitle() {
paneTitle.visible = false
}
Connections {
target: gcd
onSetToolbarTitle: function(handle) {
setTitle(handle)
2020-05-19 19:49:52 +00:00
btnRightMenu.visible = true
}
}
}