193 lines
5.9 KiB
QML
193 lines
5.9 KiB
QML
import QtQuick 2.15
|
||
import QtQuick.Controls 2.15
|
||
import QtQuick.Layouts 1.15
|
||
|
||
import StatusQ 0.1
|
||
import StatusQ.Core 0.1
|
||
import StatusQ.Components 0.1
|
||
import StatusQ.Controls 0.1
|
||
import StatusQ.Core.Theme 0.1
|
||
import StatusQ.Models 0.1
|
||
|
||
import utils 1.0
|
||
import shared.controls 1.0
|
||
|
||
import AppLayouts.Wallet.controls 1.0
|
||
|
||
Control {
|
||
id: root
|
||
|
||
required property var controller
|
||
|
||
readonly property bool dirty: root.controller.dirty
|
||
readonly property bool hasSettings: root.controller.hasSettings
|
||
|
||
background: null
|
||
|
||
function saveSettings() {
|
||
root.controller.saveSettings();
|
||
}
|
||
|
||
function revert() {
|
||
root.controller.revert();
|
||
}
|
||
|
||
function clearSettings() {
|
||
root.controller.clearSettings();
|
||
}
|
||
|
||
contentItem: ColumnLayout {
|
||
spacing: Style.current.padding
|
||
|
||
ShapeRectangle {
|
||
Layout.fillWidth: true
|
||
Layout.margins: 2
|
||
visible: !root.controller.regularTokensModel.count && !root.controller.communityTokensModel.count
|
||
text: qsTr("You’ll be able to manage the display of your collectibles here")
|
||
}
|
||
|
||
RowLayout {
|
||
Layout.fillWidth: true
|
||
Layout.topMargin: Style.current.padding
|
||
visible: root.controller.communityTokensModel.count
|
||
StatusBaseText {
|
||
Layout.fillWidth: true
|
||
text: qsTr("Community minted")
|
||
}
|
||
StatusSwitch {
|
||
objectName: "switchArrangeByCommunity"
|
||
LayoutMirroring.enabled: true
|
||
LayoutMirroring.childrenInherit: true
|
||
id: switchArrangeByCommunity
|
||
textColor: Theme.palette.baseColor1
|
||
font.pixelSize: 13
|
||
text: qsTr("Arrange by community")
|
||
checked: root.controller.arrangeByCommunity
|
||
onToggled: root.controller.arrangeByCommunity = checked
|
||
}
|
||
}
|
||
|
||
Loader {
|
||
objectName: "loaderCommunityTokens"
|
||
Layout.fillWidth: true
|
||
active: root.controller.communityTokensModel.count
|
||
visible: active
|
||
sourceComponent: switchArrangeByCommunity.checked ? cmpCommunityTokenGroups : cmpCommunityTokens
|
||
}
|
||
|
||
RowLayout {
|
||
Layout.fillWidth: true
|
||
Layout.topMargin: Style.current.padding
|
||
visible: root.controller.regularTokensModel.count
|
||
StatusBaseText {
|
||
Layout.fillWidth: true
|
||
text: qsTr("Other")
|
||
}
|
||
StatusSwitch {
|
||
LayoutMirroring.enabled: true
|
||
LayoutMirroring.childrenInherit: true
|
||
id: switchArrangeByCollection
|
||
textColor: Theme.palette.baseColor1
|
||
font.pixelSize: 13
|
||
text: qsTr("Arrange by collection")
|
||
checked: root.controller.arrangeByCollection
|
||
onToggled: root.controller.arrangeByCollection = checked
|
||
}
|
||
}
|
||
|
||
Loader {
|
||
objectName: "loaderRegularTokens"
|
||
Layout.fillWidth: true
|
||
active: root.controller.regularTokensModel.count
|
||
visible: active
|
||
sourceComponent: switchArrangeByCollection.checked ? cmpCollectionTokenGroups : cmpRegularTokens
|
||
}
|
||
}
|
||
|
||
Component {
|
||
id: cmpCommunityTokens
|
||
StatusListView {
|
||
objectName: "lvCommunityTokens"
|
||
model: root.controller.communityTokensModel
|
||
implicitHeight: contentHeight
|
||
interactive: false
|
||
|
||
displaced: Transition {
|
||
NumberAnimation { properties: "x,y"; easing.type: Easing.OutQuad }
|
||
}
|
||
|
||
delegate: ManageTokensDelegate {
|
||
isCollectible: true
|
||
controller: root.controller
|
||
dragParent: root
|
||
count: root.controller.communityTokensModel.count
|
||
dragEnabled: count > 1
|
||
}
|
||
}
|
||
}
|
||
|
||
Component {
|
||
id: cmpCommunityTokenGroups
|
||
StatusListView {
|
||
objectName: "lvCommunityTokenGroups"
|
||
model: root.controller.communityTokenGroupsModel
|
||
implicitHeight: contentHeight
|
||
interactive: false
|
||
|
||
displaced: Transition {
|
||
NumberAnimation { properties: "x,y"; easing.type: Easing.OutQuad }
|
||
}
|
||
|
||
delegate: ManageTokensGroupDelegate {
|
||
isCollectible: true
|
||
controller: root.controller
|
||
dragParent: root
|
||
dragEnabled: root.controller.communityTokenGroupsModel.count > 1
|
||
}
|
||
}
|
||
}
|
||
|
||
Component {
|
||
id: cmpRegularTokens
|
||
StatusListView {
|
||
objectName: "lvRegularTokens"
|
||
model: root.controller.regularTokensModel
|
||
implicitHeight: contentHeight
|
||
interactive: false
|
||
|
||
displaced: Transition {
|
||
NumberAnimation { properties: "x,y"; easing.type: Easing.OutQuad }
|
||
}
|
||
|
||
delegate: ManageTokensDelegate {
|
||
isCollectible: true
|
||
controller: root.controller
|
||
dragParent: root
|
||
count: root.controller.regularTokensModel.count
|
||
dragEnabled: count > 1
|
||
}
|
||
}
|
||
}
|
||
|
||
Component {
|
||
id: cmpCollectionTokenGroups
|
||
StatusListView {
|
||
objectName: "lvCollectionTokenGroups"
|
||
model: root.controller.collectionGroupsModel
|
||
implicitHeight: contentHeight
|
||
interactive: false
|
||
|
||
displaced: Transition {
|
||
NumberAnimation { properties: "x,y"; easing.type: Easing.OutQuad }
|
||
}
|
||
|
||
delegate: ManageTokensGroupDelegate {
|
||
isCollection: true
|
||
controller: root.controller
|
||
dragParent: root
|
||
dragEnabled: root.controller.collectionGroupsModel.count > 1
|
||
}
|
||
}
|
||
}
|
||
}
|