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

83 lines
1.9 KiB
QML
Raw Normal View History

import QtQuick 2.13
import QtQuick.Controls 2.13
import QtGraphicalEffects 1.13
import utils 1.0
import "./"
import "../"
import "../status"
// 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
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) {
chatsModel.copyToClipboard(textToCopy)
}
onClick()
}
}
2021-01-13 15:10:42 +00:00
StatusToolTip {
id: toolTip
2021-02-18 16:36:05 +00:00
//% "Copied!"
text: qsTrId("copied-")
orientation: tooltipUnder ? "bottom" : "top"
}
Timer {
id:hideTimer
2021-01-13 15:10:42 +00:00
interval: 2000
running: toolTip.visible
onTriggered: {
toolTip.visible = false;
}
}
}