Fix some qml compiler stuff and add verbose compilation output

This commit is contained in:
Nicolas Werner 2023-10-26 01:51:45 +02:00
parent 634a247b4c
commit 5791c48370
No known key found for this signature in database
GPG key ID: C8D75E610773F2D9
16 changed files with 71 additions and 75 deletions

View file

@ -775,7 +775,7 @@ set(QML_SOURCES
resources/qml/dialogs/RoomDirectory.qml resources/qml/dialogs/RoomDirectory.qml
resources/qml/dialogs/RoomMembers.qml resources/qml/dialogs/RoomMembers.qml
resources/qml/dialogs/AllowedRoomsSettingsDialog.qml resources/qml/dialogs/AllowedRoomsSettingsDialog.qml
resources/qml/dialogs/RoomSettings.qml resources/qml/dialogs/RoomSettingsDialog.qml
resources/qml/dialogs/UserProfile.qml resources/qml/dialogs/UserProfile.qml
resources/qml/dialogs/IgnoredUsers.qml resources/qml/dialogs/IgnoredUsers.qml
resources/qml/emoji/StickerPicker.qml resources/qml/emoji/StickerPicker.qml
@ -805,7 +805,7 @@ qt_add_qml_module(nheko
NO_RESOURCE_TARGET_PATH NO_RESOURCE_TARGET_PATH
RESOURCE_PREFIX "/" RESOURCE_PREFIX "/"
VERSION 1.1 VERSION 1.1
DEPENDENCIES QtQml QtQuick # https://bugreports.qt.io/browse/QTBUG-102554 DEPENDENCIES QtQuick QtQml.Models
QML_FILES QML_FILES
${QML_SOURCES} ${QML_SOURCES}
SOURCES SOURCES
@ -816,6 +816,10 @@ qt_add_qml_module(nheko
# #PREFIX "/" # #PREFIX "/"
#) #)
set_target_properties(nheko PROPERTIES
QT_QMLCACHEGEN_ARGUMENTS "--verbose"
)
# #
# Bundle translations # Bundle translations
# #

View file

@ -2,10 +2,10 @@
// //
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
import QtQuick 2.12 import QtQuick
import QtQuick.Controls 2.1 import QtQuick.Controls
import QtQuick.Window 2.15 import QtQuick.Window
import im.nheko 1.0 import im.nheko
Image { Image {
id: stateImg id: stateImg

View file

@ -4,9 +4,9 @@
pragma ComponentBehavior: Bound pragma ComponentBehavior: Bound
import "./ui" import "./ui"
import QtQuick 2.3 import QtQuick
import QtQuick.Controls 2.3 import QtQuick.Controls
import im.nheko 1.0 // for cursor shape import im.nheko // for cursor shape
AbstractButton { AbstractButton {
id: button id: button

View file

@ -245,7 +245,7 @@ Pane {
} }
} }
function onOpenRoomSettingsDialog(settings) { function onOpenRoomSettingsDialog(settings) {
var component = Qt.createComponent("qrc:/resources/qml/dialogs/RoomSettings.qml"); var component = Qt.createComponent("qrc:/resources/qml/dialogs/RoomSettingsDialog.qml");
if (component.status == Component.Ready) { if (component.status == Component.Ready) {
var roomSettings = component.createObject(timelineRoot, { var roomSettings = component.createObject(timelineRoot, {
"roomSettings": settings "roomSettings": settings

View file

@ -2,7 +2,6 @@
// //
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
import ".."
import QtQuick 2.15 import QtQuick 2.15
import QtQuick.Controls 2.15 import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15 import QtQuick.Layouts 1.15
@ -38,7 +37,7 @@ Control {
Label { Label {
id: encryptedText id: encryptedText
text: { text: {
switch (encryptionError) { switch (r.encryptionError) {
case Olm.MissingSession: case Olm.MissingSession:
return qsTr("There is no key to unlock this message. We requested the key automatically, but you can try requesting it again if you are impatient."); return qsTr("There is no key to unlock this message. We requested the key automatically, but you can try requesting it again if you are impatient.");
case Olm.MissingSessionIndex: case Olm.MissingSessionIndex:
@ -63,7 +62,7 @@ Control {
} }
Button { Button {
visible: encryptionError == Olm.MissingSession || encryptionError == Olm.MissingSessionIndex visible: r.encryptionError == Olm.MissingSession || encryptionError == Olm.MissingSessionIndex
text: qsTr("Request key") text: qsTr("Request key")
onClicked: room.requestKeyForEvent(eventId) onClicked: room.requestKeyForEvent(eventId)
} }

View file

@ -32,8 +32,8 @@ Control {
color: palette.light color: palette.light
radius: 22 radius: 22
height: 44 Layout.preferredHeight: 44
width: 44 Layout.preferredWidth: 44
Image { Image {
id: img id: img
@ -54,7 +54,7 @@ Control {
} }
NhekoCursorShape { NhekoCursorShape {
anchors.fill: parent anchors.fill: evRoot.parent
cursorShape: Qt.PointingHandCursor cursorShape: Qt.PointingHandCursor
} }
@ -68,7 +68,7 @@ Control {
Layout.fillWidth: true Layout.fillWidth: true
Layout.maximumWidth: implicitWidth + 1 Layout.maximumWidth: implicitWidth + 1
text: filename text: evRoot.filename
textFormat: Text.PlainText textFormat: Text.PlainText
elide: Text.ElideRight elide: Text.ElideRight
color: palette.text color: palette.text
@ -79,7 +79,7 @@ Control {
Layout.fillWidth: true Layout.fillWidth: true
Layout.maximumWidth: implicitWidth + 1 Layout.maximumWidth: implicitWidth + 1
text: filesize text: evRoot.filesize
textFormat: Text.PlainText textFormat: Text.PlainText
elide: Text.ElideRight elide: Text.ElideRight
color: palette.text color: palette.text

View file

@ -34,38 +34,36 @@ AbstractButton {
name: "BlurhashVisible" name: "BlurhashVisible"
PropertyChanges { PropertyChanges {
target: blurhash_ blurhash_ {
opacity: (img.status != Image.Ready) || (timeline.privacyScreen.active && blurhash) ? 1 : 0 opacity: (img.status != Image.Ready) || (timeline.privacyScreen.active && blurhash) ? 1 : 0
visible: (img.status != Image.Ready) || (timeline.privacyScreen.active && blurhash) visible: (img.status != Image.Ready) || (timeline.privacyScreen.active && blurhash)
}
} }
PropertyChanges { PropertyChanges {
target: img img.opacity: 0
opacity: 0
} }
PropertyChanges { PropertyChanges {
target: mxcimage mxcimage.opacity: 0
opacity: 0
} }
}, },
State { State {
name: "ImageVisible" name: "ImageVisible"
PropertyChanges { PropertyChanges {
target: blurhash_ blurhash_ {
opacity: 0 opacity: 0
visible: false visible: false
}
} }
PropertyChanges { PropertyChanges {
target: img img.opacity: 1
opacity: 1
} }
PropertyChanges { PropertyChanges {
target: mxcimage mxcimage.opacity: 1
opacity: 1
} }
} }
] ]

View file

@ -2,12 +2,10 @@
// //
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
import "../"
import "../ui/media" import "../ui/media"
import QtMultimedia import QtMultimedia
import QtQuick import QtQuick
import QtQuick.Controls import QtQuick.Controls
import QtQuick.Layouts
import im.nheko import im.nheko
Item { Item {
@ -47,7 +45,7 @@ Item {
Rectangle { Rectangle {
id: videoContainer id: videoContainer
color: type == MtxEvent.VideoMessage ? palette.window : "transparent" color: content.type == MtxEvent.VideoMessage ? palette.window : "transparent"
width: parent.width width: parent.width
height: parent.height - fileInfoLabel.height height: parent.height - fileInfoLabel.height
@ -57,14 +55,14 @@ Item {
Image { Image {
anchors.fill: parent anchors.fill: parent
source: thumbnailUrl ? thumbnailUrl.replace("mxc://", "image://MxcImage/") + "?scale" : "image://colorimage/:/icons/icons/ui/video-file.svg?" + palette.windowText source: content.thumbnailUrl ? thumbnailUrl.replace("mxc://", "image://MxcImage/") + "?scale" : "image://colorimage/:/icons/icons/ui/video-file.svg?" + palette.windowText
asynchronous: true asynchronous: true
fillMode: Image.PreserveAspectFit fillMode: Image.PreserveAspectFit
VideoOutput { VideoOutput {
id: videoOutput id: videoOutput
visible: type == MtxEvent.VideoMessage visible: content.type == MtxEvent.VideoMessage
clip: true clip: true
anchors.fill: parent anchors.fill: parent
fillMode: VideoOutput.PreserveAspectFit fillMode: VideoOutput.PreserveAspectFit
@ -79,7 +77,7 @@ Item {
anchors.left: videoContainer.left anchors.left: videoContainer.left
anchors.right: videoContainer.right anchors.right: videoContainer.right
anchors.bottom: videoContainer.bottom anchors.bottom: videoContainer.bottom
playingVideo: type == MtxEvent.VideoMessage playingVideo: content.type == MtxEvent.VideoMessage
positionValue: mxcmedia.position positionValue: mxcmedia.position
duration: mediaLoaded ? mxcmedia.duration : content.duration duration: mediaLoaded ? mxcmedia.duration : content.duration
mediaLoaded: mxcmedia.loaded mediaLoaded: mxcmedia.loaded
@ -95,7 +93,7 @@ Item {
id: fileInfoLabel id: fileInfoLabel
anchors.top: videoContainer.bottom anchors.top: videoContainer.bottom
text: body + " [" + filesize + "]" text: content.body + " [" + filesize + "]"
textFormat: Text.RichText textFormat: Text.RichText
elide: Text.ElideRight elide: Text.ElideRight
color: palette.text color: palette.text

View file

@ -33,7 +33,7 @@ Control {
Layout.alignment: Qt.AlignVCenter | Qt.AlignRight Layout.alignment: Qt.AlignVCenter | Qt.AlignRight
Layout.maximumWidth: implicitWidth + 1 Layout.maximumWidth: implicitWidth + 1
Layout.fillWidth: true Layout.fillWidth: true
property var redactedPair: room.formatRedactedEvent(msgRoot.eventId) property var redactedPair: msgRoot.room.formatRedactedEvent(msgRoot.eventId)
text: redactedPair["first"] text: redactedPair["first"]
wrapMode: Label.WordWrap wrapMode: Label.WordWrap

View file

@ -2,12 +2,10 @@
// //
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
import Qt.labs.platform 1.1 as Platform import QtQuick
import QtQuick 2.12 import QtQuick.Controls
import QtQuick.Controls 2.3 import QtQuick.Window
import QtQuick.Layouts 1.2 import im.nheko
import QtQuick.Window 2.13
import im.nheko 1.0
import "../" import "../"
AbstractButton { AbstractButton {
@ -45,7 +43,7 @@ AbstractButton {
id: timelineEvent id: timelineEvent
isStateEvent: false isStateEvent: false
room: room_ room: r.room_
eventId: r.eventId eventId: r.eventId
replyTo: "" replyTo: ""
mainInset: 4 + Nheko.paddingMedium mainInset: 4 + Nheko.paddingMedium

View file

@ -3,7 +3,6 @@
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
import ".." import ".."
import QtQuick.Controls
import im.nheko import im.nheko
MatrixText { MatrixText {
@ -18,28 +17,28 @@ MatrixText {
property bool fitsMetadata: false //positionAt(width,height-4) == positionAt(width-metadataWidth-10, height-4) property bool fitsMetadata: false //positionAt(width,height-4) == positionAt(width-metadataWidth-10, height-4)
// table border-collapse doesn't seem to work // table border-collapse doesn't seem to work
text: " text: `
<style type=\"text/css\"> <style type="text/css">
code { background-color: " + palette.alternateBase + "; white-space: pre-wrap; } code { background-color: ` + palette.alternateBase + `; white-space: pre-wrap; }
pre { background-color: " + palette.alternateBase + "; white-space: pre-wrap; } pre { background-color: ` + palette.alternateBase + `; white-space: pre-wrap; }
table { table {
border-width: 1px; border-width: 1px;
border-collapse: collapse; border-collapse: collapse;
border-style: solid; border-style: solid;
border-color: " + palette.text + "; border-color: ` + palette.text + `;
background-color: " + palette.alternateBase + "; background-color: ` + palette.alternateBase + `;
} }
table th, table th,
table td { table td {
padding: " + Math.ceil(fontMetrics.lineSpacing/2) + "px; padding: ` + Math.ceil(fontMetrics.lineSpacing/2) + `px;
} }
blockquote { margin-left: 1em; } blockquote { margin-left: 1em; }
" + (!Settings.mobileMode ? "span[data-mx-spoiler] { ` + (!Settings.mobileMode ? `span[data-mx-spoiler] {
color: transparent; color: transparent;
background-color: " + palette.text + "; background-color: ` + palette.text + `;
}" : "") + // TODO(Nico): Figure out how to support mobile }` : "") + // TODO(Nico): Figure out how to support mobile
"</style> `</style>
" + formatted.replace(/<del>/g, "<s>").replace(/<\/del>/g, "</s>").replace(/<strike>/g, "<s>").replace(/<\/strike>/g, "</s>") ` + formatted.replace(/<del>/g, "<s>").replace(/<\/del>/g, "</s>").replace(/<strike>/g, "<s>").replace(/<\/strike>/g, "</s>")
enabled: !isReply enabled: !isReply
font.pointSize: (Settings.enlargeEmojiOnlyMessages && isOnlyEmoji > 0 && isOnlyEmoji < 4) ? Settings.fontSize * 3 : Settings.fontSize font.pointSize: (Settings.enlargeEmojiOnlyMessages && isOnlyEmoji > 0 && isOnlyEmoji < 4) ? Settings.fontSize * 3 : Settings.fontSize

View file

@ -2,12 +2,13 @@
// //
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
import QtQml 2.15 import QtQml
import QtQuick 2.15 import QtQuick
import QtQuick.Controls 2.15 import QtQuick.Controls
import QtQuick.Layouts 2.15 import QtQuick.Layouts
import QtQuick.Window 2.15 import QtQuick.Window
import im.nheko 1.0 import im.nheko
import "../"
Window { Window {
id: ignoredUsers id: ignoredUsers

View file

@ -3,10 +3,10 @@
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
import "../" import "../"
import QtQuick 2.9 import QtQuick
import QtQuick.Controls 2.3 import QtQuick.Controls
import QtQuick.Layouts 1.2 import QtQuick.Layouts
import im.nheko 1.0 import im.nheko
Rectangle { Rectangle {
visible: CallManager.haveCallInvite && !Settings.mobileMode visible: CallManager.haveCallInvite && !Settings.mobileMode

View file

@ -3,10 +3,10 @@
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
import "../" import "../"
import QtQuick 2.9 import QtQuick
import QtQuick.Controls 2.3 import QtQuick.Controls
import QtQuick.Layouts 1.2 import QtQuick.Layouts
import im.nheko 1.0 import im.nheko
Popup { Popup {
modal: true modal: true

View file

@ -2,7 +2,6 @@
// //
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
import QtQuick 2.9
import org.freedesktop.gstreamer.GLVideoItem 1.0 import org.freedesktop.gstreamer.GLVideoItem 1.0
GstGLVideoItem { GstGLVideoItem {