Remove sender tooltip, and sender label, simplify MessageDelegate, add
an option to invoke GC, and update libqmatrixclient.
This commit is contained in:
parent
c765af9bce
commit
230231a42f
|
@ -1 +1 @@
|
|||
Subproject commit 825b46f42c3d7c813ccab49023e6f7ed6a5e1477
|
||||
Subproject commit 4e45218924babe6708fe2128574a3cf6341fe3c6
|
|
@ -2,7 +2,7 @@ import QtQuick 2.9
|
|||
import QtQuick.Controls 2.2
|
||||
|
||||
Row {
|
||||
readonly property bool avatarVisible: !sentByMe && aboveAuthor !== author || section !== aboveSection
|
||||
readonly property bool avatarVisible: !(sentByMe || (aboveAuthor === author && section === aboveSection))
|
||||
|
||||
spacing: 6
|
||||
|
||||
|
@ -15,14 +15,6 @@ Row {
|
|||
visible: avatarVisible
|
||||
source: author.avatarUrl != "" ? "image://mxc/" + author.avatarUrl : null
|
||||
displayText: author.displayName
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
|
||||
hoverEnabled: true
|
||||
ToolTip.visible: containsMouse
|
||||
ToolTip.text: author.displayName
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
import QtQuick 2.9
|
||||
import QtQuick.Controls 2.2
|
||||
import QtQuick.Dialogs 1.2
|
||||
|
||||
FileDialog {
|
||||
id: locationDialog
|
||||
title: "Please choose a location"
|
||||
folder: shortcuts.home
|
||||
selectFolder: true
|
||||
|
||||
onAccepted: currentRoom.downloadFile(eventId, folder + "/" + currentRoom.fileNameToDownload(eventId))
|
||||
onVisibleChanged: visible ? {} : locationDialog.destroy()
|
||||
}
|
|
@ -1,7 +1,6 @@
|
|||
import QtQuick 2.9
|
||||
import QtQuick.Controls 2.2
|
||||
import QtQuick.Controls.Material 2.2
|
||||
import QtQuick.Dialogs 1.2
|
||||
|
||||
Item {
|
||||
property bool openOnFinished: false
|
||||
|
@ -15,19 +14,10 @@ Item {
|
|||
opacity: 0.4
|
||||
}
|
||||
|
||||
FileDialog {
|
||||
id: locationDialog
|
||||
title: "Please choose a location"
|
||||
folder: shortcuts.home
|
||||
selectFolder: true
|
||||
|
||||
onAccepted: currentRoom.downloadFile(eventId, folder + "/" + currentRoom.fileNameToDownload(eventId))
|
||||
}
|
||||
|
||||
onDownloadedChanged: downloaded && openOnFinished ? openSavedFile() : {}
|
||||
|
||||
function saveFileAs() {
|
||||
locationDialog.open()
|
||||
Qt.createComponent("DownloadDialog.qml").createObject(this).open()
|
||||
}
|
||||
|
||||
function downloadAndOpen()
|
||||
|
|
|
@ -18,6 +18,7 @@ AvatarContainer {
|
|||
maximumWidth: messageListView.width
|
||||
highlighted: !sentByMe
|
||||
timeLabelVisible: false
|
||||
authorLabelVisible: messageRow.avatarVisible
|
||||
|
||||
displayText: "<b>File: </b>" + content.body
|
||||
}
|
||||
|
|
|
@ -13,6 +13,7 @@ AvatarContainer {
|
|||
flat: isNotice
|
||||
highlighted: !sentByMe
|
||||
timeLabelVisible: Math.abs(time - aboveTime) > 600000 || index == 0
|
||||
authorLabelVisible: messageRow.avatarVisible
|
||||
|
||||
displayText: display
|
||||
}
|
||||
|
|
|
@ -2,6 +2,10 @@ import QtQuick 2.9
|
|||
import QtQuick.Controls 2.2
|
||||
|
||||
Menu {
|
||||
readonly property bool isFile: eventType === "video" || eventType === "audio" || eventType === "file" || eventType === "image"
|
||||
|
||||
id: messageContextMenu
|
||||
|
||||
MenuItem {
|
||||
text: "Copy"
|
||||
onTriggered: matriqueController.copyToClipboard(plainText)
|
||||
|
@ -30,4 +34,5 @@ Menu {
|
|||
}
|
||||
|
||||
Component.onCompleted: popup()
|
||||
onClosed: messageContextMenu.destroy()
|
||||
}
|
||||
|
|
|
@ -11,8 +11,6 @@ Item {
|
|||
|
||||
readonly property bool sentByMe: author === currentRoom.localUser
|
||||
readonly property bool isState: eventType === "state" || eventType === "emote"
|
||||
readonly property bool isMessage: eventType === "message" || eventType === "notice"
|
||||
readonly property bool isFile: eventType === "video" || eventType === "audio" || eventType === "file" || eventType === "image"
|
||||
|
||||
visible: marks !== EventStatus.Hidden
|
||||
|
||||
|
@ -31,6 +29,23 @@ Item {
|
|||
Loader {
|
||||
id: delegateLoader
|
||||
|
||||
source: eventType != "redaction" ? isMessage ? "MessageBubble.qml" : isState ? "StateBubble.qml" : isFile ? eventType === "image" ? "ImageBubble.qml" : "FileBubble.qml" : "" : ""
|
||||
source: {
|
||||
if (eventType == "redaction") return ""
|
||||
switch (eventType) {
|
||||
case "state":
|
||||
case "emote":
|
||||
return "StateBubble.qml"
|
||||
case "message":
|
||||
case "notice":
|
||||
return "MessageBubble.qml"
|
||||
case "image":
|
||||
return "ImageBubble.qml"
|
||||
case "video":
|
||||
case "audio":
|
||||
case "file":
|
||||
return "FileBubble.qml"
|
||||
}
|
||||
return ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ TextDelegate {
|
|||
maximumWidth: messageListView.width
|
||||
highlighted: eventType === "emote"
|
||||
timeLabelVisible: false
|
||||
authorLabelVisible: false
|
||||
|
||||
displayText: "<b>" + author.displayName + "</b> " + display
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@ Rectangle {
|
|||
property bool highlighted: false
|
||||
property string displayText: ""
|
||||
property alias timeLabelVisible: timeText.visible
|
||||
property alias authorLabelVisible: authorText.visible
|
||||
|
||||
property int maximumWidth
|
||||
|
||||
|
@ -15,8 +16,8 @@ Rectangle {
|
|||
|
||||
id: messageRect
|
||||
|
||||
width: Math.min(Math.max(messageText.implicitWidth, (timeText.visible ? timeText.implicitWidth : 0)) + 24, maximumWidth)
|
||||
height: messageText.implicitHeight + (timeText.visible ? timeText.implicitHeight : 0) + 24
|
||||
width: Math.min(Math.max(messageText.implicitWidth, (timeText.visible ? timeText.implicitWidth : 0), (authorLabelVisible ? authorText.implicitWidth : 0)) + 24, maximumWidth)
|
||||
height: (authorText.visible ? authorText.implicitHeight : 0) + messageText.implicitHeight + (timeText.visible ? timeText.implicitHeight : 0) + 24
|
||||
|
||||
color: flat ? "transparent" : highlighted ? Material.accent : background
|
||||
border.color: Material.accent
|
||||
|
@ -29,6 +30,13 @@ Rectangle {
|
|||
anchors.margins: 12
|
||||
spacing: 0
|
||||
|
||||
Label {
|
||||
id: authorText
|
||||
text: author.displayName
|
||||
color: darkBackground ? "white" : Material.accent
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
Label {
|
||||
id: messageText
|
||||
Layout.maximumWidth: parent.width
|
||||
|
|
|
@ -9,5 +9,10 @@ Page {
|
|||
id: lazyLoadSwitch
|
||||
text: "Lazy Load at Initial Sync"
|
||||
}
|
||||
Button {
|
||||
text: "Invoke GC"
|
||||
highlighted: true
|
||||
onClicked: gc()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue