parent
0f9f5de267
commit
0bf5c64b06
|
@ -1,197 +0,0 @@
|
|||
import QtQuick 2.13
|
||||
import QtQuick.Controls 2.13
|
||||
import QtQuick.Layouts 1.13
|
||||
|
||||
import utils 1.0
|
||||
import shared 1.0
|
||||
import shared.panels 1.0
|
||||
import shared.status 1.0
|
||||
|
||||
|
||||
Item {
|
||||
id: uiComponentCatalog
|
||||
Layout.fillHeight: true
|
||||
Layout.fillWidth: true
|
||||
|
||||
ColumnLayout {
|
||||
id: buttons
|
||||
spacing: 6
|
||||
width: parent.width
|
||||
|
||||
RowLayout {
|
||||
Text {
|
||||
text: "Buttons"
|
||||
}
|
||||
}
|
||||
|
||||
/* Commented due to high cpu usage */
|
||||
/*
|
||||
RowLayout {
|
||||
StatusButton {
|
||||
text: "Primary Large Button"
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Secondary Large Button"
|
||||
type: "secondary"
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Primary Small Button"
|
||||
size: "small"
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Secondary Small Button"
|
||||
size: "small"
|
||||
}
|
||||
|
||||
StatusRoundButton {
|
||||
icon.name: "arrow-right"
|
||||
icon.height: 15
|
||||
icon.width: 20
|
||||
}
|
||||
|
||||
StatusRoundButton {
|
||||
size: "medium"
|
||||
icon.name: "arrow-right"
|
||||
icon.height: 15
|
||||
icon.width: 20
|
||||
}
|
||||
|
||||
StatusRoundButton {
|
||||
size: "small"
|
||||
icon.name: "arrow-right"
|
||||
icon.height: 12
|
||||
icon.width: 18
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
StatusButton {
|
||||
text: "Primary Large Button"
|
||||
enabled: false
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Secondary Large Button"
|
||||
type: "secondary"
|
||||
enabled: false
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Primary Small Button"
|
||||
enabled: false
|
||||
size: "small"
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Secondary Small Button"
|
||||
type: "secondary"
|
||||
enabled: false
|
||||
size: "small"
|
||||
}
|
||||
|
||||
StatusRoundButton {
|
||||
icon.name: "arrow-right"
|
||||
icon.height: 15
|
||||
icon.width: 20
|
||||
enabled: false
|
||||
}
|
||||
|
||||
StatusRoundButton {
|
||||
size: "medium"
|
||||
icon.name: "arrow-right"
|
||||
icon.height: 15
|
||||
icon.width: 20
|
||||
enabled: false
|
||||
}
|
||||
|
||||
StatusRoundButton {
|
||||
size: "small"
|
||||
icon.name: "arrow-right"
|
||||
icon.height: 12
|
||||
icon.width: 18
|
||||
enabled: false
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
StatusButton {
|
||||
text: "Primary Large Button"
|
||||
state: "pending"
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Secondary Large Button"
|
||||
type: "secondary"
|
||||
state: "pending"
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Primary Large Button"
|
||||
state: "pending"
|
||||
size: "small"
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Secondary Large Button"
|
||||
type: "secondary"
|
||||
state: "pending"
|
||||
size: "small"
|
||||
}
|
||||
|
||||
StatusRoundButton {
|
||||
state: "pending"
|
||||
}
|
||||
|
||||
StatusRoundButton {
|
||||
size: "medium"
|
||||
state: "pending"
|
||||
}
|
||||
|
||||
StatusRoundButton {
|
||||
size: "small"
|
||||
state: "pending"
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
width: parent.width
|
||||
Layout.fillWidth: true
|
||||
Item {
|
||||
width: parent.width
|
||||
height: addressComponent.height
|
||||
Layout.fillWidth: true
|
||||
Address {
|
||||
id: addressComponent
|
||||
text: "0x9ce0056c5fc6bb9459a4dcfa35eaad8c1fee5ce9"
|
||||
width: 100
|
||||
}
|
||||
}
|
||||
}
|
||||
RowLayout {
|
||||
width: parent.width
|
||||
Layout.fillWidth: true
|
||||
Item {
|
||||
width: parent.width
|
||||
height: addressComponent.height
|
||||
Layout.fillWidth: true
|
||||
Address {
|
||||
id: addressComponentWidthAnchors
|
||||
text: "0x9ce0056c5fc6bb9459a4dcfa35eaad8c1fee5ce9"
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: parent.width - 100
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
/*##^##
|
||||
Designer {
|
||||
D{i:0;autoSize:true;formeditorColor:"#ffffff";formeditorZoom:0.75;height:480;width:1000}
|
||||
}
|
||||
##^##*/
|
|
@ -1,110 +0,0 @@
|
|||
import QtQuick 2.13
|
||||
import QtQuick.Controls 2.13
|
||||
import QtQuick.Window 2.12
|
||||
import QtQml 2.13
|
||||
import QtGraphicalEffects 1.13
|
||||
|
||||
import StatusQ.Platform 0.1
|
||||
|
||||
import utils 1.0
|
||||
import "../status"
|
||||
import "../controls"
|
||||
|
||||
Item {
|
||||
id: root
|
||||
property string chatId: ""
|
||||
property string name: "channel name"
|
||||
property string message: qsTr("Everything is connected")
|
||||
property int chatType: 1
|
||||
property var onClick
|
||||
|
||||
property var processClick: Backpressure.oneInTime(root, 1000, function () {
|
||||
notificationSound.play()
|
||||
var w1 = winInit.createObject(null)
|
||||
w1.destroy()
|
||||
})
|
||||
|
||||
Component {
|
||||
id: winInit
|
||||
Window {
|
||||
flags: Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint | Qt.Popup
|
||||
| Qt.WA_ShowWithoutActivating | Qt.BypassWindowManagerHint
|
||||
width: 1
|
||||
height: 1
|
||||
Component.onCompleted: {
|
||||
requestActivate()
|
||||
mainWin.createObject(root)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Component {
|
||||
id: mainWin
|
||||
|
||||
Window {
|
||||
id: notificationWindowSub
|
||||
flags: Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint | Qt.WA_ShowWithoutActivating | Qt.BypassWindowManagerHint
|
||||
height: channelNotif.height
|
||||
width: channelNotif.width
|
||||
x: Screen.width - (width + 50)
|
||||
y: 50
|
||||
visible: true
|
||||
color: Style.current.transparent
|
||||
|
||||
StatusMacNotification {
|
||||
id: channelNotif
|
||||
chatId: root.chatId
|
||||
name: root.name
|
||||
message: root.message
|
||||
|
||||
MouseArea {
|
||||
cursorShape: Qt.PointingHandCursor
|
||||
anchors.fill: parent
|
||||
onClicked: {
|
||||
timer.stop()
|
||||
notificationWindowSub.close()
|
||||
root.onClick(root.chatId)
|
||||
notificationWindowSub.destroy()
|
||||
}
|
||||
}
|
||||
|
||||
Timer {
|
||||
id: timer
|
||||
interval: Constants.notificationPopupTTL
|
||||
running: true
|
||||
repeat: false
|
||||
onTriggered: {
|
||||
notificationWindowSub.close()
|
||||
notificationWindowSub.destroy()
|
||||
}
|
||||
}
|
||||
onVisibleChanged: {
|
||||
if (visible) {
|
||||
timer.running = true
|
||||
if (Global.applicationWindow.active) {
|
||||
this.flags |= Qt.Popup
|
||||
} else {
|
||||
this.flags = Qt.FramelessWindowHint | Qt.WA_ShowWithoutActivating
|
||||
| Qt.WindowStaysOnTopHint | Qt.BypassWindowManagerHint
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function notifyUser(chatId, name, msg, chatType, onClick) {
|
||||
this.chatId = chatId
|
||||
this.name = name
|
||||
this.message = msg
|
||||
this.chatType = chatType
|
||||
this.onClick = onClick
|
||||
processClick()
|
||||
}
|
||||
}
|
||||
|
||||
/*##^##
|
||||
Designer {
|
||||
D{i:0;autoSize:true;height:480;width:640}
|
||||
}
|
||||
##^##*/
|
|
@ -1,160 +0,0 @@
|
|||
import QtQuick 2.13
|
||||
import QtGraphicalEffects 1.13
|
||||
import QtQuick.Controls 2.13
|
||||
|
||||
import utils 1.0
|
||||
import "../"
|
||||
import "../panels"
|
||||
import "../controls"
|
||||
|
||||
Popup {
|
||||
id: root
|
||||
closePolicy: Popup.NoAutoClose
|
||||
height: 68
|
||||
padding: 0
|
||||
margins: 0
|
||||
width: Math.max(Math.max(titleText.width, linkStyledText.width)
|
||||
+ (toastImage.visible? toastImage.width + rowId.spacing : 0)
|
||||
+ rowId.leftPadding + rowId.rightPadding,
|
||||
343)
|
||||
x: parent.width - width - Style.current.bigPadding
|
||||
y: parent.height - height - Style.current.bigPadding
|
||||
|
||||
|
||||
readonly property string defaultLinkText: qsTr("View on Etherscan")
|
||||
|
||||
property string uuid: "" // set this if you want to distinct among multiple toasts
|
||||
property url source: Style.svg("check-circle")
|
||||
property color iconColor: Style.current.primary
|
||||
property bool iconRotates: false
|
||||
property string title: qsTr("Transaction pending...")
|
||||
property string link: "https://etherscan.io/"
|
||||
property string linkText: defaultLinkText
|
||||
property int dissapearInMs: 4000 /* setting this to -1 makes caller responsible to close it */
|
||||
property bool displayCloseButton: true
|
||||
property bool displayLink: true
|
||||
|
||||
onOpened: {
|
||||
if(dissapearInMs == -1)
|
||||
return
|
||||
|
||||
timer.setTimeout(function() {
|
||||
root.close()
|
||||
}, dissapearInMs);
|
||||
}
|
||||
onClosed: {
|
||||
// Reset props
|
||||
source = Style.svg("check-circle")
|
||||
iconColor = Style.current.primary
|
||||
iconRotates = false
|
||||
title = qsTr("Transaction pending...")
|
||||
link = "https://etherscan.io/"
|
||||
linkText = defaultLinkText
|
||||
dissapearInMs = 4000
|
||||
displayCloseButton = true
|
||||
displayLink = true
|
||||
root.destroy();
|
||||
}
|
||||
|
||||
Timer {
|
||||
id: timer
|
||||
}
|
||||
|
||||
background: Rectangle {
|
||||
id: container
|
||||
radius: Style.current.radius
|
||||
color: Style.current.background
|
||||
|
||||
layer.enabled: true
|
||||
layer.effect: DropShadow{
|
||||
width: container.width
|
||||
height: container.height
|
||||
x: container.x
|
||||
y: container.y + 10
|
||||
visible: container.visible
|
||||
source: container
|
||||
horizontalOffset: 0
|
||||
verticalOffset: 2
|
||||
radius: 10
|
||||
samples: 15
|
||||
color: Style.current.dropShadow
|
||||
}
|
||||
}
|
||||
|
||||
Row {
|
||||
id: rowId
|
||||
anchors.fill: parent
|
||||
leftPadding: 12
|
||||
rightPadding: 12
|
||||
topPadding: Style.current.padding
|
||||
bottomPadding: Style.current.padding
|
||||
spacing: 12
|
||||
|
||||
RoundedIcon {
|
||||
id: toastImage
|
||||
visible: root.source != ""
|
||||
width: 32
|
||||
height: 32
|
||||
iconHeight: 20
|
||||
iconWidth: 20
|
||||
color: Utils.setColorAlpha(root.iconColor, 0.1)
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
source: root.source
|
||||
iconColor: root.iconColor
|
||||
rotates: root.iconRotates
|
||||
}
|
||||
|
||||
Column {
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
||||
StyledText {
|
||||
id: titleText
|
||||
text: root.title
|
||||
font.pixelSize: 13
|
||||
font.weight: Font.Medium
|
||||
}
|
||||
|
||||
StyledText {
|
||||
id: linkStyledText
|
||||
visible: displayLink
|
||||
text: `<a href='${root.link}' style='color:${Style.current.textColorTertiary};text-decoration:none;'>${root.linkText}</a>`
|
||||
color: Style.current.textColorTertiary
|
||||
textFormat: Text.RichText
|
||||
font.pixelSize: 13
|
||||
font.weight: Font.Medium
|
||||
onLinkActivated: {
|
||||
Global.openLink(root.link)
|
||||
root.close()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SVGImage {
|
||||
id: closeImage
|
||||
visible: displayCloseButton
|
||||
anchors.right: parent.right
|
||||
anchors.top: parent.top
|
||||
source: Style.svg("plusSign")
|
||||
anchors.topMargin: Style.current.padding
|
||||
anchors.rightMargin: Style.current.padding
|
||||
width: 9
|
||||
height: 9
|
||||
rotation: 45
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
cursorShape: Qt.PointingHandCursor
|
||||
onClicked: {
|
||||
root.close()
|
||||
}
|
||||
}
|
||||
}
|
||||
ColorOverlay {
|
||||
visible: displayCloseButton
|
||||
anchors.fill: closeImage
|
||||
source: closeImage
|
||||
rotation: 45
|
||||
color: Style.current.textColor
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue