status-desktop/ui/StatusQ/sandbox/pages/StatusMenuPage.qml

203 lines
5.0 KiB
QML

import QtQuick 2.14
import QtQuick.Layouts 1.14
import QtQuick.Controls 2.13
import Qt.labs.qmlmodels 1.0
import StatusQ.Core 0.1
import StatusQ.Core.Theme 0.1
import StatusQ.Controls 0.1
import StatusQ.Popups 0.1
import "../demoapp/data" 1.0
GridLayout {
columns: 1
columnSpacing: 5
rowSpacing: 5
StatusButton {
text: "Simple"
onClicked: simpleMenu.popup()
}
StatusButton {
text: "Complex"
onClicked: complexMenu.popup()
}
StatusButton {
id: customPopupButton
text: "Menu with custom images and icons"
onClicked: customMenu.popup()
}
StatusButton {
text: "Menu with custom font settings"
onClicked: differentFontMenu.popup()
}
StatusButton {
text: "StatusSearchLocationMenu"
onClicked: searchPopupMenu.popup()
StatusSearchLocationMenu {
id: searchPopupMenu
locationModel: Models.optionsModel
}
}
StatusMenu {
id: simpleMenu
StatusAction {
text: "One"
}
StatusAction {
text: "Two"
}
StatusAction {
text: "Three"
}
}
StatusMenu {
id: complexMenu
hideDisabledItems: false
StatusAction {
text: "One"
assetSettings.name: "info"
}
StatusMenuSeparator {}
StatusAction {
text: "Two"
assetSettings.name: "info"
}
StatusMenu {
title: "Two"
assetSettings.name: "info"
StatusAction {
text: "One"
assetSettings.name: "info"
}
StatusAction {
text: "Three"
assetSettings.name: "info"
}
}
StatusAction {
text: "Disabled"
assetSettings.name: "info"
enabled: false
}
StatusAction {
text: "Danger"
type: StatusAction.Type.Danger
}
}
StatusMenu {
id: customMenu
StatusAction {
text: "Anywhere"
}
StatusMenuSeparator {}
StatusMenu {
title: "Chat"
assetSettings.name: "chat"
StatusAction {
text: "vitalik.eth"
assetSettings.isImage: true
assetSettings.imgIsIdenticon: true
assetSettings.name: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAlklEQVR4nOzW0QmDQBAG4SSkl7SUQlJGCrElq9F3QdjjVhh/5nv3cFhY9vUIYQiNITSG0Bh
CExPynn1gWf9bx498P7/nzPcxEzGExhBdJGYihtAYQlO+tUZvqrPbqeudo5iJGEJjCE15a3VtodH3q2ImYgiNITTlTdG1nUZ5a92VITQxITFiJmIIjSE0htAYQrMHAAD//+wwFVpz+yqXAAAAAElFTkSuQmCC"
}
StatusAction {
text: "Pascal"
assetSettings.isImage: true
assetSettings.name: "qrc:/demoapp/data/profile-image-1.jpeg"
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
}
}
StatusMenu {
title: "Cryptokitties"
assetSettings.isImage: true
assetSettings.name: "qrc:/demoapp/data/profile-image-1.jpeg"
StatusAction {
text: "welcome"
assetSettings.name: "channel"
assetSettings.color: Theme.palette.directColor1
}
StatusAction {
text: "support"
assetSettings.name: "channel"
assetSettings.color: Theme.palette.directColor1
}
StatusMenuHeadline { text: "Public" }
StatusAction {
text: "news"
assetSettings.name: "channel"
assetSettings.color: Theme.palette.directColor1
}
}
StatusMenu {
title: "Another community"
assetSettings.isLetterIdenticon: true
assetSettings.color: "red"
StatusAction {
text: "welcome"
assetSettings.isLetterIdenticon: true
assetSettings.color: "blue"
}
}
}
StatusMenu {
id: differentFontMenu
StatusAction {
text: "Bold"
fontSettings.bold: true
}
StatusAction {
text: "Italic"
fontSettings.italic: true
}
StatusAction {
text: "16px"
fontSettings.pixelSize: 16
}
}
}