parent
7de4c2c5b1
commit
e6f9bfdcdd
|
@ -47,6 +47,10 @@ SplitView {
|
||||||
|
|
||||||
MintTokensSettingsPanel {
|
MintTokensSettingsPanel {
|
||||||
id: panel
|
id: panel
|
||||||
|
chainName: "Optimism"
|
||||||
|
totalFeeText: "0.00001 ($123.7)"
|
||||||
|
feeErrorText: "frndeufire"
|
||||||
|
generalAccountErrorText: "fgreudfighlre"
|
||||||
|
|
||||||
MintedTokensModel {
|
MintedTokensModel {
|
||||||
id: mintedTokensModel
|
id: mintedTokensModel
|
||||||
|
|
|
@ -9,6 +9,23 @@ import AppLayouts.Communities.popups 1.0
|
||||||
|
|
||||||
SplitView {
|
SplitView {
|
||||||
Logs { id: logs }
|
Logs { id: logs }
|
||||||
|
ListModel {
|
||||||
|
id: accountsModel
|
||||||
|
|
||||||
|
ListElement {
|
||||||
|
name: "Test account"
|
||||||
|
emoji: "😋"
|
||||||
|
address: "0x7F47C2e18a4BBf5487E6fb082eC2D9Ab0E6d7240"
|
||||||
|
color: "red"
|
||||||
|
}
|
||||||
|
|
||||||
|
ListElement {
|
||||||
|
name: "Another account - generated"
|
||||||
|
emoji: "🚗"
|
||||||
|
address: "0x7F47C2e98a4BBf5487E6fb082eC2D9Ab0E6d8888"
|
||||||
|
color: "blue"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
SplitView {
|
SplitView {
|
||||||
orientation: Qt.Vertical
|
orientation: Qt.Vertical
|
||||||
|
@ -35,7 +52,11 @@ SplitView {
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
collectibleName: editorCollectible.text
|
collectibleName: editorCollectible.text
|
||||||
model: TokenHoldersModel {}
|
model: TokenHoldersModel {}
|
||||||
|
accounts: accountsModel
|
||||||
|
chainName: "Optimism"
|
||||||
|
totalFeeText: "0.00001 ($123.7)"
|
||||||
|
feeErrorText: "ghreoghreui"
|
||||||
|
generalAccountErrorText: "fhirfghryeruof"
|
||||||
onRemotelyDestructClicked: logs.logEvent("RemoteSelfDestructPopup::onRemotelyDestructClicked")
|
onRemotelyDestructClicked: logs.logEvent("RemoteSelfDestructPopup::onRemotelyDestructClicked")
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
|
|
|
@ -54,6 +54,9 @@ StackView {
|
||||||
property string feeText
|
property string feeText
|
||||||
property string feeErrorText
|
property string feeErrorText
|
||||||
property bool isFeeLoading: true
|
property bool isFeeLoading: true
|
||||||
|
property string chainName
|
||||||
|
property string totalFeeText
|
||||||
|
property string generalAccountErrorText: ""
|
||||||
|
|
||||||
// Network related properties:
|
// Network related properties:
|
||||||
property var layer1Networks
|
property var layer1Networks
|
||||||
|
@ -630,6 +633,11 @@ StackView {
|
||||||
|
|
||||||
collectibleName: view.token.name
|
collectibleName: view.token.name
|
||||||
model: view.tokenOwnersModel || null
|
model: view.tokenOwnersModel || null
|
||||||
|
accounts: root.accounts
|
||||||
|
chainName: root.chainName
|
||||||
|
totalFeeText: root.totalFeeText
|
||||||
|
feeErrorText: root.feeErrorText
|
||||||
|
generalAccountErrorText: root.generalAccountErrorText
|
||||||
|
|
||||||
onRemotelyDestructClicked: {
|
onRemotelyDestructClicked: {
|
||||||
remotelyDestructPopup.close()
|
remotelyDestructPopup.close()
|
||||||
|
|
|
@ -31,7 +31,7 @@ Item {
|
||||||
readonly property alias sortBy: d.sortBy
|
readonly property alias sortBy: d.sortBy
|
||||||
readonly property alias sortOrder: d.sorting
|
readonly property alias sortOrder: d.sorting
|
||||||
readonly property bool bottomSeparatorVisible: ((listView.contentY > 0) &&
|
readonly property bool bottomSeparatorVisible: ((listView.contentY > 0) &&
|
||||||
(listView.contentY < (listView.contentHeight - listView.height - 40/*margins*/)))
|
(listView.contentY < (listView.contentHeight - listView.height)))
|
||||||
|
|
||||||
signal selfDestructAmountChanged(string walletAddress, int amount)
|
signal selfDestructAmountChanged(string walletAddress, int amount)
|
||||||
signal selfDestructRemoved(string walletAddress)
|
signal selfDestructRemoved(string walletAddress)
|
||||||
|
|
|
@ -10,6 +10,7 @@ import StatusQ.Core.Theme 0.1
|
||||||
import StatusQ.Core.Utils 0.1
|
import StatusQ.Core.Utils 0.1
|
||||||
|
|
||||||
import AppLayouts.Communities.panels 1.0
|
import AppLayouts.Communities.panels 1.0
|
||||||
|
import SortFilterProxyModel 0.2
|
||||||
|
|
||||||
import utils 1.0
|
import utils 1.0
|
||||||
|
|
||||||
|
@ -17,11 +18,19 @@ StatusDialog {
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
property alias model: tokenHoldersPanel.model
|
property alias model: tokenHoldersPanel.model
|
||||||
|
|
||||||
property string collectibleName
|
property string collectibleName
|
||||||
|
property string chainName
|
||||||
|
property string totalFeeText
|
||||||
|
property bool isFeeLoading
|
||||||
|
property string feeErrorText: ""
|
||||||
|
property string generalAccountErrorText: ""
|
||||||
|
property string feeLabel: qsTr("Remotely destruct %1 token on %2").arg(root.collectibleName).arg(root.chainName)
|
||||||
|
property string feePlaceholderText: qsTr("Select a hodler to see remote destruction gas fees")
|
||||||
|
// Account expected roles: address, name, color, emoji, walletType
|
||||||
|
property var accounts
|
||||||
signal remotelyDestructClicked(int tokenCount, var remotelyDestructTokensList)
|
signal remotelyDestructClicked(int tokenCount, var remotelyDestructTokensList)
|
||||||
|
|
||||||
|
|
||||||
QtObject {
|
QtObject {
|
||||||
id: d
|
id: d
|
||||||
|
|
||||||
|
@ -63,12 +72,58 @@ StatusDialog {
|
||||||
implicitWidth: 600 // by design
|
implicitWidth: 600 // by design
|
||||||
padding: 0
|
padding: 0
|
||||||
|
|
||||||
contentItem: TokenHoldersPanel {
|
contentItem: ColumnLayout {
|
||||||
id: tokenHoldersPanel
|
spacing: 16
|
||||||
tokenName: root.collectibleName
|
TokenHoldersPanel {
|
||||||
isSelectorMode: true
|
id: tokenHoldersPanel
|
||||||
onSelfDestructAmountChanged: d.updateTokensToDestruct(walletAddress, amount)
|
tokenName: root.collectibleName
|
||||||
onSelfDestructRemoved: d.clearTokensToDesctruct(walletAddress)
|
Layout.fillWidth: true
|
||||||
|
Layout.fillHeight: true
|
||||||
|
isSelectorMode: true
|
||||||
|
onSelfDestructAmountChanged: d.updateTokensToDestruct(walletAddress, amount)
|
||||||
|
onSelfDestructRemoved: d.clearTokensToDesctruct(walletAddress)
|
||||||
|
}
|
||||||
|
FeesBox {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.bottomMargin: 16
|
||||||
|
Layout.leftMargin: 16
|
||||||
|
Layout.rightMargin: 16
|
||||||
|
implicitWidth: 0
|
||||||
|
totalFeeText: root.totalFeeText
|
||||||
|
generalErrorText: root.generalAccountErrorText
|
||||||
|
accountErrorText: root.feeErrorText
|
||||||
|
placeholderText: root.feePlaceholderText
|
||||||
|
showAccountsSelector: true
|
||||||
|
model: d.tokenCount > 0 ? singleFeeModel : undefined
|
||||||
|
accountsSelector.model: SortFilterProxyModel {
|
||||||
|
sourceModel: root.accounts
|
||||||
|
proxyRoles: [
|
||||||
|
ExpressionRole {
|
||||||
|
name: "color"
|
||||||
|
function getColor(colorId) {
|
||||||
|
return Utils.getColorForId(colorId)
|
||||||
|
}
|
||||||
|
// Direct call for singleton function is not handled properly by
|
||||||
|
// SortFilterProxyModel that's why helper function is used instead.
|
||||||
|
expression: { return getColor(model.colorId) }
|
||||||
|
}
|
||||||
|
]
|
||||||
|
filters: ValueFilter {
|
||||||
|
roleName: "walletType"
|
||||||
|
value: Constants.watchWalletType
|
||||||
|
inverted: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QtObject {
|
||||||
|
id: singleFeeModel
|
||||||
|
|
||||||
|
readonly property string title: root.feeLabel
|
||||||
|
readonly property string feeText: root.isFeeLoading ?
|
||||||
|
"" : root.feeText
|
||||||
|
readonly property bool error: d.isFeeError
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
footer: StatusDialogFooter {
|
footer: StatusDialogFooter {
|
||||||
|
|
Loading…
Reference in New Issue