Commit f6c7ab20 authored by Sylvain Berfini's avatar Sylvain Berfini

Reworked menu bar to use burger

parent 48c0678b
......@@ -47,9 +47,9 @@ ApplicationWindow {
// Menu bar.
// ---------------------------------------------------------------------------
menuBar: MainWindowMenuBar {
/*menuBar: MainWindowMenuBar {
hide: mainLoader.item ? !mainLoader.item.collapse.isCollapsed : true
}
}*/
// ---------------------------------------------------------------------------
......@@ -184,6 +184,20 @@ ApplicationWindow {
visible: !smartSearchBar.isOpen
}
}
Icon {
icon: 'burger_menu_normal'
iconSize: 16
MainWindowMenuBar {
id: mainmenu
}
MouseArea {
anchors.fill: parent
onClicked: mainmenu.open()
}
}
}
}
......
import QtQuick 2.7
import QtQuick.Controls 1.4
import QtQuick.Controls 2.1
import QtQuick.Controls.Styles 1.4
import QtQuick.Window 2.2
import Qt.labs.platform 1.0
import Linphone 1.0
......@@ -9,175 +10,79 @@ import App.Styles 1.0
// =============================================================================
MenuBar {
id: container
// ---------------------------------------------------------------------------
property bool hide: false
// ---------------------------------------------------------------------------
// Workaround to hide toolbar.
// Use private properties of MenuBar.
__contentItem.height: hide
? 0
: MainWindowMenuBarStyle.height
__contentItem.transform: Scale {
yScale: Number(!hide)
Item {
function open() {
menu.open()
}
// ---------------------------------------------------------------------------
style: MenuBarStyle {
background: Rectangle {
color: MainWindowMenuBarStyle.color
Rectangle {
anchors.bottom: parent.bottom
color: MainWindowMenuBarStyle.separator.color
height: MainWindowMenuBarStyle.separator.height
width: parent.width
Menu {
id: menu
Menu {
title: qsTr('options')
MenuItem {
shortcut: 'Ctrl+P'
text: qsTr('settings')
onTriggered: {
var window = App.getSettingsWindow()
if (window.visibility === Window.Minimized) {
window.visibility = Window.AutomaticVisibility
} else {
window.setVisible(true)
}
}
}
}
menuStyle: MenuStyle {
id: menuStyle
font.pointSize: MainWindowMenuBarStyle.subMenu.text.fontSize
MenuSeparator {}
frame: Item {}
MenuItem {
shortcut: StandardKey.Quit
text: qsTr('quit')
itemDelegate {
background: Rectangle {
color: (styleData.selected || styleData.open)
? MainWindowMenuBarStyle.subMenu.color.selected
: MainWindowMenuBarStyle.subMenu.color.normal
}
label: Label {
color: styleData.selected
? MainWindowMenuBarStyle.subMenu.text.color.selected
: MainWindowMenuBarStyle.subMenu.text.color.normal
font: menuStyle.font
text: styleData.text
}
shortcut: Label {
color: styleData.selected
? MainWindowMenuBarStyle.subMenu.text.color.selected
: MainWindowMenuBarStyle.subMenu.text.color.normal
font: menuStyle.font
text: styleData.shortcut
}
onTriggered: Qt.quit()
}
}
itemDelegate: Item {
implicitHeight: menuItem.height + MainWindowMenuBarStyle.separator.spacing
implicitWidth: menuItem.width
Item {
id: menuItem
// ---------------------------------------------------------------------------
// Tools.
// ---------------------------------------------------------------------------
implicitHeight: text.height + MainWindowMenuBarStyle.menu.text.verticalMargins * 2
implicitWidth: text.width + MainWindowMenuBarStyle.menu.text.horizontalMargins * 2
Menu {
title: qsTr('tools')
Text {
id: text
MenuItem {
text: qsTr('audioAssistant')
anchors.centerIn: parent
color: styleData.open
? MainWindowMenuBarStyle.menu.text.color.selected
: MainWindowMenuBarStyle.menu.text.color.normal
font.pointSize: MainWindowMenuBarStyle.menu.text.fontSize
text: formatMnemonic(styleData.text, styleData.underlineMnemonic)
}
Rectangle {
anchors.bottom: parent.bottom
color: MainWindowMenuBarStyle.menu.indicator.color
visible: styleData.open
height: MainWindowMenuBarStyle.menu.indicator.height
width: parent.width
}
onTriggered: console.log('TODO')
}
}
}
// ---------------------------------------------------------------------------
// Options.
// ---------------------------------------------------------------------------
Menu {
// ---------------------------------------------------------------------------
// Help.
// ---------------------------------------------------------------------------
title: qsTr('options')
Menu {
title: qsTr('help')
MenuItem {
shortcut: 'Ctrl+P'
text: qsTr('settings')
MenuItem {
shortcut: StandardKey.HelpContents
text: qsTr('about')
onTriggered: {
var window = App.getSettingsWindow()
if (window.visibility === Window.Minimized) {
window.visibility = Window.AutomaticVisibility
} else {
window.setVisible(true)
onTriggered: {
window.detachVirtualWindow()
window.attachVirtualWindow(Qt.resolvedUrl('About.qml'))
}
}
}
MenuSeparator {}
MenuItem {
shortcut: StandardKey.Quit
text: qsTr('quit')
onTriggered: Qt.quit()
}
}
// ---------------------------------------------------------------------------
// Tools.
// ---------------------------------------------------------------------------
Menu {
title: qsTr('tools')
MenuItem {
text: qsTr('audioAssistant')
onTriggered: console.log('TODO')
}
}
// ---------------------------------------------------------------------------
// Help.
// ---------------------------------------------------------------------------
MenuSeparator {}
Menu {
title: qsTr('help')
MenuItem {
text: qsTr('checkForUpdates')
MenuItem {
shortcut: StandardKey.HelpContents
text: qsTr('about')
onTriggered: {
window.detachVirtualWindow()
window.attachVirtualWindow(Qt.resolvedUrl('About.qml'))
onTriggered: console.log('TODO')
}
}
MenuSeparator {}
MenuItem {
text: qsTr('checkForUpdates')
onTriggered: console.log('TODO')
}
}
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment