Commit f6c7ab20 authored by Sylvain Berfini's avatar Sylvain Berfini

Reworked menu bar to use burger

parent 48c0678b
...@@ -47,9 +47,9 @@ ApplicationWindow { ...@@ -47,9 +47,9 @@ ApplicationWindow {
// Menu bar. // Menu bar.
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
menuBar: MainWindowMenuBar { /*menuBar: MainWindowMenuBar {
hide: mainLoader.item ? !mainLoader.item.collapse.isCollapsed : true hide: mainLoader.item ? !mainLoader.item.collapse.isCollapsed : true
} }*/
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
...@@ -184,6 +184,20 @@ ApplicationWindow { ...@@ -184,6 +184,20 @@ ApplicationWindow {
visible: !smartSearchBar.isOpen 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 2.7
import QtQuick.Controls 1.4 import QtQuick.Controls 2.1
import QtQuick.Controls.Styles 1.4 import QtQuick.Controls.Styles 1.4
import QtQuick.Window 2.2 import QtQuick.Window 2.2
import Qt.labs.platform 1.0
import Linphone 1.0 import Linphone 1.0
...@@ -9,175 +10,79 @@ import App.Styles 1.0 ...@@ -9,175 +10,79 @@ import App.Styles 1.0
// ============================================================================= // =============================================================================
MenuBar { Item {
id: container function open() {
menu.open()
// ---------------------------------------------------------------------------
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)
} }
// --------------------------------------------------------------------------- Menu {
id: menu
style: MenuBarStyle {
background: Rectangle { Menu {
color: MainWindowMenuBarStyle.color title: qsTr('options')
Rectangle { MenuItem {
anchors.bottom: parent.bottom shortcut: 'Ctrl+P'
color: MainWindowMenuBarStyle.separator.color text: qsTr('settings')
height: MainWindowMenuBarStyle.separator.height
width: parent.width 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 { onTriggered: Qt.quit()
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
}
} }
} }
itemDelegate: Item { // ---------------------------------------------------------------------------
implicitHeight: menuItem.height + MainWindowMenuBarStyle.separator.spacing // Tools.
implicitWidth: menuItem.width // ---------------------------------------------------------------------------
Item {
id: menuItem
implicitHeight: text.height + MainWindowMenuBarStyle.menu.text.verticalMargins * 2 Menu {
implicitWidth: text.width + MainWindowMenuBarStyle.menu.text.horizontalMargins * 2 title: qsTr('tools')
Text { MenuItem {
id: text text: qsTr('audioAssistant')
anchors.centerIn: parent onTriggered: console.log('TODO')
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
}
} }
} }
}
// ---------------------------------------------------------------------------
// Options.
// ---------------------------------------------------------------------------
Menu { // ---------------------------------------------------------------------------
// Help.
// ---------------------------------------------------------------------------
title: qsTr('options') Menu {
title: qsTr('help')
MenuItem { MenuItem {
shortcut: 'Ctrl+P' shortcut: StandardKey.HelpContents
text: qsTr('settings') text: qsTr('about')
onTriggered: { onTriggered: {
var window = App.getSettingsWindow() window.detachVirtualWindow()
if (window.visibility === Window.Minimized) { window.attachVirtualWindow(Qt.resolvedUrl('About.qml'))
window.visibility = Window.AutomaticVisibility
} else {
window.setVisible(true)
} }
} }
}
MenuSeparator {}
MenuItem {
shortcut: StandardKey.Quit
text: qsTr('quit')
onTriggered: Qt.quit()
}
}
// ---------------------------------------------------------------------------
// Tools.
// ---------------------------------------------------------------------------
Menu {
title: qsTr('tools')
MenuItem {
text: qsTr('audioAssistant')
onTriggered: console.log('TODO')
}
}
// --------------------------------------------------------------------------- MenuSeparator {}
// Help.
// ---------------------------------------------------------------------------
Menu { MenuItem {
title: qsTr('help') text: qsTr('checkForUpdates')
MenuItem { onTriggered: console.log('TODO')
shortcut: StandardKey.HelpContents
text: qsTr('about')
onTriggered: {
window.detachVirtualWindow()
window.attachVirtualWindow(Qt.resolvedUrl('About.qml'))
} }
} }
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