status-desktop/ui/imports/shared/controls/CopyToClipBoardButton.qml

86 lines
2.0 KiB
QML
Raw Normal View History

import QtQuick 2.13
import QtQuick.Controls 2.13
import QtGraphicalEffects 1.13
import StatusQ.Controls 0.1 as StatusQ
import utils 1.0
import shared.stores 1.0
import "./"
import "../"
// TODO: Replace with StatusQ components
Rectangle {
id: copyToClipboardButton
height: 32
width: 32
radius: 8
color: Style.current.transparent
property var onClick: function() {}
property string textToCopy: ""
property bool tooltipUnder: false
property var store
2020-08-28 19:09:00 +00:00
Image {
width: 20
height: 20
2020-08-28 19:09:00 +00:00
sourceSize.width: width
sourceSize.height: height
source: Style.svg("copy-to-clipboard-icon")
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
ColorOverlay {
anchors.fill: parent
antialiasing: true
source: parent
color: Style.current.primary
}
}
MouseArea {
cursorShape: Qt.PointingHandCursor
anchors.fill: parent
hoverEnabled: true
onExited: {
parent.color = Style.current.transparent
}
onEntered:{
parent.color = Style.current.backgroundHover
}
onPressed: {
parent.color = Style.current.backgroundHover
2021-01-13 15:10:42 +00:00
if (!toolTip.visible) {
toolTip.visible = true
}
}
onReleased: {
parent.color = Style.current.backgroundHover
}
onClicked: {
if (textToCopy) {
copyToClipboardButton.store.copyToClipboard(textToCopy)
}
onClick()
}
}
StatusQ.StatusToolTip {
id: toolTip
2021-02-18 16:36:05 +00:00
//% "Copied!"
text: qsTrId("copied-")
orientation: tooltipUnder ? StatusQ.StatusToolTip.Orientation.Bottom: StatusQ.StatusToolTip.Orientation.Top
}
Timer {
id:hideTimer
2021-01-13 15:10:42 +00:00
interval: 2000
running: toolTip.visible
onTriggered: {
toolTip.visible = false;
}
}
}