blob: e57e7ef97f6e833efc288f1599c73d1e3ec9f738 (
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import QtQuick
import QtQuick.Layouts
import content
import custom.StockEngine
Rectangle {
id: mainWindow
width: 360
height: 800
visible: true
color: "#101010"
property alias currentIndex: root.currentIndex
property alias stateGroup: stateGroup
property bool portrait: width < height
ListView {
id: root
width: parent.width
anchors.top: parent.top
anchors.bottom: navbar.top
snapMode: ListView.SnapOneItem
highlightRangeMode: ListView.StrictlyEnforceRange
highlightMoveDuration: 250
focus: false
orientation: ListView.Horizontal
boundsBehavior: Flickable.StopAtBounds
interactive: false
Component.onCompleted: StockEngine.updateStockListModel()
model: ObjectModel {
Item {
id: stockContainer
width: root.width
height: root.height
StockView {
id: stockView
anchors.fill: parent
visible: false
width: root.width
height: root.height
}
StockListView {
id: listView
visible: true
anchors.fill: parent
width: root.width
height: root.height
}
}
FavoriteView {
id: favoriteView
width: root.width
height: root.height
}
SettingsView {
id: infoView
width: root.width
height: root.height
}
}
}
Navbar {
id: navbar
width: parent.width
height: portrait? 72 : 40
anchors.bottom: parent.bottom
state: "Home"
homeButton.onClicked: root.currentIndex = 0
favoriteButton.onClicked: root.currentIndex = 1
settingsButton.onClicked: root.currentIndex = 2
}
onCurrentIndexChanged: {
const navStates = ["Home", "Favorite", "Settings"]
navbar.state = navStates[currentIndex]
}
StateGroup {
id: stateGroup
states: [
State {
name: "ListView"
},
State {
name: "StockView"
PropertyChanges {
target: listView
visible: false
}
PropertyChanges {
target: stockView
visible: true
}
PropertyChanges {
target: navbar
state: "Home"
}
}
]
}
}
|