summary refs log tree commit diff
path: root/resources/qml/delegates
diff options
context:
space:
mode:
authorNicolas Werner <nicolas.werner@hotmail.de>2023-06-02 01:29:05 +0200
committerNicolas Werner <nicolas.werner@hotmail.de>2023-06-08 22:32:07 +0200
commit54e2295c214874a316d22eaedaf5c2db17b59df0 (patch)
tree2c88e09be38e2758dfcd3fe6732da484f99d94c5 /resources/qml/delegates
parentFirst runnable qt6 Nheko (diff)
downloadnheko-54e2295c214874a316d22eaedaf5c2db17b59df0.tar.xz
Fix palette access and QMediaPlayer errors
Diffstat (limited to '')
-rw-r--r--resources/qml/delegates/Encrypted.qml5
-rw-r--r--resources/qml/delegates/EncryptionEnabled.qml6
-rw-r--r--resources/qml/delegates/FileMessage.qml8
-rw-r--r--resources/qml/delegates/ImageMessage.qml12
-rw-r--r--resources/qml/delegates/MessageDelegate.qml8
-rw-r--r--resources/qml/delegates/NoticeMessage.qml2
-rw-r--r--resources/qml/delegates/Pill.qml4
-rw-r--r--resources/qml/delegates/Placeholder.qml2
-rw-r--r--resources/qml/delegates/PlayableMediaMessage.qml8
-rw-r--r--resources/qml/delegates/Redacted.qml6
-rw-r--r--resources/qml/delegates/Reply.qml6
-rw-r--r--resources/qml/delegates/TextMessage.qml14
12 files changed, 39 insertions, 42 deletions
diff --git a/resources/qml/delegates/Encrypted.qml b/resources/qml/delegates/Encrypted.qml
index 74e1cb0d..fdfe958e 100644
--- a/resources/qml/delegates/Encrypted.qml
+++ b/resources/qml/delegates/Encrypted.qml
@@ -18,7 +18,7 @@ Rectangle {
     width: parent.width? parent.width : 0
     implicitWidth: encryptedText.implicitWidth+24+Nheko.paddingMedium*3 // Column doesn't provide a useful implicitWidth, should be replaced by ColumnLayout
     height: contents.implicitHeight + Nheko.paddingMedium * 2
-    color: Nheko.colors.alternateBase
+    color: palette.alternateBase
 
     RowLayout {
         id: contents
@@ -58,12 +58,11 @@ Rectangle {
                         return qsTr("Unknown decryption error");
                     }
                 }
-                color: Nheko.colors.text
+                color: palette.text
                 width: parent.width
             }
 
             Button {
-                palette: Nheko.colors
                 visible: encryptionError == Olm.MissingSession || encryptionError == Olm.MissingSessionIndex
                 text: qsTr("Request key")
                 onClicked: room.requestKeyForEvent(eventId)
diff --git a/resources/qml/delegates/EncryptionEnabled.qml b/resources/qml/delegates/EncryptionEnabled.qml
index e38be4b0..c8671c84 100644
--- a/resources/qml/delegates/EncryptionEnabled.qml
+++ b/resources/qml/delegates/EncryptionEnabled.qml
@@ -17,7 +17,7 @@ Rectangle {
     width: parent.width ? Math.min(parent.width, 700) : 0
     anchors.horizontalCenter: parent.horizontalCenter
     height: contents.implicitHeight + Nheko.paddingMedium * 2
-    color: Nheko.colors.alternateBase
+    color: palette.alternateBase
     border.color: Nheko.theme.green
     border.width: 2
 
@@ -43,13 +43,13 @@ Rectangle {
                 text: qsTr("%1 enabled end-to-end encryption").arg(r.username)
                 font.bold: true
                 font.pointSize: 14
-                color: Nheko.colors.text
+                color: palette.text
                 width: parent.width
             }
 
             MatrixText {
                 text: qsTr("Encryption keeps your messages safe by only allowing the people you sent the message to to read it. For extra security, if you want to make sure you are talking to the right people, you can verify them in real life.")
-                color: Nheko.colors.text
+                color: palette.text
                 width: parent.width
             }
 
diff --git a/resources/qml/delegates/FileMessage.qml b/resources/qml/delegates/FileMessage.qml
index b3c44af2..e63ca8e3 100644
--- a/resources/qml/delegates/FileMessage.qml
+++ b/resources/qml/delegates/FileMessage.qml
@@ -27,7 +27,7 @@ Item {
         Rectangle {
             id: button
 
-            color: Nheko.colors.light
+            color: palette.light
             radius: 22
             height: 44
             width: 44
@@ -67,7 +67,7 @@ Item {
                 text: filename
                 textFormat: Text.PlainText
                 elide: Text.ElideRight
-                color: Nheko.colors.text
+                color: palette.text
             }
 
             Text {
@@ -77,7 +77,7 @@ Item {
                 text: filesize
                 textFormat: Text.PlainText
                 elide: Text.ElideRight
-                color: Nheko.colors.text
+                color: palette.text
             }
 
         }
@@ -85,7 +85,7 @@ Item {
     }
 
     Rectangle {
-        color: Nheko.colors.alternateBase
+        color: palette.alternateBase
         z: -1
         radius: 10
         anchors.fill: parent
diff --git a/resources/qml/delegates/ImageMessage.qml b/resources/qml/delegates/ImageMessage.qml
index bed4b659..20d727c3 100644
--- a/resources/qml/delegates/ImageMessage.qml
+++ b/resources/qml/delegates/ImageMessage.qml
@@ -22,7 +22,7 @@ AbstractButton {
     property int tempWidth: originalWidth < 1? 400: originalWidth
 
     implicitWidth: Math.round(tempWidth*Math.min((timelineView.height/divisor)/(tempWidth*proportionalHeight), 1))
-    width: Math.min(parent.width,implicitWidth)
+    width: Math.min(parent?.width ?? 2000,implicitWidth)
     height: width*proportionalHeight
     hoverEnabled: true
 
@@ -106,14 +106,14 @@ AbstractButton {
     ]
 
     property int metadataWidth
-    property bool fitsMetadata: (parent.width - width) > metadataWidth+4
+    property bool fitsMetadata: parent != null ? (parent.width - width) > metadataWidth+4 : false
 
     Image {
         id: img
 
         visible: !mxcimage.loaded
         anchors.fill: parent
-        source: url.replace("mxc://", "image://MxcImage/") + "?scale"
+        source: url != "" ? (url.replace("mxc://", "image://MxcImage/") + "?scale") : ""
         asynchronous: true
         fillMode: Image.PreserveAspectFit
         smooth: true
@@ -137,7 +137,7 @@ AbstractButton {
         id: blurhash_
 
         anchors.fill: parent
-        source: blurhash ? ("image://blurhash/" + blurhash) : ("image://colorimage/:/icons/icons/ui/image-failed.svg?" + Nheko.colors.buttonText)
+        source: blurhash ? ("image://blurhash/" + blurhash) : ("image://colorimage/:/icons/icons/ui/image-failed.svg?" + palette.buttonText)
         asynchronous: true
         fillMode: Image.PreserveAspectFit
         sourceSize.width: parent.width * Screen.devicePixelRatio
@@ -158,7 +158,7 @@ AbstractButton {
             width: parent.width
             implicitHeight: imgcaption.implicitHeight
             anchors.bottom: overlay.bottom
-            color: Nheko.colors.window
+            color: palette.window
             opacity: 0.75
         }
 
@@ -171,7 +171,7 @@ AbstractButton {
             verticalAlignment: Text.AlignVCenter
             // See this MSC: https://github.com/matrix-org/matrix-doc/pull/2530
             text: filename ? filename : body
-            color: Nheko.colors.text
+            color: palette.text
         }
 
     }
diff --git a/resources/qml/delegates/MessageDelegate.qml b/resources/qml/delegates/MessageDelegate.qml
index c0bcec0d..cd8109b4 100644
--- a/resources/qml/delegates/MessageDelegate.qml
+++ b/resources/qml/delegates/MessageDelegate.qml
@@ -13,7 +13,7 @@ Item {
     required property bool isReply
     property bool keepFullText: !isReply
     property alias child: chooser.child
-    implicitWidth: (chooser.child && chooser.child.implicitWidth) ? chooser.child.implicitWidth : 0
+    //implicitWidth: chooser.child?.implicitWidth ?? 0
     required property double proportionalHeight
     required property int type
     required property string typeString
@@ -48,7 +48,7 @@ Item {
         roleValue: type
         //anchors.fill: parent
 
-        width: parent.width? parent.width: 0 // this should get rid of "cannot read property 'width' of null"
+        width: parent?.width ?? 0 // this should get rid of "cannot read property 'width' of null"
 
         DelegateChoice {
             roleValue: MtxEvent.UnknownEvent
@@ -78,7 +78,6 @@ Item {
                 }
 
                 Button {
-                    palette: Nheko.colors
                     Layout.alignment: Qt.AlignHCenter
                     text: qsTr("Go to replacement room")
                     onClicked: room.joinReplacementRoom(eventId)
@@ -149,7 +148,7 @@ Item {
 
             NoticeMessage {
                 formatted: TimelineManager.escapeEmoji(d.userName) + " " + d.formattedBody
-                color: TimelineManager.userColor(d.userId, Nheko.colors.base)
+                color: TimelineManager.userColor(d.userId, palette.base)
                 body: d.body
                 isOnlyEmoji: d.isOnlyEmoji
                 isReply: d.isReply
@@ -617,7 +616,6 @@ Item {
 
                 Button {
                     visible: d.relatedEventCacheBuster, room.showAcceptKnockButton(d.eventId)
-                    palette: Nheko.colors
                     Layout.alignment: Qt.AlignHCenter
                     text: qsTr("Allow them in")
                     onClicked: room.acceptKnock(eventId)
diff --git a/resources/qml/delegates/NoticeMessage.qml b/resources/qml/delegates/NoticeMessage.qml
index d62afb96..88efe7b7 100644
--- a/resources/qml/delegates/NoticeMessage.qml
+++ b/resources/qml/delegates/NoticeMessage.qml
@@ -9,7 +9,7 @@ import im.nheko 1.0
 TextMessage {
     property bool isStateEvent
     font.italic: true
-    color: Nheko.colors.buttonText
+    color: palette.buttonText
     font.pointSize: isStateEvent? 0.8*Settings.fontSize : Settings.fontSize
     horizontalAlignment: isStateEvent? Text.AlignHCenter : undefined
 }
diff --git a/resources/qml/delegates/Pill.qml b/resources/qml/delegates/Pill.qml
index b60781cb..3f981d4d 100644
--- a/resources/qml/delegates/Pill.qml
+++ b/resources/qml/delegates/Pill.qml
@@ -8,14 +8,14 @@ import im.nheko 1.0
 
 Label {
     property bool isStateEvent
-    color: Nheko.colors.text
+    color: palette.text
     horizontalAlignment: Text.AlignHCenter
     height: Math.round(fontMetrics.height * 1.4)
     width: contentWidth * 1.2
 
     background: Rectangle {
         radius: parent.height / 2
-        color: Nheko.colors.alternateBase
+        color: palette.alternateBase
     }
 
 }
diff --git a/resources/qml/delegates/Placeholder.qml b/resources/qml/delegates/Placeholder.qml
index 08008765..66e28c03 100644
--- a/resources/qml/delegates/Placeholder.qml
+++ b/resources/qml/delegates/Placeholder.qml
@@ -10,5 +10,5 @@ MatrixText {
 
     text: qsTr("unimplemented event: ") + typeString
 //    width: parent.width
-    color: Nheko.inactiveColors.text
+    color: palette.inactive.text
 }
diff --git a/resources/qml/delegates/PlayableMediaMessage.qml b/resources/qml/delegates/PlayableMediaMessage.qml
index 1131856f..60a61372 100644
--- a/resources/qml/delegates/PlayableMediaMessage.qml
+++ b/resources/qml/delegates/PlayableMediaMessage.qml
@@ -47,7 +47,7 @@ Item {
     Rectangle {
         id: videoContainer
 
-        color: type == MtxEvent.VideoMessage ? Nheko.colors.window : "transparent"
+        color: type == MtxEvent.VideoMessage ? palette.window : "transparent"
         width: parent.width
         height: parent.height - fileInfoLabel.height
 
@@ -57,7 +57,7 @@ Item {
 
         Image {
             anchors.fill: parent
-            source: thumbnailUrl ? thumbnailUrl.replace("mxc://", "image://MxcImage/") + "?scale" : "image://colorimage/:/icons/icons/ui/video-file.svg?" + Nheko.colors.windowText
+            source: thumbnailUrl ? thumbnailUrl.replace("mxc://", "image://MxcImage/") + "?scale" : "image://colorimage/:/icons/icons/ui/video-file.svg?" + palette.windowText
             asynchronous: true
             fillMode: Image.PreserveAspectFit
 
@@ -99,10 +99,10 @@ Item {
         text: body + " [" + filesize + "]"
         textFormat: Text.RichText
         elide: Text.ElideRight
-        color: Nheko.colors.text
+        color: palette.text
 
         background: Rectangle {
-            color: Nheko.colors.base
+            color: palette.base
         }
 
     }
diff --git a/resources/qml/delegates/Redacted.qml b/resources/qml/delegates/Redacted.qml
index 74d4e015..4a9700dc 100644
--- a/resources/qml/delegates/Redacted.qml
+++ b/resources/qml/delegates/Redacted.qml
@@ -13,7 +13,7 @@ Rectangle{
     implicitWidth: redactedLayout.implicitWidth + 2 * Nheko.paddingMedium
     width: Math.min(parent.width,implicitWidth+1)
     radius: fontMetrics.lineSpacing / 2 + 2 * Nheko.paddingSmall
-    color: Nheko.colors.alternateBase
+    color: palette.alternateBase
     property int metadataWidth
     property bool fitsMetadata: parent.width - redactedLayout.width > metadataWidth + 4
 
@@ -28,7 +28,7 @@ Rectangle{
             Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter
             Layout.preferredWidth: fontMetrics.font.pixelSize
             Layout.preferredHeight: fontMetrics.font.pixelSize
-            source: "image://colorimage/:/icons/icons/ui/delete.svg?" + Nheko.colors.text
+            source: "image://colorimage/:/icons/icons/ui/delete.svg?" + palette.text
         }
         Label {
             id: redactedLabel
@@ -39,7 +39,7 @@ Rectangle{
             property var redactedPair: room.formatRedactedEvent(eventId)
             text: redactedPair["first"]
             wrapMode: Label.WordWrap
-            color: Nheko.colors.text
+            color: palette.text
 
             ToolTip.text: redactedPair["second"]
             ToolTip.visible: hh.hovered
diff --git a/resources/qml/delegates/Reply.qml b/resources/qml/delegates/Reply.qml
index c593a4f8..94128960 100644
--- a/resources/qml/delegates/Reply.qml
+++ b/resources/qml/delegates/Reply.qml
@@ -54,7 +54,7 @@ AbstractButton {
         anchors.top: replyContainer.top
         anchors.bottom: replyContainer.bottom
         width: 4
-        color: TimelineManager.userColor(userId, Nheko.colors.base)
+        color: TimelineManager.userColor(userId, palette.base)
     }
 
     onClicked: {
@@ -135,8 +135,8 @@ AbstractButton {
 
         z: -1
         anchors.fill: replyContainer
-        property color userColor: TimelineManager.userColor(userId, Nheko.colors.base)
-        property color bgColor: Nheko.colors.base
+        property color userColor: TimelineManager.userColor(userId, palette.base)
+        property color bgColor: palette.base
         color: Qt.tint(bgColor, Qt.hsla(userColor.hslHue, 0.5, userColor.hslLightness, 0.1))
     }
 
diff --git a/resources/qml/delegates/TextMessage.qml b/resources/qml/delegates/TextMessage.qml
index eb46a9ac..39e8b1a8 100644
--- a/resources/qml/delegates/TextMessage.qml
+++ b/resources/qml/delegates/TextMessage.qml
@@ -19,15 +19,15 @@ MatrixText {
     // table border-collapse doesn't seem to work
     text: "
     <style type=\"text/css\">
-    a { color:" + Nheko.colors.link + ";}
-    code { background-color: " + Nheko.colors.alternateBase + "; white-space: pre-wrap; }
-    pre { background-color: " + Nheko.colors.alternateBase + "; white-space: pre-wrap; }
+    a { color:" + palette.link + ";}
+    code { background-color: " + palette.alternateBase + "; white-space: pre-wrap; }
+    pre { background-color: " + palette.alternateBase + "; white-space: pre-wrap; }
     table {
         border-width: 1px;
         border-collapse: collapse;
         border-style: solid;
-        border-color: " + Nheko.colors.text + ";
-        background-color: " + Nheko.colors.alternateBase + ";
+        border-color: " + palette.text + ";
+        background-color: " + palette.alternateBase + ";
     }
     table th,
     table td {
@@ -36,11 +36,11 @@ MatrixText {
     blockquote { margin-left: 1em; }
     " + (!Settings.mobileMode ? "span[data-mx-spoiler] {
         color: transparent;
-        background-color: " + Nheko.colors.text + ";
+        background-color: " + palette.text + ";
     }" : "") +  // TODO(Nico): Figure out how to support mobile
     "</style>
     " + formatted.replace(/<del>/g, "<s>").replace(/<\/del>/g, "</s>").replace(/<strike>/g, "<s>").replace(/<\/strike>/g, "</s>")
-    width: parent.width
+    width: parent?.width ?? 0
     height: !keepFullText ? Math.round(Math.min(timelineView.height / 8, implicitHeight)) : implicitHeight
     clip: !keepFullText
     selectByMouse: !Settings.mobileMode && !isReply