summary refs log tree commit diff
path: root/resources/qml/emoji/EmojiPicker.qml
diff options
context:
space:
mode:
Diffstat (limited to 'resources/qml/emoji/EmojiPicker.qml')
-rw-r--r--resources/qml/emoji/EmojiPicker.qml307
1 files changed, 0 insertions, 307 deletions
diff --git a/resources/qml/emoji/EmojiPicker.qml b/resources/qml/emoji/EmojiPicker.qml
deleted file mode 100644
index 59ad3ab6..00000000
--- a/resources/qml/emoji/EmojiPicker.qml
+++ /dev/null
@@ -1,307 +0,0 @@
-// SPDX-FileCopyrightText: Nheko Contributors
-//
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-import "../"
-import QtGraphicalEffects 1.0
-import QtQuick 2.9
-import QtQuick.Controls 2.3
-import QtQuick.Layouts 1.3
-import QtQuick.Window 2.15
-import im.nheko 1.0
-import im.nheko.EmojiModel 1.0
-
-Menu {
-    id: emojiPopup
-
-    property var callback
-    property var colors
-    property alias model: gridView.model
-    property var textArea
-    property string emojiCategory: "people"
-    property real highlightHue: Nheko.colors.highlight.hslHue
-    property real highlightSat: Nheko.colors.highlight.hslSaturation
-    property real highlightLight: Nheko.colors.highlight.hslLightness
-
-    function show(showAt, callback) {
-        console.debug("Showing emojiPicker");
-        emojiPopup.callback = callback;
-        popup(showAt ? showAt : null);
-    }
-
-    margins: 2
-    bottomPadding: 0
-    leftPadding: 0
-    rightPadding: 0
-    topPadding: 0
-    modal: true
-    focus: true
-    closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutside
-    //height: columnView.implicitHeight + 4
-    //width: columnView.implicitWidth
-    width: 7 * 52 + 20
-
-    Rectangle {
-        color: Nheko.colors.window
-        height: columnView.implicitHeight + Nheko.paddingSmall*2
-        width: 7 * 52 + 20
-
-        ColumnLayout {
-            id: columnView
-
-            spacing: Nheko.paddingSmall
-            anchors.leftMargin: Nheko.paddingSmall
-            anchors.rightMargin: Nheko.paddingSmall
-            anchors.bottom: parent.bottom
-            anchors.left: parent.left
-            anchors.right: parent.right
-
-            // Search field
-            TextField {
-                id: emojiSearch
-
-                Layout.preferredWidth: 7 * 52 + 20 - Nheko.paddingSmall
-                palette: Nheko.colors
-                background: null
-                placeholderTextColor: Nheko.colors.buttonText
-                color: Nheko.colors.text
-                placeholderText: qsTr("Search")
-                selectByMouse: true
-                rightPadding: clearSearch.width
-                onTextChanged: searchTimer.restart()
-                onVisibleChanged: {
-                    if (visible)
-                    forceActiveFocus();
-                    else
-                    clear();
-                }
-
-                Timer {
-                    id: searchTimer
-
-                    interval: 350 // tweak as needed?
-                    onTriggered: {
-                        emojiPopup.model.searchString = emojiSearch.text;
-                        emojiPopup.model.category = Emoji.Category.Search;
-                    }
-                }
-
-                ImageButton {
-                    id: clearSearch
-
-                    visible: emojiSearch.text !== ''
-
-                    image: ":/icons/icons/ui/round-remove-button.svg"
-                    focusPolicy: Qt.NoFocus
-                    onClicked: emojiSearch.clear()
-                    hoverEnabled: true
-                    anchors {
-                        top: parent.top
-                        bottom: parent.bottom
-                        right: parent.right
-                        rightMargin: Nheko.paddingSmall
-                    }
-                }
-            }
-
-            // emoji grid
-            GridView {
-                id: gridView
-
-                Layout.preferredHeight: cellHeight * 5
-                Layout.preferredWidth: 7 * 52 + 20
-                cellWidth: 52
-                cellHeight: 52
-                boundsBehavior: Flickable.StopAtBounds
-                clip: true
-                currentIndex: -1 // prevent sorting from stealing focus
-                cacheBuffer: 500
-
-                ScrollHelper {
-                    flickable: parent
-                    anchors.fill: parent
-                    enabled: !Settings.mobileMode
-                }
-
-                // Individual emoji
-                delegate: AbstractButton {
-                    width: 48
-                    height: 48
-                    hoverEnabled: true
-                    ToolTip.text: model.toolTip
-                    ToolTip.visible: hovered
-                    // TODO: maybe add favorites at some point?
-                    onClicked: {
-                        console.debug("Picked " + model.unicode);
-                        emojiPopup.close();
-                        callback(model.unicode);
-                    }
-
-                    // give the emoji a little oomf
-                    // DropShadow {
-                    //     width: parent.width
-                    //     height: parent.height
-                    //     horizontalOffset: 3
-                    //     verticalOffset: 3
-                    //     radius: 8
-                    //     samples: 17
-                    //     color: "#80000000"
-                    //     source: parent.contentItem
-                    // }
-
-                    contentItem: Text {
-                        horizontalAlignment: Text.AlignHCenter
-                        verticalAlignment: Text.AlignVCenter
-                        font.family: Settings.emojiFont
-                        font.pixelSize: 36
-                        text: model.unicode.replace('\ufe0f', '')
-                        color: Nheko.colors.text
-                    }
-
-                    background: Rectangle {
-                        anchors.fill: parent
-                        color: hovered ? Nheko.colors.highlight : 'transparent'
-                        radius: 5
-                    }
-
-                }
-
-                ScrollBar.vertical: ScrollBar {
-                    id: emojiScroll
-                }
-
-            }
-
-            // Separator
-            Rectangle {
-                visible: emojiSearch.text === ''
-                Layout.fillWidth: true
-                Layout.preferredHeight: 1
-                color: emojiPopup.Nheko.theme.separator
-            }
-
-            // Category picker row
-            RowLayout {
-                visible: emojiSearch.text === ''
-                Layout.bottomMargin: 0
-                Layout.preferredHeight: 42
-                implicitHeight: 42
-                Layout.alignment: Qt.AlignHCenter | Qt.AlignBottom
-
-                // Display the normal categories
-                Repeater {
-
-                    model: ListModel {
-                        // TODO: Would like to get 'simple' icons for the categories
-                        ListElement {
-                            image: ":/icons/icons/emoji-categories/people.svg"
-                            category: Emoji.Category.People
-                        }
-
-                        ListElement {
-                            image: ":/icons/icons/emoji-categories/nature.svg"
-                            category: Emoji.Category.Nature
-                        }
-
-                        ListElement {
-                            image: ":/icons/icons/emoji-categories/foods.svg"
-                            category: Emoji.Category.Food
-                        }
-
-                        ListElement {
-                            image: ":/icons/icons/emoji-categories/activity.svg"
-                            category: Emoji.Category.Activity
-                        }
-
-                        ListElement {
-                            image: ":/icons/icons/emoji-categories/travel.svg"
-                            category: Emoji.Category.Travel
-                        }
-
-                        ListElement {
-                            image: ":/icons/icons/emoji-categories/objects.svg"
-                            category: Emoji.Category.Objects
-                        }
-
-                        ListElement {
-                            image: ":/icons/icons/emoji-categories/symbols.svg"
-                            category: Emoji.Category.Symbols
-                        }
-
-                        ListElement {
-                            image: ":/icons/icons/emoji-categories/flags.svg"
-                            category: Emoji.Category.Flags
-                        }
-
-                    }
-
-                    delegate: AbstractButton {
-                        Layout.preferredWidth: 36
-                        Layout.preferredHeight: 36
-                        hoverEnabled: true
-                        leftPadding: 2
-                        rightPadding: 2
-                        topPadding: 2
-                        bottomPadding: 2
-                        ToolTip.text: {
-                            switch (model.category) {
-                            case Emoji.Category.People:
-                                return qsTr('People');
-                            case Emoji.Category.Nature:
-                                return qsTr('Nature');
-                            case Emoji.Category.Food:
-                                return qsTr('Food');
-                            case Emoji.Category.Activity:
-                                return qsTr('Activity');
-                            case Emoji.Category.Travel:
-                                return qsTr('Travel');
-                            case Emoji.Category.Objects:
-                                return qsTr('Objects');
-                            case Emoji.Category.Symbols:
-                                return qsTr('Symbols');
-                            case Emoji.Category.Flags:
-                                return qsTr('Flags');
-                            }
-                        }
-                        ToolTip.visible: hovered
-                        onClicked: {
-                            //emojiPopup.model.category = model.category;
-                            gridView.positionViewAtIndex(emojiPopup.model.sourceModel.categoryToIndex(model.category), GridView.Beginning);
-                        }
-
-                        MouseArea {
-                            id: mouseArea
-
-                            anchors.fill: parent
-                            onPressed: mouse.accepted = false
-                            cursorShape: Qt.PointingHandCursor
-                        }
-
-                        contentItem: Image {
-                            horizontalAlignment: Image.AlignHCenter
-                            verticalAlignment: Image.AlignVCenter
-                            smooth: true
-                            mipmap: true
-                            sourceSize.width: 32
-                            sourceSize.height: 32
-                            source: "image://colorimage/" + model.image + "?" + (hovered ? Nheko.colors.highlight : Nheko.colors.buttonText)
-                        }
-
-                        background: Rectangle {
-                            anchors.fill: parent
-                            color: emojiPopup.model.category === model.category ? Qt.hsla(highlightHue, highlightSat, highlightLight, 0.2) : 'transparent'
-                            radius: 5
-                            border.color: emojiPopup.model.category === model.category ? Nheko.colors.highlight : 'transparent'
-                        }
-
-                    }
-
-                }
-
-            }
-
-        }
-
-    }
-
-}