opaque/Toolbar.qml

126 lines
2.7 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
2020-05-19 20:25:56 +00:00
import "fonts/Twemoji.js" as T
2020-05-19 19:49:52 +00:00
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
source: gcd.assetPath + "core/menu-24px.svg"
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
width: 30
height: 30
onClicked: { leftMenu() }
}
Icon {
id: btnLeftBack
iconColor: Theme.toolbarIconColor
source: gcd.assetPath + "core/chevron_left-24px.svg"
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
width: 30
height: 30
onClicked: { back() }
}
Rectangle {
id: paneArea
anchors.right: parent.right
EllipsisLabel {
id: paneTitle
visible: true
anchors.horizontalCenter: parent.horizontalCenter
color: Theme.mainTextColor
size: Theme.tabSize * gcd.themeScale
2020-05-19 19:49:52 +00:00
weight: Font.Bold
font.family: Fonts.applicationFontRegular.name
font.styleName: "Bold"
2020-05-19 19:49:52 +00:00
text: "global toolbar"
//extraPadding: btnRightMenu.width + 10
}
onWidthChanged: { paneTitle.textResize() }
}
Icon {
id: btnRightMenu
iconColor: Theme.toolbarIconColor
source: gcd.assetPath + "core/more_vert-24px.svg"
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.textResize()
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
}
}
}