From 6781c0c9647baad4398e2436f79c210e38843bc4 Mon Sep 17 00:00:00 2001 From: Srevin Saju Date: Sat, 1 May 2021 13:33:55 +0300 Subject: [PATCH] refactor: replace isCompletingEmoji with completionType completionType (str) will tell completionListView to load the correct delegate --- imports/NeoChat/Component/ChatBox/ChatBar.qml | 9 ++++++--- .../NeoChat/Component/ChatBox/CompletionMenu.qml | 13 +++++++++++-- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/imports/NeoChat/Component/ChatBox/ChatBar.qml b/imports/NeoChat/Component/ChatBox/ChatBar.qml index 90f9d6734..8f750b75a 100644 --- a/imports/NeoChat/Component/ChatBox/ChatBar.qml +++ b/imports/NeoChat/Component/ChatBox/ChatBar.qml @@ -216,10 +216,13 @@ ToolBar { } if (completionInfo.type === ChatDocumentHandler.User) { - completionMenu.isCompletingEmoji = false + completionMenu.completionType = "username" completionMenu.model = currentRoom.getUsers(completionInfo.keyword); + } else if (completionInfo.type === ChatDocumentHandler.Command) { + completionMenu.completionType = "command" + completionMenu.model = CommandModel.filterModel(completionInfo.keyword); } else { - completionMenu.isCompletingEmoji = true + completionMenu.completionType = "emoji" completionMenu.model = EmojiModel.filterModel(completionInfo.keyword); } @@ -358,7 +361,7 @@ ToolBar { function complete() { documentHandler.replaceAutoComplete(completionMenu.currentDisplayText); - if (!completionMenu.isCompletingEmoji) { + if (completionMenu.completionType == "username") { userAutocompleted[completionMenu.currentDisplayText] = completionMenu.currentUserId; } } diff --git a/imports/NeoChat/Component/ChatBox/CompletionMenu.qml b/imports/NeoChat/Component/ChatBox/CompletionMenu.qml index d9280dbd9..aa7b40bb9 100644 --- a/imports/NeoChat/Component/ChatBox/CompletionMenu.qml +++ b/imports/NeoChat/Component/ChatBox/CompletionMenu.qml @@ -5,6 +5,7 @@ import QtQuick 2.15 import QtQuick.Layouts 1.15 import QtQuick.Controls 2.15 +import Qt.labs.qmlmodels 1.0 import org.kde.kirigami 2.15 as Kirigami @@ -24,7 +25,7 @@ Popup { property string currentDisplayText: currentItem && currentItem.displayName ? currentItem.displayName : "" property string currentUserId: currentItem && currentItem.id ? currentItem.id : "" - property bool isCompletingEmoji: false + property string completionType: "" property int beginPosition: 0 property int endPosition: 0 @@ -48,7 +49,15 @@ Popup { ListView { id: completionListView implicitWidth: contentWidth - delegate: isCompletingEmoji ? emojiDelegate : usernameDelegate + delegate: { + if (completionType == "emoji") { + emojiDelegate + } else if (completionType == "command") { + commandDelegate + } else if (completionType == "username") { + usernameDelegate + } + } keyNavigationWraps: true