diff --git a/imports/Spectral/Component/AutoListView.qml b/imports/Spectral/Component/AutoListView.qml
index 2b6bddb..1fca551 100644
--- a/imports/Spectral/Component/AutoListView.qml
+++ b/imports/Spectral/Component/AutoListView.qml
@@ -1,4 +1,4 @@
-import QtQuick 2.9
+import QtQuick 2.12
ListView {
ScrollHelper {
diff --git a/imports/Spectral/Component/AutoMouseArea.qml b/imports/Spectral/Component/AutoMouseArea.qml
index ceaf84d..124625b 100644
--- a/imports/Spectral/Component/AutoMouseArea.qml
+++ b/imports/Spectral/Component/AutoMouseArea.qml
@@ -1,4 +1,4 @@
-import QtQuick 2.9
+import QtQuick 2.12
import Spectral.Setting 0.1
diff --git a/imports/Spectral/Component/AutoTextField.qml b/imports/Spectral/Component/AutoTextField.qml
index 8bd6bac..ec07de6 100644
--- a/imports/Spectral/Component/AutoTextField.qml
+++ b/imports/Spectral/Component/AutoTextField.qml
@@ -1,5 +1,5 @@
-import QtQuick 2.9
-import QtQuick.Controls 2.2
+import QtQuick 2.12
+import QtQuick.Controls 2.4
TextField {
selectByMouse: true
diff --git a/imports/Spectral/Component/Avatar.qml b/imports/Spectral/Component/Avatar.qml
index be95df5..e80d213 100644
--- a/imports/Spectral/Component/Avatar.qml
+++ b/imports/Spectral/Component/Avatar.qml
@@ -1,5 +1,5 @@
-import QtQuick 2.9
-import QtQuick.Controls 2.2
+import QtQuick 2.12
+import QtQuick.Controls 2.4
import QtGraphicalEffects 1.0
Item {
diff --git a/imports/Spectral/Component/Emoji/EmojiPicker.qml b/imports/Spectral/Component/Emoji/EmojiPicker.qml
index c875488..c3520f1 100644
--- a/imports/Spectral/Component/Emoji/EmojiPicker.qml
+++ b/imports/Spectral/Component/Emoji/EmojiPicker.qml
@@ -1,7 +1,7 @@
-import QtQuick 2.9
-import QtQuick.Controls 2.2
+import QtQuick 2.12
+import QtQuick.Controls 2.4
import QtQuick.Layouts 1.3
-import QtQuick.Controls.Material 2.2
+import QtQuick.Controls.Material 2.4
import Spectral.Component 2.0
diff --git a/imports/Spectral/Component/MaterialIcon.qml b/imports/Spectral/Component/MaterialIcon.qml
index 593b232..35ee4a1 100644
--- a/imports/Spectral/Component/MaterialIcon.qml
+++ b/imports/Spectral/Component/MaterialIcon.qml
@@ -1,7 +1,7 @@
-import QtQuick 2.9
-import QtQuick.Controls 2.2
+import QtQuick 2.12
+import QtQuick.Controls 2.4
import QtQuick.Layouts 1.3
-import QtQuick.Controls.Material 2.2
+import QtQuick.Controls.Material 2.4
import Spectral.Setting 0.1
import Spectral.Font 0.1
diff --git a/imports/Spectral/Component/ScrollHelper.qml b/imports/Spectral/Component/ScrollHelper.qml
index 25714f0..7a9779a 100644
--- a/imports/Spectral/Component/ScrollHelper.qml
+++ b/imports/Spectral/Component/ScrollHelper.qml
@@ -1,5 +1,5 @@
-import QtQuick 2.9
-import QtQuick.Controls 2.2
+import QtQuick 2.12
+import QtQuick.Controls 2.4
MouseArea {
id: root
diff --git a/imports/Spectral/Component/SplitView.qml b/imports/Spectral/Component/SplitView.qml
index 4f176fa..e4302bb 100644
--- a/imports/Spectral/Component/SplitView.qml
+++ b/imports/Spectral/Component/SplitView.qml
@@ -37,8 +37,8 @@
**
****************************************************************************/
-import QtQuick 2.9
-import QtQuick.Controls 2.2
+import QtQuick 2.12
+import QtQuick.Controls 2.4
import QtQuick.Layouts 1.3
import QtQuick.Window 2.1
import Spectral.Setting 0.1
diff --git a/imports/Spectral/Component/Timeline/DownloadableContent.qml b/imports/Spectral/Component/Timeline/DownloadableContent.qml
index ba586d4..2457424 100644
--- a/imports/Spectral/Component/Timeline/DownloadableContent.qml
+++ b/imports/Spectral/Component/Timeline/DownloadableContent.qml
@@ -1,6 +1,6 @@
-import QtQuick 2.9
-import QtQuick.Controls 2.2
-import QtQuick.Controls.Material 2.2
+import QtQuick 2.12
+import QtQuick.Controls 2.4
+import QtQuick.Controls.Material 2.4
import Qt.labs.platform 1.0
Item {
diff --git a/imports/Spectral/Component/Timeline/ImageDelegate.qml b/imports/Spectral/Component/Timeline/ImageDelegate.qml
index 362882a..6f03100 100644
--- a/imports/Spectral/Component/Timeline/ImageDelegate.qml
+++ b/imports/Spectral/Component/Timeline/ImageDelegate.qml
@@ -1,7 +1,7 @@
-import QtQuick 2.9
-import QtQuick.Controls 2.2
+import QtQuick 2.12
+import QtQuick.Controls 2.4
import QtQuick.Layouts 1.3
-import QtQuick.Controls.Material 2.2
+import QtQuick.Controls.Material 2.4
import QtGraphicalEffects 1.0
import Spectral 0.1
@@ -11,8 +11,6 @@ import Spectral.Component 2.0
import Spectral.Font 0.1
ColumnLayout {
- readonly property int alignment: sentByMe ? Qt.AlignRight : Qt.AlignLeft
-
readonly property bool avatarVisible: !sentByMe && (aboveAuthor !== author || aboveSection !== section || aboveEventType === "state" || aboveEventType === "emote" || aboveEventType === "other")
readonly property bool sentByMe: author === currentRoom.localUser
@@ -75,7 +73,6 @@ ColumnLayout {
source: "image://mxc/" + (content.thumbnail_url ? content.thumbnail_url : content.url)
sourceSize.width: Math.min(256, messageListView.width)
- sourceSize.height: 256
layer.enabled: true
layer.effect: OpacityMask {
diff --git a/imports/Spectral/Component/Timeline/MessageDelegate.qml b/imports/Spectral/Component/Timeline/MessageDelegate.qml
index e58ed3e..0fe10c3 100644
--- a/imports/Spectral/Component/Timeline/MessageDelegate.qml
+++ b/imports/Spectral/Component/Timeline/MessageDelegate.qml
@@ -1,7 +1,7 @@
-import QtQuick 2.9
-import QtQuick.Controls 2.2
+import QtQuick 2.12
+import QtQuick.Controls 2.4
import QtQuick.Layouts 1.3
-import QtQuick.Controls.Material 2.2
+import QtQuick.Controls.Material 2.4
import Spectral 0.1
import Spectral.Setting 0.1
@@ -10,14 +10,14 @@ import Spectral.Component 2.0
import Spectral.Font 0.1
ColumnLayout {
- readonly property int alignment: sentByMe ? Qt.AlignRight : Qt.AlignLeft
-
readonly property bool avatarVisible: !sentByMe && (aboveAuthor !== author || aboveSection !== section || aboveEventType === "state" || aboveEventType === "emote" || aboveEventType === "other")
readonly property bool sentByMe: author === currentRoom.localUser
signal saveFileAs()
signal openExternally()
+ Layout.alignment: sentByMe ? Qt.AlignRight : Qt.AlignLeft
+
id: root
spacing: 0
@@ -34,8 +34,6 @@ ColumnLayout {
}
RowLayout {
- Layout.alignment: sentByMe ? Qt.AlignRight : Qt.AlignLeft
-
z: -5
id: messageRow
@@ -70,10 +68,8 @@ ColumnLayout {
Control {
Layout.maximumWidth: messageListView.width - (!sentByMe ? 32 + messageRow.spacing : 0) - 48
- topPadding: 8
- bottomPadding: 8
- leftPadding: 16
- rightPadding: 16
+ verticalPadding: 8
+ horizontalPadding: 16
background: Rectangle {
color: sentByMe ? "#009DC2" : eventType === "notice" ? "#4285F4" : "#673AB7"
diff --git a/imports/Spectral/Component/Timeline/SectionDelegate.qml b/imports/Spectral/Component/Timeline/SectionDelegate.qml
index 6db3e26..d022135 100644
--- a/imports/Spectral/Component/Timeline/SectionDelegate.qml
+++ b/imports/Spectral/Component/Timeline/SectionDelegate.qml
@@ -1,5 +1,5 @@
-import QtQuick 2.9
-import QtQuick.Controls 2.2
+import QtQuick 2.12
+import QtQuick.Controls 2.4
Label {
text: section + " • " + Qt.formatTime(time, "hh:mm")
diff --git a/imports/Spectral/Component/Timeline/StateDelegate.qml b/imports/Spectral/Component/Timeline/StateDelegate.qml
index 2c3a262..2c4c20a 100644
--- a/imports/Spectral/Component/Timeline/StateDelegate.qml
+++ b/imports/Spectral/Component/Timeline/StateDelegate.qml
@@ -1,13 +1,11 @@
-import QtQuick 2.9
-import QtQuick.Controls 2.2
+import QtQuick 2.12
+import QtQuick.Controls 2.4
import QtQuick.Layouts 1.3
-import QtQuick.Controls.Material 2.2
+import QtQuick.Controls.Material 2.4
import Spectral.Setting 0.1
Label {
- readonly property int alignment: Qt.AlignHCenter
-
text: "" + author.displayName + " " + display
color: Material.accent
diff --git a/imports/Spectral/Component/Timeline/TimelineImage.qml b/imports/Spectral/Component/Timeline/TimelineImage.qml
deleted file mode 100644
index c7050de..0000000
--- a/imports/Spectral/Component/Timeline/TimelineImage.qml
+++ /dev/null
@@ -1,34 +0,0 @@
-import QtQuick 2.9
-import QtQuick.Controls 2.2
-
-Item {
- property alias source: baseImage.source
- property alias sourceSize: baseImage.sourceSize.width
-
- readonly property bool loading: baseImage.status == Image.Loading
-
- signal clicked()
-
- width: loading ? 128 : baseImage.implicitWidth
- height: loading ? progressBar.height : baseImage.implicitHeight
-
- id: rekt
-
- Image { id: baseImage }
-
- ProgressBar {
- width: parent.width
- visible: loading
-
- id: progressBar
-
- indeterminate: true
- }
-
- MouseArea {
- anchors.fill: parent
- propagateComposedEvents: true
-
- onClicked: rekt.clicked()
- }
-}
diff --git a/imports/Spectral/Component/Timeline/TimelineLabel.qml b/imports/Spectral/Component/Timeline/TimelineLabel.qml
deleted file mode 100644
index f64751f..0000000
--- a/imports/Spectral/Component/Timeline/TimelineLabel.qml
+++ /dev/null
@@ -1,17 +0,0 @@
-import QtQuick 2.9
-import QtQuick.Controls 2.2
-import QtQuick.Controls.Material 2.2
-
-import Spectral.Setting 0.1
-
-Label {
- property bool coloredBackground
-
- color: coloredBackground ? "white": Material.foreground
-
- wrapMode: Label.Wrap
- linkColor: coloredBackground ? "white" : Material.accent
- textFormat: Text.RichText
-
- onLinkActivated: Qt.openUrlExternally(link)
-}
diff --git a/imports/Spectral/Component/Timeline/qmldir b/imports/Spectral/Component/Timeline/qmldir
index f77ced3..aaa54ce 100644
--- a/imports/Spectral/Component/Timeline/qmldir
+++ b/imports/Spectral/Component/Timeline/qmldir
@@ -2,3 +2,4 @@ module Spectral.Component.Timeline
MessageDelegate 2.0 MessageDelegate.qml
StateDelegate 2.0 StateDelegate.qml
SectionDelegate 2.0 SectionDelegate.qml
+ImageDelegate 2.0 ImageDelegate.qml
diff --git a/imports/Spectral/Effect/CircleMask.qml b/imports/Spectral/Effect/CircleMask.qml
index fc59f40..184861e 100644
--- a/imports/Spectral/Effect/CircleMask.qml
+++ b/imports/Spectral/Effect/CircleMask.qml
@@ -1,4 +1,4 @@
-import QtQuick 2.9
+import QtQuick 2.12
import QtGraphicalEffects 1.0
Item {
diff --git a/imports/Spectral/Effect/ElevationEffect.qml b/imports/Spectral/Effect/ElevationEffect.qml
index 423c492..0299fd5 100644
--- a/imports/Spectral/Effect/ElevationEffect.qml
+++ b/imports/Spectral/Effect/ElevationEffect.qml
@@ -1,4 +1,4 @@
-import QtQuick 2.9
+import QtQuick 2.12
import QtGraphicalEffects 1.0
/*!
diff --git a/imports/Spectral/Effect/RippleEffect.qml b/imports/Spectral/Effect/RippleEffect.qml
index 4432e21..9749aa9 100644
--- a/imports/Spectral/Effect/RippleEffect.qml
+++ b/imports/Spectral/Effect/RippleEffect.qml
@@ -1,5 +1,5 @@
-import QtQuick 2.9
-import QtQuick.Controls 2.2
+import QtQuick 2.12
+import QtQuick.Controls 2.4
import QtGraphicalEffects 1.0
import Spectral.Component 2.0
diff --git a/imports/Spectral/Font/CommonFont.qml b/imports/Spectral/Font/CommonFont.qml
index f221ef2..efe053d 100644
--- a/imports/Spectral/Font/CommonFont.qml
+++ b/imports/Spectral/Font/CommonFont.qml
@@ -1,6 +1,6 @@
pragma Singleton
-import QtQuick 2.9
-import QtQuick.Controls 2.2
+import QtQuick 2.12
+import QtQuick.Controls 2.4
Item {
property alias font: materialLabel.font
diff --git a/imports/Spectral/Font/MaterialFont.qml b/imports/Spectral/Font/MaterialFont.qml
index 312fe23..c1a3d66 100644
--- a/imports/Spectral/Font/MaterialFont.qml
+++ b/imports/Spectral/Font/MaterialFont.qml
@@ -1,5 +1,5 @@
pragma Singleton
-import QtQuick 2.9
+import QtQuick 2.12
FontLoader {
source: "qrc:/assets/font/material.ttf"
diff --git a/imports/Spectral/Menu/MessageContextMenu.qml b/imports/Spectral/Menu/MessageContextMenu.qml
index 62c7c74..802e07b 100644
--- a/imports/Spectral/Menu/MessageContextMenu.qml
+++ b/imports/Spectral/Menu/MessageContextMenu.qml
@@ -1,5 +1,5 @@
-import QtQuick 2.9
-import QtQuick.Controls 2.2
+import QtQuick 2.12
+import QtQuick.Controls 2.4
Menu {
property var root: null
diff --git a/imports/Spectral/Menu/RoomContextMenu.qml b/imports/Spectral/Menu/RoomContextMenu.qml
index 8c5b1a6..497f79a 100644
--- a/imports/Spectral/Menu/RoomContextMenu.qml
+++ b/imports/Spectral/Menu/RoomContextMenu.qml
@@ -1,5 +1,5 @@
-import QtQuick 2.9
-import QtQuick.Controls 2.2
+import QtQuick 2.12
+import QtQuick.Controls 2.4
import Spectral 0.1
Menu {
diff --git a/imports/Spectral/Panel/RoomDrawer.qml b/imports/Spectral/Panel/RoomDrawer.qml
index 2221b5b..bb6edd2 100644
--- a/imports/Spectral/Panel/RoomDrawer.qml
+++ b/imports/Spectral/Panel/RoomDrawer.qml
@@ -1,6 +1,6 @@
-import QtQuick 2.9
-import QtQuick.Controls 2.2
-import QtQuick.Controls.Material 2.2
+import QtQuick 2.12
+import QtQuick.Controls 2.4
+import QtQuick.Controls.Material 2.4
import QtQuick.Layouts 1.3
import Spectral.Component 2.0
@@ -48,7 +48,7 @@ Drawer {
wrapMode: Label.Wrap
horizontalAlignment: Text.AlignHCenter
- text: room ? room.memberCount + " Members" : "No Member Count"
+ text: room ? room.totalMemberCount + " Members" : "No Member Count"
}
RowLayout {
diff --git a/imports/Spectral/Panel/RoomHeader.qml b/imports/Spectral/Panel/RoomHeader.qml
index e3c95ff..eb291d5 100644
--- a/imports/Spectral/Panel/RoomHeader.qml
+++ b/imports/Spectral/Panel/RoomHeader.qml
@@ -1,7 +1,7 @@
-import QtQuick 2.9
-import QtQuick.Controls 2.2
+import QtQuick 2.12
+import QtQuick.Controls 2.4
import QtQuick.Layouts 1.3
-import QtQuick.Controls.Material 2.2
+import QtQuick.Controls.Material 2.4
import Spectral 0.1
import Spectral.Effect 2.0
diff --git a/imports/Spectral/Panel/RoomListPanel.qml b/imports/Spectral/Panel/RoomListPanel.qml
index 7d9dc3d..2ee2792 100644
--- a/imports/Spectral/Panel/RoomListPanel.qml
+++ b/imports/Spectral/Panel/RoomListPanel.qml
@@ -1,8 +1,8 @@
-import QtQuick 2.9
-import QtQuick.Controls 2.2
+import QtQuick 2.12
+import QtQuick.Controls 2.4
import QtQuick.Layouts 1.3
-import QtQuick.Controls.Material 2.2
+import QtQuick.Controls.Material 2.4
import Spectral.Component 2.0
import Spectral.Menu 2.0
@@ -813,7 +813,11 @@ Rectangle {
inviteDialog.currentRoom = currentRoom
inviteDialog.open()
} else {
- leaveRoom(enteredRoom)
+ if (enteredRoom) {
+ enteredRoom.displayed = false
+ leaveRoom(enteredRoom)
+ }
+ currentRoom.displayed = true
enterRoom(currentRoom)
enteredRoom = currentRoom
}
diff --git a/imports/Spectral/Panel/RoomPanel.qml b/imports/Spectral/Panel/RoomPanel.qml
index ad8c5da..db01b53 100644
--- a/imports/Spectral/Panel/RoomPanel.qml
+++ b/imports/Spectral/Panel/RoomPanel.qml
@@ -1,7 +1,8 @@
-import QtQuick 2.9
-import QtQuick.Controls 2.2
+import QtQuick 2.12
+import QtQuick.Controls 2.4
import QtQuick.Layouts 1.3
-import QtQuick.Controls.Material 2.2
+import QtQuick.Controls.Material 2.4
+import Qt.labs.qmlmodels 1.0
import Spectral.Component 2.0
import Spectral.Component.Emoji 2.0
@@ -121,66 +122,102 @@ Item {
}
}
- delegate: ColumnLayout {
- width: parent.width
- implicitHeight: 32
+ delegate: DelegateChooser {
+ role: "eventType"
- id: delegateColumn
+ DelegateChoice {
+ roleValue: "state"
+ delegate: ColumnLayout {
+ width: messageListView.width
+ spacing: 4
- spacing: 4
+ SectionDelegate {
+ Layout.alignment: Qt.AlignHCenter
+ Layout.margins: 4
- SectionDelegate {
- Layout.alignment: Qt.AlignHCenter
- Layout.margins: 4
+ visible: section !== aboveSection || Math.abs(time - aboveTime) > 600000
+ }
- visible: section !== aboveSection || Math.abs(time - aboveTime) > 600000
- }
-
- Loader {
- Layout.maximumWidth: delegateColumn.width
- Layout.alignment: item ? item.alignment : 0
-
- source: {
- switch (eventType) {
- case "message":
- case "notice":
- return "qrc:/imports/Spectral/Component/Timeline/MessageDelegate.qml"
- case "emote":
- case "state":
- return "qrc:/imports/Spectral/Component/Timeline/StateDelegate.qml"
- case "image":
- return "qrc:/imports/Spectral/Component/Timeline/ImageDelegate.qml"
- default:
- return ""
+ StateDelegate {
+ Layout.maximumWidth: parent.width
+ Layout.alignment: Qt.AlignHCenter
}
}
}
- // Read marker
- RowLayout {
- Layout.fillWidth: true
- Layout.alignment: Qt.AlignHCenter
+ DelegateChoice {
+ roleValue: "emote"
+ delegate: ColumnLayout {
+ width: messageListView.width
+ spacing: 4
- visible: readMarker === true
+ SectionDelegate {
+ Layout.alignment: Qt.AlignHCenter
+ Layout.margins: 4
- Rectangle {
- Layout.fillWidth: true
- Layout.preferredHeight: 2
+ visible: section !== aboveSection || Math.abs(time - aboveTime) > 600000
+ }
- color: Material.accent
+ StateDelegate {
+ Layout.maximumWidth: parent.width
+ Layout.alignment: Qt.AlignHCenter
+ }
}
+ }
- Label {
- text: "And Now"
- color: Material.accent
- verticalAlignment: Text.AlignVCenter
+ DelegateChoice {
+ roleValue: "message"
+ delegate: ColumnLayout {
+ width: messageListView.width
+ spacing: 4
+
+ SectionDelegate {
+ Layout.alignment: Qt.AlignHCenter
+ Layout.margins: 4
+
+ visible: section !== aboveSection || Math.abs(time - aboveTime) > 600000
+ }
+
+ MessageDelegate {
+ }
}
+ }
- Rectangle {
- Layout.fillWidth: true
- Layout.preferredHeight: 2
+ DelegateChoice {
+ roleValue: "notice"
+ delegate: ColumnLayout {
+ width: messageListView.width
+ spacing: 4
- color: Material.accent
+ SectionDelegate {
+ Layout.alignment: Qt.AlignHCenter
+ Layout.margins: 4
+
+ visible: section !== aboveSection || Math.abs(time - aboveTime) > 600000
+ }
+
+ MessageDelegate {
+ }
+ }
+ }
+
+ DelegateChoice {
+ roleValue: "image"
+ delegate: ColumnLayout {
+ width: messageListView.width
+ spacing: 4
+
+ SectionDelegate {
+ Layout.alignment: Qt.AlignHCenter
+ Layout.margins: 4
+
+ visible: section !== aboveSection || Math.abs(time - aboveTime) > 600000
+ }
+
+ ImageDelegate {
+ Layout.maximumWidth: parent.width
+ Layout.alignment: Qt.AlignHCenter
+ }
}
}
}
@@ -236,21 +273,19 @@ Item {
Popup {
property string sourceText
- x: (window.width - width) / 2
- y: (window.height - height) / 2
+ anchors.centerIn: parent
width: 480
id: sourceDialog
parent: ApplicationWindow.overlay
- modal: true
-
padding: 16
closePolicy: Dialog.CloseOnEscape | Dialog.CloseOnPressOutside
contentItem: ScrollView {
+ clip: true
TextArea {
readOnly: true
selectByMouse: true
@@ -328,7 +363,7 @@ Item {
function goToEvent(eventID) {
var index = messageEventModel.eventIDToIndex(eventID)
if (index === -1) return
-// messageListView.currentIndex = sortedMessageEventModel.mapFromSource(index)
+ // messageListView.currentIndex = sortedMessageEventModel.mapFromSource(index)
messageListView.positionViewAtIndex(sortedMessageEventModel.mapFromSource(index), ListView.Contain)
}
diff --git a/imports/Spectral/Panel/RoomPanelInput.qml b/imports/Spectral/Panel/RoomPanelInput.qml
index c558745..e6ecec6 100644
--- a/imports/Spectral/Panel/RoomPanelInput.qml
+++ b/imports/Spectral/Panel/RoomPanelInput.qml
@@ -1,7 +1,7 @@
-import QtQuick 2.9
-import QtQuick.Controls 2.2
+import QtQuick 2.12
+import QtQuick.Controls 2.4
import QtQuick.Layouts 1.3
-import QtQuick.Controls.Material 2.2
+import QtQuick.Controls.Material 2.4
import Spectral.Component 2.0
import Spectral.Component.Emoji 2.0
@@ -167,6 +167,8 @@ Control {
spacing: 0
ToolButton {
+ Layout.preferredWidth: 48
+ Layout.preferredHeight: 48
Layout.alignment: Qt.AlignBottom
id: uploadButton
@@ -186,6 +188,8 @@ Control {
}
ToolButton {
+ Layout.preferredWidth: 48
+ Layout.preferredHeight: 48
Layout.alignment: Qt.AlignBottom
id: cancelReplyButton
@@ -364,6 +368,8 @@ Control {
}
ToolButton {
+ Layout.preferredWidth: 48
+ Layout.preferredHeight: 48
Layout.alignment: Qt.AlignBottom
id: emojiButton
diff --git a/imports/Spectral/Setting/Setting.qml b/imports/Spectral/Setting/Setting.qml
index 3eb48c1..fb7a966 100644
--- a/imports/Spectral/Setting/Setting.qml
+++ b/imports/Spectral/Setting/Setting.qml
@@ -1,5 +1,5 @@
pragma Singleton
-import QtQuick 2.9
+import QtQuick 2.12
import Qt.labs.settings 1.0
Settings {
diff --git a/include/libqmatrixclient b/include/libqmatrixclient
index 52081fe..fcc8d2c 160000
--- a/include/libqmatrixclient
+++ b/include/libqmatrixclient
@@ -1 +1 @@
-Subproject commit 52081fe91724e5f2a82c55f0e6230d8841dd859a
+Subproject commit fcc8d2ca615fce6e42bf1cf6585d60f94a2db926
diff --git a/qml/main.qml b/qml/main.qml
index dd7ca62..228c610 100644
--- a/qml/main.qml
+++ b/qml/main.qml
@@ -1,7 +1,7 @@
-import QtQuick 2.9
-import QtQuick.Controls 2.2
+import QtQuick 2.12
+import QtQuick.Controls 2.4
import QtQuick.Layouts 1.3
-import QtQuick.Controls.Material 2.2
+import QtQuick.Controls.Material 2.4
import Qt.labs.settings 1.0
import Qt.labs.platform 1.0 as Platform
diff --git a/qtquickcontrols2.conf b/qtquickcontrols2.conf
index 6ed3a49..c594d10 100644
--- a/qtquickcontrols2.conf
+++ b/qtquickcontrols2.conf
@@ -7,6 +7,7 @@ Style=Material
[Material]
Theme=Light
+Variant=Dense
Primary=#344955
Accent=#673AB7
Foreground=#1D333E
diff --git a/res.qrc b/res.qrc
index 9ae861e..a1b0934 100644
--- a/res.qrc
+++ b/res.qrc
@@ -33,8 +33,6 @@
imports/Spectral/Panel/RoomHeader.qml
imports/Spectral/Component/ScrollHelper.qml
imports/Spectral/Component/AutoListView.qml
- imports/Spectral/Component/Timeline/TimelineImage.qml
- imports/Spectral/Component/Timeline/TimelineLabel.qml
imports/Spectral/Component/AutoTextField.qml
imports/Spectral/Panel/RoomPanelInput.qml
imports/Spectral/Component/SplitView.qml
diff --git a/src/controller.cpp b/src/controller.cpp
index 8992e9c..4c87a97 100644
--- a/src/controller.cpp
+++ b/src/controller.cpp
@@ -42,7 +42,12 @@ Controller::Controller(QObject* parent)
QTimer::singleShot(0, this, SLOT(invokeLogin()));
}
-Controller::~Controller() {}
+Controller::~Controller() {
+ for (Connection* c : m_connections) {
+ c->stopSync();
+ c->saveState();
+ }
+}
inline QString accessTokenFileName(const AccountSettings& account) {
QString fileName = account.userId();
@@ -107,6 +112,8 @@ void Controller::addConnection(Connection* c) {
m_connections.push_back(c);
+ c->setLazyLoading(true);
+
connect(c, &Connection::syncDone, this, [=] {
emit syncDone();
c->sync(30000);
diff --git a/src/imageprovider.cpp b/src/imageprovider.cpp
index c4abc1f..72d8030 100644
--- a/src/imageprovider.cpp
+++ b/src/imageprovider.cpp
@@ -29,6 +29,7 @@ QImage ImageProvider::requestImage(const QString& id, QSize* pSize,
QUrl mxcUri{id};
QImage result = image(mxcUri, requestedSize);
+ if (result.isNull()) return {};
if (!requestedSize.isEmpty() && result.size() != requestedSize) {
QImage scaled = result.scaled(requestedSize, Qt::KeepAspectRatio,
Qt::SmoothTransformation);
diff --git a/src/spectralroom.cpp b/src/spectralroom.cpp
index e003d61..79ef501 100644
--- a/src/spectralroom.cpp
+++ b/src/spectralroom.cpp
@@ -195,8 +195,6 @@ QDateTime SpectralRoom::lastActiveTime() {
return messageEvents().rbegin()->get()->timestamp();
}
-float SpectralRoom::orderForTag(QString name) { return tag(name).order; }
-
int SpectralRoom::savedTopVisibleIndex() const {
return firstDisplayedMarker() == timelineEdge()
? 0
diff --git a/src/spectralroom.h b/src/spectralroom.h
index 21474ca..309a565 100644
--- a/src/spectralroom.h
+++ b/src/spectralroom.h
@@ -66,7 +66,6 @@ class SpectralRoom : public Room {
}
}
- Q_INVOKABLE float orderForTag(QString name);
Q_INVOKABLE int savedTopVisibleIndex() const;
Q_INVOKABLE int savedBottomVisibleIndex() const;
Q_INVOKABLE void saveViewport(int topIndex, int bottomIndex);
diff --git a/src/userlistmodel.cpp b/src/userlistmodel.cpp
index 4fc65e8..851cd09 100644
--- a/src/userlistmodel.cpp
+++ b/src/userlistmodel.cpp
@@ -34,12 +34,8 @@ void UserListModel::setRoom(QMatrixClient::Room* room) {
connect(m_currentRoom, &Room::memberRenamed, this,
&UserListModel::userAdded);
{
- QElapsedTimer et;
- et.start();
m_users = m_currentRoom->users();
std::sort(m_users.begin(), m_users.end(), room->memberSorter());
- qDebug() << "Sorting" << m_users.size() << "user(s) in"
- << m_currentRoom->displayName() << "took" << et;
}
for (User* user : m_users) {
connect(user, &User::avatarChanged, this, &UserListModel::avatarChanged);