feat: improve Copy button to copy directly and have an active state

This commit is contained in:
Jonathan Rainville 2020-07-09 11:19:10 -04:00 committed by Iuri Matias
parent 33d639b071
commit ff2ed712f2
4 changed files with 33 additions and 26 deletions

View File

@ -150,15 +150,13 @@ ModalPopup {
anchors.topMargin: Style.current.smallPadding anchors.topMargin: Style.current.smallPadding
} }
CopyToClipBoardIcon { CopyToClipBoardButton {
visible: isEnsVerified visible: isEnsVerified
height: isEnsVerified ? 20 : 0 height: isEnsVerified ? 20 : 0
anchors.top: labelEnsUsername.bottom anchors.top: labelEnsUsername.bottom
anchors.left: valueEnsName.right anchors.left: valueEnsName.right
anchors.leftMargin: Style.current.smallPadding anchors.leftMargin: Style.current.smallPadding
onClick: function (){ textToCopy: valueEnsName.text
chatsModel.copyToClipboard(valueEnsName.text)
}
} }
StyledText { StyledText {
@ -186,13 +184,11 @@ ModalPopup {
anchors.topMargin: Style.current.smallPadding anchors.topMargin: Style.current.smallPadding
} }
CopyToClipBoardIcon { CopyToClipBoardButton {
anchors.top: labelChatKey.bottom anchors.top: labelChatKey.bottom
anchors.left: valueChatKey.right anchors.left: valueChatKey.right
anchors.leftMargin: Style.current.smallPadding anchors.leftMargin: Style.current.smallPadding
onClick: function (){ textToCopy: valueChatKey.text
chatsModel.copyToClipboard(valueChatKey.text)
}
} }
Separator { Separator {
@ -229,13 +225,11 @@ ModalPopup {
anchors.topMargin: Style.current.smallPadding anchors.topMargin: Style.current.smallPadding
} }
CopyToClipBoardIcon { CopyToClipBoardButton {
anchors.top: labelShareURL.bottom anchors.top: labelShareURL.bottom
anchors.left: valueShareURL.right anchors.left: valueShareURL.right
anchors.leftMargin: Style.current.smallPadding anchors.leftMargin: Style.current.smallPadding
onClick: function (){ textToCopy: "https://join.status.im/u/" + fromAuthor
chatsModel.copyToClipboard("https://join.status.im/u/" + fromAuthor)
}
} }
} }

View File

@ -220,6 +220,7 @@ DISTFILES += \
shared/ModalPopup.qml \ shared/ModalPopup.qml \
shared/PopupMenu.qml \ shared/PopupMenu.qml \
shared/Identicon.qml \ shared/Identicon.qml \
shared/CopyToClipBoardButton.qml \
shared/RoundedImage.qml \ shared/RoundedImage.qml \
shared/SearchBox.qml \ shared/SearchBox.qml \
shared/Select.qml \ shared/Select.qml \

View File

@ -8,6 +8,7 @@ Rectangle {
width: 32 width: 32
radius: 8 radius: 8
property var onClick: function() {} property var onClick: function() {}
property string textToCopy: ""
SVGImage { SVGImage {
width: 20 width: 20
@ -22,12 +23,23 @@ Rectangle {
anchors.fill: parent anchors.fill: parent
hoverEnabled: true hoverEnabled: true
onExited: { onExited: {
parent.color = Style.current.white parent.color = Style.current.transparent
} }
onEntered:{ onEntered:{
parent.color = Style.current.grey parent.color = Style.current.grey
} }
onClicked: onClick() onPressed: {
parent.color = Style.current.darkGrey
}
onReleased: {
parent.color = Style.current.transparent
}
onClicked: {
if (textToCopy) {
chatsModel.copyToClipboard(textToCopy)
}
onClick()
}
} }
} }

View File

@ -15,4 +15,4 @@ StyledTextEdit 1.0 StyledTextEdit.qml
Identicon 1.0 Identicon.qml Identicon 1.0 Identicon.qml
RoundedImage 1.0 RoundedImage.qml RoundedImage 1.0 RoundedImage.qml
SplitViewHandle 1.0 SplitViewHandle.qml SplitViewHandle 1.0 SplitViewHandle.qml
CopyToClipBoardIcon 1.0 CopyToClipBoardIcon.qml CopyToClipBoardButton 1.0 CopyToClipBoardButton.qml