First commit.
This commit is contained in:
17
qml/Contact.qml
Normal file
17
qml/Contact.qml
Normal file
@@ -0,0 +1,17 @@
|
||||
import QtQuick 2.10
|
||||
import QtQuick.Controls 2.3
|
||||
import "qrc:/qml/form"
|
||||
|
||||
Page {
|
||||
ContactListForm {
|
||||
id: contactListForm
|
||||
height: parent.height
|
||||
width: 320
|
||||
}
|
||||
|
||||
ContactDetailForm {
|
||||
id: contactDetailForm
|
||||
anchors.fill: parent
|
||||
anchors.leftMargin: contactListForm.width
|
||||
}
|
||||
}
|
||||
17
qml/Home.qml
Normal file
17
qml/Home.qml
Normal file
@@ -0,0 +1,17 @@
|
||||
import QtQuick 2.10
|
||||
import QtQuick.Controls 2.3
|
||||
import "qrc:/qml/form"
|
||||
|
||||
Page {
|
||||
ContactListForm {
|
||||
id: contactListForm
|
||||
height: parent.height
|
||||
width: 320
|
||||
}
|
||||
|
||||
ChatForm {
|
||||
id: chatForm
|
||||
anchors.fill: parent
|
||||
anchors.leftMargin: contactListForm.width
|
||||
}
|
||||
}
|
||||
130
qml/Login.qml
Normal file
130
qml/Login.qml
Normal file
@@ -0,0 +1,130 @@
|
||||
import QtQuick 2.10
|
||||
import QtQuick.Layouts 1.3
|
||||
import QtGraphicalEffects 1.0
|
||||
import QtQuick.Controls 2.3
|
||||
import QtQuick.Controls.Material 2.3
|
||||
import "qrc:/qml/component"
|
||||
|
||||
Page {
|
||||
property var window
|
||||
property alias username: usernameField.text
|
||||
property alias password: passwordField.text
|
||||
|
||||
Row {
|
||||
anchors.fill: parent
|
||||
|
||||
Pane {
|
||||
width: parent.width / 2
|
||||
height: parent.height
|
||||
|
||||
background: Item {
|
||||
Image {
|
||||
id: background
|
||||
anchors.fill: parent
|
||||
source: "qrc:/asset/img/background.jpg"
|
||||
fillMode: Image.PreserveAspectCrop
|
||||
}
|
||||
|
||||
ColorOverlay {
|
||||
anchors.fill: background
|
||||
source: background
|
||||
color: "#b000796b"
|
||||
}
|
||||
}
|
||||
|
||||
Column {
|
||||
x: 32
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
||||
Label {
|
||||
text: "MATRIX LOGIN."
|
||||
font.pointSize: 36
|
||||
font.bold: true
|
||||
color: "white"
|
||||
}
|
||||
|
||||
Label {
|
||||
text: "A NEW METHOD OF MESSAGING"
|
||||
font.pointSize: 12
|
||||
color: "white"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Pane {
|
||||
width: parent.width / 2
|
||||
height: parent.height
|
||||
padding: 64
|
||||
|
||||
Column {
|
||||
id: main_col
|
||||
spacing: 8
|
||||
anchors.fill: parent
|
||||
|
||||
ImageStatus {
|
||||
width: 96
|
||||
height: width
|
||||
source: "qrc:/asset/img/avatar.png"
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
}
|
||||
|
||||
TextField {
|
||||
id: serverField
|
||||
width: parent.width
|
||||
height: 48
|
||||
placeholderText: "Server"
|
||||
leftPadding: 16
|
||||
topPadding: 0
|
||||
bottomPadding: 0
|
||||
|
||||
background: Rectangle {
|
||||
color: "#eaeaea"
|
||||
border.color: parent.activeFocus ? Material.accent : "transparent"
|
||||
border.width: 2
|
||||
}
|
||||
}
|
||||
|
||||
TextField {
|
||||
id: usernameField
|
||||
width: parent.width
|
||||
height: 48
|
||||
placeholderText: "Username"
|
||||
leftPadding: 16
|
||||
topPadding: 0
|
||||
bottomPadding: 0
|
||||
|
||||
background: Rectangle {
|
||||
color: "#eaeaea"
|
||||
border.color: parent.activeFocus ? Material.accent : "transparent"
|
||||
border.width: 2
|
||||
}
|
||||
}
|
||||
|
||||
TextField {
|
||||
id: passwordField
|
||||
width: parent.width
|
||||
height: 48
|
||||
placeholderText: "Password"
|
||||
leftPadding: 16
|
||||
topPadding: 0
|
||||
bottomPadding: 0
|
||||
|
||||
background: Rectangle {
|
||||
color: "#eaeaea"
|
||||
border.color: parent.activeFocus ? Material.accent : "transparent"
|
||||
border.width: 2
|
||||
}
|
||||
}
|
||||
|
||||
Button {
|
||||
id: loginButton
|
||||
text: "LOGIN"
|
||||
highlighted: true
|
||||
width: parent.width
|
||||
|
||||
onClicked: window.login()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
40
qml/Setting.qml
Normal file
40
qml/Setting.qml
Normal file
@@ -0,0 +1,40 @@
|
||||
import QtQuick 2.10
|
||||
import QtQuick.Controls 2.3
|
||||
|
||||
Page {
|
||||
TabBar {
|
||||
id: settingBar
|
||||
width: parent.width
|
||||
z: 10
|
||||
currentIndex: settingBar.currentIndex
|
||||
|
||||
TabButton {
|
||||
text: qsTr("Overview")
|
||||
}
|
||||
TabButton {
|
||||
text: qsTr("Network")
|
||||
}
|
||||
TabButton {
|
||||
text: qsTr("Sync")
|
||||
}
|
||||
}
|
||||
|
||||
SwipeView {
|
||||
id: settingSwipe
|
||||
|
||||
currentIndex: settingBar.currentIndex
|
||||
anchors.fill: parent
|
||||
|
||||
Page {
|
||||
|
||||
}
|
||||
|
||||
Page {
|
||||
|
||||
}
|
||||
|
||||
Page {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
36
qml/component/ButtonDelegate.qml
Normal file
36
qml/component/ButtonDelegate.qml
Normal file
@@ -0,0 +1,36 @@
|
||||
import QtQuick 2.10
|
||||
import QtQuick.Controls 2.3
|
||||
import QtQuick.Layouts 1.3
|
||||
import QtQuick.Controls.Material 2.3
|
||||
|
||||
Item {
|
||||
property int index
|
||||
property alias contentItem: itemDelegate.contentItem
|
||||
signal clicked
|
||||
|
||||
id: buttonDelegate
|
||||
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: width
|
||||
|
||||
Rectangle {
|
||||
width: swipeView.currentIndex === index ? parent.width : 0
|
||||
height: parent.height
|
||||
anchors.bottom: itemDelegate.bottom
|
||||
color: Qt.lighter(Material.accent)
|
||||
|
||||
Behavior on width {
|
||||
PropertyAnimation { easing.type: Easing.InOutQuad; duration: 200 }
|
||||
}
|
||||
}
|
||||
|
||||
ItemDelegate {
|
||||
id: itemDelegate
|
||||
anchors.fill: parent
|
||||
|
||||
onClicked: {
|
||||
swipeView.currentIndex = index
|
||||
buttonDelegate.clicked()
|
||||
}
|
||||
}
|
||||
}
|
||||
34
qml/component/ImageStatus.qml
Normal file
34
qml/component/ImageStatus.qml
Normal file
@@ -0,0 +1,34 @@
|
||||
import QtQuick 2.10
|
||||
import QtQuick.Controls 2.3
|
||||
import QtGraphicalEffects 1.0
|
||||
|
||||
Image {
|
||||
id: avatar
|
||||
|
||||
mipmap: true
|
||||
layer.enabled: true
|
||||
fillMode: Image.PreserveAspectCrop
|
||||
|
||||
layer.effect: OpacityMask {
|
||||
maskSource: Item {
|
||||
width: avatar.width
|
||||
height: avatar.width
|
||||
Rectangle {
|
||||
anchors.centerIn: parent
|
||||
width: avatar.width
|
||||
height: avatar.width
|
||||
radius: avatar.width / 2
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: circle
|
||||
width: avatar.width
|
||||
height: avatar.width
|
||||
radius: avatar.width / 2
|
||||
color: "transparent"
|
||||
border.color: "#4caf50"
|
||||
border.width: 4
|
||||
}
|
||||
}
|
||||
17
qml/component/SideNav.qml
Normal file
17
qml/component/SideNav.qml
Normal file
@@ -0,0 +1,17 @@
|
||||
import QtQuick 2.10
|
||||
import QtQuick.Controls 2.3
|
||||
import QtQuick.Layouts 1.3
|
||||
import QtQuick.Controls.Material 2.3
|
||||
|
||||
Drawer {
|
||||
property SwipeView swipeView
|
||||
|
||||
interactive: false
|
||||
position: 1.0
|
||||
visible: true
|
||||
modal: false
|
||||
|
||||
background: Rectangle {
|
||||
color: Material.accent
|
||||
}
|
||||
}
|
||||
125
qml/form/ChatForm.qml
Normal file
125
qml/form/ChatForm.qml
Normal file
@@ -0,0 +1,125 @@
|
||||
import QtQuick 2.10
|
||||
import QtQuick.Controls 2.3
|
||||
import QtQuick.Layouts 1.3
|
||||
import QtQuick.Controls.Material 2.3
|
||||
import QtGraphicalEffects 1.0
|
||||
import "qrc:/qml/component"
|
||||
|
||||
Item {
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
|
||||
Pane {
|
||||
z: 10
|
||||
padding: 16
|
||||
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: 80
|
||||
|
||||
background: Rectangle {
|
||||
color: "#eaeaea"
|
||||
}
|
||||
|
||||
Row {
|
||||
anchors.fill: parent
|
||||
spacing: 16
|
||||
|
||||
ImageStatus {
|
||||
width: parent.height
|
||||
height: parent.height
|
||||
source: "qrc:/asset/img/avatar.png"
|
||||
}
|
||||
|
||||
Column {
|
||||
height: parent.height
|
||||
Text {
|
||||
text: "Astolfo"
|
||||
font.pointSize: 18
|
||||
color: "#424242"
|
||||
}
|
||||
Text {
|
||||
text: "Rider of Black"
|
||||
color: "#424242"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Pane {
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
}
|
||||
|
||||
Pane {
|
||||
z: 10
|
||||
padding: 16
|
||||
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: 80
|
||||
|
||||
RowLayout {
|
||||
anchors.fill: parent
|
||||
spacing: 0
|
||||
|
||||
ItemDelegate {
|
||||
Layout.preferredWidth: height
|
||||
Layout.fillHeight: true
|
||||
|
||||
contentItem: Text {
|
||||
text: "\ue226"
|
||||
color: "#424242"
|
||||
font.pointSize: 16
|
||||
font.family: materialFont.name
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
}
|
||||
}
|
||||
|
||||
TextField {
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
placeholderText: "Send a Message"
|
||||
leftPadding: 16
|
||||
topPadding: 0
|
||||
bottomPadding: 0
|
||||
|
||||
background: Rectangle {
|
||||
color: "#eaeaea"
|
||||
}
|
||||
}
|
||||
|
||||
ItemDelegate {
|
||||
Layout.preferredWidth: height
|
||||
Layout.fillHeight: true
|
||||
|
||||
contentItem: Text {
|
||||
text: "\ue24e"
|
||||
color: parent.pressed ? Material.accent : "#424242"
|
||||
font.pointSize: 16
|
||||
font.family: materialFont.name
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
}
|
||||
|
||||
background: Rectangle {
|
||||
color: "#eaeaea"
|
||||
}
|
||||
}
|
||||
|
||||
ItemDelegate {
|
||||
Layout.preferredWidth: height
|
||||
Layout.fillHeight: true
|
||||
|
||||
contentItem: Text {
|
||||
text: "\ue163"
|
||||
color: "#424242"
|
||||
font.pointSize: 16
|
||||
font.family: materialFont.name
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
112
qml/form/ContactDetailForm.qml
Normal file
112
qml/form/ContactDetailForm.qml
Normal file
@@ -0,0 +1,112 @@
|
||||
import QtQuick 2.10
|
||||
import QtQuick.Controls 2.3
|
||||
import QtQuick.Layouts 1.3
|
||||
import QtQuick.Controls.Material 2.3
|
||||
import "qrc:/qml/component"
|
||||
|
||||
Item {
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
|
||||
Pane {
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: 250
|
||||
padding: 32
|
||||
|
||||
background: Rectangle {
|
||||
color: Material.accent
|
||||
}
|
||||
|
||||
Column {
|
||||
anchors.fill: parent
|
||||
|
||||
ImageStatus {
|
||||
z: 10
|
||||
width: 96
|
||||
height: width
|
||||
source: "qrc:/asset/img/avatar.png"
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
}
|
||||
|
||||
Text {
|
||||
text: "Astolfo"
|
||||
color: "white"
|
||||
font.pointSize: 28
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
}
|
||||
|
||||
Text {
|
||||
text: "Rider of Black"
|
||||
color: "#cdcdcd"
|
||||
font.pointSize: 12
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
}
|
||||
|
||||
Row {
|
||||
height: 48
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
ItemDelegate {
|
||||
width: parent.height
|
||||
height: parent.height
|
||||
|
||||
contentItem: Text {
|
||||
text: "\ue0b7"
|
||||
font.pointSize: 16
|
||||
font.family: materialFont.name
|
||||
color: "white"
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
}
|
||||
}
|
||||
|
||||
ItemDelegate {
|
||||
width: parent.height
|
||||
height: parent.height
|
||||
|
||||
contentItem: Text {
|
||||
text: "\ue62e"
|
||||
font.pointSize: 16
|
||||
font.family: materialFont.name
|
||||
color: "white"
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Pane {
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
|
||||
leftPadding: 96
|
||||
rightPadding: 96
|
||||
|
||||
GridLayout {
|
||||
width: parent.width
|
||||
columns: 2
|
||||
flow: GridLayout.LeftToRight
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
columnSpacing: 32
|
||||
|
||||
Text {
|
||||
text: "Matrix ID"
|
||||
}
|
||||
|
||||
Text {
|
||||
Layout.fillWidth: true
|
||||
text: "Welcome"
|
||||
}
|
||||
|
||||
Text {
|
||||
text: "Status"
|
||||
}
|
||||
|
||||
Text {
|
||||
text: "Overline"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
174
qml/form/ContactListForm.qml
Normal file
174
qml/form/ContactListForm.qml
Normal file
@@ -0,0 +1,174 @@
|
||||
import QtQuick 2.10
|
||||
import QtQuick.Controls 2.3
|
||||
import QtQuick.Layouts 1.3
|
||||
import QtGraphicalEffects 1.0
|
||||
import QtQuick.Controls.Material 2.3
|
||||
import "qrc:/qml/component"
|
||||
|
||||
Item {
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
spacing: 0
|
||||
|
||||
Pane {
|
||||
z: 10
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: 80
|
||||
background: Rectangle {
|
||||
color: Qt.tint(Material.accent, "#20FFFFFF")
|
||||
}
|
||||
|
||||
TextField {
|
||||
id: serverField
|
||||
width: parent.width
|
||||
height: 36
|
||||
leftPadding: 16
|
||||
topPadding: 0
|
||||
bottomPadding: 0
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
||||
background: Item {
|
||||
Row {
|
||||
anchors.fill: parent
|
||||
|
||||
Text {
|
||||
width: parent.height
|
||||
height: parent.height
|
||||
text: "\ue8b6"
|
||||
font.pointSize: 16
|
||||
font.family: materialFont.name
|
||||
color: "white"
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
}
|
||||
|
||||
Text {
|
||||
height: parent.height
|
||||
text: "Search"
|
||||
color: "white"
|
||||
font.pointSize: 12
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
width: serverField.activeFocus || serverField.text != "" ? parent.width : 0
|
||||
height: parent.height
|
||||
color: "white"
|
||||
|
||||
Behavior on width {
|
||||
PropertyAnimation { easing.type: Easing.InOutQuad; duration: 200 }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Pane {
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
padding: 0
|
||||
|
||||
background: Rectangle {
|
||||
color: "#eaeaea"
|
||||
}
|
||||
|
||||
ListModel {
|
||||
id: listModel
|
||||
ListElement {
|
||||
name: "Bill Smith"
|
||||
number: "555 3264"
|
||||
}
|
||||
ListElement {
|
||||
name: "John Brown"
|
||||
number: "555 8426"
|
||||
}
|
||||
ListElement {
|
||||
name: "Sam Wise"
|
||||
number: "555 0473"
|
||||
}
|
||||
ListElement {
|
||||
name: "Bill Smith"
|
||||
number: "555 3264"
|
||||
}
|
||||
ListElement {
|
||||
name: "John Brown"
|
||||
number: "555 8426"
|
||||
}
|
||||
ListElement {
|
||||
name: "Sam Wise"
|
||||
number: "555 0473"
|
||||
}
|
||||
ListElement {
|
||||
name: "Bill Smith"
|
||||
number: "555 3264"
|
||||
}
|
||||
ListElement {
|
||||
name: "John Brown"
|
||||
number: "555 8426"
|
||||
}
|
||||
ListElement {
|
||||
name: "Sam Wise"
|
||||
number: "555 0473"
|
||||
}
|
||||
ListElement {
|
||||
name: "Bill Smith"
|
||||
number: "555 3264"
|
||||
}
|
||||
ListElement {
|
||||
name: "John Brown"
|
||||
number: "555 8426"
|
||||
}
|
||||
ListElement {
|
||||
name: "Sam Wise"
|
||||
number: "555 0473"
|
||||
}
|
||||
}
|
||||
|
||||
ListView {
|
||||
id: listView
|
||||
width: parent.width
|
||||
height: parent.height
|
||||
|
||||
model: listModel
|
||||
|
||||
highlight: Rectangle {
|
||||
color: Material.accent
|
||||
opacity: 0.2
|
||||
}
|
||||
|
||||
ScrollBar.vertical: ScrollBar { id: scrollBar }
|
||||
|
||||
delegate: ItemDelegate {
|
||||
width: parent.width
|
||||
height: 80
|
||||
onClicked: listView.currentIndex = index
|
||||
|
||||
contentItem: Item {
|
||||
Row {
|
||||
spacing: 16
|
||||
|
||||
ImageStatus {
|
||||
width: parent.height
|
||||
height: parent.height
|
||||
source: "qrc:/asset/img/avatar.png"
|
||||
}
|
||||
|
||||
Column {
|
||||
Text {
|
||||
text: name
|
||||
color: "#424242"
|
||||
}
|
||||
Text {
|
||||
text: number
|
||||
color: "#424242"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
168
qml/main.qml
Normal file
168
qml/main.qml
Normal file
@@ -0,0 +1,168 @@
|
||||
import QtQuick 2.10
|
||||
import QtQuick.Controls 2.3
|
||||
import QtQuick.Layouts 1.3
|
||||
import QtQuick.Controls.Material 2.2
|
||||
import QtGraphicalEffects 1.0
|
||||
import Qt.labs.settings 1.0
|
||||
|
||||
import "qrc:/qml/component"
|
||||
import "qrc:/qml/form"
|
||||
|
||||
import Matrique 0.1
|
||||
|
||||
ApplicationWindow {
|
||||
id: window
|
||||
visible: true
|
||||
width: 960
|
||||
height: 640
|
||||
title: qsTr("Matrique")
|
||||
|
||||
Connection { id: connection }
|
||||
|
||||
Settings {
|
||||
id: settings
|
||||
|
||||
property alias user: loginPage.username
|
||||
property alias pass: loginPage.password
|
||||
property var token
|
||||
}
|
||||
|
||||
FontLoader { id: materialFont; source: "qrc:/asset/font/material.ttf" }
|
||||
|
||||
function login() {
|
||||
console.info("Login is invoked.")
|
||||
|
||||
var connect = connection.connectToServer
|
||||
|
||||
connection.connected.connect(function() {
|
||||
settings.user = connection.userId()
|
||||
settings.token = connection.accessToken
|
||||
|
||||
connection.connectionError.connect(connection.reconnect)
|
||||
connection.syncDone.connect(resync)
|
||||
connection.reconnected.connect(resync)
|
||||
|
||||
connection.sync()
|
||||
})
|
||||
|
||||
var userParts = settings.user.split(':')
|
||||
if(userParts.length === 1 || userParts[1] === "matrix.org") { // If this user uses default server.
|
||||
console.info("Matrix server is used.")
|
||||
connect(settings.user, settings.pass, "Device")
|
||||
} else {
|
||||
connection.resolved.connect(function() {
|
||||
connect(settings.user, settings.pass, "Device")
|
||||
})
|
||||
connection.resolveError.connect(function() {
|
||||
console.info("Couldn't resolve server!")
|
||||
})
|
||||
connection.resolveServer(userParts[1])
|
||||
}
|
||||
}
|
||||
|
||||
SideNav {
|
||||
id: sideNav
|
||||
width: 80
|
||||
height: window.height
|
||||
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
spacing: 0
|
||||
|
||||
ButtonDelegate {
|
||||
index: 0
|
||||
|
||||
contentItem: ImageStatus {
|
||||
width: parent.width
|
||||
height: parent.width
|
||||
source: "qrc:/asset/img/avatar.png"
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
color: "transparent"
|
||||
Layout.fillHeight: true
|
||||
}
|
||||
|
||||
ButtonDelegate {
|
||||
index: 1
|
||||
|
||||
contentItem: Text {
|
||||
text: "\ue853"
|
||||
font.pointSize: 16
|
||||
font.family: materialFont.name
|
||||
color: "white"
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
}
|
||||
}
|
||||
|
||||
ButtonDelegate {
|
||||
index: 2
|
||||
|
||||
contentItem: Text {
|
||||
text: "\ue5d2"
|
||||
font.pointSize: 16
|
||||
font.family: materialFont.name
|
||||
color: "white"
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
}
|
||||
}
|
||||
|
||||
ButtonDelegate {
|
||||
index: 3
|
||||
|
||||
contentItem: Text {
|
||||
text: "\ue8b8"
|
||||
font.pointSize: 16
|
||||
font.family: materialFont.name
|
||||
color: "white"
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
}
|
||||
}
|
||||
|
||||
ButtonDelegate {
|
||||
index: 4
|
||||
|
||||
contentItem: Text {
|
||||
text: "\ue879"
|
||||
font.pointSize: 16
|
||||
font.family: materialFont.name
|
||||
color: "white"
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
}
|
||||
|
||||
onClicked: Qt.quit()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SwipeView {
|
||||
id: swipeView
|
||||
anchors.fill: parent
|
||||
anchors.leftMargin: sideNav.width
|
||||
interactive: false
|
||||
orientation: Qt.Vertical
|
||||
|
||||
Home {
|
||||
|
||||
}
|
||||
|
||||
Login {
|
||||
id: loginPage
|
||||
window: window
|
||||
}
|
||||
|
||||
Contact {
|
||||
|
||||
}
|
||||
|
||||
Setting {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user