613 lines
16 KiB
QML
613 lines
16 KiB
QML
import QtQuick 2.14
|
|
import QtQuick.Controls 2.14
|
|
import QtQml.Models 2.14
|
|
import QtQuick.Layouts 1.14
|
|
import StatusQ.Core 0.1
|
|
import StatusQ.Core.Theme 0.1
|
|
import StatusQ.Controls 0.1
|
|
import StatusQ.Components 0.1
|
|
import StatusQ.Core.Utils 0.1
|
|
|
|
ColumnLayout {
|
|
spacing: 5
|
|
|
|
StatusNavigationListItem {
|
|
title: "Menu Item"
|
|
}
|
|
|
|
StatusNavigationListItem {
|
|
title: "Menu Item"
|
|
asset.name: "info"
|
|
}
|
|
|
|
StatusNavigationListItem {
|
|
title: "Menu Item"
|
|
asset.name: "info"
|
|
badge.value: 1
|
|
}
|
|
StatusNavigationListItem {
|
|
title: "Menu Item (selected) with very long text"
|
|
selected: true
|
|
asset.name: "info"
|
|
badge.value: 1
|
|
}
|
|
|
|
StatusChatListItem {
|
|
id: test
|
|
name: "public-channel"
|
|
type: StatusChatListItem.Type.PublicChat
|
|
}
|
|
|
|
StatusChatListCategoryItem {
|
|
text: "Chat list category"
|
|
opened: false
|
|
showActionButtons: true
|
|
}
|
|
|
|
StatusChatListCategoryItem {
|
|
text: "Chat list category (opened)"
|
|
opened: true
|
|
showActionButtons: true
|
|
}
|
|
|
|
StatusChatListCategoryItem {
|
|
text: "Chat list category (no buttons)"
|
|
opened: true
|
|
}
|
|
|
|
StatusChatListCategoryItem {
|
|
id: categoryItemInteractive
|
|
text: "Chat category interactive"
|
|
showActionButtons: true
|
|
onAddButtonClicked: testEventsList.eventTriggered("Add button clicked")
|
|
onMenuButtonClicked: testEventsList.eventTriggered("Menu button clicked")
|
|
onToggleButtonClicked: {
|
|
opened = !opened
|
|
testEventsList.eventTriggered("Toggle button clicked")
|
|
}
|
|
onClicked: {
|
|
opened = !opened
|
|
testEventsList.eventTriggered("Item clicked", itemId)
|
|
}
|
|
}
|
|
|
|
ListView {
|
|
id: testEventsList
|
|
|
|
Layout.fillWidth: true
|
|
Layout.preferredHeight: categoryItemInteractive.opened ? 20 * count : 0
|
|
|
|
clip: true
|
|
|
|
function eventTriggered(message) {
|
|
let obj = eventDelegateComponent.createObject()
|
|
obj.text = message
|
|
model.insert(0, obj)
|
|
}
|
|
|
|
Component {
|
|
id: eventDelegateComponent
|
|
|
|
ItemDelegate {
|
|
implicitHeight: 20
|
|
|
|
property int index: ObjectModel.index
|
|
|
|
Timer {
|
|
interval: 5000; running: true
|
|
onTriggered: testObjectModel.remove(index)
|
|
}
|
|
}
|
|
}
|
|
|
|
model: ObjectModel {
|
|
id: testObjectModel
|
|
}
|
|
}
|
|
|
|
StatusChatListItem {
|
|
name: "group-chat"
|
|
type: StatusChatListItem.Type.GroupChat
|
|
}
|
|
|
|
StatusChatListItem {
|
|
name: "community-channel"
|
|
type: StatusChatListItem.Type.CommunityChat
|
|
}
|
|
|
|
StatusChatListItem {
|
|
name: "community-channel-emoji"
|
|
type: StatusChatListItem.Type.CommunityChat
|
|
asset.emoji: "😁"
|
|
}
|
|
|
|
StatusChatListItem {
|
|
name: "community-channel-with-image"
|
|
asset.isImage: true
|
|
asset.name: "qrc:/demoapp/data/profile-image-1.jpeg"
|
|
type: StatusChatListItem.Type.CommunityChat
|
|
}
|
|
|
|
StatusChatListItem {
|
|
name: "Weird Crazy Otter"
|
|
asset.isImage: true
|
|
asset.name: "qrc:/demoapp/data/profile-image-1.jpeg"
|
|
type: StatusChatListItem.Type.OneToOneChat
|
|
}
|
|
|
|
StatusChatListItem {
|
|
name: "has-unread-messages"
|
|
type: StatusChatListItem.Type.PublicChat
|
|
hasUnreadMessages: true
|
|
}
|
|
|
|
StatusChatListItem {
|
|
name: "has-mentions"
|
|
type: StatusChatListItem.Type.PublicChat
|
|
hasUnreadMessages: true
|
|
notificationsCount: 1
|
|
}
|
|
|
|
StatusChatListItem {
|
|
name: "is-muted"
|
|
type: StatusChatListItem.Type.PublicChat
|
|
muted: true
|
|
onUnmute: muted = false
|
|
}
|
|
|
|
StatusChatListItem {
|
|
name: "muted-with-mentions"
|
|
type: StatusChatListItem.Type.PublicChat
|
|
muted: true
|
|
hasUnreadMessages: true
|
|
notificationsCount: 1
|
|
}
|
|
|
|
StatusChatListItem {
|
|
name: "selected-channel"
|
|
type: StatusChatListItem.Type.PublicChat
|
|
selected: true
|
|
}
|
|
|
|
StatusChatListItem {
|
|
name: "selected-muted-channel"
|
|
type: StatusChatListItem.Type.PublicChat
|
|
selected: true
|
|
muted: true
|
|
}
|
|
|
|
StatusChatListItem {
|
|
name: "selected-muted-channel-with-unread-messages"
|
|
type: StatusChatListItem.Type.PublicChat
|
|
selected: true
|
|
muted: true
|
|
hasUnreadMessages: true
|
|
}
|
|
|
|
StatusChatListItem {
|
|
name: "selected-muted-with-mentions"
|
|
type: StatusChatListItem.Type.PublicChat
|
|
selected: true
|
|
muted: true
|
|
hasUnreadMessages: true
|
|
notificationsCount: 1
|
|
}
|
|
|
|
|
|
StatusListItem {
|
|
title: "Title"
|
|
}
|
|
|
|
StatusListItem {
|
|
title: "Title"
|
|
subTitle: "Subtitle"
|
|
}
|
|
|
|
StatusListItem {
|
|
title: "Title"
|
|
subTitle: "Subtitle"
|
|
tertiaryTitle: "Tertiary title"
|
|
|
|
statusListItemTitle.font.pixelSize: 17
|
|
statusListItemTitle.font.weight: Font.Bold
|
|
}
|
|
|
|
StatusListItem {
|
|
title: "Title"
|
|
subTitle: "Super long description that causes a multiline paragraph and makes the size of the component grow. Let's see how it behaves."
|
|
tertiaryTitle: "Tertiary title"
|
|
asset.name: "info"
|
|
|
|
statusListItemTitle.font.pixelSize: 17
|
|
statusListItemTitle.font.weight: Font.Bold
|
|
}
|
|
|
|
StatusListItem {
|
|
title: "Title"
|
|
subTitle: "Subtitle"
|
|
asset.name: "info"
|
|
}
|
|
|
|
StatusListItem {
|
|
title: "Title"
|
|
subTitle: "Subtitle"
|
|
asset.isImage: true
|
|
asset.name: "qrc:/demoapp/data/profile-image-1.jpeg"
|
|
}
|
|
|
|
StatusListItem {
|
|
title: "Title"
|
|
subTitle: "Subtitle"
|
|
asset.isImage: true
|
|
asset.name: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAlklEQVR4nOzW0QmDQBAG4SSkl7SUQlJGCrElq9F3QdjjVhh/5nv3cFhY9vUIYQiNITSG0BhCExPynn1gWf9bx498P7/
|
|
nzPcxEzGExhBdJGYihtAYQlO+tUZvqrPbqeudo5iJGEJjCE15a3VtodH3q2ImYgiNITTlTdG1nUZ5a92VITQxITFiJmIIjSE0htAYQrMHAAD//+wwFVpz+yqXAAAAAElFTkSuQmCC"
|
|
asset.imgIsIdenticon: true
|
|
}
|
|
|
|
StatusListItem {
|
|
title: "Title"
|
|
subTitle: "Subtitle"
|
|
asset.name: "info"
|
|
components: [StatusButton {
|
|
text: "Button"
|
|
size: StatusBaseButton.Size.Small
|
|
}]
|
|
}
|
|
|
|
StatusListItem {
|
|
title: "Title"
|
|
subTitle: "Subtitle"
|
|
asset.name: "info"
|
|
components: [StatusSwitch {}]
|
|
}
|
|
|
|
StatusListItem {
|
|
title: "Title"
|
|
subTitle: "Subtitle"
|
|
asset.name: "info"
|
|
components: [StatusRadioButton {}]
|
|
}
|
|
|
|
StatusListItem {
|
|
title: "Title"
|
|
subTitle: "Subtitle"
|
|
asset.name: "info"
|
|
components: [StatusCheckBox {}]
|
|
}
|
|
|
|
StatusListItem {
|
|
title: "Title"
|
|
subTitle: "Subtitle"
|
|
asset.name: "info"
|
|
label: "Text"
|
|
}
|
|
|
|
StatusListItem {
|
|
title: "Title"
|
|
subTitle: "Subtitle"
|
|
asset.name: "info"
|
|
label: "Text"
|
|
components: [
|
|
StatusButton {
|
|
text: "Button"
|
|
size: StatusBaseButton.Size.Small
|
|
}
|
|
]
|
|
}
|
|
|
|
StatusListItem {
|
|
title: "Title"
|
|
subTitle: "Subtitle"
|
|
asset.name: "info"
|
|
label: "Text"
|
|
components: [StatusSwitch {}]
|
|
}
|
|
|
|
StatusListItem {
|
|
title: "Title"
|
|
subTitle: "Subtitle"
|
|
asset.name: "info"
|
|
label: "Text"
|
|
components: [
|
|
StatusRadioButton {}
|
|
]
|
|
}
|
|
|
|
StatusListItem {
|
|
title: "Title"
|
|
subTitle: "Subtitle"
|
|
asset.name: "info"
|
|
label: "Text"
|
|
components: [StatusCheckBox {}]
|
|
}
|
|
|
|
StatusListItem {
|
|
title: "Title"
|
|
subTitle: "Subtitle"
|
|
asset.name: "info"
|
|
label: "Text"
|
|
components: [
|
|
StatusBadge {
|
|
value: 1
|
|
},
|
|
StatusIcon {
|
|
icon: "info"
|
|
color: Theme.palette.baseColor1
|
|
width: 20
|
|
height: 20
|
|
}
|
|
]
|
|
}
|
|
|
|
StatusListItem {
|
|
title: "Title"
|
|
asset.name: "info"
|
|
type: StatusListItem.Type.Secondary
|
|
}
|
|
|
|
StatusListItem {
|
|
title: "Title"
|
|
asset.isLetterIdenticon: true
|
|
asset.color: "orange"
|
|
}
|
|
|
|
StatusListItem {
|
|
title: "Title"
|
|
titleAsideText: "test"
|
|
}
|
|
|
|
StatusListItem {
|
|
title: "Title"
|
|
asset.name: "delete"
|
|
type: StatusListItem.Type.Danger
|
|
}
|
|
|
|
StatusListItem {
|
|
title: "List Item with Badge"
|
|
subTitle: "Subtitle"
|
|
asset.isImage: true
|
|
asset.name: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAlklEQVR4nOzW0QmDQBAG4SSkl7SUQlJGCrElq9F3QdjjVhh/5nv3cFhY9vUIYQiNITSG0BhCExPynn1gWf9bx498P7/
|
|
nzPcxEzGExhBdJGYihtAYQlO+tUZvqrPbqeudo5iJGEJjCE15a3VtodH3q2ImYgiNITTlTdG1nUZ5a92VITQxITFiJmIIjSE0htAYQrMHAAD//+wwFVpz+yqXAAAAAElFTkSuQmCC"
|
|
asset.imgIsIdenticon: true
|
|
badge.asset.isImage: true
|
|
badge.asset.name: "qrc:/demoapp/data/profile-image-1.jpeg"
|
|
badge.primaryText: "CryptoKitties"
|
|
badge.secondaryText: "#test"
|
|
}
|
|
|
|
StatusListItem {
|
|
title: "List Item with Badge 2"
|
|
subTitle: "Subtitle"
|
|
asset.isLetterIdenticon: true
|
|
badge.primaryText: "CryptoKitties"
|
|
badge.secondaryText: "#test"
|
|
badge.asset.color: "orange"
|
|
badge.asset.isLetterIdenticon: true
|
|
}
|
|
|
|
StatusListItem {
|
|
title: "List Item with bottom Tags"
|
|
asset.isLetterIdenticon: true
|
|
bottomModel: 3
|
|
bottomDelegate: StatusListItemTag {
|
|
title: "tag"
|
|
asset.isLetterIdenticon: true
|
|
}
|
|
}
|
|
|
|
StatusListItem {
|
|
title: "List Item with Tags"
|
|
asset.isLetterIdenticon: true
|
|
tagsModel: ListModel{
|
|
ListElement {
|
|
name: "helloworld.eth"
|
|
emoji: "😁"
|
|
}
|
|
ListElement {
|
|
name: "account1"
|
|
emoji: "😁"
|
|
}
|
|
ListElement {
|
|
name: "account2"
|
|
emoji: "😁"
|
|
}
|
|
ListElement {
|
|
name: "account3"
|
|
emoji: "😁"
|
|
}
|
|
ListElement {
|
|
name: "account4"
|
|
emoji: "😁"
|
|
}
|
|
}
|
|
tagsDelegate: StatusListItemTag {
|
|
bgColor: "blue"
|
|
bgRadius: 6
|
|
height: 24
|
|
closeButtonVisible: false
|
|
asset.emoji: model.emoji
|
|
asset.emojiSize: Emoji.size.verySmall
|
|
asset.isLetterIdenticon: true
|
|
title: model.name
|
|
titleText.font.pixelSize: 12
|
|
titleText.color: Theme.palette.indirectColor1
|
|
}
|
|
}
|
|
|
|
StatusListItem {
|
|
implicitWidth: 600
|
|
title: "List Item with inline Tags"
|
|
subTitle: "03:32"
|
|
asset.isLetterIdenticon: true
|
|
inlineTagModel: 6
|
|
inlineTagDelegate: StatusListItemTag {
|
|
height: 24
|
|
title: "tag"
|
|
asset.isLetterIdenticon: true
|
|
}
|
|
components: [
|
|
ColumnLayout {
|
|
Row {
|
|
Layout.alignment: Qt.AlignRight
|
|
spacing: 4
|
|
StatusIcon {
|
|
color: Theme.palette.successColor1
|
|
icon: "arrow-up"
|
|
rotation: 135
|
|
height: 18
|
|
}
|
|
StatusBaseText {
|
|
text: "0.0000015 ETH"
|
|
font.pixelSize: 15
|
|
color: Theme.palette.directColor1
|
|
}
|
|
}
|
|
StatusBaseText {
|
|
Layout.alignment: Qt.AlignRight
|
|
text: "1201.10 USD"
|
|
font.pixelSize: 15
|
|
color: Theme.palette.baseColor1
|
|
}
|
|
}
|
|
]
|
|
}
|
|
|
|
StatusListItem {
|
|
title: "List Item with Emoji"
|
|
subTitle: "Emoji"
|
|
asset.emoji: "😁"
|
|
asset.color: "yellow"
|
|
asset.letterSize: 14
|
|
asset.isLetterIdenticon: true
|
|
}
|
|
|
|
StatusDescriptionListItem {
|
|
title: "Title"
|
|
subTitle: "Subtitle"
|
|
}
|
|
|
|
StatusDescriptionListItem {
|
|
title: "Title"
|
|
subTitle: "Very long subtitle with icon to see it wrap words when overflown"
|
|
value: "None"
|
|
sensor.enabled: true
|
|
asset.name: "copy"
|
|
}
|
|
|
|
StatusDescriptionListItem {
|
|
title: "Title"
|
|
subTitle: "Subtitle"
|
|
tooltip.text: "Tooltip"
|
|
asset.name: "info"
|
|
iconButton.onClicked: tooltip.visible = !tooltip.visible
|
|
}
|
|
|
|
StatusContactRequestsIndicatorListItem {
|
|
title: "Contact requests"
|
|
requestsCount: 3
|
|
}
|
|
|
|
StatusMemberListItem {
|
|
nickName: "This is an example"
|
|
userName: "annabelle"
|
|
pubKey: "0x043a7ed0e8752236a4688563652fd0296453cef00a5dcddbe252dc74f72cc1caa97a2b65e4a1a52d9c30a84c9966beaaaf6b333d659cbdd2e486b443ed1012cf04"
|
|
isVerified: true
|
|
isContact: true
|
|
asset.isImage: true
|
|
asset.name: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAlklEQVR4nOzW0QmDQBAG4SSkl7SUQlJGCrElq9F3QdjjVhh/5nv3cFhY9vUIYQiNITSG0BhCExPynn1gWf9bx498P7/
|
|
nzPcxEzGExhBdJGYihtAYQlO+tUZvqrPbqeudo5iJGEJjCE15a3VtodH3q2ImYgiNITTlTdG1nUZ5a92VITQxITFiJmIIjSE0htAYQrMHAAD//+wwFVpz+yqXAAAAAElFTkSuQmCC"
|
|
asset.imgIsIdenticon: true
|
|
status: 1 // FIXME: use enum
|
|
ringSettings.ringSpecModel:
|
|
ListModel {
|
|
ListElement {colorId: 13; segmentLength: 5}
|
|
ListElement {colorId: 31; segmentLength: 5}
|
|
ListElement {colorId: 10; segmentLength: 1}
|
|
ListElement {colorId: 2; segmentLength: 5}
|
|
ListElement {colorId: 26; segmentLength: 2}
|
|
ListElement {colorId: 19; segmentLength: 4}
|
|
ListElement {colorId: 28; segmentLength: 3}
|
|
}
|
|
ringSettings.distinctiveColors: Theme.palette.identiconRingColors
|
|
}
|
|
|
|
StatusMemberListItem {
|
|
nickName: "carmen.eth"
|
|
isUntrustworthy: true
|
|
asset.isLetterIdenticon: true
|
|
}
|
|
|
|
StatusMemberListItem {
|
|
nickName: "very-long-annoying-nickname.eth"
|
|
isUntrustworthy: true
|
|
asset.isLetterIdenticon: true
|
|
}
|
|
|
|
StatusMemberListItem {
|
|
nickName: "untrusted-admin.eth"
|
|
asset.isLetterIdenticon: true
|
|
isUntrustworthy: true
|
|
isAdmin: true
|
|
isContact: true
|
|
}
|
|
|
|
StatusMemberListItem {
|
|
nickName: "This girl I know from work"
|
|
userName: "annabelle"
|
|
asset.isLetterIdenticon: true
|
|
status: 1 // FIXME: use enum
|
|
}
|
|
|
|
StatusMemberListItem {
|
|
nickName: "Mark Cuban"
|
|
userName: "annabelle"
|
|
pubKey: "0x043a7ed0e8752236a4688563652fd0296453cef00a5dcddbe252dc74f72cc1caa97a2b65e4a1a52d9c30a84c9966beaaaf6b333d659cbdd2e486b443ed1012cf04"
|
|
isContact: true
|
|
asset.isImage: true
|
|
asset.name: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAlklEQVR4nOzW0QmDQBAG4SSkl7SUQlJGCrElq9F3QdjjVhh/5nv3cFhY9vUIYQiNITSG0BhCExPynn1gWf9bx498P7/
|
|
nzPcxEzGExhBdJGYihtAYQlO+tUZvqrPbqeudo5iJGEJjCE15a3VtodH3q2ImYgiNITTlTdG1nUZ5a92VITQxITFiJmIIjSE0htAYQrMHAAD//+wwFVpz+yqXAAAAAElFTkSuQmCC"
|
|
asset.imgIsIdenticon: true
|
|
}
|
|
|
|
StatusMemberListItem {
|
|
nickName: "admin.guy"
|
|
userName: "adguy"
|
|
isAdmin: true
|
|
asset.isLetterIdenticon: true
|
|
isUntrustworthy: true
|
|
}
|
|
|
|
StatusBaseText {
|
|
Layout.fillWidth: true
|
|
Layout.topMargin: 16
|
|
text: "Device delegate with online badge"
|
|
font.pixelSize: 17
|
|
}
|
|
|
|
component DeviceListItem: StatusListItem {
|
|
title: "Nokia 3310"
|
|
asset.name: "mobile"
|
|
asset.bgColor: Theme.palette.primaryColor3
|
|
asset.color: Theme.palette.primaryColor1
|
|
}
|
|
|
|
DeviceListItem {
|
|
subTitle: "Online now"
|
|
subTitleBadgeComponent: StatusOnlineBadge {
|
|
online: true
|
|
}
|
|
}
|
|
|
|
DeviceListItem {
|
|
subTitle: "Online 47 minutes ago"
|
|
subTitleBadgeComponent: StatusOnlineBadge {
|
|
online: false
|
|
}
|
|
}
|
|
|
|
DeviceListItem {
|
|
subTitle: "This device"
|
|
subTitleBadgeComponent: null
|
|
}
|
|
}
|