diff --git a/shell/contents/components/DialerButton.qml b/shell/contents/components/DialerButton.qml new file mode 100644 index 0000000..784cb55 --- /dev/null +++ b/shell/contents/components/DialerButton.qml @@ -0,0 +1,48 @@ +import QtQuick 2.0 +import org.kde.plasma.core 2.0 as PlasmaCore + +Text { + width: parent.width / parent.columns + height: parent.buttonHeight + horizontalAlignment: Qt.AlignHCenter + verticalAlignment: Qt.AlignVCenter + color: dialer.textColor + font.pixelSize: Math.floor((width - (units.largeSpacing)) / 2) + property alias sub: longHold.text + property var callback + + MouseArea { + anchors.fill: parent + onClicked: { + if (callback) { + callback(); + } else { + addNumber(parent.text); + } + } + + onPressAndHold: { + if (longHold.visible) { + addNumber(longHold.text); + } else { + addNumber(parent.text); + } + } + } + + Text { + id: longHold + anchors { + top: parent.top + right: parent.right + } + height: parent.height + width: parent.width / 3 + verticalAlignment: Qt.AlignVCenter + visible: text.length > 0 + opacity: 0.7 + + font.pixelSize: parent.pixelSize * .8 + color: parent.color + } +} diff --git a/shell/contents/components/DialerIconButton.qml b/shell/contents/components/DialerIconButton.qml new file mode 100644 index 0000000..254fb0e --- /dev/null +++ b/shell/contents/components/DialerIconButton.qml @@ -0,0 +1,37 @@ +import QtQuick 2.0 +import org.kde.plasma.core 2.0 as PlasmaCore + +Item { + width: parent.width / parent.columns + height: parent.buttonHeight + property var callback + property string text + property string sub + property alias source: icon.source + + PlasmaCore.IconItem { + id: icon + width: units.iconSizes.medium + height: width + anchors.centerIn: parent + } + + MouseArea { + anchors.fill: parent + onClicked: { + if (callback) { + callback(); + } else { + addNumber(parent.text); + } + } + + onPressAndHold: { + if (parent.sub.length > 0) { + addNumber(parent.sub); + } else { + addNumber(parent.text); + } + } + } +}