From 6bf396f79b926d6a1ea04226474550d9962d52a8 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Mon, 31 Jul 2017 15:20:01 -0600 Subject: Experimental SelectableItem --- framework/qml/SelectableItem.qml | 87 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 framework/qml/SelectableItem.qml (limited to 'framework/qml') diff --git a/framework/qml/SelectableItem.qml b/framework/qml/SelectableItem.qml new file mode 100644 index 00000000..0e22ede5 --- /dev/null +++ b/framework/qml/SelectableItem.qml @@ -0,0 +1,87 @@ +/* + * Copyright (C) 2017 Michael Bohlender, + * Copyright (C) 2017 Christian Mollekopf, + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +import QtQuick 2.7 +import QtQuick.Controls 2.2 +import org.kube.framework 1.0 as Kube +import QtQuick.Layouts 1.3 + +// QtObject { +Item { + id: root + property string text + Rectangle { + anchors.fill: parent + color: "transparent" + border.color: Kube.Colors.highlightColor + border.width: 1 + visible: mouseArea.containsMouse || menu.visible + } + MouseArea { + id: mouseArea + anchors.fill: parent + hoverEnabled: true + acceptedButtons: Qt.RightButton + z: 1 + onClicked: { + menu.x = mouseX + menu.y = mouseY + menu.open() + mouse.accepted = true + } + } + Menu { + id: menu + + height: layout.height + width: layout.width + background: Rectangle { + anchors.fill: parent + color: "transparent" + } + RowLayout { + id: layout + width: button.width + height: button.height + Kube.TextButton { + id: button + text: "Copy" + onClicked: { + if (root.text) { + clipboard.text = root.text + } + menu.close() + } + } + } + } + // Kube.IconButton { + // anchors { + // left: parent.right + // verticalCenter: parent.verticalCenter + // } + // iconName: Kube.Icons.copy + // visible: mouseArea.containsMouse || hovered + // color: Kube.Colors.backgroundColor + // onClicked: clipboard.text = root.text + // } + Kube.Clipboard { + id: clipboard + } +} -- cgit v1.2.3