From 79769c165e2ce46b7d7bc7a8c43618cb61e89062 Mon Sep 17 00:00:00 2001 From: "B.Melnik" Date: Tue, 14 Sep 2021 15:53:35 +0300 Subject: [PATCH] feat(StatusSpellcheckingMenuItems): Add spellchecking menu Closes: #398 --- ui/StatusQ/sandbox/Popups.qml | 11 +++ .../Popups/StatusSpellcheckingMenuItems.qml | 84 +++++++++++++++++++ ui/StatusQ/src/StatusQ/Popups/qmldir | 1 + ui/StatusQ/statusq.qrc | 1 + 4 files changed, 97 insertions(+) create mode 100644 ui/StatusQ/src/StatusQ/Popups/StatusSpellcheckingMenuItems.qml diff --git a/ui/StatusQ/sandbox/Popups.qml b/ui/StatusQ/sandbox/Popups.qml index e4e5881210..8ccc220a39 100644 --- a/ui/StatusQ/sandbox/Popups.qml +++ b/ui/StatusQ/sandbox/Popups.qml @@ -63,6 +63,11 @@ Column { onClicked: modalWithHeaderPopupMenu.open() } + StatusButton { + text: "Spellchecking menu" + onClicked: spellMenu.open() + } + StatusModal { id: simpleModal anchors.centerIn: parent @@ -309,4 +314,10 @@ CExPynn1gWf9bx498P7/nzPcxEzGExhBdJGYihtAYQlO+tUZvqrPbqeudo5iJGEJjCE15a3VtodH3q2I ListElement{name: "Account 1"; iconName: "filled-account"} ListElement{name: "Account 2"; iconName: "filled-account"} } + + StatusSpellcheckingMenuItems { + id: spellMenu + anchors.centerIn: parent + suggestions: ["suggestion1", "suggestion2", "suggestion3", "suggestion4"] + } } diff --git a/ui/StatusQ/src/StatusQ/Popups/StatusSpellcheckingMenuItems.qml b/ui/StatusQ/src/StatusQ/Popups/StatusSpellcheckingMenuItems.qml new file mode 100644 index 0000000000..9bd57ad326 --- /dev/null +++ b/ui/StatusQ/src/StatusQ/Popups/StatusSpellcheckingMenuItems.qml @@ -0,0 +1,84 @@ +import QtQuick 2.14 +import QtQuick.Controls 2.14 + +import StatusQ.Core 0.1 +import StatusQ.Core.Theme 0.1 + + +StatusPopupMenu { + id: root + + property alias suggestions: suggestionsMenu.model + + signal addToUserDict() + signal disableSpellchecking() + + Repeater { + id: suggestionsMenu + + delegate: Loader { + sourceComponent: root.delegate + onLoaded: { + item.action.text = modelData + } + } + } + + StatusMenuSeparator {} + + MenuItem { + id: ignoreWord + implicitWidth: parent ? parent.width : 0 + implicitHeight: 38 + contentItem: StatusBaseText { + rightPadding: 8 + leftPadding: 4 + + horizontalAlignment: Text.AlignLeft + verticalAlignment: Text.AlignVCenter + + text: qsTr("Add to dictionary") + color: Theme.palette.directColor1 + font.pixelSize: 13 + elide: Text.ElideRight + } + + background: Rectangle { + color: ignoreWord.hovered ? Theme.palette.statusPopupMenu.hoverBackgroundColor + : "transparent" + } + + onTriggered: { + root.addToUserDict() + } + } + + MenuItem { + id: disableSpellchecking + implicitWidth: parent ? parent.width : 0 + implicitHeight: 38 + contentItem: StatusBaseText { + rightPadding: 8 + leftPadding: 4 + + horizontalAlignment: Text.AlignLeft + verticalAlignment: Text.AlignVCenter + + text: qsTr("Disable Spellchecking") + color: Theme.palette.directColor1 + font.pixelSize: 13 + elide: Text.ElideRight + } + + + background: Rectangle { + color: disableSpellchecking.hovered ? Theme.palette.statusPopupMenu.hoverBackgroundColor + : "transparent" + } + + onTriggered: { + root.disableSpellchecking() + } + } + +} diff --git a/ui/StatusQ/src/StatusQ/Popups/qmldir b/ui/StatusQ/src/StatusQ/Popups/qmldir index 3f080b179f..861f09da68 100644 --- a/ui/StatusQ/src/StatusQ/Popups/qmldir +++ b/ui/StatusQ/src/StatusQ/Popups/qmldir @@ -9,3 +9,4 @@ StatusSearchPopup 0.1 StatusSearchPopup.qml StatusModalDivider 0.1 StatusModalDivider.qml StatusSearchPopupMenuItem 0.1 StatusSearchPopupMenuItem.qml StatusSearchLocationMenu 0.1 StatusSearchLocationMenu.qml +StatusSpellcheckingMenuItems 0.1 StatusSpellcheckingMenuItems.qml diff --git a/ui/StatusQ/statusq.qrc b/ui/StatusQ/statusq.qrc index a827119531..01a6b98770 100644 --- a/ui/StatusQ/statusq.qrc +++ b/ui/StatusQ/statusq.qrc @@ -268,5 +268,6 @@ src/StatusQ/Controls/StatusSwitchTabBar.qml src/StatusQ/Components/StatusExpandableItem.qml src/assets/img/icons/snt.svg + src/StatusQ/Popups/StatusSpellcheckingMenuItems.qml