mirror of
https://github.com/status-im/status-desktop.git
synced 2025-01-10 22:36:24 +00:00
b3f8af8e06
Qml code referring to the old code base commented out, but not deleted, due to easier refactoring the rest of the app.
244 lines
8.1 KiB
QML
244 lines
8.1 KiB
QML
import QtQuick 2.13
|
|
import QtQuick.Controls 2.13
|
|
import QtQuick.Layouts 1.13
|
|
import Qt.labs.platform 1.1
|
|
|
|
import utils 1.0
|
|
import StatusQ.Popups 0.1
|
|
|
|
import shared.popups 1.0
|
|
import "../popups"
|
|
|
|
StatusPopupMenu {
|
|
id: root
|
|
|
|
property string currentFleet: ""
|
|
property bool isCommunityChat: false
|
|
property bool isCommunityAdmin: false
|
|
property string chatId: ""
|
|
property string chatName: ""
|
|
property string chatIcon: ""
|
|
property int chatType: -1
|
|
property bool chatMuted: false
|
|
|
|
signal viewGroupOrProfile(string id)
|
|
signal requestAllHistoricMessages(string id)
|
|
signal unmuteChat(string id)
|
|
signal muteChat(string id)
|
|
signal markAllMessagesRead(string id)
|
|
signal clearChatHistory(string id)
|
|
signal editChannel(string id)
|
|
signal downloadMessages(string file)
|
|
signal deleteChat(string id)
|
|
|
|
StatusMenuItem {
|
|
id: viewProfileMenuItem
|
|
text: {
|
|
switch (root.chatType) {
|
|
case Constants.chatType.oneToOne:
|
|
//% "View Profile"
|
|
return qsTrId("view-profile")
|
|
case Constants.chatType.privateGroupChat:
|
|
//% "View Group"
|
|
return qsTrId("view-group")
|
|
default:
|
|
return ""
|
|
}
|
|
}
|
|
icon.name: "group-chat"
|
|
enabled: root.chatType === Constants.chatType.oneToOne ||
|
|
root.chatType === Constants.chatType.privateGroupChat
|
|
onTriggered: {
|
|
if (root.chatType === Constants.chatType.oneToOne) {
|
|
const userProfileImage = appMain.getProfileImage(root.chatId)
|
|
return openProfilePopup(
|
|
root.chatName,
|
|
root.chatId,
|
|
root.chatIcon,
|
|
"",
|
|
root.chatName
|
|
)
|
|
}
|
|
// Not Refactored Yet
|
|
// if (root.chatType === Constants.chatType.privateGroupChat) {
|
|
// return Global.openPopup(groupInfoPopupComponent, {
|
|
// channel: chatItem,
|
|
// channelType: GroupInfoPopup.ChannelType.ContextChannel
|
|
// })
|
|
// }
|
|
}
|
|
}
|
|
|
|
StatusMenuSeparator {
|
|
visible: viewProfileMenuItem.enabled
|
|
}
|
|
|
|
Action {
|
|
enabled: root.currentFleet
|
|
|
|
// Will be deleted later
|
|
// enabled: root.store.profileModelInst.fleets.fleet == Constants.waku_prod ||
|
|
// root.store.profileModelInst.fleets.fleet === Constants.waku_test
|
|
|
|
//% "Test WakuV2 - requestAllHistoricMessages"
|
|
text: qsTrId("test-wakuv2---requestallhistoricmessages")
|
|
onTriggered: {
|
|
root.requestAllHistoricMessages(root.chatId)
|
|
}
|
|
|
|
// Will be deleted later
|
|
//onTriggered: root.store.chatsModelInst.requestAllHistoricMessages()
|
|
}
|
|
|
|
StatusMenuItem {
|
|
text: root.chatMuted ?
|
|
//% "Unmute chat"
|
|
qsTrId("unmute-chat") :
|
|
//% "Mute chat"
|
|
qsTrId("mute-chat")
|
|
icon.name: "notification"
|
|
enabled: root.chatType !== Constants.chatType.privateGroupChat
|
|
onTriggered: {
|
|
if(root.chatMuted)
|
|
root.unmuteChat(root.chatId)
|
|
else
|
|
root.muteChat(root.chatId)
|
|
}
|
|
}
|
|
|
|
StatusMenuItem {
|
|
//% "Mark as Read"
|
|
text: qsTrId("mark-as-read")
|
|
icon.name: "checkmark-circle"
|
|
enabled: root.chatType !== Constants.chatType.privateGroupChat
|
|
onTriggered: {
|
|
root.markAllMessagesRead(root.chatId)
|
|
}
|
|
|
|
// Will be deleted later
|
|
//onTriggered: root.store.chatsModelInst.channelView.markChatItemAsRead(chatItem.id)
|
|
}
|
|
|
|
StatusMenuItem {
|
|
//% "Clear history"
|
|
text: qsTrId("clear-history")
|
|
icon.name: "close-circle"
|
|
onTriggered: {
|
|
root.clearChatHistory(root.chatId)
|
|
}
|
|
|
|
// Will be deleted later
|
|
//onTriggered: root.store.chatsModelInst.channelView.clearChatHistory(chatItem.id)
|
|
}
|
|
|
|
StatusMenuItem {
|
|
//% "Edit Channel"
|
|
text: qsTrId("edit-channel")
|
|
icon.name: "edit"
|
|
// Not Refactored Yet
|
|
// enabled: communityActive &&
|
|
// root.store.chatsModelInst.communities.activeCommunity.admin
|
|
// Not Refactored Yet
|
|
// onTriggered: Global.openPopup(editChannelPopup, {
|
|
// store: root.store,
|
|
// communityId: root.store.chatsModelInst.communities.activeCommunity.id,
|
|
// channel: chatItem
|
|
// })
|
|
}
|
|
|
|
StatusMenuItem {
|
|
text: qsTr("Download")
|
|
enabled: localAccountSensitiveSettings.downloadChannelMessagesEnabled
|
|
icon.name: "download"
|
|
onTriggered: downdloadDialog.open()
|
|
}
|
|
|
|
StatusMenuSeparator {
|
|
visible: deleteOrLeaveMenuItem.enabled
|
|
}
|
|
|
|
StatusMenuItem {
|
|
id: deleteOrLeaveMenuItem
|
|
text: {
|
|
if (isCommunityChat) {
|
|
return qsTr("Delete Channel")
|
|
}
|
|
return root.chatType === Constants.chatType.oneToOne ?
|
|
//% "Delete chat"
|
|
qsTrId("delete-chat") :
|
|
//% "Leave chat"
|
|
qsTrId("leave-chat")
|
|
}
|
|
icon.name: root.chatType === Constants.chatType.oneToOne || isCommunityChat ? "delete" : "arrow-right"
|
|
icon.width: root.chatType === Constants.chatType.oneToOne || isCommunityChat ? 18 : 14
|
|
iconRotation: root.chatType === Constants.chatType.oneToOne || isCommunityChat ? 0 : 180
|
|
|
|
type: StatusMenuItem.Type.Danger
|
|
onTriggered: {
|
|
Global.openPopup(deleteChatConfirmationDialogComponent)
|
|
}
|
|
|
|
enabled: !isCommunityChat || isCommunityAdmin
|
|
|
|
// Will be deleted later
|
|
// enabled: !communityActive || root.store.chatsModelInst.communities.activeCommunity.admin
|
|
}
|
|
|
|
FileDialog {
|
|
id: downdloadDialog
|
|
acceptLabel: qsTr("Save")
|
|
fileMode: FileDialog.SaveFile
|
|
title: qsTr("Download messages")
|
|
currentFile: StandardPaths.writableLocation(StandardPaths.DocumentsLocation) + "/messages.json"
|
|
defaultSuffix: "json"
|
|
|
|
onAccepted: {
|
|
root.downloadMessages(downdloadDialog.currentFile)
|
|
}
|
|
|
|
// Will be deleted later
|
|
// onAccepted: {
|
|
// root.store.chatsModelInst.messageView.downloadMessages(downdloadDialog.currentFile)
|
|
// }
|
|
}
|
|
|
|
Component {
|
|
id: deleteChatConfirmationDialogComponent
|
|
ConfirmationDialog {
|
|
btnType: "warn"
|
|
header.title: isCommunityChat ? qsTr("Delete #%1").arg(root.chatName) :
|
|
root.chatType === Constants.chatType.oneToOne ?
|
|
//% "Delete chat"
|
|
qsTrId("delete-chat") :
|
|
//% "Leave chat"
|
|
qsTrId("leave-chat")
|
|
confirmButtonLabel: isCommunityChat ? qsTr("Delete") : header.title
|
|
confirmationText: isCommunityChat ? qsTr("Are you sure you want to delete #%1 channel?").arg(root.chatName) :
|
|
root.chatType === Constants.chatType.oneToOne ?
|
|
qsTr("Are you sure you want to delete this chat?"):
|
|
qsTr("Are you sure you want to leave this chat?")
|
|
showCancelButton: isCommunityChat
|
|
|
|
onClosed: {
|
|
destroy()
|
|
}
|
|
onCancelButtonClicked: {
|
|
close()
|
|
}
|
|
onConfirmButtonClicked: {
|
|
root.deleteChat(root.chatId)
|
|
}
|
|
|
|
// Will be deleted later
|
|
// onConfirmButtonClicked: {
|
|
// if (communityActive) {
|
|
// root.store.chatsModelInst.communities.deleteCommunityChat(root.store.chatsModelInst.communities.activeCommunity.id, chatId)
|
|
// } else {
|
|
// root.store.chatsModelInst.channelView.leaveChat(chatId)
|
|
// }
|
|
// close();
|
|
// }
|
|
}
|
|
}
|
|
}
|