72 lines
2.2 KiB
QML
72 lines
2.2 KiB
QML
import QtQuick 2.15
|
|
|
|
import SortFilterProxyModel 0.2
|
|
import StatusQ 0.1
|
|
import StatusQ.Core.Utils 0.1 as SQUtils
|
|
|
|
import shared.stores 1.0
|
|
|
|
import utils 1.0
|
|
|
|
QtObject {
|
|
id: root
|
|
|
|
property TokensStore walletTokensStore
|
|
|
|
/* PRIVATE: This model renames the role "key" to "tokensKey" in TokensBySymbolModel so that
|
|
it can be easily joined with the Account Assets model */
|
|
readonly property var _renamedTokensBySymbolModel: RolesRenamingModel {
|
|
sourceModel: walletTokensStore.plainTokensBySymbolModel
|
|
mapping: [
|
|
RoleRename {
|
|
from: "key"
|
|
to: "tokensKey"
|
|
}
|
|
]
|
|
}
|
|
|
|
/* PRIVATE: This model renames the roles
|
|
1. "id" to "communityId"
|
|
2. "name" to "communityName"
|
|
3. "image" to "communityImage"
|
|
4. "description" to "communityDescription"
|
|
in communitiesModule.model so that it can be easily
|
|
joined with the Account Assets model */
|
|
readonly property var _renamedCommunitiesModel: RolesRenamingModel {
|
|
sourceModel: communitiesModule.model
|
|
mapping: [
|
|
RoleRename {
|
|
from: "id"
|
|
to: "communityId"
|
|
},
|
|
RoleRename {
|
|
from: "name"
|
|
to: "communityName"
|
|
},
|
|
RoleRename {
|
|
from: "image"
|
|
to: "communityImage"
|
|
},
|
|
RoleRename {
|
|
from: "description"
|
|
to: "communityDescription"
|
|
}
|
|
]
|
|
}
|
|
|
|
/* PRIVATE: This model joins the "Tokens By Symbol Model" and "Communities Model" by communityId */
|
|
property LeftJoinModel _jointTokensBySymbolModel: LeftJoinModel {
|
|
leftModel: _renamedTokensBySymbolModel
|
|
rightModel: _renamedCommunitiesModel
|
|
joinRole: "communityId"
|
|
}
|
|
|
|
/* This model joins the "Tokens by symbol model combined with Community details"
|
|
and "Grouped Account Assets Model" by tokenskey */
|
|
property LeftJoinModel groupedAccountAssetsModel: LeftJoinModel {
|
|
leftModel: walletSectionAssets.groupedAccountAssetsModel
|
|
rightModel: _jointTokensBySymbolModel
|
|
joinRole: "tokensKey"
|
|
}
|
|
}
|