156 lines
4.2 KiB
QML
156 lines
4.2 KiB
QML
|
import QtQuick 2.14
|
||
|
import QtQuick.Layouts 1.14
|
||
|
import QtQuick.Controls 2.14
|
||
|
|
||
|
import StatusQ.Core 0.1
|
||
|
import StatusQ.Core.Theme 0.1
|
||
|
import StatusQ.Controls 0.1
|
||
|
import StatusQ.Components 0.1
|
||
|
|
||
|
import "../../layouts"
|
||
|
|
||
|
StackLayout {
|
||
|
id: root
|
||
|
|
||
|
property string name
|
||
|
property string description
|
||
|
property string image
|
||
|
property color color
|
||
|
property bool editable: false
|
||
|
property bool owned: false
|
||
|
|
||
|
signal edited(Item item) // item containing edited fields (name, description, image, color)
|
||
|
|
||
|
clip: true
|
||
|
|
||
|
SettingsPageLayout {
|
||
|
title: qsTr("Overview")
|
||
|
|
||
|
content: ColumnLayout {
|
||
|
spacing: 16
|
||
|
|
||
|
RowLayout {
|
||
|
Layout.fillWidth: true
|
||
|
|
||
|
spacing: 16
|
||
|
|
||
|
StatusSmartIdenticon {
|
||
|
name: root.name
|
||
|
|
||
|
icon {
|
||
|
width: 80
|
||
|
height: 80
|
||
|
isLetterIdenticon: !root.image
|
||
|
color: root.color
|
||
|
letterSize: width / 2.4
|
||
|
}
|
||
|
|
||
|
image {
|
||
|
width: 80
|
||
|
height: 80
|
||
|
source: root.image
|
||
|
}
|
||
|
}
|
||
|
|
||
|
ColumnLayout {
|
||
|
Layout.fillWidth: true
|
||
|
|
||
|
StatusBaseText {
|
||
|
id: nameText
|
||
|
Layout.fillWidth: true
|
||
|
font.pixelSize: 24
|
||
|
color: Theme.palette.directColor1
|
||
|
wrapMode: Text.WordWrap
|
||
|
text: root.name
|
||
|
}
|
||
|
|
||
|
StatusBaseText {
|
||
|
id: descriptionText
|
||
|
Layout.fillWidth: true
|
||
|
font.pixelSize: 15
|
||
|
color: Theme.palette.directColor1
|
||
|
wrapMode: Text.WordWrap
|
||
|
text: root.description
|
||
|
}
|
||
|
}
|
||
|
|
||
|
StatusButton {
|
||
|
visible: root.editable
|
||
|
text: qsTr("Edit Community")
|
||
|
onClicked: root.currentIndex = 1
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Rectangle {
|
||
|
Layout.fillWidth: true
|
||
|
|
||
|
implicitHeight: 1
|
||
|
visible: root.editable
|
||
|
color: Theme.palette.statusPopupMenu.separatorColor
|
||
|
}
|
||
|
|
||
|
RowLayout {
|
||
|
Layout.fillWidth: true
|
||
|
|
||
|
visible: root.owned
|
||
|
|
||
|
StatusIcon {
|
||
|
icon: "info"
|
||
|
}
|
||
|
|
||
|
StatusBaseText {
|
||
|
Layout.fillWidth: true
|
||
|
text: qsTr("This node is the Community Owner Node. For your Community to function correctly try to keep this computer with Status running and onlinie as much as possible.")
|
||
|
font.pixelSize: 15
|
||
|
color: Theme.palette.directColor1
|
||
|
wrapMode: Text.WordWrap
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Item {
|
||
|
Layout.fillHeight: true
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
SettingsPageLayout {
|
||
|
id: editCommunityPage
|
||
|
|
||
|
previousPage: qsTr("Overview")
|
||
|
title: qsTr("Edit Community")
|
||
|
|
||
|
content: CommunityEditSettingsPanel {
|
||
|
name: root.name
|
||
|
description: root.description
|
||
|
color: root.color
|
||
|
image: root.image
|
||
|
|
||
|
Component.onCompleted: {
|
||
|
editCommunityPage.dirty =
|
||
|
Qt.binding(() => {
|
||
|
return root.name != name ||
|
||
|
root.description != description ||
|
||
|
root.image != image ||
|
||
|
root.color != color
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
|
||
|
onPreviousPageClicked: {
|
||
|
if (dirty) {
|
||
|
notifyDirty()
|
||
|
} else {
|
||
|
root.currentIndex = 0
|
||
|
}
|
||
|
}
|
||
|
|
||
|
onSaveChangesClicked: {
|
||
|
root.currentIndex = 0
|
||
|
root.edited(contentItem)
|
||
|
reloadContent()
|
||
|
}
|
||
|
|
||
|
onResetChangesClicked: reloadContent()
|
||
|
}
|
||
|
}
|