Warning, /education/kalgebra/mobile/content/ui/main.qml is written in an unsupported language. File is not indexed.

0001 // SPDX-FileCopyrightText: 2015 by Aleix Pol <aleixpol@kde.org>
0002 // SPDX-License-Identifier: GPL-2.0-or-later
0003 
0004 import QtQuick
0005 import QtQuick.Layouts
0006 import QtQuick.Controls as QQC2
0007 import QtQuick.Templates as T
0008 import org.kde.kirigami as Kirigami
0009 import org.kde.kirigamiaddons.delegates as Delegates
0010 import org.kde.analitza
0011 import org.kde.kalgebra.mobile
0012 
0013 Kirigami.ApplicationWindow
0014 {
0015     id: rootItem
0016     height: 800
0017     width: Kirigami.Units.gridUnit * 70
0018     visible: true
0019 
0020     readonly property int columnWidth: Kirigami.Units.gridUnit * 13
0021     wideScreen: width > columnWidth * 5
0022 
0023     Kirigami.PagePool {
0024         id: mainPagePool
0025     }
0026 
0027     globalDrawer: Kirigami.OverlayDrawer {
0028         id: drawer
0029 
0030         edge: Qt.application.layoutDirection === Qt.RightToLeft ? Qt.RightEdge : Qt.LeftEdge
0031 
0032         modal: !rootItem.wideScreen
0033         onModalChanged: drawerOpen = !modal
0034         handleVisible: modal
0035         width: contentItem ? columnWidth : 0
0036 
0037         leftPadding: 0
0038         rightPadding: 0
0039         topPadding: 0
0040         bottomPadding: 0
0041 
0042         Kirigami.Theme.colorSet: Kirigami.Theme.View
0043         Kirigami.Theme.inherit: false
0044 
0045         drawerOpen: true
0046 
0047         readonly property list<T.Action> actions: [
0048             Kirigami.PagePoolAction {
0049                 icon.name: "utilities-terminal"
0050                 text: i18n("Calculator")
0051                 page: "qrc:/Console.qml"
0052                 pagePool: mainPagePool
0053             },
0054             Kirigami.PagePoolAction {
0055                 id: show2dPlotAction
0056                 icon.name: "draw-bezier-curves"
0057                 text: i18n("Graph 2D")
0058                 page: "qrc:/Plot2D.qml"
0059                 pagePool: mainPagePool
0060             },
0061             Kirigami.PagePoolAction {
0062                 id: show3dPlotAction
0063                 icon.name: "adjustrgb"
0064                 text: i18n("Graph 3D")
0065                 page: "qrc:/Plot3D.qml"
0066                 pagePool: mainPagePool
0067             },
0068             Kirigami.PagePoolAction {
0069                 icon.name: "kspread"
0070                 text: i18n("Value Tables")
0071                 page: "qrc:/Tables.qml"
0072                 pagePool: mainPagePool
0073             },
0074             Kirigami.PagePoolAction {
0075                 icon.name: "document-properties"
0076                 text: i18n("Variables")
0077                 page: "qrc:/VariablesView.qml"
0078                 pagePool: mainPagePool
0079             },
0080             Kirigami.PagePoolAction {
0081                 icon.name: "documentation"
0082                 text: i18n("Dictionary")
0083                 page: "qrc:/Dictionary.qml"
0084                 pagePool: mainPagePool
0085             },
0086             Kirigami.PagePoolAction {
0087                 icon.name: "help-about"
0088                 text: i18n("About KAlgebra")
0089                 page: "qrc:/About.qml"
0090                 pagePool: mainPagePool
0091             }
0092         ]
0093 
0094         contentItem: ColumnLayout {
0095             spacing: 0
0096 
0097             QQC2.ToolBar {
0098                 Layout.fillWidth: true
0099                 Layout.preferredHeight: rootItem.pageStack.globalToolBar.preferredHeight
0100                 Layout.bottomMargin: Math.round(Kirigami.Units.smallSpacing / 2)
0101 
0102                 leftPadding: Kirigami.Units.smallSpacing
0103                 rightPadding: Kirigami.Units.smallSpacing
0104                 topPadding: Kirigami.Units.smallSpacing
0105                 bottomPadding: Kirigami.Units.smallSpacing
0106 
0107                 contentItem: Kirigami.Heading {
0108                     text: i18n("KAlgebra")
0109                 }
0110             }
0111 
0112             Repeater {
0113                 delegate: Delegates.RoundedItemDelegate {
0114                     required property var modelData
0115                     action: modelData
0116                     Layout.fillWidth: true
0117                 }
0118                 model: drawer.actions
0119             }
0120 
0121             Item {
0122                 Layout.fillHeight: true
0123             }
0124         }
0125     }
0126 
0127     readonly property Component customDrawer: Kirigami.OverlayDrawer {
0128         leftPadding: 0
0129         rightPadding: 0
0130         topPadding: 0
0131         bottomPadding: 0
0132 
0133         edge: Qt.application.layoutDirection == Qt.RightToLeft ? Qt.LeftEdge : Qt.RightEdge
0134         modal: !rootItem.wideScreen
0135         onModalChanged: drawerOpen = !modal
0136         drawerOpen: true
0137         onContentItemChanged: if (contentItem) {
0138             contentItem.visible = (mainPagePool.lastLoadedItem.drawerContent !== undefined);
0139         }
0140         width: mainPagePool.lastLoadedItem.drawerContent ? columnWidth : 0
0141 
0142         contentItem: mainPagePool.lastLoadedItem.drawerContent ?? null
0143         handleVisible: mainPagePool.lastLoadedItem.drawerContent !== undefined
0144 
0145         Kirigami.Theme.colorSet: Kirigami.Theme.View
0146         Kirigami.Theme.inherit: false
0147     }
0148 
0149     readonly property Component normalDrawer: Kirigami.ContextDrawer {}
0150 
0151     Component.onCompleted: if (Kirigami.Settings.isMobile) {
0152         contextDrawer = normalDrawer.createObject(rootItem);
0153     } else {
0154         contextDrawer = customDrawer.createObject(rootItem);
0155     }
0156 
0157     pageStack.initialPage: mainPagePool.loadPage("qrc:/Console.qml")
0158 }