aboutsummaryrefslogtreecommitdiffstats
path: root/desktop/Page.qml
blob: 1bf312c9619dc721108e152a4f9ff65411ac55af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
// Copyright (C) 2026 Danilo M. <danix@danix.xyz>
//
// 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: ""
    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()
            }
        }

        Text {
            anchors { left: backBtn.right; leftMargin: 10; verticalCenter: parent.verticalCenter }
            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
        }
    }
}