| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- import QtQuick 2.15
- import QtQuick.Window 2.15
- import QtQuick.Controls 2.15
- import QtQuick.Layouts 1.15
- import QtWebSockets
- import ru.ded.beerlog 1.0
- import ru.ded.components 1.0
- ApplicationWindow {
- width: 640
- height: 480
- visible: true
- title: qsTr("Beer Log")
- header: ToolBar {
- RowLayout {
- anchors.fill: parent
- MenuBackButton {
- state: stackView.depth > 1 ? "back" : "menu"
- onClicked: mainMenu.open()
- onBack: stackView.pop()
- }
- Label {
- text: stackView.currentItem.title || usersModel.selectedUserName
- Layout.fillWidth: true
- Layout.minimumWidth: 100
- horizontalAlignment: Qt.AlignCenter
- MouseArea {
- anchors.fill: parent
- enabled: stackView.depth === 1
- onClicked: usersMenu.open()
- }
- }
- }
- Menu {
- id: usersMenu
- UsersViewModel {
- id: usersModel
- }
- Repeater {
- model: usersModel.users
- MenuItem {
- text: modelData.name
- onClicked: {
- usersModel.selectedUser = modelData.id
- }
- }
- }
- }
- Menu {
- id: storesMenu
- StoresViewModel {
- id: storesModel
- }
- Repeater {
- model: storesModel.stores
- MenuItem {
- text: modelData.name
- onClicked: {
- storesModel.selectedStore = modelData.id
- }
- }
- }
- }
- }
- MainMenu {
- id: mainMenu
- readonly property var actions: {
- "orders": () => { stackView.openPage("Views/OrdersView.qml") },
- "rests": () => { stackView.openPage("Views/RestsView.qml") },
- "settings": () => { stackView.openPage("Views/SettingsView.qml") },
- "quit": () => { Qt.quit() }
- }
- logo: "qrc:/logo.png"
- appName: qsTr("BeerLog v0.1")
- additional: Label {
- text: beerService.connected ? qsTr("Online") : qsTr("Offline")
- color: beerService.connected ? "green" : "red"
- }
- model: ListModel {
- ListElement {
- title: qsTr("Orders")
- action: "orders"
- }
- ListElement {
- title: qsTr("Rests")
- action: "rests"
- }
- ListElement {
- title: qsTr("Settings")
- action: "settings"
- }
- ListElement {
- title: qsTr("Quit")
- action: "quit"
- }
- }
- onActionSelected: (action) => actions[action]()
- }
- StackView {
- id: stackView
- initialItem: "Views/ProductsView.qml"
- anchors.fill: parent
- function openPage(page) {
- if (depth > 1) {
- pop()
- }
- push(page)
- mainMenu.close()
- }
- function showError(text) {
- ToolTip.show(text, 1000)
- }
- }
- Dialog {
- id: quitDialog
- property bool quitAccepted: false
- anchors.centerIn: parent
- parent: Overlay.overlay
- modal: true
- title: qsTr("Quit")
- standardButtons: Dialog.Yes | Dialog.No
- Label {
- text: qsTr("Realy quit the application?")
- }
- onAccepted: {
- quitAccepted = true
- Qt.quit()
- }
- }
- onClosing: (close) => {
- if (stackView.depth > 1) {
- close.accepted = false
- stackView.pop()
- return
- }
- if (!quitDialog.quitAccepted) {
- close.accepted = false
- quitDialog.open()
- }
- }
- }
|