mirror of
https://github.com/status-im/status-desktop.git
synced 2025-01-09 22:06:25 +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.
251 lines
9.6 KiB
QML
251 lines
9.6 KiB
QML
import QtQuick 2.13
|
|
import QtQuick.Controls 2.3
|
|
|
|
import utils 1.0
|
|
import shared 1.0
|
|
import shared.views 1.0
|
|
import shared.panels 1.0
|
|
import shared.popups 1.0
|
|
import shared.views.chat 1.0
|
|
|
|
import "../controls"
|
|
import "../panels"
|
|
//TODO remove or make view?
|
|
import "../views"
|
|
|
|
import StatusQ.Controls 0.1 as StatusQControls
|
|
|
|
// TODO: replace with StatusMOdal
|
|
ModalPopup {
|
|
property var rootStore
|
|
property var messageStore
|
|
property var chatSectionModule
|
|
property bool userCanPin: {
|
|
// Not Refactored Yet
|
|
return false
|
|
// switch (popup.rootStore.chatsModelInst.channelView.activeChannel.chatType) {
|
|
// case Constants.chatType.publicChat: return false
|
|
// case Constants.chatType.profile: return false
|
|
// case Constants.chatType.oneToOne: return true
|
|
// case Constants.chatType.privateGroupChat: return popup.rootStore.chatsModelInst.channelView.activeChannel.isAdmin(userProfile.pubKey)
|
|
// case Constants.chatType.communityChat: return popup.rootStore.chatsModelInst.communities.activeCommunity.admin
|
|
// default: return false
|
|
// }
|
|
}
|
|
property string messageToPin
|
|
property string messageToUnpin
|
|
|
|
id: popup
|
|
|
|
header: Item {
|
|
height: childrenRect.height
|
|
width: parent.width
|
|
|
|
StyledText {
|
|
id: title
|
|
//% "Pin limit reached"
|
|
text: !!messageToPin ? qsTrId("pin-limit-reached") :
|
|
//% "Pinned messages"
|
|
qsTrId("pinned-messages")
|
|
anchors.top: parent.top
|
|
anchors.left: parent.left
|
|
font.bold: true
|
|
font.pixelSize: 17
|
|
}
|
|
|
|
StyledText {
|
|
property int nbMessages: pinnedMessageListView.count
|
|
|
|
id: nbPinnedMessages
|
|
text: {
|
|
if (!!messageToPin) {
|
|
//% "Unpin a previous message first"
|
|
return qsTrId("unpin-a-previous-message-first")
|
|
}
|
|
|
|
//% "%1 messages"
|
|
return nbMessages > 1 ? qsTrId("-1-messages").arg(nbMessages) :
|
|
//% "%1 message"
|
|
qsTrId("-1-message").arg(nbMessages)
|
|
}
|
|
anchors.left: parent.left
|
|
anchors.top: title.bottom
|
|
anchors.topMargin: 2
|
|
font.pixelSize: 15
|
|
color: Style.current.secondaryText
|
|
}
|
|
|
|
Separator {
|
|
anchors.top: nbPinnedMessages.bottom
|
|
anchors.topMargin: Style.current.padding
|
|
anchors.left: parent.left
|
|
anchors.leftMargin: -Style.current.padding
|
|
anchors.right: parent.right
|
|
anchors.rightMargin: -Style.current.padding
|
|
}
|
|
}
|
|
|
|
Item {
|
|
anchors.fill: parent
|
|
|
|
StyledText {
|
|
visible: pinnedMessageListView.count === 0
|
|
//% "Pinned messages will appear here."
|
|
text: qsTrId("pinned-messages-will-appear-here-")
|
|
anchors.centerIn: parent
|
|
color: Style.current.secondaryText
|
|
}
|
|
|
|
ButtonGroup {
|
|
id: pinButtonGroup
|
|
}
|
|
|
|
ListView {
|
|
id: pinnedMessageListView
|
|
// Not Refactored Yet
|
|
// model: popup.rootStore.chatsModelInst.messageView.pinnedMessagesList
|
|
height: parent.height
|
|
anchors.left: parent.left
|
|
anchors.leftMargin: -Style.current.padding
|
|
anchors.right: parent.right
|
|
anchors.rightMargin: -Style.current.padding
|
|
topMargin: Style.current.halfPadding
|
|
anchors.top: parent.top
|
|
anchors.topMargin: -Style.current.halfPadding
|
|
clip: true
|
|
|
|
delegate: Item {
|
|
id: messageDelegate
|
|
property var listView: ListView.view
|
|
width: parent.width
|
|
height: messageItem.height
|
|
|
|
MessageView {
|
|
id: messageItem
|
|
// rootStore: popup.rootStore
|
|
// messageStore: popup.messageStore
|
|
/////////////TODO Remove
|
|
// fromAuthor: model.fromAuthor
|
|
// chatId: model.chatId
|
|
// userName: model.userName
|
|
// alias: model.alias
|
|
// localName: model.localName
|
|
// message: model.message
|
|
// plainText: model.plainText
|
|
// identicon: model.identicon
|
|
// isCurrentUser: model.isCurrentUser
|
|
// timestamp: model.timestamp
|
|
// sticker: model.sticker
|
|
// contentType: model.contentType
|
|
// outgoingStatus: model.outgoingStatus
|
|
// responseTo: model.responseTo
|
|
// imageClick: imagePopup.openPopup.bind(imagePopup)
|
|
// messageId: model.messageId
|
|
// emojiReactions: model.emojiReactions
|
|
// linkUrls: model.linkUrls
|
|
// communityId: model.communityId
|
|
// hasMention: model.hasMention
|
|
// stickerPackId: model.stickerPackId
|
|
// timeout: model.timeout
|
|
// pinnedMessage: true
|
|
// pinnedBy: model.pinnedBy
|
|
// forceHoverHandler: !messageToPin
|
|
// activityCenterMessage: false
|
|
// isEdited: model.isEdited
|
|
// showEdit: false
|
|
// messageContextMenu: msgContextMenu
|
|
// Component.onCompleted: {
|
|
// messageStore.fromAuthor = model.fromAuthor;
|
|
// messageStore.chatId = model.chatId;
|
|
// messageStore.userName = model.userName;
|
|
// messageStore.alias = model.alias;
|
|
// messageStore.localName = model.localName;
|
|
// messageStore.message = model.message;
|
|
// messageStore.plainText = model.plainText;
|
|
// messageStore.identicon = model.identicon;
|
|
// messageStore.isCurrentUser = model.isCurrentUser;
|
|
// messageStore.timestamp = model.timestamp;
|
|
// messageStore.sticker = model.sticker;
|
|
// messageStore.contentType = model.contentType;
|
|
// messageStore.outgoingStatus = model.outgoingStatus;
|
|
// messageStore.responseTo = model.responseTo;
|
|
// messageStore.imageClick = imagePopup.openPopup.bind(imagePopup);
|
|
// messageStore.messageId = model.messageId;
|
|
// messageStore.emojiReactions = model.emojiReactions;
|
|
// messageStore.linkUrls = model.linkUrls;
|
|
// messageStore.communityId = model.communityId;
|
|
// messageStore.hasMention = model.hasMention;
|
|
// messageStore.stickerPackId = model.stickerPackId;
|
|
// messageStore.timeout = model.timeout;
|
|
// messageStore.pinnedMessage = true;
|
|
// messageStore.pinnedBy = model.pinnedBy;
|
|
// messageStore.forceHoverHandler = !messageToPin;
|
|
// messageStore.activityCenterMessage = false;
|
|
// messageStore.isEdited = model.isEdited;
|
|
// messageStore.showEdit = false;
|
|
// messageStore.messageContextMenu = msgContextMenu;
|
|
// }
|
|
}
|
|
|
|
MouseArea {
|
|
anchors.fill: parent
|
|
enabled: !!messageToPin
|
|
cursorShape: Qt.PointingHandCursor
|
|
z: 55
|
|
onClicked: radio.toggle()
|
|
}
|
|
|
|
StatusQControls.StatusRadioButton {
|
|
id: radio
|
|
visible: !!messageToPin
|
|
anchors.right: parent.right
|
|
anchors.rightMargin: 18
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
ButtonGroup.group: pinButtonGroup
|
|
function toggle() {
|
|
radio.checked = !radio.checked
|
|
if (radio.checked) {
|
|
messageToUnpin = model.messageId
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
MessageContextMenuView {
|
|
id: msgContextMenu
|
|
pinnedPopup: true
|
|
pinnedMessage: true
|
|
chatSectionModule: popup.chatSectionModule
|
|
store: popup.rootStore
|
|
reactionModel: popup.rootStore.emojiReactionsModel
|
|
onShouldCloseParentPopup: {
|
|
popup.close()
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
footer: Item {
|
|
width: parent.width
|
|
height: btnUnpin.height
|
|
|
|
StatusQControls.StatusButton {
|
|
id: btnUnpin
|
|
visible: !!messageToPin
|
|
enabled: !!messageToUnpin
|
|
//% "Unpin"
|
|
text: qsTrId("unpin")
|
|
type: StatusQControls.StatusBaseButton.Type.Danger
|
|
anchors.right: parent.right
|
|
onClicked: {
|
|
// Not Refactored Yet
|
|
// const chatId = popup.rootStore.chatsModelInst.channelView.activeChannel.id
|
|
// popup.rootStore.chatsModelInst.messageView.unPinMessage(messageToUnpin, chatId)
|
|
// popup.rootStore.chatsModelInst.messageView.pinMessage(messageToPin, chatId)
|
|
messageToUnpin = messageToPin = ""
|
|
popup.close()
|
|
}
|
|
}
|
|
}
|
|
}
|