// Copyright (C) 2026 Danilo M. // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as // published by the Free Software Foundation. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. import QtQuick import QtQuick.Controls Item { id: page property string title: "" // The module's tile glyph, set by the drawer, shown before the title. property string icon: "" default property alias content: holder.data signal back Item { id: header anchors { top: parent.top; left: parent.left; right: parent.right } height: 44 Rectangle { id: backBtn anchors { left: parent.left; verticalCenter: parent.verticalCenter } width: 32; height: 32; radius: 16 color: backArea.containsMouse ? Qt.alpha(Theme.accent, 0.22) : "transparent" Text { anchors.centerIn: parent text: "" font { family: Theme.iconFamily; pixelSize: 14 } color: Theme.text } MouseArea { id: backArea anchors.fill: parent hoverEnabled: true cursorShape: Qt.PointingHandCursor onClicked: page.back() } } Row { anchors { left: backBtn.right; leftMargin: 10; verticalCenter: parent.verticalCenter } spacing: 8 Text { visible: page.icon !== "" text: page.icon font { family: Theme.iconFamily; pixelSize: Theme.fontSize + 2 } color: Theme.text } Text { text: page.title font { family: Theme.fontFamily; pixelSize: Theme.fontSize + 2; bold: true } color: Theme.text } } } Rectangle { id: rule anchors { top: header.bottom; left: parent.left; right: parent.right } height: 1 color: Qt.alpha(Theme.text, 0.12) } ScrollView { anchors { top: rule.bottom; left: parent.left; right: parent.right; bottom: parent.bottom } anchors.topMargin: 12 clip: true contentWidth: availableWidth Item { id: holder width: parent.width implicitHeight: childrenRect.height } } }