mirror of
https://github.com/Nheko-Reborn/nheko.git
synced 2024-11-23 19:38:48 +03:00
Fix some qt6 issues
This commit is contained in:
parent
7303275793
commit
c775a93f77
79 changed files with 388 additions and 559 deletions
|
@ -25,7 +25,7 @@ AbstractButton {
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
id: bg
|
id: bg
|
||||||
radius: Settings.avatarCircles ? height / 2 : height / 8
|
radius: Settings.avatarCircles ? height / 2 : height / 8
|
||||||
color: Nheko.colors.alternateBase
|
color: timelineRoot.palette.alternateBase
|
||||||
}
|
}
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
|
@ -40,7 +40,7 @@ AbstractButton {
|
||||||
verticalAlignment: Text.AlignVCenter
|
verticalAlignment: Text.AlignVCenter
|
||||||
horizontalAlignment: Text.AlignHCenter
|
horizontalAlignment: Text.AlignHCenter
|
||||||
visible: img.status != Image.Ready && !Settings.useIdenticon
|
visible: img.status != Image.Ready && !Settings.useIdenticon
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
|
|
||||||
Image {
|
Image {
|
||||||
|
@ -104,7 +104,7 @@ AbstractButton {
|
||||||
}
|
}
|
||||||
|
|
||||||
Ripple {
|
Ripple {
|
||||||
color: Qt.rgba(Nheko.colors.alternateBase.r, Nheko.colors.alternateBase.g, Nheko.colors.alternateBase.b, 0.5)
|
color: Qt.rgba(timelineRoot.palette.alternateBase.r, timelineRoot.palette.alternateBase.g, timelineRoot.palette.alternateBase.b, 0.5)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,7 @@ import QtQml 2.15
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: chatPage
|
id: chatPage
|
||||||
|
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
spacing: 0
|
spacing: 0
|
||||||
|
|
|
@ -26,12 +26,6 @@ Page {
|
||||||
height: parent.height
|
height: parent.height
|
||||||
model: Communities.filtered()
|
model: Communities.filtered()
|
||||||
|
|
||||||
ScrollHelper {
|
|
||||||
flickable: parent
|
|
||||||
anchors.fill: parent
|
|
||||||
enabled: !Settings.mobileMode
|
|
||||||
}
|
|
||||||
|
|
||||||
Platform.Menu {
|
Platform.Menu {
|
||||||
id: communityContextMenu
|
id: communityContextMenu
|
||||||
|
|
||||||
|
@ -52,11 +46,11 @@ Page {
|
||||||
delegate: ItemDelegate {
|
delegate: ItemDelegate {
|
||||||
id: communityItem
|
id: communityItem
|
||||||
|
|
||||||
property color backgroundColor: Nheko.colors.window
|
property color backgroundColor: timelineRoot.palette.window
|
||||||
property color importantText: Nheko.colors.text
|
property color importantText: timelineRoot.palette.text
|
||||||
property color unimportantText: Nheko.colors.buttonText
|
property color unimportantText: timelineRoot.palette.buttonText
|
||||||
property color bubbleBackground: Nheko.colors.highlight
|
property color bubbleBackground: timelineRoot.palette.highlight
|
||||||
property color bubbleText: Nheko.colors.highlightedText
|
property color bubbleText: timelineRoot.palette.highlightedText
|
||||||
|
|
||||||
height: avatarSize + 2 * Nheko.paddingMedium
|
height: avatarSize + 2 * Nheko.paddingMedium
|
||||||
width: ListView.view.width
|
width: ListView.view.width
|
||||||
|
@ -73,11 +67,11 @@ Page {
|
||||||
|
|
||||||
PropertyChanges {
|
PropertyChanges {
|
||||||
target: communityItem
|
target: communityItem
|
||||||
backgroundColor: Nheko.colors.dark
|
backgroundColor: timelineRoot.palette.dark
|
||||||
importantText: Nheko.colors.brightText
|
importantText: timelineRoot.palette.brightText
|
||||||
unimportantText: Nheko.colors.brightText
|
unimportantText: timelineRoot.palette.brightText
|
||||||
bubbleBackground: Nheko.colors.highlight
|
bubbleBackground: timelineRoot.palette.highlight
|
||||||
bubbleText: Nheko.colors.highlightedText
|
bubbleText: timelineRoot.palette.highlightedText
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
|
@ -87,11 +81,11 @@ Page {
|
||||||
|
|
||||||
PropertyChanges {
|
PropertyChanges {
|
||||||
target: communityItem
|
target: communityItem
|
||||||
backgroundColor: Nheko.colors.highlight
|
backgroundColor: timelineRoot.palette.highlight
|
||||||
importantText: Nheko.colors.highlightedText
|
importantText: timelineRoot.palette.highlightedText
|
||||||
unimportantText: Nheko.colors.highlightedText
|
unimportantText: timelineRoot.palette.highlightedText
|
||||||
bubbleBackground: Nheko.colors.highlightedText
|
bubbleBackground: timelineRoot.palette.highlightedText
|
||||||
bubbleText: Nheko.colors.highlight
|
bubbleText: timelineRoot.palette.highlight
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -93,11 +93,6 @@ Control {
|
||||||
// that until we find something better. Put is all together and you have the formula below!
|
// that until we find something better. Put is all together and you have the formula below!
|
||||||
implicitHeight: Math.min(contentHeight, 6*rowSpacing + 7*(popup.avatarHeight + 2*rowMargin))
|
implicitHeight: Math.min(contentHeight, 6*rowSpacing + 7*(popup.avatarHeight + 2*rowMargin))
|
||||||
clip: true
|
clip: true
|
||||||
ScrollHelper {
|
|
||||||
flickable: parent
|
|
||||||
anchors.fill: parent
|
|
||||||
enabled: !Settings.mobileMode
|
|
||||||
}
|
|
||||||
|
|
||||||
Timer {
|
Timer {
|
||||||
id: deadTimer
|
id: deadTimer
|
||||||
|
@ -117,7 +112,7 @@ Control {
|
||||||
delegate: Rectangle {
|
delegate: Rectangle {
|
||||||
property variant modelData: model
|
property variant modelData: model
|
||||||
|
|
||||||
color: model.index == popup.currentIndex ? Nheko.colors.highlight : Nheko.colors.base
|
color: model.index == popup.currentIndex ? timelineRoot.palette.highlight : timelineRoot.palette.base
|
||||||
height: chooser.child.implicitHeight + 2 * popup.rowMargin
|
height: chooser.child.implicitHeight + 2 * popup.rowMargin
|
||||||
implicitWidth: fullWidth ? ListView.view.width : chooser.child.implicitWidth + 4
|
implicitWidth: fullWidth ? ListView.view.width : chooser.child.implicitWidth + 4
|
||||||
|
|
||||||
|
@ -134,7 +129,7 @@ Control {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Ripple {
|
Ripple {
|
||||||
color: Qt.rgba(Nheko.colors.base.r, Nheko.colors.base.g, Nheko.colors.base.b, 0.5)
|
color: Qt.rgba(timelineRoot.palette.base.r, timelineRoot.palette.base.g, timelineRoot.palette.base.b, 0.5)
|
||||||
}
|
}
|
||||||
|
|
||||||
DelegateChooser {
|
DelegateChooser {
|
||||||
|
@ -165,12 +160,12 @@ Control {
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: model.displayName
|
text: model.displayName
|
||||||
color: model.index == popup.currentIndex ? Nheko.colors.highlightedText : Nheko.colors.text
|
color: model.index == popup.currentIndex ? timelineRoot.palette.highlightedText : timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: "(" + model.userid + ")"
|
text: "(" + model.userid + ")"
|
||||||
color: model.index == popup.currentIndex ? Nheko.colors.highlightedText : Nheko.colors.buttonText
|
color: model.index == popup.currentIndex ? timelineRoot.palette.highlightedText : timelineRoot.palette.buttonText
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -188,13 +183,13 @@ Control {
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: model.unicode
|
text: model.unicode
|
||||||
color: model.index == popup.currentIndex ? Nheko.colors.highlightedText : Nheko.colors.text
|
color: model.index == popup.currentIndex ? timelineRoot.palette.highlightedText : timelineRoot.palette.text
|
||||||
font: Settings.emojiFont
|
font: Settings.emojiFont
|
||||||
}
|
}
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: model.shortName
|
text: model.shortName
|
||||||
color: model.index == popup.currentIndex ? Nheko.colors.highlightedText : Nheko.colors.text
|
color: model.index == popup.currentIndex ? timelineRoot.palette.highlightedText : timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -222,12 +217,12 @@ Control {
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: model.shortcode
|
text: model.shortcode
|
||||||
color: model.index == popup.currentIndex ? Nheko.colors.highlightedText : Nheko.colors.text
|
color: model.index == popup.currentIndex ? timelineRoot.palette.highlightedText : timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: "(" + model.packname + ")"
|
text: "(" + model.packname + ")"
|
||||||
color: model.index == popup.currentIndex ? Nheko.colors.highlightedText : Nheko.colors.buttonText
|
color: model.index == popup.currentIndex ? timelineRoot.palette.highlightedText : timelineRoot.palette.buttonText
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -258,7 +253,7 @@ Control {
|
||||||
Label {
|
Label {
|
||||||
text: model.roomName
|
text: model.roomName
|
||||||
font.pixelSize: popup.avatarHeight * 0.5
|
font.pixelSize: popup.avatarHeight * 0.5
|
||||||
color: model.index == popup.currentIndex ? Nheko.colors.highlightedText : Nheko.colors.text
|
color: model.index == popup.currentIndex ? timelineRoot.palette.highlightedText : timelineRoot.palette.text
|
||||||
textFormat: Text.RichText
|
textFormat: Text.RichText
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -286,13 +281,13 @@ Control {
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: model.roomName
|
text: model.roomName
|
||||||
color: model.index == popup.currentIndex ? Nheko.colors.highlightedText : Nheko.colors.text
|
color: model.index == popup.currentIndex ? timelineRoot.palette.highlightedText : timelineRoot.palette.text
|
||||||
textFormat: Text.RichText
|
textFormat: Text.RichText
|
||||||
}
|
}
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: "(" + model.roomAlias + ")"
|
text: "(" + model.roomAlias + ")"
|
||||||
color: model.index == popup.currentIndex ? Nheko.colors.highlightedText : Nheko.colors.buttonText
|
color: model.index == popup.currentIndex ? timelineRoot.palette.highlightedText : timelineRoot.palette.buttonText
|
||||||
textFormat: Text.RichText
|
textFormat: Text.RichText
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -308,8 +303,8 @@ Control {
|
||||||
|
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: Nheko.colors.base
|
color: timelineRoot.palette.base
|
||||||
border.color: Nheko.colors.mid
|
border.color: timelineRoot.palette.mid
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@ Label {
|
||||||
property alias elideWidth: metrics.elideWidth
|
property alias elideWidth: metrics.elideWidth
|
||||||
property int fullTextWidth: Math.ceil(metrics.advanceWidth)
|
property int fullTextWidth: Math.ceil(metrics.advanceWidth)
|
||||||
|
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
text: (textFormat == Text.PlainText) ? metrics.elidedText : TimelineManager.escapeEmoji(TimelineManager.htmlEscape(metrics.elidedText))
|
text: (textFormat == Text.PlainText) ? metrics.elidedText : TimelineManager.escapeEmoji(TimelineManager.htmlEscape(metrics.elidedText))
|
||||||
maximumLineCount: 1
|
maximumLineCount: 1
|
||||||
elide: Text.ElideRight
|
elide: Text.ElideRight
|
||||||
|
|
|
@ -40,7 +40,7 @@ Image {
|
||||||
case Crypto.Verified:
|
case Crypto.Verified:
|
||||||
return sourceUrl + "green";
|
return sourceUrl + "green";
|
||||||
case Crypto.TOFU:
|
case Crypto.TOFU:
|
||||||
return sourceUrl + Nheko.colors.buttonText;
|
return sourceUrl + timelineRoot.palette.buttonText;
|
||||||
default:
|
default:
|
||||||
return sourceUrl + Nheko.theme.error;
|
return sourceUrl + Nheko.theme.error;
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,7 @@ Popup {
|
||||||
x: Math.round(parent.width / 2 - width / 2)
|
x: Math.round(parent.width / 2 - width / 2)
|
||||||
y: Math.round(parent.height / 4)
|
y: Math.round(parent.height / 4)
|
||||||
modal: true
|
modal: true
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
parent: Overlay.overlay
|
parent: Overlay.overlay
|
||||||
width: timelineRoot.width * 0.8
|
width: timelineRoot.width * 0.8
|
||||||
leftPadding: 10
|
leftPadding: 10
|
||||||
|
@ -40,7 +40,7 @@ Popup {
|
||||||
text: qsTr("Forward Message")
|
text: qsTr("Forward Message")
|
||||||
font.bold: true
|
font.bold: true
|
||||||
bottomPadding: 10
|
bottomPadding: 10
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
|
|
||||||
Reply {
|
Reply {
|
||||||
|
@ -51,7 +51,7 @@ Popup {
|
||||||
|
|
||||||
width: parent.width
|
width: parent.width
|
||||||
|
|
||||||
userColor: TimelineManager.userColor(modelData.userId, Nheko.colors.window)
|
userColor: TimelineManager.userColor(modelData.userId, timelineRoot.palette.window)
|
||||||
blurhash: modelData.blurhash ?? ""
|
blurhash: modelData.blurhash ?? ""
|
||||||
body: modelData.body ?? ""
|
body: modelData.body ?? ""
|
||||||
formattedBody: modelData.formattedBody ?? ""
|
formattedBody: modelData.formattedBody ?? ""
|
||||||
|
@ -73,7 +73,7 @@ Popup {
|
||||||
id: roomTextInput
|
id: roomTextInput
|
||||||
|
|
||||||
width: forwardMessagePopup.width - forwardMessagePopup.leftPadding * 2
|
width: forwardMessagePopup.width - forwardMessagePopup.leftPadding * 2
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
onTextEdited: {
|
onTextEdited: {
|
||||||
completerPopup.completer.searchString = text;
|
completerPopup.completer.searchString = text;
|
||||||
}
|
}
|
||||||
|
@ -124,11 +124,11 @@ Popup {
|
||||||
}
|
}
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
}
|
}
|
||||||
|
|
||||||
Overlay.modal: Rectangle {
|
Overlay.modal: Rectangle {
|
||||||
color: Qt.rgba(Nheko.colors.window.r, Nheko.colors.window.g, Nheko.colors.window.b, 0.7)
|
color: Qt.rgba(timelineRoot.palette.window.r, timelineRoot.palette.window.g, timelineRoot.palette.window.b, 0.7)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,8 +13,8 @@ AbstractButton {
|
||||||
|
|
||||||
property alias cursor: mouseArea.cursorShape
|
property alias cursor: mouseArea.cursorShape
|
||||||
property string image: undefined
|
property string image: undefined
|
||||||
property color highlightColor: Nheko.colors.highlight
|
property color highlightColor: timelineRoot.palette.highlight
|
||||||
property color buttonTextColor: Nheko.colors.buttonText
|
property color buttonTextColor: timelineRoot.palette.buttonText
|
||||||
property bool changeColorOnHover: true
|
property bool changeColorOnHover: true
|
||||||
property bool ripple: true
|
property bool ripple: true
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ TextEdit {
|
||||||
selectByMouse: !Settings.mobileMode
|
selectByMouse: !Settings.mobileMode
|
||||||
// this always has to be enabled, otherwise you can't click links anymore!
|
// this always has to be enabled, otherwise you can't click links anymore!
|
||||||
//enabled: selectByMouse
|
//enabled: selectByMouse
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
onLinkActivated: Nheko.openLink(link)
|
onLinkActivated: Nheko.openLink(link)
|
||||||
ToolTip.visible: hoveredLink || false
|
ToolTip.visible: hoveredLink || false
|
||||||
ToolTip.text: hoveredLink
|
ToolTip.text: hoveredLink
|
||||||
|
|
|
@ -11,7 +11,7 @@ import im.nheko 1.0
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
id: c
|
id: c
|
||||||
property color backgroundColor: Nheko.colors.base
|
property color backgroundColor: timelineRoot.palette.base
|
||||||
property alias color: labelC.color
|
property alias color: labelC.color
|
||||||
property alias textPadding: input.padding
|
property alias textPadding: input.padding
|
||||||
property alias text: input.text
|
property alias text: input.text
|
||||||
|
@ -61,8 +61,8 @@ ColumnLayout {
|
||||||
y: contentHeight + input.padding + Nheko.paddingSmall
|
y: contentHeight + input.padding + Nheko.paddingSmall
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
font.pixelSize: input.font.pixelSize
|
font.pixelSize: input.font.pixelSize
|
||||||
font.weight: Font.DemiBold
|
font.weight: Font.DemiBold
|
||||||
font.letterSpacing: input.font.pixelSize * 0.02
|
font.letterSpacing: input.font.pixelSize * 0.02
|
||||||
|
@ -114,7 +114,7 @@ ColumnLayout {
|
||||||
id: input
|
id: input
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
color: labelC.color
|
color: labelC.color
|
||||||
opacity: labelC.text ? 0 : 1
|
opacity: labelC.text ? 0 : 1
|
||||||
focus: true
|
focus: true
|
||||||
|
@ -136,7 +136,7 @@ ColumnLayout {
|
||||||
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
||||||
color: Nheko.colors.highlight
|
color: timelineRoot.palette.highlight
|
||||||
height: 1
|
height: 1
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
|
@ -146,7 +146,7 @@ ColumnLayout {
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
height: parent.height*2
|
height: parent.height*2
|
||||||
width: 0
|
width: 0
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
|
|
||||||
states: State {
|
states: State {
|
||||||
name: "focused"
|
name: "focused"
|
||||||
|
|
|
@ -14,7 +14,7 @@ import im.nheko 1.0
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: inputBar
|
id: inputBar
|
||||||
|
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.preferredHeight: row.implicitHeight
|
Layout.preferredHeight: row.implicitHeight
|
||||||
Layout.minimumHeight: 40
|
Layout.minimumHeight: 40
|
||||||
|
@ -84,7 +84,7 @@ Rectangle {
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
visible: room && room.input.uploading
|
visible: room && room.input.uploading
|
||||||
|
|
||||||
NhekoBusyIndicator {
|
NhekoBusyIndicator {
|
||||||
|
@ -137,8 +137,8 @@ Rectangle {
|
||||||
|
|
||||||
selectByMouse: true
|
selectByMouse: true
|
||||||
placeholderText: qsTr("Write a message...")
|
placeholderText: qsTr("Write a message...")
|
||||||
placeholderTextColor: Nheko.colors.buttonText
|
placeholderTextColor: timelineRoot.palette.buttonText
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
width: textInput.width
|
width: textInput.width
|
||||||
verticalAlignment: TextEdit.AlignVCenter
|
verticalAlignment: TextEdit.AlignVCenter
|
||||||
wrapMode: TextEdit.Wrap
|
wrapMode: TextEdit.Wrap
|
||||||
|
@ -428,7 +428,7 @@ Rectangle {
|
||||||
StickerPicker {
|
StickerPicker {
|
||||||
id: stickerPopup
|
id: stickerPopup
|
||||||
|
|
||||||
colors: Nheko.colors
|
colors: timelineRoot.palette
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -471,7 +471,7 @@ Rectangle {
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
visible: room ? (!room.permissions.canSend(MtxEvent.TextMessage)) : false
|
visible: room ? (!room.permissions.canSend(MtxEvent.TextMessage)) : false
|
||||||
text: qsTr("You don't have permission to send messages in this room")
|
text: qsTr("You don't have permission to send messages in this room")
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,8 +72,8 @@ Item {
|
||||||
z: 10
|
z: 10
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
border.color: Nheko.colors.buttonText
|
border.color: timelineRoot.palette.buttonText
|
||||||
border.width: 1
|
border.width: 1
|
||||||
radius: padding
|
radius: padding
|
||||||
}
|
}
|
||||||
|
@ -108,7 +108,7 @@ Item {
|
||||||
id: editButton
|
id: editButton
|
||||||
|
|
||||||
visible: !!row.model && row.model.isEditable
|
visible: !!row.model && row.model.isEditable
|
||||||
buttonTextColor: Nheko.colors.buttonText
|
buttonTextColor: timelineRoot.palette.buttonText
|
||||||
width: 16
|
width: 16
|
||||||
hoverEnabled: true
|
hoverEnabled: true
|
||||||
image: ":/icons/icons/ui/edit.svg"
|
image: ":/icons/icons/ui/edit.svg"
|
||||||
|
@ -168,11 +168,6 @@ Item {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ScrollHelper {
|
|
||||||
flickable: parent
|
|
||||||
anchors.fill: parent
|
|
||||||
}
|
|
||||||
|
|
||||||
Shortcut {
|
Shortcut {
|
||||||
sequence: StandardKey.MoveToPreviousPage
|
sequence: StandardKey.MoveToPreviousPage
|
||||||
onActivated: {
|
onActivated: {
|
||||||
|
@ -269,7 +264,7 @@ Item {
|
||||||
anchors.horizontalCenter: parent ? parent.horizontalCenter : undefined
|
anchors.horizontalCenter: parent ? parent.horizontalCenter : undefined
|
||||||
visible: room && previousMessageDay !== day
|
visible: room && previousMessageDay !== day
|
||||||
text: room ? room.formatDateSeparator(timestamp) : ""
|
text: room ? room.formatDateSeparator(timestamp) : ""
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
height: Math.round(fontMetrics.height * 1.4)
|
height: Math.round(fontMetrics.height * 1.4)
|
||||||
width: contentWidth * 1.2
|
width: contentWidth * 1.2
|
||||||
horizontalAlignment: Text.AlignHCenter
|
horizontalAlignment: Text.AlignHCenter
|
||||||
|
@ -277,7 +272,7 @@ Item {
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
radius: parent.height / 2
|
radius: parent.height / 2
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -318,7 +313,7 @@ Item {
|
||||||
contentItem: ElidedLabel {
|
contentItem: ElidedLabel {
|
||||||
id: userName_
|
id: userName_
|
||||||
fullText: userName
|
fullText: userName
|
||||||
color: TimelineManager.userColor(userId, Nheko.colors.base)
|
color: TimelineManager.userColor(userId, timelineRoot.palette.base)
|
||||||
textFormat: Text.RichText
|
textFormat: Text.RichText
|
||||||
elideWidth: Math.min(userInfo.remainingWidth-Math.min(statusMsg.implicitWidth,userInfo.remainingWidth/3), userName_.fullTextWidth)
|
elideWidth: Math.min(userInfo.remainingWidth-Math.min(statusMsg.implicitWidth,userInfo.remainingWidth/3), userName_.fullTextWidth)
|
||||||
}
|
}
|
||||||
|
@ -340,7 +335,7 @@ Item {
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
id: statusMsg
|
id: statusMsg
|
||||||
color: Nheko.colors.buttonText
|
color: timelineRoot.palette.buttonText
|
||||||
text: Presence.userStatus(userId)
|
text: Presence.userStatus(userId)
|
||||||
textFormat: Text.PlainText
|
textFormat: Text.PlainText
|
||||||
elide: Text.ElideRight
|
elide: Text.ElideRight
|
||||||
|
@ -405,7 +400,7 @@ Item {
|
||||||
|
|
||||||
anchors.horizontalCenter: parent ? parent.horizontalCenter : undefined
|
anchors.horizontalCenter: parent ? parent.horizontalCenter : undefined
|
||||||
width: chat.delegateMaxWidth
|
width: chat.delegateMaxWidth
|
||||||
height: section.active ? section.height + timelinerow.height : timelinerow.height
|
height: section.active ? (section.item?.implicitHeight ?? 0) + timelinerow.height : timelinerow.height
|
||||||
|
|
||||||
Loader {
|
Loader {
|
||||||
id: section
|
id: section
|
||||||
|
@ -462,7 +457,7 @@ Item {
|
||||||
timestamp: wrapper.timestamp
|
timestamp: wrapper.timestamp
|
||||||
status: wrapper.status
|
status: wrapper.status
|
||||||
relatedEventCacheBuster: wrapper.relatedEventCacheBuster
|
relatedEventCacheBuster: wrapper.relatedEventCacheBuster
|
||||||
y: section.visible && section.active ? section.y + section.height : 0
|
y: section.item?.implicitHeight ?? 0
|
||||||
|
|
||||||
onHoveredChanged: {
|
onHoveredChanged: {
|
||||||
if (!Settings.mobileMode && hovered) {
|
if (!Settings.mobileMode && hovered) {
|
||||||
|
@ -479,7 +474,7 @@ Item {
|
||||||
visible: true
|
visible: true
|
||||||
z: 1
|
z: 1
|
||||||
enabled: false
|
enabled: false
|
||||||
color: Nheko.colors.highlight
|
color: timelineRoot.palette.highlight
|
||||||
|
|
||||||
states: State {
|
states: State {
|
||||||
name: "revealed"
|
name: "revealed"
|
||||||
|
@ -537,7 +532,7 @@ Item {
|
||||||
anchors.margins: Nheko.paddingLarge
|
anchors.margins: Nheko.paddingLarge
|
||||||
visible: chat.model && chat.model.paginationInProgress
|
visible: chat.model && chat.model.paginationInProgress
|
||||||
// hacky, but works
|
// hacky, but works
|
||||||
height: loadingSpinner.height + 2 * Nheko.paddingLarge
|
height: (loadingSpinner.item?.implicitHeight ?? 0) + 2 * Nheko.paddingLarge
|
||||||
|
|
||||||
Spinner {
|
Spinner {
|
||||||
id: loadingSpinner
|
id: loadingSpinner
|
||||||
|
@ -545,7 +540,7 @@ Item {
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
anchors.margins: Nheko.paddingLarge
|
anchors.margins: Nheko.paddingLarge
|
||||||
running: chat.model && chat.model.paginationInProgress
|
running: chat.model && chat.model.paginationInProgress
|
||||||
foreground: Nheko.colors.mid
|
foreground: timelineRoot.palette.mid
|
||||||
z: 3
|
z: 3
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -771,9 +766,9 @@ Item {
|
||||||
hoverEnabled: true
|
hoverEnabled: true
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: toEndButton.down ? Nheko.colors.highlight : Nheko.colors.button
|
color: toEndButton.down ? timelineRoot.palette.highlight : timelineRoot.palette.button
|
||||||
opacity: enabled ? 1 : 0.3
|
opacity: enabled ? 1 : 0.3
|
||||||
border.color: toEndButton.hovered ? Nheko.colors.highlight : Nheko.colors.buttonText
|
border.color: toEndButton.hovered ? timelineRoot.palette.highlight : timelineRoot.palette.buttonText
|
||||||
border.width: 1
|
border.width: 1
|
||||||
radius: toEndButton.radius
|
radius: toEndButton.radius
|
||||||
}
|
}
|
||||||
|
@ -794,7 +789,7 @@ Item {
|
||||||
id: buttonImg
|
id: buttonImg
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
anchors.margins: Nheko.paddingMedium
|
anchors.margins: Nheko.paddingMedium
|
||||||
source: "image://colorimage/:/icons/icons/ui/download.svg?" + (toEndButton.down ? Nheko.colors.highlightedText : Nheko.colors.buttonText)
|
source: "image://colorimage/:/icons/icons/ui/download.svg?" + (toEndButton.down ? timelineRoot.palette.highlightedText : timelineRoot.palette.buttonText)
|
||||||
fillMode: Image.PreserveAspectFit
|
fillMode: Image.PreserveAspectFit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ BusyIndicator {
|
||||||
implicitWidth: radius * 2
|
implicitWidth: radius * 2
|
||||||
implicitHeight: radius * 2
|
implicitHeight: radius * 2
|
||||||
radius: item.height / 6
|
radius: item.height / 6
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
opacity: (index + 2) / (repeater.count + 2)
|
opacity: (index + 2) / (repeater.count + 2)
|
||||||
transform: [
|
transform: [
|
||||||
Translate {
|
Translate {
|
||||||
|
|
|
@ -17,7 +17,7 @@ Item {
|
||||||
id: warningRect
|
id: warningRect
|
||||||
|
|
||||||
visible: (room && room.permissions.canPingRoom() && room.input.containsAtRoom)
|
visible: (room && room.permissions.canPingRoom() && room.input.containsAtRoom)
|
||||||
color: Nheko.colors.base
|
color: timelineRoot.palette.base
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
z: 3
|
z: 3
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ Popup {
|
||||||
modal: true
|
modal: true
|
||||||
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutside
|
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutside
|
||||||
parent: Overlay.overlay
|
parent: Overlay.overlay
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
onOpened: {
|
onOpened: {
|
||||||
roomTextInput.forceActiveFocus();
|
roomTextInput.forceActiveFocus();
|
||||||
}
|
}
|
||||||
|
@ -35,7 +35,7 @@ Popup {
|
||||||
|
|
||||||
width: parent.width
|
width: parent.width
|
||||||
font.pixelSize: Math.ceil(quickSwitcher.textHeight * 0.6)
|
font.pixelSize: Math.ceil(quickSwitcher.textHeight * 0.6)
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
onTextEdited: {
|
onTextEdited: {
|
||||||
completerPopup.completer.searchString = text;
|
completerPopup.completer.searchString = text;
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,9 +13,9 @@ Flow {
|
||||||
id: reactionFlow
|
id: reactionFlow
|
||||||
|
|
||||||
// highlight colors for selfReactedEvent background
|
// highlight colors for selfReactedEvent background
|
||||||
property real highlightHue: Nheko.colors.highlight.hslHue
|
property real highlightHue: timelineRoot.palette.highlight.hslHue
|
||||||
property real highlightSat: Nheko.colors.highlight.hslSaturation
|
property real highlightSat: timelineRoot.palette.highlight.hslSaturation
|
||||||
property real highlightLight: Nheko.colors.highlight.hslLightness
|
property real highlightLight: timelineRoot.palette.highlight.hslLightness
|
||||||
property string eventId
|
property string eventId
|
||||||
property alias reactions: repeater.model
|
property alias reactions: repeater.model
|
||||||
|
|
||||||
|
@ -74,7 +74,7 @@ Flow {
|
||||||
return textMetrics.elidedText;
|
return textMetrics.elidedText;
|
||||||
}
|
}
|
||||||
font.family: Settings.emojiFont
|
font.family: Settings.emojiFont
|
||||||
color: reaction.hovered ? Nheko.colors.highlight : Nheko.colors.text
|
color: reaction.hovered ? timelineRoot.palette.highlight : timelineRoot.palette.text
|
||||||
maximumLineCount: 1
|
maximumLineCount: 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@ Flow {
|
||||||
|
|
||||||
height: Math.floor(reactionCounter.implicitHeight * 1.4)
|
height: Math.floor(reactionCounter.implicitHeight * 1.4)
|
||||||
width: 1
|
width: 1
|
||||||
color: (reaction.hovered || modelData.selfReactedEvent !== '') ? Nheko.colors.highlight : Nheko.colors.text
|
color: (reaction.hovered || modelData.selfReactedEvent !== '') ? timelineRoot.palette.highlight : timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
|
@ -92,7 +92,7 @@ Flow {
|
||||||
anchors.verticalCenter: divider.verticalCenter
|
anchors.verticalCenter: divider.verticalCenter
|
||||||
text: modelData.count
|
text: modelData.count
|
||||||
font: reaction.font
|
font: reaction.font
|
||||||
color: reaction.hovered ? Nheko.colors.highlight : Nheko.colors.text
|
color: reaction.hovered ? timelineRoot.palette.highlight : timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -101,8 +101,8 @@ Flow {
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
implicitWidth: reaction.implicitWidth
|
implicitWidth: reaction.implicitWidth
|
||||||
implicitHeight: reaction.implicitHeight
|
implicitHeight: reaction.implicitHeight
|
||||||
border.color: (reaction.hovered || modelData.selfReactedEvent !== '') ? Nheko.colors.highlight : Nheko.colors.text
|
border.color: (reaction.hovered || modelData.selfReactedEvent !== '') ? timelineRoot.palette.highlight : timelineRoot.palette.text
|
||||||
color: modelData.selfReactedEvent !== '' ? Qt.hsla(highlightHue, highlightSat, highlightLight, 0.2) : Nheko.colors.window
|
color: modelData.selfReactedEvent !== '' ? Qt.hsla(highlightHue, highlightSat, highlightLight, 0.2) : timelineRoot.palette.window
|
||||||
border.width: 1
|
border.width: 1
|
||||||
radius: reaction.height / 2
|
radius: reaction.height / 2
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,7 @@ Rectangle {
|
||||||
visible: room && (room.reply || room.edit)
|
visible: room && (room.reply || room.edit)
|
||||||
// Height of child, plus margins, plus border
|
// Height of child, plus margins, plus border
|
||||||
implicitHeight: (room && room.reply ? replyPreview.height : closeEditButton.height) + Nheko.paddingSmall
|
implicitHeight: (room && room.reply ? replyPreview.height : closeEditButton.height) + Nheko.paddingSmall
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
z: 3
|
z: 3
|
||||||
|
|
||||||
Reply {
|
Reply {
|
||||||
|
@ -32,7 +32,7 @@ Rectangle {
|
||||||
anchors.rightMargin: replyPopup.width < 450? 2*(22+16) : 3*(22+16)
|
anchors.rightMargin: replyPopup.width < 450? 2*(22+16) : 3*(22+16)
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
anchors.topMargin: Nheko.paddingSmall
|
anchors.topMargin: Nheko.paddingSmall
|
||||||
userColor: TimelineManager.userColor(modelData.userId, Nheko.colors.window)
|
userColor: TimelineManager.userColor(modelData.userId, timelineRoot.palette.window)
|
||||||
blurhash: modelData.blurhash ?? ""
|
blurhash: modelData.blurhash ?? ""
|
||||||
body: modelData.body ?? ""
|
body: modelData.body ?? ""
|
||||||
formattedBody: modelData.formattedBody ?? ""
|
formattedBody: modelData.formattedBody ?? ""
|
||||||
|
@ -47,7 +47,7 @@ Rectangle {
|
||||||
isOnlyEmoji: modelData.isOnlyEmoji ?? false
|
isOnlyEmoji: modelData.isOnlyEmoji ?? false
|
||||||
userId: modelData.userId ?? ""
|
userId: modelData.userId ?? ""
|
||||||
userName: modelData.userName ?? ""
|
userName: modelData.userName ?? ""
|
||||||
encryptionError: modelData.encryptionError ?? ""
|
encryptionError: modelData.encryptionError ?? 0
|
||||||
width: parent.width
|
width: parent.width
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -49,11 +49,6 @@ Page {
|
||||||
model: Rooms
|
model: Rooms
|
||||||
reuseItems: true
|
reuseItems: true
|
||||||
|
|
||||||
ScrollHelper {
|
|
||||||
flickable: parent
|
|
||||||
anchors.fill: parent
|
|
||||||
}
|
|
||||||
|
|
||||||
Connections {
|
Connections {
|
||||||
function onCurrentRoomChanged() {
|
function onCurrentRoomChanged() {
|
||||||
if (Rooms.currentRoom)
|
if (Rooms.currentRoom)
|
||||||
|
@ -97,8 +92,8 @@ Page {
|
||||||
|
|
||||||
Instantiator {
|
Instantiator {
|
||||||
model: Communities.tagsWithDefault
|
model: Communities.tagsWithDefault
|
||||||
onObjectAdded: roomContextMenu.insertItem(index + 2, object)
|
onObjectAdded: (index, object) => roomContextMenu.insertItem(index + 2, object)
|
||||||
onObjectRemoved: roomContextMenu.removeItem(object)
|
onObjectRemoved: object => roomContextMenu.removeItem(object)
|
||||||
|
|
||||||
delegate: Platform.MenuItem {
|
delegate: Platform.MenuItem {
|
||||||
property string t: modelData
|
property string t: modelData
|
||||||
|
@ -132,11 +127,11 @@ Page {
|
||||||
delegate: ItemDelegate {
|
delegate: ItemDelegate {
|
||||||
id: roomItem
|
id: roomItem
|
||||||
|
|
||||||
property color backgroundColor: Nheko.colors.window
|
property color backgroundColor: timelineRoot.palette.window
|
||||||
property color importantText: Nheko.colors.text
|
property color importantText: timelineRoot.palette.text
|
||||||
property color unimportantText: Nheko.colors.buttonText
|
property color unimportantText: timelineRoot.palette.buttonText
|
||||||
property color bubbleBackground: Nheko.colors.highlight
|
property color bubbleBackground: timelineRoot.palette.highlight
|
||||||
property color bubbleText: Nheko.colors.highlightedText
|
property color bubbleText: timelineRoot.palette.highlightedText
|
||||||
required property string roomName
|
required property string roomName
|
||||||
required property string roomId
|
required property string roomId
|
||||||
required property string avatarUrl
|
required property string avatarUrl
|
||||||
|
@ -152,7 +147,7 @@ Page {
|
||||||
required property string directChatOtherUserId
|
required property string directChatOtherUserId
|
||||||
|
|
||||||
Ripple {
|
Ripple {
|
||||||
color: Qt.rgba(Nheko.colors.dark.r, Nheko.colors.dark.g, Nheko.colors.dark.b, 0.5)
|
color: Qt.rgba(timelineRoot.palette.dark.r, timelineRoot.palette.dark.g, timelineRoot.palette.dark.b, 0.5)
|
||||||
}
|
}
|
||||||
|
|
||||||
height: avatarSize + 2 * Nheko.paddingMedium
|
height: avatarSize + 2 * Nheko.paddingMedium
|
||||||
|
@ -184,11 +179,11 @@ Page {
|
||||||
|
|
||||||
PropertyChanges {
|
PropertyChanges {
|
||||||
target: roomItem
|
target: roomItem
|
||||||
backgroundColor: Nheko.colors.dark
|
backgroundColor: timelineRoot.palette.dark
|
||||||
importantText: Nheko.colors.brightText
|
importantText: timelineRoot.palette.brightText
|
||||||
unimportantText: Nheko.colors.brightText
|
unimportantText: timelineRoot.palette.brightText
|
||||||
bubbleBackground: Nheko.colors.highlight
|
bubbleBackground: timelineRoot.palette.highlight
|
||||||
bubbleText: Nheko.colors.highlightedText
|
bubbleText: timelineRoot.palette.highlightedText
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
|
@ -198,11 +193,11 @@ Page {
|
||||||
|
|
||||||
PropertyChanges {
|
PropertyChanges {
|
||||||
target: roomItem
|
target: roomItem
|
||||||
backgroundColor: Nheko.colors.highlight
|
backgroundColor: timelineRoot.palette.highlight
|
||||||
importantText: Nheko.colors.highlightedText
|
importantText: timelineRoot.palette.highlightedText
|
||||||
unimportantText: Nheko.colors.highlightedText
|
unimportantText: timelineRoot.palette.highlightedText
|
||||||
bubbleBackground: Nheko.colors.highlightedText
|
bubbleBackground: timelineRoot.palette.highlightedText
|
||||||
bubbleText: Nheko.colors.highlight
|
bubbleText: timelineRoot.palette.highlight
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -378,7 +373,7 @@ Page {
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
height: parent.height - Nheko.paddingSmall * 2
|
height: parent.height - Nheko.paddingSmall * 2
|
||||||
width: 3
|
width: 3
|
||||||
color: Nheko.colors.highlight
|
color: timelineRoot.palette.highlight
|
||||||
visible: hasUnreadMessages
|
visible: hasUnreadMessages
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -416,7 +411,7 @@ Page {
|
||||||
padding: Nheko.paddingMedium
|
padding: Nheko.paddingMedium
|
||||||
Layout.minimumHeight: 40
|
Layout.minimumHeight: 40
|
||||||
|
|
||||||
background: Rectangle {color: Nheko.colors.window}
|
background: Rectangle {color: timelineRoot.palette.window}
|
||||||
|
|
||||||
InputDialog {
|
InputDialog {
|
||||||
id: statusDialog
|
id: statusDialog
|
||||||
|
@ -497,7 +492,7 @@ Page {
|
||||||
|
|
||||||
ElidedLabel {
|
ElidedLabel {
|
||||||
Layout.alignment: Qt.AlignTop
|
Layout.alignment: Qt.AlignTop
|
||||||
color: Nheko.colors.buttonText
|
color: timelineRoot.palette.buttonText
|
||||||
font.pointSize: fontMetrics.font.pointSize * 0.9
|
font.pointSize: fontMetrics.font.pointSize * 0.9
|
||||||
elideWidth: col.width
|
elideWidth: col.width
|
||||||
fullText: userInfoGrid.profile ? userInfoGrid.profile.userid : ""
|
fullText: userInfoGrid.profile ? userInfoGrid.profile.userid : ""
|
||||||
|
@ -552,7 +547,7 @@ Page {
|
||||||
|
|
||||||
Layout.margins: Nheko.paddingMedium
|
Layout.margins: Nheko.paddingMedium
|
||||||
Layout.rightMargin: Nheko.paddingSmall
|
Layout.rightMargin: Nheko.paddingSmall
|
||||||
color: Nheko.colors.buttonText
|
color: timelineRoot.palette.buttonText
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
text: {
|
text: {
|
||||||
switch (SelfVerificationStatus.status) {
|
switch (SelfVerificationStatus.status) {
|
||||||
|
@ -636,7 +631,7 @@ Page {
|
||||||
horizontalPadding: Nheko.paddingMedium
|
horizontalPadding: Nheko.paddingMedium
|
||||||
verticalPadding: 0
|
verticalPadding: 0
|
||||||
|
|
||||||
background: Rectangle {color: Nheko.colors.window}
|
background: Rectangle {color: timelineRoot.palette.window}
|
||||||
contentItem: RowLayout {
|
contentItem: RowLayout {
|
||||||
id: buttonRow
|
id: buttonRow
|
||||||
|
|
||||||
|
|
|
@ -35,8 +35,8 @@ Pane {
|
||||||
alternateBase: "#2d3139"
|
alternateBase: "#2d3139"
|
||||||
highlight: "#38a3d8"
|
highlight: "#38a3d8"
|
||||||
highlightedText: "#f4f5f8"
|
highlightedText: "#f4f5f8"
|
||||||
toolTipBase: base
|
toolTipBase: timelineRoot.palette.base
|
||||||
toolTipText: text
|
toolTipText: timelineRoot.palette.text
|
||||||
link: "#38a3d8"
|
link: "#38a3d8"
|
||||||
buttonText: "#828284"
|
buttonText: "#828284"
|
||||||
|
|
||||||
|
|
|
@ -1,97 +0,0 @@
|
||||||
// Copyright (C) 2016 Michael Bohlender, <michael.bohlender@kdemail.net>
|
|
||||||
// Copyright (C) 2017 Christian Mollekopf, <mollekopf@kolabsystems.com>
|
|
||||||
// SPDX-FileCopyrightText: 2021 Nheko Contributors
|
|
||||||
// SPDX-FileCopyrightText: 2022 Nheko Contributors
|
|
||||||
//
|
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Shamelessly stolen from:
|
|
||||||
* https://cgit.kde.org/kube.git/tree/framework/qml/ScrollHelper.qml
|
|
||||||
*
|
|
||||||
* The MouseArea + interactive: false + maximumFlickVelocity are required
|
|
||||||
* to fix scrolling for desktop systems where we don't want flicking behaviour.
|
|
||||||
*
|
|
||||||
* See also:
|
|
||||||
* ScrollView.qml in qtquickcontrols
|
|
||||||
* qquickwheelarea.cpp in qtquickcontrols
|
|
||||||
*/
|
|
||||||
|
|
||||||
import QtQuick 2.9
|
|
||||||
import QtQuick.Controls 2.3
|
|
||||||
|
|
||||||
MouseArea {
|
|
||||||
// console.warn("Delta: ", wheel.pixelDelta.y);
|
|
||||||
// console.warn("Old position: ", flickable.contentY);
|
|
||||||
// console.warn("New position: ", newPos);
|
|
||||||
// breaks ListView's with headers...
|
|
||||||
//if (typeof (flickableItem.headerItem) !== "undefined" && flickableItem.headerItem)
|
|
||||||
// minYExtent += flickableItem.headerItem.height;
|
|
||||||
|
|
||||||
id: root
|
|
||||||
|
|
||||||
property Flickable flickable
|
|
||||||
property alias enabled: root.enabled
|
|
||||||
|
|
||||||
function calculateNewPosition(flickableItem, wheel) {
|
|
||||||
//Nothing to scroll
|
|
||||||
if (flickableItem.contentHeight < flickableItem.height)
|
|
||||||
return flickableItem.contentY;
|
|
||||||
|
|
||||||
//Ignore 0 events (happens at least with Christians trackpad)
|
|
||||||
if (wheel.pixelDelta.y == 0 && wheel.angleDelta.y == 0)
|
|
||||||
return flickableItem.contentY;
|
|
||||||
|
|
||||||
//pixelDelta seems to be the same as angleDelta/8
|
|
||||||
var pixelDelta = 0;
|
|
||||||
//The pixelDelta is a smaller number if both are provided, so pixelDelta can be 0 while angleDelta is still something. So we check the angleDelta
|
|
||||||
if (wheel.angleDelta.y) {
|
|
||||||
var wheelScrollLines = 3; //Default value of QApplication wheelScrollLines property
|
|
||||||
var pixelPerLine = 20; //Default value in Qt, originally comes from QTextEdit
|
|
||||||
var ticks = (wheel.angleDelta.y / 8) / 15; //Divide by 8 gives us pixels typically come in 15pixel steps.
|
|
||||||
pixelDelta = ticks * pixelPerLine * wheelScrollLines;
|
|
||||||
} else {
|
|
||||||
pixelDelta = wheel.pixelDelta.y;
|
|
||||||
}
|
|
||||||
pixelDelta = Math.round(pixelDelta);
|
|
||||||
if (!pixelDelta)
|
|
||||||
return flickableItem.contentY;
|
|
||||||
|
|
||||||
var minYExtent = flickableItem.originY + flickableItem.topMargin;
|
|
||||||
var maxYExtent = (flickableItem.contentHeight + flickableItem.bottomMargin + flickableItem.originY) - flickableItem.height;
|
|
||||||
//Avoid overscrolling
|
|
||||||
return Math.max(minYExtent, Math.min(maxYExtent, flickableItem.contentY - pixelDelta));
|
|
||||||
}
|
|
||||||
|
|
||||||
propagateComposedEvents: true
|
|
||||||
//Place the mouse area under the flickable
|
|
||||||
z: -1
|
|
||||||
onFlickableChanged: {
|
|
||||||
if (enabled) {
|
|
||||||
flickable.maximumFlickVelocity = 100000;
|
|
||||||
flickable.boundsBehavior = Flickable.StopAtBounds;
|
|
||||||
root.parent = flickable;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
acceptedButtons: Qt.NoButton
|
|
||||||
onWheel: {
|
|
||||||
var newPos = calculateNewPosition(flickable, wheel);
|
|
||||||
// Show the scrollbars
|
|
||||||
flickable.flick(0, 0);
|
|
||||||
flickable.contentY = newPos;
|
|
||||||
cancelFlickStateTimer.restart();
|
|
||||||
}
|
|
||||||
|
|
||||||
Timer {
|
|
||||||
id: cancelFlickStateTimer
|
|
||||||
|
|
||||||
//How long the scrollbar will remain visible
|
|
||||||
interval: 500
|
|
||||||
// Hide the scrollbars
|
|
||||||
onTriggered: {
|
|
||||||
flickable.cancelFlick();
|
|
||||||
flickable.movementEnded();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -38,7 +38,7 @@ Item {
|
||||||
Layout.maximumWidth: (Overlay.overlay ? Overlay.overlay.width : 400) - Nheko.paddingMedium * 4
|
Layout.maximumWidth: (Overlay.overlay ? Overlay.overlay.width : 400) - Nheko.paddingMedium * 4
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
text: qsTr("This is your recovery key. You will need it to restore access to your encrypted messages and verification keys. Keep this safe. Don't share it with anyone and don't lose it! Do not pass go! Do not collect $200!")
|
text: qsTr("This is your recovery key. You will need it to restore access to your encrypted messages and verification keys. Keep this safe. Don't share it with anyone and don't lose it! Do not pass go! Do not collect $200!")
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
wrapMode: Text.Wrap
|
wrapMode: Text.Wrap
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ Item {
|
||||||
readOnly: true
|
readOnly: true
|
||||||
selectByMouse: true
|
selectByMouse: true
|
||||||
text: showRecoverKeyDialog.recoveryKey
|
text: showRecoverKeyDialog.recoveryKey
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
font.bold: true
|
font.bold: true
|
||||||
wrapMode: TextEdit.Wrap
|
wrapMode: TextEdit.Wrap
|
||||||
}
|
}
|
||||||
|
@ -58,7 +58,7 @@ Item {
|
||||||
}
|
}
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
border.color: Nheko.theme.separator
|
border.color: Nheko.theme.separator
|
||||||
border.width: 1
|
border.width: 1
|
||||||
radius: Nheko.paddingSmall
|
radius: Nheko.paddingSmall
|
||||||
|
@ -102,7 +102,7 @@ Item {
|
||||||
Layout.columnSpan: 2
|
Layout.columnSpan: 2
|
||||||
font.pointSize: fontMetrics.font.pointSize * 2
|
font.pointSize: fontMetrics.font.pointSize * 2
|
||||||
text: qsTr("Setup Encryption")
|
text: qsTr("Setup Encryption")
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
wrapMode: Text.Wrap
|
wrapMode: Text.Wrap
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -112,7 +112,7 @@ Item {
|
||||||
Layout.columnSpan: 2
|
Layout.columnSpan: 2
|
||||||
Layout.maximumWidth: grid.width - Nheko.paddingMedium * 2
|
Layout.maximumWidth: grid.width - Nheko.paddingMedium * 2
|
||||||
text: qsTr("Hello and welcome to Matrix!\nIt seems like you are new. Before you can securely encrypt your messages, we need to setup a few small things. You can either press accept immediately or adjust a few basic options. We also try to explain a few of the basics. You can skip those parts, but they might prove to be helpful!")
|
text: qsTr("Hello and welcome to Matrix!\nIt seems like you are new. Before you can securely encrypt your messages, we need to setup a few small things. You can either press accept immediately or adjust a few basic options. We also try to explain a few of the basics. You can skip those parts, but they might prove to be helpful!")
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
wrapMode: Text.Wrap
|
wrapMode: Text.Wrap
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -122,7 +122,7 @@ Item {
|
||||||
Layout.columnSpan: 1
|
Layout.columnSpan: 1
|
||||||
Layout.maximumWidth: Math.floor(grid.width / 2) - Nheko.paddingMedium * 2
|
Layout.maximumWidth: Math.floor(grid.width / 2) - Nheko.paddingMedium * 2
|
||||||
text: "Store secrets online.\nYou have a few secrets to make all the encryption magic work. While you can keep them stored only locally, we recommend storing them encrypted on the server. Otherwise it will be painful to recover them. Only disable this if you are paranoid and like losing your data!"
|
text: "Store secrets online.\nYou have a few secrets to make all the encryption magic work. While you can keep them stored only locally, we recommend storing them encrypted on the server. Otherwise it will be painful to recover them. Only disable this if you are paranoid and like losing your data!"
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
wrapMode: Text.Wrap
|
wrapMode: Text.Wrap
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -149,7 +149,7 @@ Item {
|
||||||
Layout.maximumWidth: Math.floor(grid.width / 2) - Nheko.paddingMedium * 2
|
Layout.maximumWidth: Math.floor(grid.width / 2) - Nheko.paddingMedium * 2
|
||||||
visible: storeSecretsOnline.checked
|
visible: storeSecretsOnline.checked
|
||||||
text: "Set an online backup password.\nWe recommend you DON'T set a password and instead only rely on the recovery key. You will get a recovery key in any case when storing the cross-signing secrets online, but passwords are usually not very random, so they are easier to attack than a completely random recovery key. If you choose to use a password, DON'T make it the same as your login password, otherwise your server can read all your encrypted messages. (You don't want that.)"
|
text: "Set an online backup password.\nWe recommend you DON'T set a password and instead only rely on the recovery key. You will get a recovery key in any case when storing the cross-signing secrets online, but passwords are usually not very random, so they are easier to attack than a completely random recovery key. If you choose to use a password, DON'T make it the same as your login password, otherwise your server can read all your encrypted messages. (You don't want that.)"
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
wrapMode: Text.Wrap
|
wrapMode: Text.Wrap
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -188,7 +188,7 @@ Item {
|
||||||
Layout.columnSpan: 1
|
Layout.columnSpan: 1
|
||||||
Layout.maximumWidth: Math.floor(grid.width / 2) - Nheko.paddingMedium * 2
|
Layout.maximumWidth: Math.floor(grid.width / 2) - Nheko.paddingMedium * 2
|
||||||
text: "Use online key backup.\nStore the keys for your messages securely encrypted online. In general you do want this, because it protects your messages from becoming unreadable, if you log out by accident. It does however carry a small security risk, if you ever share your recovery key by accident. Currently this also has some other weaknesses, that might allow the server to insert new keys into your backup. The server will however never be able to read your messages."
|
text: "Use online key backup.\nStore the keys for your messages securely encrypted online. In general you do want this, because it protects your messages from becoming unreadable, if you log out by accident. It does however carry a small security risk, if you ever share your recovery key by accident. Currently this also has some other weaknesses, that might allow the server to insert new keys into your backup. The server will however never be able to read your messages."
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
wrapMode: Text.Wrap
|
wrapMode: Text.Wrap
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -210,7 +210,7 @@ Item {
|
||||||
}
|
}
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
border.color: Nheko.theme.separator
|
border.color: Nheko.theme.separator
|
||||||
border.width: 1
|
border.width: 1
|
||||||
radius: Nheko.paddingSmall
|
radius: Nheko.paddingSmall
|
||||||
|
@ -236,7 +236,7 @@ Item {
|
||||||
//Layout.columnSpan: 2
|
//Layout.columnSpan: 2
|
||||||
font.pointSize: fontMetrics.font.pointSize * 2
|
font.pointSize: fontMetrics.font.pointSize * 2
|
||||||
text: qsTr("Activate Encryption")
|
text: qsTr("Activate Encryption")
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
wrapMode: Text.Wrap
|
wrapMode: Text.Wrap
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -246,7 +246,7 @@ Item {
|
||||||
//Layout.columnSpan: 2
|
//Layout.columnSpan: 2
|
||||||
Layout.maximumWidth: grid.width - Nheko.paddingMedium * 2
|
Layout.maximumWidth: grid.width - Nheko.paddingMedium * 2
|
||||||
text: qsTr("It seems like you have encryption already configured for this account. To be able to access your encrypted messages and make this device appear as trusted, you can either verify an existing device or (if you have one) enter your recovery passphrase. Please select one of the options below.\nIf you choose verify, you need to have the other device available. If you choose \"enter passphrase\", you will need your recovery key or passphrase. If you click cancel, you can choose to verify yourself at a later point.")
|
text: qsTr("It seems like you have encryption already configured for this account. To be able to access your encrypted messages and make this device appear as trusted, you can either verify an existing device or (if you have one) enter your recovery passphrase. Please select one of the options below.\nIf you choose verify, you need to have the other device available. If you choose \"enter passphrase\", you will need your recovery key or passphrase. If you click cancel, you can choose to verify yourself at a later point.")
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
wrapMode: Text.Wrap
|
wrapMode: Text.Wrap
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -52,7 +52,7 @@ AbstractButton {
|
||||||
height: row.height+(reactionRow.height > 0 ? reactionRow.height-2 : 0 )
|
height: row.height+(reactionRow.height > 0 ? reactionRow.height-2 : 0 )
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
color: (Settings.messageHoverHighlight && hovered) ? Nheko.colors.alternateBase : "transparent"
|
color: (Settings.messageHoverHighlight && hovered) ? timelineRoot.palette.alternateBase : "transparent"
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
// this looks better without margins
|
// this looks better without margins
|
||||||
TapHandler {
|
TapHandler {
|
||||||
|
@ -111,8 +111,8 @@ AbstractButton {
|
||||||
width: Settings.bubbles? Math.min(maxWidth,Math.max(reply.implicitWidth+8,contentItem.implicitWidth+metadata.width+20)) : maxWidth
|
width: Settings.bubbles? Math.min(maxWidth,Math.max(reply.implicitWidth+8,contentItem.implicitWidth+metadata.width+20)) : maxWidth
|
||||||
height: msg.height+msg.anchors.margins*2
|
height: msg.height+msg.anchors.margins*2
|
||||||
|
|
||||||
property color userColor: TimelineManager.userColor(userId, Nheko.colors.base)
|
property color userColor: TimelineManager.userColor(userId, timelineRoot.palette.base)
|
||||||
property color bgColor: Nheko.colors.base
|
property color bgColor: timelineRoot.palette.base
|
||||||
color: (Settings.bubbles && !isStateEvent) ? Qt.tint(bgColor, Qt.hsla(userColor.hslHue, 0.5, userColor.hslLightness, 0.2)) : "#00000000"
|
color: (Settings.bubbles && !isStateEvent) ? Qt.tint(bgColor, Qt.hsla(userColor.hslHue, 0.5, userColor.hslLightness, 0.2)) : "#00000000"
|
||||||
radius: 4
|
radius: 4
|
||||||
|
|
||||||
|
@ -144,7 +144,7 @@ AbstractButton {
|
||||||
return replyTo != "" ? room.dataById(replyTo, role, r.eventId) : null;
|
return replyTo != "" ? room.dataById(replyTo, role, r.eventId) : null;
|
||||||
}
|
}
|
||||||
visible: replyTo
|
visible: replyTo
|
||||||
userColor: r.relatedEventCacheBuster, TimelineManager.userColor(userId, Nheko.colors.base)
|
userColor: r.relatedEventCacheBuster, TimelineManager.userColor(userId, timelineRoot.palette.base)
|
||||||
blurhash: r.relatedEventCacheBuster, fromModel(Room.Blurhash) ?? ""
|
blurhash: r.relatedEventCacheBuster, fromModel(Room.Blurhash) ?? ""
|
||||||
body: r.relatedEventCacheBuster, fromModel(Room.Body) ?? ""
|
body: r.relatedEventCacheBuster, fromModel(Room.Body) ?? ""
|
||||||
formattedBody: r.relatedEventCacheBuster, fromModel(Room.FormattedBody) ?? ""
|
formattedBody: r.relatedEventCacheBuster, fromModel(Room.FormattedBody) ?? ""
|
||||||
|
@ -161,11 +161,11 @@ AbstractButton {
|
||||||
userId: r.relatedEventCacheBuster, fromModel(Room.UserId) ?? ""
|
userId: r.relatedEventCacheBuster, fromModel(Room.UserId) ?? ""
|
||||||
userName: r.relatedEventCacheBuster, fromModel(Room.UserName) ?? ""
|
userName: r.relatedEventCacheBuster, fromModel(Room.UserName) ?? ""
|
||||||
thumbnailUrl: r.relatedEventCacheBuster, fromModel(Room.ThumbnailUrl) ?? ""
|
thumbnailUrl: r.relatedEventCacheBuster, fromModel(Room.ThumbnailUrl) ?? ""
|
||||||
duration: r.relatedEventCacheBuster, fromModel(Room.Duration) ?? ""
|
duration: r.relatedEventCacheBuster, fromModel(Room.Duration) ?? 0
|
||||||
roomTopic: r.relatedEventCacheBuster, fromModel(Room.RoomTopic) ?? ""
|
roomTopic: r.relatedEventCacheBuster, fromModel(Room.RoomTopic) ?? ""
|
||||||
roomName: r.relatedEventCacheBuster, fromModel(Room.RoomName) ?? ""
|
roomName: r.relatedEventCacheBuster, fromModel(Room.RoomName) ?? ""
|
||||||
callType: r.relatedEventCacheBuster, fromModel(Room.CallType) ?? ""
|
callType: r.relatedEventCacheBuster, fromModel(Room.CallType) ?? ""
|
||||||
encryptionError: r.relatedEventCacheBuster, fromModel(Room.EncryptionError) ?? ""
|
encryptionError: r.relatedEventCacheBuster, fromModel(Room.EncryptionError) ?? 0
|
||||||
relatedEventCacheBuster: r.relatedEventCacheBuster, fromModel(Room.RelatedEventCacheBuster) ?? 0
|
relatedEventCacheBuster: r.relatedEventCacheBuster, fromModel(Room.RelatedEventCacheBuster) ?? 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -235,7 +235,7 @@ AbstractButton {
|
||||||
width: parent.iconSize
|
width: parent.iconSize
|
||||||
sourceSize.width: parent.iconSize * Screen.devicePixelRatio
|
sourceSize.width: parent.iconSize * Screen.devicePixelRatio
|
||||||
sourceSize.height: parent.iconSize * Screen.devicePixelRatio
|
sourceSize.height: parent.iconSize * Screen.devicePixelRatio
|
||||||
source: "image://colorimage/:/icons/icons/ui/edit.svg?" + ((eventId == chat.model.edit) ? Nheko.colors.highlight : Nheko.colors.buttonText)
|
source: "image://colorimage/:/icons/icons/ui/edit.svg?" + ((eventId == chat.model.edit) ? timelineRoot.palette.highlight : timelineRoot.palette.buttonText)
|
||||||
ToolTip.visible: editHovered.hovered
|
ToolTip.visible: editHovered.hovered
|
||||||
ToolTip.delay: Nheko.tooltipDelay
|
ToolTip.delay: Nheko.tooltipDelay
|
||||||
ToolTip.text: qsTr("Edited")
|
ToolTip.text: qsTr("Edited")
|
||||||
|
@ -264,7 +264,7 @@ AbstractButton {
|
||||||
Layout.alignment: Qt.AlignRight | Qt.AlignTop
|
Layout.alignment: Qt.AlignRight | Qt.AlignTop
|
||||||
Layout.preferredWidth: implicitWidth
|
Layout.preferredWidth: implicitWidth
|
||||||
text: timestamp.toLocaleTimeString(Locale.ShortFormat)
|
text: timestamp.toLocaleTimeString(Locale.ShortFormat)
|
||||||
color: Nheko.inactiveColors.text
|
color: timelineRoot.palette.inactive.text
|
||||||
ToolTip.visible: ma.hovered
|
ToolTip.visible: ma.hovered
|
||||||
ToolTip.delay: Nheko.tooltipDelay
|
ToolTip.delay: Nheko.tooltipDelay
|
||||||
ToolTip.text: Qt.formatDateTime(timestamp, Qt.DefaultLocaleLongDate)
|
ToolTip.text: Qt.formatDateTime(timestamp, Qt.DefaultLocaleLongDate)
|
||||||
|
|
|
@ -35,13 +35,13 @@ Item {
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
text: qsTr("No room open")
|
text: qsTr("No room open")
|
||||||
font.pointSize: 24
|
font.pointSize: 24
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
|
|
||||||
Spinner {
|
Spinner {
|
||||||
visible: TimelineManager.isInitialSync
|
visible: TimelineManager.isInitialSync
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
foreground: Nheko.colors.mid
|
foreground: timelineRoot.palette.mid
|
||||||
running: TimelineManager.isInitialSync
|
running: TimelineManager.isInitialSync
|
||||||
// height is somewhat arbitrary here... don't set width because width scales w/ height
|
// height is somewhat arbitrary here... don't set width because width scales w/ height
|
||||||
height: parent.height / 16
|
height: parent.height / 16
|
||||||
|
@ -72,7 +72,7 @@ Item {
|
||||||
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.fillHeight: true
|
Layout.fillHeight: true
|
||||||
color: Nheko.colors.base
|
color: timelineRoot.palette.base
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
@ -226,7 +226,7 @@ Item {
|
||||||
readOnly: true
|
readOnly: true
|
||||||
background: null
|
background: null
|
||||||
selectByMouse: true
|
selectByMouse: true
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
horizontalAlignment: TextEdit.AlignHCenter
|
horizontalAlignment: TextEdit.AlignHCenter
|
||||||
onLinkActivated: Nheko.openLink(link)
|
onLinkActivated: Nheko.openLink(link)
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@ Pane {
|
||||||
|
|
||||||
padding: 0
|
padding: 0
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
}
|
}
|
||||||
|
|
||||||
TapHandler {
|
TapHandler {
|
||||||
|
@ -114,7 +114,7 @@ Pane {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.column: 2
|
Layout.column: 2
|
||||||
Layout.row: 0
|
Layout.row: 0
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
font.pointSize: fontMetrics.font.pointSize * 1.1
|
font.pointSize: fontMetrics.font.pointSize * 1.1
|
||||||
text: roomName
|
text: roomName
|
||||||
maximumLineCount: 1
|
maximumLineCount: 1
|
||||||
|
@ -257,7 +257,7 @@ Pane {
|
||||||
visible: !!room && room.pinnedMessages.length > 0 && !Settings.hiddenPins.includes(roomId)
|
visible: !!room && room.pinnedMessages.length > 0 && !Settings.hiddenPins.includes(roomId)
|
||||||
clip: true
|
clip: true
|
||||||
|
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
ScrollBar.horizontal.visible: false
|
ScrollBar.horizontal.visible: false
|
||||||
|
|
||||||
ListView {
|
ListView {
|
||||||
|
@ -275,7 +275,7 @@ Pane {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.preferredHeight: height
|
Layout.preferredHeight: height
|
||||||
|
|
||||||
userColor: TimelineManager.userColor(e.userId, Nheko.colors.window)
|
userColor: TimelineManager.userColor(e.userId, timelineRoot.palette.window)
|
||||||
blurhash: e.blurhash ?? ""
|
blurhash: e.blurhash ?? ""
|
||||||
body: e.body ?? ""
|
body: e.body ?? ""
|
||||||
formattedBody: e.formattedBody ?? ""
|
formattedBody: e.formattedBody ?? ""
|
||||||
|
@ -310,12 +310,6 @@ Pane {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ScrollHelper {
|
|
||||||
flickable: parent
|
|
||||||
anchors.fill: parent
|
|
||||||
enabled: !Settings.mobileMode
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -332,7 +326,7 @@ Pane {
|
||||||
visible: !!room && room.widgetLinks.length > 0 && !Settings.hiddenWidgets.includes(roomId)
|
visible: !!room && room.widgetLinks.length > 0 && !Settings.hiddenWidgets.includes(roomId)
|
||||||
clip: true
|
clip: true
|
||||||
|
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
ScrollBar.horizontal.visible: false
|
ScrollBar.horizontal.visible: false
|
||||||
|
|
||||||
ListView {
|
ListView {
|
||||||
|
@ -342,16 +336,10 @@ Pane {
|
||||||
delegate: MatrixText {
|
delegate: MatrixText {
|
||||||
required property var modelData
|
required property var modelData
|
||||||
|
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
text: modelData
|
text: modelData
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ScrollHelper {
|
|
||||||
flickable: parent
|
|
||||||
anchors.fill: parent
|
|
||||||
enabled: !Settings.mobileMode
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,7 @@ Item {
|
||||||
id: typingRect
|
id: typingRect
|
||||||
|
|
||||||
visible: (room && room.typingUsers.length > 0)
|
visible: (room && room.typingUsers.length > 0)
|
||||||
color: Nheko.colors.base
|
color: timelineRoot.palette.base
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
z: 3
|
z: 3
|
||||||
|
|
||||||
|
@ -28,8 +28,8 @@ Item {
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.rightMargin: 10
|
anchors.rightMargin: 10
|
||||||
anchors.bottom: parent.bottom
|
anchors.bottom: parent.bottom
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
text: room ? room.formatTypingUsers(room.typingUsers, Nheko.colors.base) : ""
|
text: room ? room.formatTypingUsers(room.typingUsers, timelineRoot.palette.base) : ""
|
||||||
textFormat: Text.RichText
|
textFormat: Text.RichText
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ Page {
|
||||||
width: uploadPopup.availableHeight - buttons.height
|
width: uploadPopup.availableHeight - buttons.height
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
radius: Nheko.paddingMedium
|
radius: Nheko.paddingMedium
|
||||||
}
|
}
|
||||||
contentItem: ColumnLayout {
|
contentItem: ColumnLayout {
|
||||||
|
@ -60,7 +60,7 @@ Page {
|
||||||
case MediaUpload.Image: return "image";
|
case MediaUpload.Image: return "image";
|
||||||
default: return "zip";
|
default: return "zip";
|
||||||
}
|
}
|
||||||
source: (modelData.thumbnail != "") ? modelData.thumbnail : ("image://colorimage/:/icons/icons/ui/"+typeStr+".svg?" + Nheko.colors.buttonText)
|
source: (modelData.thumbnail != "") ? modelData.thumbnail : ("image://colorimage/:/icons/icons/ui/"+typeStr+".svg?" + timelineRoot.palette.buttonText)
|
||||||
}
|
}
|
||||||
MatrixTextField {
|
MatrixTextField {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
@ -84,6 +84,6 @@ Page {
|
||||||
}
|
}
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: Nheko.colors.base
|
color: timelineRoot.palette.base
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,11 +12,11 @@ import im.nheko 1.0
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: tile
|
id: tile
|
||||||
|
|
||||||
property color background: Nheko.colors.window
|
property color background: timelineRoot.palette.window
|
||||||
property color importantText: Nheko.colors.text
|
property color importantText: timelineRoot.palette.text
|
||||||
property color unimportantText: Nheko.colors.buttonText
|
property color unimportantText: timelineRoot.palette.buttonText
|
||||||
property color bubbleBackground: Nheko.colors.highlight
|
property color bubbleBackground: timelineRoot.palette.highlight
|
||||||
property color bubbleText: Nheko.colors.highlightedText
|
property color bubbleText: timelineRoot.palette.highlightedText
|
||||||
property int avatarSize: Math.ceil(fontMetrics.lineSpacing * 2.3)
|
property int avatarSize: Math.ceil(fontMetrics.lineSpacing * 2.3)
|
||||||
required property string avatarUrl
|
required property string avatarUrl
|
||||||
required property string title
|
required property string title
|
||||||
|
@ -38,11 +38,11 @@ Rectangle {
|
||||||
|
|
||||||
PropertyChanges {
|
PropertyChanges {
|
||||||
target: tile
|
target: tile
|
||||||
background: Nheko.colors.dark
|
background: timelineRoot.palette.dark
|
||||||
importantText: Nheko.colors.brightText
|
importantText: timelineRoot.palette.brightText
|
||||||
unimportantText: Nheko.colors.brightText
|
unimportantText: timelineRoot.palette.brightText
|
||||||
bubbleBackground: Nheko.colors.highlight
|
bubbleBackground: timelineRoot.palette.highlight
|
||||||
bubbleText: Nheko.colors.highlightedText
|
bubbleText: timelineRoot.palette.highlightedText
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
|
@ -52,11 +52,11 @@ Rectangle {
|
||||||
|
|
||||||
PropertyChanges {
|
PropertyChanges {
|
||||||
target: tile
|
target: tile
|
||||||
background: Nheko.colors.highlight
|
background: timelineRoot.palette.highlight
|
||||||
importantText: Nheko.colors.highlightedText
|
importantText: timelineRoot.palette.highlightedText
|
||||||
unimportantText: Nheko.colors.highlightedText
|
unimportantText: timelineRoot.palette.highlightedText
|
||||||
bubbleBackground: Nheko.colors.highlightedText
|
bubbleBackground: timelineRoot.palette.highlightedText
|
||||||
bubbleText: Nheko.colors.highlight
|
bubbleText: timelineRoot.palette.highlight
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,7 +49,7 @@ Button {
|
||||||
font.capitalization: Font.AllUppercase
|
font.capitalization: Font.AllUppercase
|
||||||
font.pointSize: Math.ceil(fontMetrics.font.pointSize * 1.5)
|
font.pointSize: Math.ceil(fontMetrics.font.pointSize * 1.5)
|
||||||
//font.capitalization: Font.AllUppercase
|
//font.capitalization: Font.AllUppercase
|
||||||
color: Nheko.colors.light
|
color: timelineRoot.palette.light
|
||||||
horizontalAlignment: Text.AlignHCenter
|
horizontalAlignment: Text.AlignHCenter
|
||||||
verticalAlignment: Text.AlignVCenter
|
verticalAlignment: Text.AlignVCenter
|
||||||
elide: Text.ElideRight
|
elide: Text.ElideRight
|
||||||
|
@ -60,7 +60,7 @@ Button {
|
||||||
//height: control.contentItem.implicitHeight * 2
|
//height: control.contentItem.implicitHeight * 2
|
||||||
//width: control.contentItem.implicitWidth * 2
|
//width: control.contentItem.implicitWidth * 2
|
||||||
radius: height / 8
|
radius: height / 8
|
||||||
color: Qt.lighter(Nheko.colors.dark, control.down ? 1.4 : (control.hovered ? 1.2 : 1))
|
color: Qt.lighter(timelineRoot.palette.dark, control.down ? 1.4 : (control.hovered ? 1.2 : 1))
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,7 @@ Dialog {
|
||||||
]
|
]
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
border.color: Nheko.theme.separator
|
border.color: Nheko.theme.separator
|
||||||
border.width: 1
|
border.width: 1
|
||||||
radius: Nheko.paddingSmall
|
radius: Nheko.paddingSmall
|
||||||
|
|
|
@ -12,8 +12,8 @@ AbstractButton {
|
||||||
id: button
|
id: button
|
||||||
|
|
||||||
property alias cursor: mouseArea.cursorShape
|
property alias cursor: mouseArea.cursorShape
|
||||||
property color highlightColor: Nheko.colors.highlight
|
property color highlightColor: timelineRoot.palette.highlight
|
||||||
property color buttonTextColor: Nheko.colors.buttonText
|
property color buttonTextColor: timelineRoot.palette.buttonText
|
||||||
|
|
||||||
focusPolicy: Qt.NoFocus
|
focusPolicy: Qt.NoFocus
|
||||||
width: buttonText.implicitWidth
|
width: buttonText.implicitWidth
|
||||||
|
|
|
@ -19,7 +19,7 @@ Rectangle {
|
||||||
width: parent.width? parent.width : 0
|
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
|
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
|
height: contents.implicitHeight + Nheko.paddingMedium * 2
|
||||||
color: Nheko.colors.alternateBase
|
color: timelineRoot.palette.alternateBase
|
||||||
|
|
||||||
RowLayout {
|
RowLayout {
|
||||||
id: contents
|
id: contents
|
||||||
|
@ -59,12 +59,12 @@ Rectangle {
|
||||||
return qsTr("Unknown decryption error");
|
return qsTr("Unknown decryption error");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
width: parent.width
|
width: parent.width
|
||||||
}
|
}
|
||||||
|
|
||||||
Button {
|
Button {
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
visible: encryptionError == Olm.MissingSession || encryptionError == Olm.MissingSessionIndex
|
visible: encryptionError == Olm.MissingSession || encryptionError == Olm.MissingSessionIndex
|
||||||
text: qsTr("Request key")
|
text: qsTr("Request key")
|
||||||
onClicked: room.requestKeyForEvent(eventId)
|
onClicked: room.requestKeyForEvent(eventId)
|
||||||
|
|
|
@ -28,7 +28,7 @@ Item {
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: button
|
id: button
|
||||||
|
|
||||||
color: Nheko.colors.light
|
color: timelineRoot.palette.light
|
||||||
radius: 22
|
radius: 22
|
||||||
height: 44
|
height: 44
|
||||||
width: 44
|
width: 44
|
||||||
|
@ -68,7 +68,7 @@ Item {
|
||||||
text: filename
|
text: filename
|
||||||
textFormat: Text.PlainText
|
textFormat: Text.PlainText
|
||||||
elide: Text.ElideRight
|
elide: Text.ElideRight
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
|
@ -78,7 +78,7 @@ Item {
|
||||||
text: filesize
|
text: filesize
|
||||||
textFormat: Text.PlainText
|
textFormat: Text.PlainText
|
||||||
elide: Text.ElideRight
|
elide: Text.ElideRight
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -86,7 +86,7 @@ Item {
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
color: Nheko.colors.alternateBase
|
color: timelineRoot.palette.alternateBase
|
||||||
z: -1
|
z: -1
|
||||||
radius: 10
|
radius: 10
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
|
|
@ -23,7 +23,7 @@ AbstractButton {
|
||||||
property int tempWidth: originalWidth < 1? 400: originalWidth
|
property int tempWidth: originalWidth < 1? 400: originalWidth
|
||||||
|
|
||||||
implicitWidth: Math.round(tempWidth*Math.min((timelineView.height/divisor)/(tempWidth*proportionalHeight), 1))
|
implicitWidth: Math.round(tempWidth*Math.min((timelineView.height/divisor)/(tempWidth*proportionalHeight), 1))
|
||||||
width: Math.min(parent.width,implicitWidth)
|
width: Math.min(parent?.width ?? implicitWidth,implicitWidth)
|
||||||
height: width*proportionalHeight
|
height: width*proportionalHeight
|
||||||
hoverEnabled: true
|
hoverEnabled: true
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ AbstractButton {
|
||||||
|
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
visible: img.status != Image.Ready
|
visible: img.status != Image.Ready
|
||||||
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?" + timelineRoot.palette.buttonText)
|
||||||
asynchronous: true
|
asynchronous: true
|
||||||
fillMode: Image.PreserveAspectFit
|
fillMode: Image.PreserveAspectFit
|
||||||
sourceSize.width: parent.width * Screen.devicePixelRatio
|
sourceSize.width: parent.width * Screen.devicePixelRatio
|
||||||
|
@ -81,7 +81,7 @@ AbstractButton {
|
||||||
width: parent.width
|
width: parent.width
|
||||||
implicitHeight: imgcaption.implicitHeight
|
implicitHeight: imgcaption.implicitHeight
|
||||||
anchors.bottom: overlay.bottom
|
anchors.bottom: overlay.bottom
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
opacity: 0.75
|
opacity: 0.75
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -94,7 +94,7 @@ AbstractButton {
|
||||||
verticalAlignment: Text.AlignVCenter
|
verticalAlignment: Text.AlignVCenter
|
||||||
// See this MSC: https://github.com/matrix-org/matrix-doc/pull/2530
|
// See this MSC: https://github.com/matrix-org/matrix-doc/pull/2530
|
||||||
text: filename ? filename : body
|
text: filename ? filename : body
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -92,7 +92,7 @@ Item {
|
||||||
|
|
||||||
NoticeMessage {
|
NoticeMessage {
|
||||||
formatted: TimelineManager.escapeEmoji(d.userName) + " " + d.formattedBody
|
formatted: TimelineManager.escapeEmoji(d.userName) + " " + d.formattedBody
|
||||||
color: TimelineManager.userColor(d.userId, Nheko.colors.base)
|
color: TimelineManager.userColor(d.userId, timelineRoot.palette.base)
|
||||||
body: d.body
|
body: d.body
|
||||||
isOnlyEmoji: d.isOnlyEmoji
|
isOnlyEmoji: d.isOnlyEmoji
|
||||||
isReply: d.isReply
|
isReply: d.isReply
|
||||||
|
@ -446,7 +446,7 @@ Item {
|
||||||
roleValue: MtxEvent.Member
|
roleValue: MtxEvent.Member
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
width: parent.width
|
width: parent?.width
|
||||||
|
|
||||||
NoticeMessage {
|
NoticeMessage {
|
||||||
body: formatted
|
body: formatted
|
||||||
|
@ -459,7 +459,7 @@ Item {
|
||||||
|
|
||||||
Button {
|
Button {
|
||||||
visible: d.relatedEventCacheBuster, room.showAcceptKnockButton(d.eventId)
|
visible: d.relatedEventCacheBuster, room.showAcceptKnockButton(d.eventId)
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
text: qsTr("Allow them in")
|
text: qsTr("Allow them in")
|
||||||
onClicked: room.acceptKnock(eventId)
|
onClicked: room.acceptKnock(eventId)
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ import im.nheko 1.0
|
||||||
TextMessage {
|
TextMessage {
|
||||||
property bool isStateEvent
|
property bool isStateEvent
|
||||||
font.italic: true
|
font.italic: true
|
||||||
color: Nheko.colors.buttonText
|
color: timelineRoot.palette.buttonText
|
||||||
font.pointSize: isStateEvent? 0.8*Settings.fontSize : Settings.fontSize
|
font.pointSize: isStateEvent? 0.8*Settings.fontSize : Settings.fontSize
|
||||||
horizontalAlignment: isStateEvent? Text.AlignHCenter : undefined
|
horizontalAlignment: isStateEvent? Text.AlignHCenter : undefined
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,14 +9,14 @@ import im.nheko 1.0
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
property bool isStateEvent
|
property bool isStateEvent
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
horizontalAlignment: Text.AlignHCenter
|
horizontalAlignment: Text.AlignHCenter
|
||||||
height: Math.round(fontMetrics.height * 1.4)
|
height: Math.round(fontMetrics.height * 1.4)
|
||||||
width: contentWidth * 1.2
|
width: contentWidth * 1.2
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
radius: parent.height / 2
|
radius: parent.height / 2
|
||||||
color: Nheko.colors.alternateBase
|
color: timelineRoot.palette.alternateBase
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,5 +11,5 @@ MatrixText {
|
||||||
|
|
||||||
text: qsTr("unimplemented event: ") + typeString
|
text: qsTr("unimplemented event: ") + typeString
|
||||||
// width: parent.width
|
// width: parent.width
|
||||||
color: Nheko.inactiveColors.text
|
color: timelineRoot.palette.inactive.text
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,7 +48,7 @@ Item {
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: videoContainer
|
id: videoContainer
|
||||||
|
|
||||||
color: type == MtxEvent.VideoMessage ? Nheko.colors.window : "transparent"
|
color: type == MtxEvent.VideoMessage ? timelineRoot.palette.window : "transparent"
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: parent.height - fileInfoLabel.height
|
height: parent.height - fileInfoLabel.height
|
||||||
|
|
||||||
|
@ -101,10 +101,10 @@ Item {
|
||||||
text: body + " [" + filesize + "]"
|
text: body + " [" + filesize + "]"
|
||||||
textFormat: Text.RichText
|
textFormat: Text.RichText
|
||||||
elide: Text.ElideRight
|
elide: Text.ElideRight
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: Nheko.colors.base
|
color: timelineRoot.palette.base
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@ Rectangle{
|
||||||
implicitWidth: redactedLayout.implicitWidth + 2 * Nheko.paddingMedium
|
implicitWidth: redactedLayout.implicitWidth + 2 * Nheko.paddingMedium
|
||||||
width: Math.min(parent.width,implicitWidth+1)
|
width: Math.min(parent.width,implicitWidth+1)
|
||||||
radius: fontMetrics.lineSpacing / 2 + 2 * Nheko.paddingSmall
|
radius: fontMetrics.lineSpacing / 2 + 2 * Nheko.paddingSmall
|
||||||
color: Nheko.colors.alternateBase
|
color: timelineRoot.palette.alternateBase
|
||||||
property int metadataWidth
|
property int metadataWidth
|
||||||
property bool fitsMetadata: parent.width - redactedLayout.width > metadataWidth + 4
|
property bool fitsMetadata: parent.width - redactedLayout.width > metadataWidth + 4
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ Rectangle{
|
||||||
Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter
|
Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter
|
||||||
Layout.preferredWidth: fontMetrics.font.pixelSize
|
Layout.preferredWidth: fontMetrics.font.pixelSize
|
||||||
Layout.preferredHeight: 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?" + timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
Label {
|
Label {
|
||||||
id: redactedLabel
|
id: redactedLabel
|
||||||
|
@ -40,7 +40,7 @@ Rectangle{
|
||||||
property var redactedPair: room.formatRedactedEvent(eventId)
|
property var redactedPair: room.formatRedactedEvent(eventId)
|
||||||
text: redactedPair["first"]
|
text: redactedPair["first"]
|
||||||
wrapMode: Label.WordWrap
|
wrapMode: Label.WordWrap
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
|
|
||||||
ToolTip.text: redactedPair["second"]
|
ToolTip.text: redactedPair["second"]
|
||||||
ToolTip.visible: hh.hovered
|
ToolTip.visible: hh.hovered
|
||||||
|
|
|
@ -54,7 +54,7 @@ AbstractButton {
|
||||||
anchors.top: replyContainer.top
|
anchors.top: replyContainer.top
|
||||||
anchors.bottom: replyContainer.bottom
|
anchors.bottom: replyContainer.bottom
|
||||||
width: 4
|
width: 4
|
||||||
color: TimelineManager.userColor(userId, Nheko.colors.base)
|
color: TimelineManager.userColor(userId, timelineRoot.palette.base)
|
||||||
}
|
}
|
||||||
|
|
||||||
onClicked: {
|
onClicked: {
|
||||||
|
@ -134,8 +134,8 @@ AbstractButton {
|
||||||
|
|
||||||
z: -1
|
z: -1
|
||||||
anchors.fill: replyContainer
|
anchors.fill: replyContainer
|
||||||
property color userColor: TimelineManager.userColor(userId, Nheko.colors.base)
|
property color userColor: TimelineManager.userColor(userId, timelineRoot.palette.base)
|
||||||
property color bgColor: Nheko.colors.base
|
property color bgColor: timelineRoot.palette.base
|
||||||
color: Qt.tint(bgColor, Qt.hsla(userColor.hslHue, 0.5, userColor.hslLightness, 0.1))
|
color: Qt.tint(bgColor, Qt.hsla(userColor.hslHue, 0.5, userColor.hslLightness, 0.1))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,8 +19,8 @@ MatrixText {
|
||||||
// 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\">
|
||||||
a { color:" + Nheko.colors.link + ";}
|
a { color:" + timelineRoot.palette.link + ";}
|
||||||
code { background-color: " + Nheko.colors.alternateBase + ";}
|
code { background-color: " + timelineRoot.palette.alternateBase + ";}
|
||||||
table {
|
table {
|
||||||
border-width: 1px;
|
border-width: 1px;
|
||||||
border-collapse: collapse;
|
border-collapse: collapse;
|
||||||
|
@ -28,14 +28,14 @@ MatrixText {
|
||||||
}
|
}
|
||||||
table th,
|
table th,
|
||||||
table td {
|
table td {
|
||||||
bgcolor: " + Nheko.colors.alternateBase + ";
|
bgcolor: " + timelineRoot.palette.alternateBase + ";
|
||||||
border-collapse: collapse;
|
border-collapse: collapse;
|
||||||
border: 1px solid " + Nheko.colors.text + ";
|
border: 1px solid " + timelineRoot.palette.text + ";
|
||||||
}
|
}
|
||||||
blockquote { margin-left: 1em; }
|
blockquote { margin-left: 1em; }
|
||||||
</style>
|
</style>
|
||||||
" + formatted.replace(/<pre>/g, "<pre style='white-space: pre-wrap; background-color: " + Nheko.colors.alternateBase + "'>").replace(/<del>/g, "<s>").replace(/<\/del>/g, "</s>").replace(/<strike>/g, "<s>").replace(/<\/strike>/g, "</s>")
|
" + formatted.replace(/<pre>/g, "<pre style='white-space: pre-wrap; background-color: " + timelineRoot.palette.alternateBase + "'>").replace(/<del>/g, "<s>").replace(/<\/del>/g, "</s>").replace(/<strike>/g, "<s>").replace(/<\/strike>/g, "</s>")
|
||||||
width: parent.width
|
width: parent?.width
|
||||||
height: isReply ? Math.round(Math.min(timelineView.height / 8, implicitHeight)) : implicitHeight
|
height: isReply ? Math.round(Math.min(timelineView.height / 8, implicitHeight)) : implicitHeight
|
||||||
clip: isReply
|
clip: isReply
|
||||||
selectByMouse: !Settings.mobileMode && !isReply
|
selectByMouse: !Settings.mobileMode && !isReply
|
||||||
|
|
|
@ -16,8 +16,8 @@ ApplicationWindow {
|
||||||
onClosing: VerificationManager.removeVerificationFlow(flow)
|
onClosing: VerificationManager.removeVerificationFlow(flow)
|
||||||
title: stack.currentItem.title_
|
title: stack.currentItem.title_
|
||||||
modality: Qt.NonModal
|
modality: Qt.NonModal
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
minimumHeight: stack.implicitHeight
|
minimumHeight: stack.implicitHeight
|
||||||
width: stack.implicitWidth
|
width: stack.implicitWidth
|
||||||
flags: Qt.Dialog | Qt.WindowCloseButtonHint | Qt.WindowTitleHint
|
flags: Qt.Dialog | Qt.WindowCloseButtonHint | Qt.WindowTitleHint
|
||||||
|
|
|
@ -11,7 +11,7 @@ import im.nheko 1.0
|
||||||
Pane {
|
Pane {
|
||||||
property string title: qsTr("Verification Code")
|
property string title: qsTr("Verification Code")
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
}
|
}
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
|
@ -23,7 +23,7 @@ Pane {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
wrapMode: Text.Wrap
|
wrapMode: Text.Wrap
|
||||||
text: qsTr("Please verify the following digits. You should see the same numbers on both sides. If they differ, please press 'They do not match!' to abort verification!")
|
text: qsTr("Please verify the following digits. You should see the same numbers on both sides. If they differ, please press 'They do not match!' to abort verification!")
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
verticalAlignment: Text.AlignVCenter
|
verticalAlignment: Text.AlignVCenter
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,19 +34,19 @@ Pane {
|
||||||
Label {
|
Label {
|
||||||
font.pixelSize: Qt.application.font.pixelSize * 2
|
font.pixelSize: Qt.application.font.pixelSize * 2
|
||||||
text: flow.sasList[0]
|
text: flow.sasList[0]
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
font.pixelSize: Qt.application.font.pixelSize * 2
|
font.pixelSize: Qt.application.font.pixelSize * 2
|
||||||
text: flow.sasList[1]
|
text: flow.sasList[1]
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
font.pixelSize: Qt.application.font.pixelSize * 2
|
font.pixelSize: Qt.application.font.pixelSize * 2
|
||||||
text: flow.sasList[2]
|
text: flow.sasList[2]
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,7 @@ import im.nheko 1.0
|
||||||
Pane {
|
Pane {
|
||||||
property string title: qsTr("Verification Code")
|
property string title: qsTr("Verification Code")
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
}
|
}
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
|
@ -23,7 +23,7 @@ Pane {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
wrapMode: Text.Wrap
|
wrapMode: Text.Wrap
|
||||||
text: qsTr("Please verify the following emoji. You should see the same emoji on both sides. If they differ, please press 'They do not match!' to abort verification!")
|
text: qsTr("Please verify the following emoji. You should see the same emoji on both sides. If they differ, please press 'They do not match!' to abort verification!")
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
verticalAlignment: Text.AlignVCenter
|
verticalAlignment: Text.AlignVCenter
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -379,13 +379,13 @@ Pane {
|
||||||
text: col.emoji.emoji
|
text: col.emoji.emoji
|
||||||
font.pixelSize: Qt.application.font.pixelSize * 2
|
font.pixelSize: Qt.application.font.pixelSize * 2
|
||||||
font.family: Settings.emojiFont
|
font.family: Settings.emojiFont
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
Layout.alignment: Qt.AlignHCenter | Qt.AlignBottom
|
Layout.alignment: Qt.AlignHCenter | Qt.AlignBottom
|
||||||
text: col.emoji.description
|
text: col.emoji.description
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,7 @@ import im.nheko 1.0
|
||||||
Pane {
|
Pane {
|
||||||
property string title: qsTr("Verification failed")
|
property string title: qsTr("Verification failed")
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
}
|
}
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
|
@ -42,7 +42,7 @@ Pane {
|
||||||
return qsTr("Unknown verification error.");
|
return qsTr("Unknown verification error.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
verticalAlignment: Text.AlignVCenter
|
verticalAlignment: Text.AlignVCenter
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ import im.nheko 1.0
|
||||||
Pane {
|
Pane {
|
||||||
property string title: flow.sender ? qsTr("Send Verification Request") : qsTr("Received Verification Request")
|
property string title: flow.sender ? qsTr("Send Verification Request") : qsTr("Received Verification Request")
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
}
|
}
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
|
@ -42,7 +42,7 @@ Pane {
|
||||||
return qsTr("Your device (%1) has requested to be verified.").arg(flow.deviceId);
|
return qsTr("Your device (%1) has requested to be verified.").arg(flow.deviceId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
verticalAlignment: Text.AlignVCenter
|
verticalAlignment: Text.AlignVCenter
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ import im.nheko 1.0
|
||||||
Pane {
|
Pane {
|
||||||
property string title: qsTr("Successful Verification")
|
property string title: qsTr("Successful Verification")
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
}
|
}
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
|
@ -25,7 +25,7 @@ Pane {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
wrapMode: Text.Wrap
|
wrapMode: Text.Wrap
|
||||||
text: qsTr("Verification successful! Both sides verified their devices!")
|
text: qsTr("Verification successful! Both sides verified their devices!")
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
verticalAlignment: Text.AlignVCenter
|
verticalAlignment: Text.AlignVCenter
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@ import im.nheko 1.0
|
||||||
Pane {
|
Pane {
|
||||||
property string title: qsTr("Waiting for other party…")
|
property string title: qsTr("Waiting for other party…")
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
}
|
}
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
|
@ -35,14 +35,14 @@ Pane {
|
||||||
return qsTr("Waiting for other side to complete the verification process.");
|
return qsTr("Waiting for other side to complete the verification process.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
verticalAlignment: Text.AlignVCenter
|
verticalAlignment: Text.AlignVCenter
|
||||||
}
|
}
|
||||||
|
|
||||||
Item { Layout.fillHeight: true; }
|
Item { Layout.fillHeight: true; }
|
||||||
Spinner {
|
Spinner {
|
||||||
Layout.alignment: Qt.AlignHCenter
|
Layout.alignment: Qt.AlignHCenter
|
||||||
foreground: Nheko.colors.mid
|
foreground: timelineRoot.palette.mid
|
||||||
}
|
}
|
||||||
Item { Layout.fillHeight: true; }
|
Item { Layout.fillHeight: true; }
|
||||||
|
|
||||||
|
|
|
@ -56,14 +56,14 @@ ApplicationWindow {
|
||||||
Label {
|
Label {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
text: profile? profile.displayName : ""
|
text: profile? profile.displayName : ""
|
||||||
color: TimelineManager.userColor(userID.text, Nheko.colors.window)
|
color: TimelineManager.userColor(userID.text, timelineRoot.palette.window)
|
||||||
font.pointSize: fontMetrics.font.pointSize
|
font.pointSize: fontMetrics.font.pointSize
|
||||||
}
|
}
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
text: userID.text
|
text: userID.text
|
||||||
color: Nheko.colors.buttonText
|
color: timelineRoot.palette.buttonText
|
||||||
font.pointSize: fontMetrics.font.pointSize * 0.9
|
font.pointSize: fontMetrics.font.pointSize * 0.9
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -89,7 +89,7 @@ ApplicationWindow {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.alignment: Qt.AlignLeft
|
Layout.alignment: Qt.AlignLeft
|
||||||
text: qsTr("Encryption")
|
text: qsTr("Encryption")
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
ToggleButton {
|
ToggleButton {
|
||||||
Layout.alignment: Qt.AlignRight
|
Layout.alignment: Qt.AlignRight
|
||||||
|
|
|
@ -62,7 +62,7 @@ ApplicationWindow {
|
||||||
Label {
|
Label {
|
||||||
Layout.preferredWidth: implicitWidth
|
Layout.preferredWidth: implicitWidth
|
||||||
text: qsTr("#")
|
text: qsTr("#")
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
MatrixTextField {
|
MatrixTextField {
|
||||||
id: newRoomAlias
|
id: newRoomAlias
|
||||||
|
@ -73,14 +73,14 @@ ApplicationWindow {
|
||||||
Layout.preferredWidth: implicitWidth
|
Layout.preferredWidth: implicitWidth
|
||||||
property string userName: userInfoGrid.profile.userid
|
property string userName: userInfoGrid.profile.userid
|
||||||
text: userName.substring(userName.indexOf(":"))
|
text: userName.substring(userName.indexOf(":"))
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Label {
|
Label {
|
||||||
Layout.preferredWidth: implicitWidth
|
Layout.preferredWidth: implicitWidth
|
||||||
Layout.alignment: Qt.AlignLeft
|
Layout.alignment: Qt.AlignLeft
|
||||||
text: qsTr("Public")
|
text: qsTr("Public")
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
HoverHandler {
|
HoverHandler {
|
||||||
id: privateHover
|
id: privateHover
|
||||||
}
|
}
|
||||||
|
@ -98,7 +98,7 @@ ApplicationWindow {
|
||||||
Layout.preferredWidth: implicitWidth
|
Layout.preferredWidth: implicitWidth
|
||||||
Layout.alignment: Qt.AlignLeft
|
Layout.alignment: Qt.AlignLeft
|
||||||
text: qsTr("Trusted")
|
text: qsTr("Trusted")
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
HoverHandler {
|
HoverHandler {
|
||||||
id: trustedHover
|
id: trustedHover
|
||||||
}
|
}
|
||||||
|
@ -117,7 +117,7 @@ ApplicationWindow {
|
||||||
Layout.preferredWidth: implicitWidth
|
Layout.preferredWidth: implicitWidth
|
||||||
Layout.alignment: Qt.AlignLeft
|
Layout.alignment: Qt.AlignLeft
|
||||||
text: qsTr("Encryption")
|
text: qsTr("Encryption")
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
HoverHandler {
|
HoverHandler {
|
||||||
id: encryptionHover
|
id: encryptionHover
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,8 +23,8 @@ ApplicationWindow {
|
||||||
title: qsTr("Editing image pack")
|
title: qsTr("Editing image pack")
|
||||||
height: 600
|
height: 600
|
||||||
width: 600
|
width: 600
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
color: Nheko.colors.base
|
color: timelineRoot.palette.base
|
||||||
modality: Qt.WindowModal
|
modality: Qt.WindowModal
|
||||||
flags: Qt.Dialog | Qt.WindowCloseButtonHint | Qt.WindowTitleHint
|
flags: Qt.Dialog | Qt.WindowCloseButtonHint | Qt.WindowTitleHint
|
||||||
|
|
||||||
|
@ -51,11 +51,6 @@ ApplicationWindow {
|
||||||
|
|
||||||
model: imagePack
|
model: imagePack
|
||||||
|
|
||||||
ScrollHelper {
|
|
||||||
flickable: parent
|
|
||||||
anchors.fill: parent
|
|
||||||
enabled: !Settings.mobileMode
|
|
||||||
}
|
|
||||||
|
|
||||||
header: AvatarListTile {
|
header: AvatarListTile {
|
||||||
title: imagePack.packname
|
title: imagePack.packname
|
||||||
|
@ -74,13 +69,13 @@ ApplicationWindow {
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
height: parent.height - Nheko.paddingSmall * 2
|
height: parent.height - Nheko.paddingSmall * 2
|
||||||
width: 3
|
width: 3
|
||||||
color: Nheko.colors.highlight
|
color: timelineRoot.palette.highlight
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
footer: Button {
|
footer: Button {
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
onClicked: addFilesDialog.open()
|
onClicked: addFilesDialog.open()
|
||||||
width: ListView.view.width
|
width: ListView.view.width
|
||||||
text: qsTr("Add images")
|
text: qsTr("Add images")
|
||||||
|
@ -101,11 +96,11 @@ ApplicationWindow {
|
||||||
delegate: AvatarListTile {
|
delegate: AvatarListTile {
|
||||||
id: packItem
|
id: packItem
|
||||||
|
|
||||||
property color background: Nheko.colors.window
|
property color background: timelineRoot.palette.window
|
||||||
property color importantText: Nheko.colors.text
|
property color importantText: timelineRoot.palette.text
|
||||||
property color unimportantText: Nheko.colors.buttonText
|
property color unimportantText: timelineRoot.palette.buttonText
|
||||||
property color bubbleBackground: Nheko.colors.highlight
|
property color bubbleBackground: timelineRoot.palette.highlight
|
||||||
property color bubbleText: Nheko.colors.highlightedText
|
property color bubbleText: timelineRoot.palette.highlightedText
|
||||||
required property string shortCode
|
required property string shortCode
|
||||||
required property string url
|
required property string url
|
||||||
required property string body
|
required property string body
|
||||||
|
@ -130,7 +125,7 @@ ApplicationWindow {
|
||||||
id: packinfoC
|
id: packinfoC
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
|
|
||||||
GridLayout {
|
GridLayout {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
|
|
@ -24,8 +24,8 @@ ApplicationWindow {
|
||||||
title: qsTr("Image pack settings")
|
title: qsTr("Image pack settings")
|
||||||
height: 600
|
height: 600
|
||||||
width: 800
|
width: 800
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
color: Nheko.colors.base
|
color: timelineRoot.palette.base
|
||||||
modality: Qt.NonModal
|
modality: Qt.NonModal
|
||||||
flags: Qt.Dialog | Qt.WindowCloseButtonHint | Qt.WindowTitleHint
|
flags: Qt.Dialog | Qt.WindowCloseButtonHint | Qt.WindowTitleHint
|
||||||
|
|
||||||
|
@ -57,15 +57,10 @@ ApplicationWindow {
|
||||||
model: packlist
|
model: packlist
|
||||||
clip: true
|
clip: true
|
||||||
|
|
||||||
ScrollHelper {
|
|
||||||
flickable: parent
|
|
||||||
anchors.fill: parent
|
|
||||||
enabled: !Settings.mobileMode
|
|
||||||
}
|
|
||||||
|
|
||||||
footer: ColumnLayout {
|
footer: ColumnLayout {
|
||||||
Button {
|
Button {
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
onClicked: {
|
onClicked: {
|
||||||
var dialog = packEditor.createObject(timelineRoot, {
|
var dialog = packEditor.createObject(timelineRoot, {
|
||||||
"imagePack": packlist.newPack(false)
|
"imagePack": packlist.newPack(false)
|
||||||
|
@ -79,7 +74,7 @@ ApplicationWindow {
|
||||||
}
|
}
|
||||||
|
|
||||||
Button {
|
Button {
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
onClicked: {
|
onClicked: {
|
||||||
var dialog = packEditor.createObject(timelineRoot, {
|
var dialog = packEditor.createObject(timelineRoot, {
|
||||||
"imagePack": packlist.newPack(true)
|
"imagePack": packlist.newPack(true)
|
||||||
|
@ -97,11 +92,11 @@ ApplicationWindow {
|
||||||
delegate: AvatarListTile {
|
delegate: AvatarListTile {
|
||||||
id: packItem
|
id: packItem
|
||||||
|
|
||||||
property color background: Nheko.colors.window
|
property color background: timelineRoot.palette.window
|
||||||
property color importantText: Nheko.colors.text
|
property color importantText: timelineRoot.palette.text
|
||||||
property color unimportantText: Nheko.colors.buttonText
|
property color unimportantText: timelineRoot.palette.buttonText
|
||||||
property color bubbleBackground: Nheko.colors.highlight
|
property color bubbleBackground: timelineRoot.palette.highlight
|
||||||
property color bubbleText: Nheko.colors.highlightedText
|
property color bubbleText: timelineRoot.palette.highlightedText
|
||||||
required property string displayName
|
required property string displayName
|
||||||
required property bool fromAccountData
|
required property bool fromAccountData
|
||||||
required property bool fromCurrentRoom
|
required property bool fromCurrentRoom
|
||||||
|
@ -133,7 +128,7 @@ ApplicationWindow {
|
||||||
id: packinfoC
|
id: packinfoC
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
id: packinfo
|
id: packinfo
|
||||||
|
@ -216,11 +211,6 @@ ApplicationWindow {
|
||||||
currentIndex: -1 // prevent sorting from stealing focus
|
currentIndex: -1 // prevent sorting from stealing focus
|
||||||
cacheBuffer: 500
|
cacheBuffer: 500
|
||||||
|
|
||||||
ScrollHelper {
|
|
||||||
flickable: parent
|
|
||||||
anchors.fill: parent
|
|
||||||
enabled: !Settings.mobileMode
|
|
||||||
}
|
|
||||||
|
|
||||||
// Individual emoji
|
// Individual emoji
|
||||||
delegate: AbstractButton {
|
delegate: AbstractButton {
|
||||||
|
@ -239,7 +229,7 @@ ApplicationWindow {
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
color: hovered ? Nheko.colors.highlight : 'transparent'
|
color: hovered ? timelineRoot.palette.highlight : 'transparent'
|
||||||
radius: 5
|
radius: 5
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ ApplicationWindow {
|
||||||
Label {
|
Label {
|
||||||
id: promptLabel
|
id: promptLabel
|
||||||
|
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
|
|
||||||
MatrixTextField {
|
MatrixTextField {
|
||||||
|
|
|
@ -34,8 +34,8 @@ ApplicationWindow {
|
||||||
title: qsTr("Invite users to %1").arg(plainRoomName)
|
title: qsTr("Invite users to %1").arg(plainRoomName)
|
||||||
height: 380
|
height: 380
|
||||||
width: 340
|
width: 340
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
flags: Qt.Dialog | Qt.WindowCloseButtonHint | Qt.WindowTitleHint
|
flags: Qt.Dialog | Qt.WindowCloseButtonHint | Qt.WindowTitleHint
|
||||||
|
|
||||||
Shortcut {
|
Shortcut {
|
||||||
|
@ -56,7 +56,7 @@ ApplicationWindow {
|
||||||
Label {
|
Label {
|
||||||
text: qsTr("User ID to invite")
|
text: qsTr("User ID to invite")
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
|
|
||||||
RowLayout {
|
RowLayout {
|
||||||
|
@ -67,7 +67,7 @@ ApplicationWindow {
|
||||||
|
|
||||||
property bool isValidMxid: text.match("@.+?:.{3,}")
|
property bool isValidMxid: text.match("@.+?:.{3,}")
|
||||||
|
|
||||||
backgroundColor: Nheko.colors.window
|
backgroundColor: timelineRoot.palette.window
|
||||||
placeholderText: qsTr("@joe:matrix.org", "Example user id. The name 'joe' can be localized however you want.")
|
placeholderText: qsTr("@joe:matrix.org", "Example user id. The name 'joe' can be localized however you want.")
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
onAccepted: {
|
onAccepted: {
|
||||||
|
@ -107,7 +107,7 @@ ApplicationWindow {
|
||||||
height: layout.implicitHeight + Nheko.paddingSmall * 2
|
height: layout.implicitHeight + Nheko.paddingSmall * 2
|
||||||
onClicked: TimelineManager.openGlobalUserProfile(model.mxid)
|
onClicked: TimelineManager.openGlobalUserProfile(model.mxid)
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: del.hovered ? Nheko.colors.dark : inviteDialogRoot.color
|
color: del.hovered ? timelineRoot.palette.dark : inviteDialogRoot.color
|
||||||
}
|
}
|
||||||
|
|
||||||
RowLayout {
|
RowLayout {
|
||||||
|
@ -137,7 +137,7 @@ ApplicationWindow {
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: model.mxid
|
text: model.mxid
|
||||||
color: del.hovered ? Nheko.colors.brightText : Nheko.colors.buttonText
|
color: del.hovered ? timelineRoot.palette.brightText : timelineRoot.palette.buttonText
|
||||||
font.pointSize: fontMetrics.font.pointSize * 0.9
|
font.pointSize: fontMetrics.font.pointSize * 0.9
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,8 +15,8 @@ ApplicationWindow {
|
||||||
title: qsTr("Join room")
|
title: qsTr("Join room")
|
||||||
modality: Qt.WindowModal
|
modality: Qt.WindowModal
|
||||||
flags: Qt.Dialog | Qt.WindowCloseButtonHint | Qt.WindowTitleHint
|
flags: Qt.Dialog | Qt.WindowCloseButtonHint | Qt.WindowTitleHint
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
width: 350
|
width: 350
|
||||||
height: fontMetrics.lineSpacing * 7
|
height: fontMetrics.lineSpacing * 7
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ ApplicationWindow {
|
||||||
id: promptLabel
|
id: promptLabel
|
||||||
|
|
||||||
text: qsTr("Room ID or alias")
|
text: qsTr("Room ID or alias")
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
|
|
||||||
MatrixTextField {
|
MatrixTextField {
|
||||||
|
|
|
@ -33,7 +33,7 @@ ApplicationWindow {
|
||||||
id: promptLabel
|
id: promptLabel
|
||||||
|
|
||||||
Layout.columnSpan: 2
|
Layout.columnSpan: 2
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
|
|
||||||
ComboBox {
|
ComboBox {
|
||||||
|
|
|
@ -14,8 +14,8 @@ ApplicationWindow {
|
||||||
|
|
||||||
height: 420
|
height: 420
|
||||||
width: 420
|
width: 420
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
flags: Qt.Tool | Qt.WindowStaysOnTopHint | Qt.WindowCloseButtonHint | Qt.WindowTitleHint
|
flags: Qt.Tool | Qt.WindowStaysOnTopHint | Qt.WindowCloseButtonHint | Qt.WindowTitleHint
|
||||||
|
|
||||||
Shortcut {
|
Shortcut {
|
||||||
|
@ -26,21 +26,21 @@ ApplicationWindow {
|
||||||
ScrollView {
|
ScrollView {
|
||||||
anchors.margins: Nheko.paddingMedium
|
anchors.margins: Nheko.paddingMedium
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
padding: Nheko.paddingMedium
|
padding: Nheko.paddingMedium
|
||||||
|
|
||||||
TextArea {
|
TextArea {
|
||||||
id: rawMessageView
|
id: rawMessageView
|
||||||
|
|
||||||
font: Nheko.monospaceFont()
|
font: Nheko.monospaceFont()
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
readOnly: true
|
readOnly: true
|
||||||
textFormat: Text.PlainText
|
textFormat: Text.PlainText
|
||||||
|
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: Nheko.colors.base
|
color: timelineRoot.palette.base
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,8 +19,8 @@ ApplicationWindow {
|
||||||
width: 340
|
width: 340
|
||||||
minimumHeight: 380
|
minimumHeight: 380
|
||||||
minimumWidth: headerTitle.width + 2 * Nheko.paddingMedium
|
minimumWidth: headerTitle.width + 2 * Nheko.paddingMedium
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
flags: Qt.Dialog | Qt.WindowCloseButtonHint | Qt.WindowTitleHint
|
flags: Qt.Dialog | Qt.WindowCloseButtonHint | Qt.WindowTitleHint
|
||||||
|
|
||||||
Shortcut {
|
Shortcut {
|
||||||
|
@ -36,14 +36,14 @@ ApplicationWindow {
|
||||||
Label {
|
Label {
|
||||||
id: headerTitle
|
id: headerTitle
|
||||||
|
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
Layout.alignment: Qt.AlignCenter
|
Layout.alignment: Qt.AlignCenter
|
||||||
text: qsTr("Read receipts")
|
text: qsTr("Read receipts")
|
||||||
font.pointSize: fontMetrics.font.pointSize * 1.5
|
font.pointSize: fontMetrics.font.pointSize * 1.5
|
||||||
}
|
}
|
||||||
|
|
||||||
ScrollView {
|
ScrollView {
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
padding: Nheko.paddingMedium
|
padding: Nheko.paddingMedium
|
||||||
ScrollBar.horizontal.visible: false
|
ScrollBar.horizontal.visible: false
|
||||||
Layout.fillHeight: true
|
Layout.fillHeight: true
|
||||||
|
@ -68,7 +68,7 @@ ApplicationWindow {
|
||||||
ToolTip.visible: hovered
|
ToolTip.visible: hovered
|
||||||
ToolTip.text: model.mxid
|
ToolTip.text: model.mxid
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: del.hovered ? Nheko.colors.dark : readReceiptsRoot.color
|
color: del.hovered ? timelineRoot.palette.dark : readReceiptsRoot.color
|
||||||
}
|
}
|
||||||
|
|
||||||
RowLayout {
|
RowLayout {
|
||||||
|
@ -92,13 +92,13 @@ ApplicationWindow {
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: model.displayName
|
text: model.displayName
|
||||||
color: TimelineManager.userColor(model ? model.mxid : "", Nheko.colors.window)
|
color: TimelineManager.userColor(model ? model.mxid : "", timelineRoot.palette.window)
|
||||||
font.pointSize: fontMetrics.font.pointSize
|
font.pointSize: fontMetrics.font.pointSize
|
||||||
}
|
}
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: model.timestamp
|
text: model.timestamp
|
||||||
color: Nheko.colors.buttonText
|
color: timelineRoot.palette.buttonText
|
||||||
font.pointSize: fontMetrics.font.pointSize * 0.9
|
font.pointSize: fontMetrics.font.pointSize * 0.9
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,8 +20,8 @@ ApplicationWindow {
|
||||||
minimumHeight: 340
|
minimumHeight: 340
|
||||||
height: 420
|
height: 420
|
||||||
width: 650
|
width: 650
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
modality: Qt.WindowModal
|
modality: Qt.WindowModal
|
||||||
flags: Qt.Dialog | Qt.WindowCloseButtonHint | Qt.WindowTitleHint
|
flags: Qt.Dialog | Qt.WindowCloseButtonHint | Qt.WindowTitleHint
|
||||||
title: qsTr("Explore Public Rooms")
|
title: qsTr("Explore Public Rooms")
|
||||||
|
@ -37,17 +37,12 @@ ApplicationWindow {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
model: publicRooms
|
model: publicRooms
|
||||||
|
|
||||||
ScrollHelper {
|
|
||||||
flickable: parent
|
|
||||||
anchors.fill: parent
|
|
||||||
}
|
|
||||||
|
|
||||||
delegate: Rectangle {
|
delegate: Rectangle {
|
||||||
id: roomDirDelegate
|
id: roomDirDelegate
|
||||||
|
|
||||||
property color background: Nheko.colors.window
|
property color background: timelineRoot.palette.window
|
||||||
property color importantText: Nheko.colors.text
|
property color importantText: timelineRoot.palette.text
|
||||||
property color unimportantText: Nheko.colors.buttonText
|
property color unimportantText: timelineRoot.palette.buttonText
|
||||||
property int avatarSize: fontMetrics.height * 3.2
|
property int avatarSize: fontMetrics.height * 3.2
|
||||||
|
|
||||||
color: background
|
color: background
|
||||||
|
@ -145,7 +140,7 @@ ApplicationWindow {
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
anchors.margins: Nheko.paddingLarge
|
anchors.margins: Nheko.paddingLarge
|
||||||
running: visible
|
running: visible
|
||||||
foreground: Nheko.colors.mid
|
foreground: timelineRoot.palette.mid
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -169,7 +164,7 @@ ApplicationWindow {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
selectByMouse: true
|
selectByMouse: true
|
||||||
font.pixelSize: fontMetrics.font.pixelSize
|
font.pixelSize: fontMetrics.font.pixelSize
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
placeholderText: qsTr("Search for public rooms")
|
placeholderText: qsTr("Search for public rooms")
|
||||||
onTextChanged: searchTimer.restart()
|
onTextChanged: searchTimer.restart()
|
||||||
|
|
||||||
|
@ -181,7 +176,7 @@ ApplicationWindow {
|
||||||
|
|
||||||
Layout.minimumWidth: 0.3 * header.width
|
Layout.minimumWidth: 0.3 * header.width
|
||||||
Layout.maximumWidth: 0.3 * header.width
|
Layout.maximumWidth: 0.3 * header.width
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
placeholderText: qsTr("Choose custom homeserver")
|
placeholderText: qsTr("Choose custom homeserver")
|
||||||
onTextChanged: publicRooms.setMatrixServer(text)
|
onTextChanged: publicRooms.setMatrixServer(text)
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,8 +21,8 @@ ApplicationWindow {
|
||||||
height: 650
|
height: 650
|
||||||
width: 420
|
width: 420
|
||||||
minimumHeight: 420
|
minimumHeight: 420
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
flags: Qt.Dialog | Qt.WindowCloseButtonHint | Qt.WindowTitleHint
|
flags: Qt.Dialog | Qt.WindowCloseButtonHint | Qt.WindowTitleHint
|
||||||
|
|
||||||
Shortcut {
|
Shortcut {
|
||||||
|
@ -95,7 +95,7 @@ ApplicationWindow {
|
||||||
}
|
}
|
||||||
|
|
||||||
ScrollView {
|
ScrollView {
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
padding: Nheko.paddingMedium
|
padding: Nheko.paddingMedium
|
||||||
ScrollBar.horizontal.visible: false
|
ScrollBar.horizontal.visible: false
|
||||||
Layout.fillHeight: true
|
Layout.fillHeight: true
|
||||||
|
@ -109,11 +109,6 @@ ApplicationWindow {
|
||||||
boundsBehavior: Flickable.StopAtBounds
|
boundsBehavior: Flickable.StopAtBounds
|
||||||
model: members
|
model: members
|
||||||
|
|
||||||
ScrollHelper {
|
|
||||||
flickable: parent
|
|
||||||
anchors.fill: parent
|
|
||||||
enabled: !Settings.mobileMode
|
|
||||||
}
|
|
||||||
|
|
||||||
delegate: ItemDelegate {
|
delegate: ItemDelegate {
|
||||||
id: del
|
id: del
|
||||||
|
@ -124,7 +119,7 @@ ApplicationWindow {
|
||||||
height: memberLayout.implicitHeight + Nheko.paddingSmall * 2
|
height: memberLayout.implicitHeight + Nheko.paddingSmall * 2
|
||||||
hoverEnabled: true
|
hoverEnabled: true
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: del.hovered ? Nheko.colors.dark : roomMembersRoot.color
|
color: del.hovered ? timelineRoot.palette.dark : roomMembersRoot.color
|
||||||
}
|
}
|
||||||
|
|
||||||
RowLayout {
|
RowLayout {
|
||||||
|
@ -157,7 +152,7 @@ ApplicationWindow {
|
||||||
|
|
||||||
ElidedLabel {
|
ElidedLabel {
|
||||||
fullText: model.mxid
|
fullText: model.mxid
|
||||||
color: del.hovered ? Nheko.colors.brightText : Nheko.colors.buttonText
|
color: del.hovered ? timelineRoot.palette.brightText : timelineRoot.palette.buttonText
|
||||||
font.pixelSize: Math.ceil(fontMetrics.font.pixelSize * 0.9)
|
font.pixelSize: Math.ceil(fontMetrics.font.pixelSize * 0.9)
|
||||||
elideWidth: del.width - Nheko.paddingMedium * 2 - avatar.width - encryptInd.width
|
elideWidth: del.width - Nheko.paddingMedium * 2 - avatar.width - encryptInd.width
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,8 +21,8 @@ ApplicationWindow {
|
||||||
minimumHeight: 450
|
minimumHeight: 450
|
||||||
width: 450
|
width: 450
|
||||||
height: 680
|
height: 680
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
modality: Qt.NonModal
|
modality: Qt.NonModal
|
||||||
flags: Qt.Dialog | Qt.WindowCloseButtonHint | Qt.WindowTitleHint
|
flags: Qt.Dialog | Qt.WindowCloseButtonHint | Qt.WindowTitleHint
|
||||||
title: qsTr("Room Settings")
|
title: qsTr("Room Settings")
|
||||||
|
@ -31,10 +31,7 @@ ApplicationWindow {
|
||||||
sequence: StandardKey.Cancel
|
sequence: StandardKey.Cancel
|
||||||
onActivated: roomSettingsDialog.close()
|
onActivated: roomSettingsDialog.close()
|
||||||
}
|
}
|
||||||
ScrollHelper {
|
|
||||||
flickable: flickable
|
|
||||||
anchors.fill: flickable
|
|
||||||
}
|
|
||||||
Flickable {
|
Flickable {
|
||||||
id: flickable
|
id: flickable
|
||||||
boundsBehavior: Flickable.StopAtBounds
|
boundsBehavior: Flickable.StopAtBounds
|
||||||
|
@ -66,7 +63,7 @@ ApplicationWindow {
|
||||||
Spinner {
|
Spinner {
|
||||||
Layout.alignment: Qt.AlignHCenter
|
Layout.alignment: Qt.AlignHCenter
|
||||||
visible: roomSettings.isLoading
|
visible: roomSettings.isLoading
|
||||||
foreground: Nheko.colors.mid
|
foreground: timelineRoot.palette.mid
|
||||||
running: roomSettings.isLoading
|
running: roomSettings.isLoading
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -117,7 +114,7 @@ ApplicationWindow {
|
||||||
textFormat: isNameEditingAllowed ? TextEdit.PlainText : TextEdit.RichText
|
textFormat: isNameEditingAllowed ? TextEdit.PlainText : TextEdit.RichText
|
||||||
text: isNameEditingAllowed ? roomSettings.plainRoomName : roomSettings.roomName
|
text: isNameEditingAllowed ? roomSettings.plainRoomName : roomSettings.roomName
|
||||||
font.pixelSize: fontMetrics.font.pixelSize * 2
|
font.pixelSize: fontMetrics.font.pixelSize * 2
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
|
|
||||||
Layout.alignment: Qt.AlignHCenter
|
Layout.alignment: Qt.AlignHCenter
|
||||||
Layout.maximumWidth: parent.width - (Nheko.paddingSmall * 2) - nameChangeButton.anchors.leftMargin - (nameChangeButton.width * 2)
|
Layout.maximumWidth: parent.width - (Nheko.paddingSmall * 2) - nameChangeButton.anchors.leftMargin - (nameChangeButton.width * 2)
|
||||||
|
@ -162,7 +159,7 @@ ApplicationWindow {
|
||||||
Label {
|
Label {
|
||||||
text: qsTr("%n member(s)", "", roomSettings.memberCount)
|
text: qsTr("%n member(s)", "", roomSettings.memberCount)
|
||||||
Layout.alignment: Qt.AlignHCenter
|
Layout.alignment: Qt.AlignHCenter
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
|
|
||||||
TapHandler {
|
TapHandler {
|
||||||
onSingleTapped: TimelineManager.openRoomMembers(Rooms.getRoomById(roomSettings.roomId))
|
onSingleTapped: TimelineManager.openRoomMembers(Rooms.getRoomById(roomSettings.roomId))
|
||||||
|
@ -195,7 +192,7 @@ ApplicationWindow {
|
||||||
wrapMode: TextEdit.WordWrap
|
wrapMode: TextEdit.WordWrap
|
||||||
background: null
|
background: null
|
||||||
selectByMouse: !Settings.mobileMode
|
selectByMouse: !Settings.mobileMode
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
horizontalAlignment: TextEdit.AlignHCenter
|
horizontalAlignment: TextEdit.AlignHCenter
|
||||||
onLinkActivated: Nheko.openLink(link)
|
onLinkActivated: Nheko.openLink(link)
|
||||||
|
|
||||||
|
@ -245,7 +242,7 @@ ApplicationWindow {
|
||||||
Label {
|
Label {
|
||||||
text: qsTr("SETTINGS")
|
text: qsTr("SETTINGS")
|
||||||
font.bold: true
|
font.bold: true
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
|
@ -255,7 +252,7 @@ ApplicationWindow {
|
||||||
Label {
|
Label {
|
||||||
text: qsTr("Notifications")
|
text: qsTr("Notifications")
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
|
|
||||||
ComboBox {
|
ComboBox {
|
||||||
|
@ -271,7 +268,7 @@ ApplicationWindow {
|
||||||
Label {
|
Label {
|
||||||
text: qsTr("Room access")
|
text: qsTr("Room access")
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
|
|
||||||
ComboBox {
|
ComboBox {
|
||||||
|
@ -296,7 +293,7 @@ ApplicationWindow {
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: qsTr("Encryption")
|
text: qsTr("Encryption")
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
|
|
||||||
ToggleButton {
|
ToggleButton {
|
||||||
|
@ -334,7 +331,7 @@ ApplicationWindow {
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: qsTr("Sticker & Emote Settings")
|
text: qsTr("Sticker & Emote Settings")
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
|
|
||||||
Button {
|
Button {
|
||||||
|
@ -346,7 +343,7 @@ ApplicationWindow {
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: qsTr("Hidden events")
|
text: qsTr("Hidden events")
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
|
|
||||||
HiddenEventsDialog {
|
HiddenEventsDialog {
|
||||||
|
@ -375,7 +372,7 @@ ApplicationWindow {
|
||||||
Label {
|
Label {
|
||||||
text: qsTr("INFO")
|
text: qsTr("INFO")
|
||||||
font.bold: true
|
font.bold: true
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
|
@ -384,7 +381,7 @@ ApplicationWindow {
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: qsTr("Internal ID")
|
text: qsTr("Internal ID")
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
|
|
||||||
AbstractButton { // AbstractButton does not allow setting text color
|
AbstractButton { // AbstractButton does not allow setting text color
|
||||||
|
@ -395,7 +392,7 @@ ApplicationWindow {
|
||||||
id: idLabel
|
id: idLabel
|
||||||
text: roomSettings.roomId
|
text: roomSettings.roomId
|
||||||
font.pixelSize: Math.floor(fontMetrics.font.pixelSize * 0.8)
|
font.pixelSize: Math.floor(fontMetrics.font.pixelSize * 0.8)
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
width: parent.width
|
width: parent.width
|
||||||
horizontalAlignment: Text.AlignRight
|
horizontalAlignment: Text.AlignRight
|
||||||
wrapMode: Text.WrapAnywhere
|
wrapMode: Text.WrapAnywhere
|
||||||
|
@ -419,14 +416,14 @@ ApplicationWindow {
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: qsTr("Room Version")
|
text: qsTr("Room Version")
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: roomSettings.roomVersion
|
text: roomSettings.roomVersion
|
||||||
font.pixelSize: fontMetrics.font.pixelSize
|
font.pixelSize: fontMetrics.font.pixelSize
|
||||||
Layout.alignment: Qt.AlignRight
|
Layout.alignment: Qt.AlignRight
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,8 +21,8 @@ ApplicationWindow {
|
||||||
width: 420
|
width: 420
|
||||||
minimumWidth: 150
|
minimumWidth: 150
|
||||||
minimumHeight: 150
|
minimumHeight: 150
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
title: profile.isGlobalUserProfile ? qsTr("Global User Profile") : qsTr("Room User Profile")
|
title: profile.isGlobalUserProfile ? qsTr("Global User Profile") : qsTr("Room User Profile")
|
||||||
modality: Qt.NonModal
|
modality: Qt.NonModal
|
||||||
flags: Qt.Dialog | Qt.WindowCloseButtonHint | Qt.WindowTitleHint
|
flags: Qt.Dialog | Qt.WindowCloseButtonHint | Qt.WindowTitleHint
|
||||||
|
@ -45,11 +45,6 @@ ApplicationWindow {
|
||||||
anchors.margins: 10
|
anchors.margins: 10
|
||||||
footerPositioning: ListView.OverlayFooter
|
footerPositioning: ListView.OverlayFooter
|
||||||
|
|
||||||
ScrollHelper {
|
|
||||||
flickable: parent
|
|
||||||
anchors.fill: parent
|
|
||||||
enabled: !Settings.mobileMode
|
|
||||||
}
|
|
||||||
|
|
||||||
header: ColumnLayout {
|
header: ColumnLayout {
|
||||||
id: contentL
|
id: contentL
|
||||||
|
@ -87,7 +82,7 @@ ApplicationWindow {
|
||||||
Layout.alignment: Qt.AlignHCenter
|
Layout.alignment: Qt.AlignHCenter
|
||||||
running: profile.isLoading
|
running: profile.isLoading
|
||||||
visible: profile.isLoading
|
visible: profile.isLoading
|
||||||
foreground: Nheko.colors.mid
|
foreground: timelineRoot.palette.mid
|
||||||
}
|
}
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
|
@ -135,7 +130,7 @@ ApplicationWindow {
|
||||||
readOnly: !isUsernameEditingAllowed
|
readOnly: !isUsernameEditingAllowed
|
||||||
text: profile.displayName
|
text: profile.displayName
|
||||||
font.pixelSize: 20
|
font.pixelSize: 20
|
||||||
color: TimelineManager.userColor(profile.userid, Nheko.colors.window)
|
color: TimelineManager.userColor(profile.userid, timelineRoot.palette.window)
|
||||||
font.bold: true
|
font.bold: true
|
||||||
Layout.alignment: Qt.AlignHCenter
|
Layout.alignment: Qt.AlignHCenter
|
||||||
Layout.maximumWidth: parent.width - (Nheko.paddingSmall * 2) - usernameChangeButton.anchors.leftMargin - (usernameChangeButton.width * 2)
|
Layout.maximumWidth: parent.width - (Nheko.paddingSmall * 2) - usernameChangeButton.anchors.leftMargin - (usernameChangeButton.width * 2)
|
||||||
|
@ -300,7 +295,7 @@ ApplicationWindow {
|
||||||
Layout.alignment: Qt.AlignLeft
|
Layout.alignment: Qt.AlignLeft
|
||||||
elide: Text.ElideRight
|
elide: Text.ElideRight
|
||||||
font.bold: true
|
font.bold: true
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
text: deviceId
|
text: deviceId
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -346,7 +341,7 @@ ApplicationWindow {
|
||||||
|
|
||||||
readOnly: !deviceNameRow.isEditingAllowed
|
readOnly: !deviceNameRow.isEditingAllowed
|
||||||
text: deviceName
|
text: deviceName
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
Layout.alignment: Qt.AlignLeft
|
Layout.alignment: Qt.AlignLeft
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
selectByMouse: true
|
selectByMouse: true
|
||||||
|
@ -381,7 +376,7 @@ ApplicationWindow {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.alignment: Qt.AlignLeft
|
Layout.alignment: Qt.AlignLeft
|
||||||
elide: Text.ElideRight
|
elide: Text.ElideRight
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
text: qsTr("Last seen %1 from %2").arg(new Date(lastTs).toLocaleString(Locale.ShortFormat)).arg(lastIp ? lastIp : "???")
|
text: qsTr("Last seen %1 from %2").arg(new Date(lastTs).toLocaleString(Locale.ShortFormat)).arg(lastIp ? lastIp : "???")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -429,7 +424,7 @@ ApplicationWindow {
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,9 +19,9 @@ Menu {
|
||||||
property alias model: gridView.model
|
property alias model: gridView.model
|
||||||
property var textArea
|
property var textArea
|
||||||
property string emojiCategory: "people"
|
property string emojiCategory: "people"
|
||||||
property real highlightHue: Nheko.colors.highlight.hslHue
|
property real highlightHue: timelineRoot.palette.highlight.hslHue
|
||||||
property real highlightSat: Nheko.colors.highlight.hslSaturation
|
property real highlightSat: timelineRoot.palette.highlight.hslSaturation
|
||||||
property real highlightLight: Nheko.colors.highlight.hslLightness
|
property real highlightLight: timelineRoot.palette.highlight.hslLightness
|
||||||
|
|
||||||
function show(showAt, callback) {
|
function show(showAt, callback) {
|
||||||
console.debug("Showing emojiPicker");
|
console.debug("Showing emojiPicker");
|
||||||
|
@ -41,7 +41,7 @@ Menu {
|
||||||
width: 7 * 52 + 20
|
width: 7 * 52 + 20
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
height: columnView.implicitHeight + 4
|
height: columnView.implicitHeight + 4
|
||||||
width: 7 * 52 + 20
|
width: 7 * 52 + 20
|
||||||
|
|
||||||
|
@ -62,10 +62,10 @@ Menu {
|
||||||
|
|
||||||
Layout.topMargin: 3
|
Layout.topMargin: 3
|
||||||
Layout.preferredWidth: 7 * 52 + 20 - 6
|
Layout.preferredWidth: 7 * 52 + 20 - 6
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
background: null
|
background: null
|
||||||
placeholderTextColor: Nheko.colors.buttonText
|
placeholderTextColor: timelineRoot.palette.buttonText
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
placeholderText: qsTr("Search")
|
placeholderText: qsTr("Search")
|
||||||
selectByMouse: true
|
selectByMouse: true
|
||||||
rightPadding: clearSearch.width
|
rightPadding: clearSearch.width
|
||||||
|
@ -91,7 +91,7 @@ Menu {
|
||||||
id: clearSearch
|
id: clearSearch
|
||||||
|
|
||||||
visible: emojiSearch.text !== ''
|
visible: emojiSearch.text !== ''
|
||||||
icon.source: "image://colorimage/:/icons/icons/ui/round-remove-button.svg?" + (clearSearch.hovered ? Nheko.colors.highlight : Nheko.colors.buttonText)
|
icon.source: "image://colorimage/:/icons/icons/ui/round-remove-button.svg?" + (clearSearch.hovered ? timelineRoot.palette.highlight : timelineRoot.palette.buttonText)
|
||||||
focusPolicy: Qt.NoFocus
|
focusPolicy: Qt.NoFocus
|
||||||
onClicked: emojiSearch.clear()
|
onClicked: emojiSearch.clear()
|
||||||
hoverEnabled: true
|
hoverEnabled: true
|
||||||
|
@ -106,7 +106,7 @@ Menu {
|
||||||
Image {
|
Image {
|
||||||
height: parent.height - 2 * Nheko.paddingSmall
|
height: parent.height - 2 * Nheko.paddingSmall
|
||||||
width: height
|
width: height
|
||||||
source: "image://colorimage/:/icons/icons/ui/round-remove-button.svg?" + (clearSearch.hovered ? Nheko.colors.highlight : Nheko.colors.buttonText)
|
source: "image://colorimage/:/icons/icons/ui/round-remove-button.svg?" + (clearSearch.hovered ? timelineRoot.palette.highlight : timelineRoot.palette.buttonText)
|
||||||
|
|
||||||
anchors {
|
anchors {
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
|
@ -134,11 +134,6 @@ Menu {
|
||||||
currentIndex: -1 // prevent sorting from stealing focus
|
currentIndex: -1 // prevent sorting from stealing focus
|
||||||
cacheBuffer: 500
|
cacheBuffer: 500
|
||||||
|
|
||||||
ScrollHelper {
|
|
||||||
flickable: parent
|
|
||||||
anchors.fill: parent
|
|
||||||
enabled: !Settings.mobileMode
|
|
||||||
}
|
|
||||||
|
|
||||||
// Individual emoji
|
// Individual emoji
|
||||||
delegate: AbstractButton {
|
delegate: AbstractButton {
|
||||||
|
@ -172,12 +167,12 @@ Menu {
|
||||||
font.family: Settings.emojiFont
|
font.family: Settings.emojiFont
|
||||||
font.pixelSize: 36
|
font.pixelSize: 36
|
||||||
text: model.unicode.replace('\ufe0f', '')
|
text: model.unicode.replace('\ufe0f', '')
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
color: hovered ? Nheko.colors.highlight : 'transparent'
|
color: hovered ? timelineRoot.palette.highlight : 'transparent'
|
||||||
radius: 5
|
radius: 5
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -300,14 +295,14 @@ Menu {
|
||||||
mipmap: true
|
mipmap: true
|
||||||
sourceSize.width: 32 * Screen.devicePixelRatio
|
sourceSize.width: 32 * Screen.devicePixelRatio
|
||||||
sourceSize.height: 32 * Screen.devicePixelRatio
|
sourceSize.height: 32 * Screen.devicePixelRatio
|
||||||
source: "image://colorimage/" + model.image + "?" + (hovered ? Nheko.colors.highlight : Nheko.colors.buttonText)
|
source: "image://colorimage/" + model.image + "?" + (hovered ? timelineRoot.palette.highlight : timelineRoot.palette.buttonText)
|
||||||
}
|
}
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
color: emojiPopup.model.category === model.category ? Qt.hsla(highlightHue, highlightSat, highlightLight, 0.2) : 'transparent'
|
color: emojiPopup.model.category === model.category ? Qt.hsla(highlightHue, highlightSat, highlightLight, 0.2) : 'transparent'
|
||||||
radius: 5
|
radius: 5
|
||||||
border.color: emojiPopup.model.category === model.category ? Nheko.colors.highlight : 'transparent'
|
border.color: emojiPopup.model.category === model.category ? timelineRoot.palette.highlight : 'transparent'
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,9 +18,9 @@ Menu {
|
||||||
property string roomid
|
property string roomid
|
||||||
property alias model: gridView.model
|
property alias model: gridView.model
|
||||||
property var textArea
|
property var textArea
|
||||||
property real highlightHue: Nheko.colors.highlight.hslHue
|
property real highlightHue: timelineRoot.palette.highlight.hslHue
|
||||||
property real highlightSat: Nheko.colors.highlight.hslSaturation
|
property real highlightSat: timelineRoot.palette.highlight.hslSaturation
|
||||||
property real highlightLight: Nheko.colors.highlight.hslLightness
|
property real highlightLight: timelineRoot.palette.highlight.hslLightness
|
||||||
readonly property int stickerDim: 128
|
readonly property int stickerDim: 128
|
||||||
readonly property int stickerDimPad: 128 + Nheko.paddingSmall
|
readonly property int stickerDimPad: 128 + Nheko.paddingSmall
|
||||||
readonly property int stickersPerRow: 3
|
readonly property int stickersPerRow: 3
|
||||||
|
@ -42,7 +42,7 @@ Menu {
|
||||||
width: stickersPerRow * stickerDimPad + 20
|
width: stickersPerRow * stickerDimPad + 20
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
height: columnView.implicitHeight + 4
|
height: columnView.implicitHeight + 4
|
||||||
width: stickersPerRow * stickerDimPad + 20
|
width: stickersPerRow * stickerDimPad + 20
|
||||||
|
|
||||||
|
@ -63,10 +63,10 @@ Menu {
|
||||||
|
|
||||||
Layout.topMargin: 3
|
Layout.topMargin: 3
|
||||||
Layout.preferredWidth: stickersPerRow * stickerDimPad + 20 - 6
|
Layout.preferredWidth: stickersPerRow * stickerDimPad + 20 - 6
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
background: null
|
background: null
|
||||||
placeholderTextColor: Nheko.colors.buttonText
|
placeholderTextColor: timelineRoot.palette.buttonText
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
placeholderText: qsTr("Search")
|
placeholderText: qsTr("Search")
|
||||||
selectByMouse: true
|
selectByMouse: true
|
||||||
rightPadding: clearSearch.width
|
rightPadding: clearSearch.width
|
||||||
|
@ -89,7 +89,7 @@ Menu {
|
||||||
id: clearSearch
|
id: clearSearch
|
||||||
|
|
||||||
visible: emojiSearch.text !== ''
|
visible: emojiSearch.text !== ''
|
||||||
icon.source: "image://colorimage/:/icons/icons/ui/round-remove-button.svg?" + (clearSearch.hovered ? Nheko.colors.highlight : Nheko.colors.buttonText)
|
icon.source: "image://colorimage/:/icons/icons/ui/round-remove-button.svg?" + (clearSearch.hovered ? timelineRoot.palette.highlight : timelineRoot.palette.buttonText)
|
||||||
focusPolicy: Qt.NoFocus
|
focusPolicy: Qt.NoFocus
|
||||||
onClicked: emojiSearch.clear()
|
onClicked: emojiSearch.clear()
|
||||||
hoverEnabled: true
|
hoverEnabled: true
|
||||||
|
@ -104,7 +104,7 @@ Menu {
|
||||||
Image {
|
Image {
|
||||||
height: parent.height - 2 * Nheko.paddingSmall
|
height: parent.height - 2 * Nheko.paddingSmall
|
||||||
width: height
|
width: height
|
||||||
source: "image://colorimage/:/icons/icons/ui/round-remove-button.svg?" + (clearSearch.hovered ? Nheko.colors.highlight : Nheko.colors.buttonText)
|
source: "image://colorimage/:/icons/icons/ui/round-remove-button.svg?" + (clearSearch.hovered ? timelineRoot.palette.highlight : timelineRoot.palette.buttonText)
|
||||||
|
|
||||||
anchors {
|
anchors {
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
|
@ -133,11 +133,6 @@ Menu {
|
||||||
currentIndex: -1 // prevent sorting from stealing focus
|
currentIndex: -1 // prevent sorting from stealing focus
|
||||||
cacheBuffer: 500
|
cacheBuffer: 500
|
||||||
|
|
||||||
ScrollHelper {
|
|
||||||
flickable: parent
|
|
||||||
anchors.fill: parent
|
|
||||||
enabled: !Settings.mobileMode
|
|
||||||
}
|
|
||||||
|
|
||||||
// Individual emoji
|
// Individual emoji
|
||||||
delegate: AbstractButton {
|
delegate: AbstractButton {
|
||||||
|
@ -162,7 +157,7 @@ Menu {
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
color: hovered ? Nheko.colors.highlight : 'transparent'
|
color: hovered ? timelineRoot.palette.highlight : 'transparent'
|
||||||
radius: 5
|
radius: 5
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ Item {
|
||||||
id: scroll
|
id: scroll
|
||||||
|
|
||||||
clip: false
|
clip: false
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
ScrollBar.horizontal.visible: false
|
ScrollBar.horizontal.visible: false
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
|
@ -71,7 +71,7 @@ Item {
|
||||||
|
|
||||||
visible: running
|
visible: running
|
||||||
running: login.lookingUpHs
|
running: login.lookingUpHs
|
||||||
foreground: Nheko.colors.mid
|
foreground: timelineRoot.palette.mid
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -125,7 +125,7 @@ Item {
|
||||||
|
|
||||||
visible: running
|
visible: running
|
||||||
running: login.loggingIn
|
running: login.loggingIn
|
||||||
foreground: Nheko.colors.mid
|
foreground: timelineRoot.palette.mid
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ Item {
|
||||||
id: scroll
|
id: scroll
|
||||||
|
|
||||||
clip: false
|
clip: false
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
ScrollBar.horizontal.visible: false
|
ScrollBar.horizontal.visible: false
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
|
@ -70,7 +70,7 @@ Item {
|
||||||
|
|
||||||
visible: running
|
visible: running
|
||||||
running: regis.lookingUpHs
|
running: regis.lookingUpHs
|
||||||
foreground: Nheko.colors.mid
|
foreground: timelineRoot.palette.mid
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -100,7 +100,7 @@ Item {
|
||||||
|
|
||||||
visible: running
|
visible: running
|
||||||
running: regis.lookingUpUsername
|
running: regis.lookingUpUsername
|
||||||
foreground: Nheko.colors.mid
|
foreground: timelineRoot.palette.mid
|
||||||
}
|
}
|
||||||
|
|
||||||
Image {
|
Image {
|
||||||
|
@ -172,7 +172,7 @@ Item {
|
||||||
|
|
||||||
visible: running
|
visible: running
|
||||||
running: regis.registering
|
running: regis.registering
|
||||||
foreground: Nheko.colors.mid
|
foreground: timelineRoot.palette.mid
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,12 +17,12 @@ Rectangle {
|
||||||
|
|
||||||
property int collapsePoint: 800
|
property int collapsePoint: 800
|
||||||
property bool collapsed: width < collapsePoint
|
property bool collapsed: width < collapsePoint
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
|
|
||||||
ScrollView {
|
ScrollView {
|
||||||
id: scroll
|
id: scroll
|
||||||
|
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
ScrollBar.horizontal.visible: false
|
ScrollBar.horizontal.visible: false
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
anchors.topMargin: (collapsed? backButton.height : 0)+Nheko.paddingLarge
|
anchors.topMargin: (collapsed? backButton.height : 0)+Nheko.paddingLarge
|
||||||
|
@ -52,7 +52,7 @@ Rectangle {
|
||||||
Label {
|
Label {
|
||||||
Layout.alignment: Qt.AlignLeft
|
Layout.alignment: Qt.AlignLeft
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
text: model.name
|
text: model.name
|
||||||
//Layout.column: 0
|
//Layout.column: 0
|
||||||
Layout.columnSpan: (model.type == UserSettingsModel.SectionTitle && !userSettingsDialog.collapsed) ? 2 : 1
|
Layout.columnSpan: (model.type == UserSettingsModel.SectionTitle && !userSettingsDialog.collapsed) ? 2 : 1
|
||||||
|
@ -160,7 +160,7 @@ Rectangle {
|
||||||
DelegateChoice {
|
DelegateChoice {
|
||||||
roleValue: UserSettingsModel.ReadOnlyText
|
roleValue: UserSettingsModel.ReadOnlyText
|
||||||
TextEdit {
|
TextEdit {
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
text: model.value
|
text: model.value
|
||||||
readOnly: true
|
readOnly: true
|
||||||
selectByMouse: !Settings.mobileMode
|
selectByMouse: !Settings.mobileMode
|
||||||
|
@ -177,7 +177,7 @@ Rectangle {
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
color: Nheko.colors.buttonText
|
color: timelineRoot.palette.buttonText
|
||||||
height: 1
|
height: 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,7 +27,7 @@ ColumnLayout {
|
||||||
Layout.alignment: Qt.AlignHCenter
|
Layout.alignment: Qt.AlignHCenter
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
text: qsTr("Welcome to nheko! The desktop client for the Matrix protocol.")
|
text: qsTr("Welcome to nheko! The desktop client for the Matrix protocol.")
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
font.pointSize: fontMetrics.font.pointSize*2
|
font.pointSize: fontMetrics.font.pointSize*2
|
||||||
wrapMode: Text.Wrap
|
wrapMode: Text.Wrap
|
||||||
horizontalAlignment: Text.AlignHCenter
|
horizontalAlignment: Text.AlignHCenter
|
||||||
|
@ -37,7 +37,7 @@ ColumnLayout {
|
||||||
Layout.alignment: Qt.AlignHCenter
|
Layout.alignment: Qt.AlignHCenter
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
text: qsTr("Enjoy your stay!")
|
text: qsTr("Enjoy your stay!")
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
font.pointSize: fontMetrics.font.pointSize*1.5
|
font.pointSize: fontMetrics.font.pointSize*1.5
|
||||||
wrapMode: Text.Wrap
|
wrapMode: Text.Wrap
|
||||||
horizontalAlignment: Text.AlignHCenter
|
horizontalAlignment: Text.AlignHCenter
|
||||||
|
|
|
@ -10,7 +10,7 @@ import im.nheko 1.0
|
||||||
Slider {
|
Slider {
|
||||||
id: control
|
id: control
|
||||||
|
|
||||||
property color progressColor: Nheko.colors.highlight
|
property color progressColor: timelineRoot.palette.highlight
|
||||||
property bool alwaysShowSlider: true
|
property bool alwaysShowSlider: true
|
||||||
property int sliderRadius: 16
|
property int sliderRadius: 16
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ Slider {
|
||||||
width: control.availableWidth - handle.width
|
width: control.availableWidth - handle.width
|
||||||
height: implicitHeight
|
height: implicitHeight
|
||||||
radius: height / 2
|
radius: height / 2
|
||||||
color: Nheko.colors.buttonText
|
color: timelineRoot.palette.buttonText
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
width: control.visualPosition * parent.width
|
width: control.visualPosition * parent.width
|
||||||
|
|
|
@ -45,7 +45,7 @@ Popup {
|
||||||
padding: Nheko.paddingLarge
|
padding: Nheko.paddingLarge
|
||||||
|
|
||||||
contentItem: Label {
|
contentItem: Label {
|
||||||
color: Nheko.colors.light
|
color: timelineRoot.palette.light
|
||||||
width: Math.max(Overlay.overlay? Overlay.overlay.width/2 : 0, 400)
|
width: Math.max(Overlay.overlay? Overlay.overlay.width/2 : 0, 400)
|
||||||
text: snackbar.currentMessage
|
text: snackbar.currentMessage
|
||||||
font.bold: true
|
font.bold: true
|
||||||
|
@ -53,7 +53,7 @@ Popup {
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
radius: Nheko.paddingLarge
|
radius: Nheko.paddingLarge
|
||||||
color: Nheko.colors.dark
|
color: timelineRoot.palette.dark
|
||||||
opacity: 0.8
|
opacity: 0.8
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,7 @@ Rectangle {
|
||||||
}
|
}
|
||||||
|
|
||||||
color: {
|
color: {
|
||||||
var wc = Nheko.colors.alternateBase;
|
var wc = timelineRoot.palette.alternateBase;
|
||||||
return Qt.rgba(wc.r, wc.g, wc.b, 0.5);
|
return Qt.rgba(wc.r, wc.g, wc.b, 0.5);
|
||||||
}
|
}
|
||||||
opacity: control.shouldShowControls ? 1 : 0
|
opacity: control.shouldShowControls ? 1 : 0
|
||||||
|
@ -96,7 +96,7 @@ Rectangle {
|
||||||
id: playbackStateImage
|
id: playbackStateImage
|
||||||
|
|
||||||
Layout.alignment: Qt.AlignLeft
|
Layout.alignment: Qt.AlignLeft
|
||||||
buttonTextColor: Nheko.colors.text
|
buttonTextColor: timelineRoot.palette.text
|
||||||
Layout.preferredHeight: 24
|
Layout.preferredHeight: 24
|
||||||
Layout.preferredWidth: 24
|
Layout.preferredWidth: 24
|
||||||
image: {
|
image: {
|
||||||
|
@ -116,7 +116,7 @@ Rectangle {
|
||||||
id: volumeButton
|
id: volumeButton
|
||||||
|
|
||||||
Layout.alignment: Qt.AlignLeft
|
Layout.alignment: Qt.AlignLeft
|
||||||
buttonTextColor: Nheko.colors.text
|
buttonTextColor: timelineRoot.palette.text
|
||||||
Layout.preferredHeight: 24
|
Layout.preferredHeight: 24
|
||||||
Layout.preferredWidth: 24
|
Layout.preferredWidth: 24
|
||||||
image: {
|
image: {
|
||||||
|
@ -215,7 +215,7 @@ Rectangle {
|
||||||
Label {
|
Label {
|
||||||
Layout.alignment: Qt.AlignRight
|
Layout.alignment: Qt.AlignRight
|
||||||
text: (!control.mediaLoaded ? "-- " : durationToString(control.positionValue)) + " / " + durationToString(control.duration)
|
text: (!control.mediaLoaded ? "-- " : durationToString(control.positionValue)) + " / " + durationToString(control.duration)
|
||||||
color: Nheko.colors.text
|
color: timelineRoot.palette.text
|
||||||
}
|
}
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
|
|
|
@ -10,7 +10,7 @@ import im.nheko 1.0
|
||||||
|
|
||||||
Popup {
|
Popup {
|
||||||
modal: true
|
modal: true
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
// only set the anchors on Qt 5.12 or higher
|
// only set the anchors on Qt 5.12 or higher
|
||||||
// see https://doc.qt.io/qt-5/qml-qtquick-controls2-popup.html#anchors.centerIn-prop
|
// see https://doc.qt.io/qt-5/qml-qtquick-controls2-popup.html#anchors.centerIn-prop
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
|
@ -32,7 +32,7 @@ Popup {
|
||||||
Image {
|
Image {
|
||||||
Layout.preferredWidth: 22
|
Layout.preferredWidth: 22
|
||||||
Layout.preferredHeight: 22
|
Layout.preferredHeight: 22
|
||||||
source: "image://colorimage/:/icons/icons/ui/microphone-unmute.svg?" + Nheko.colors.windowText
|
source: "image://colorimage/:/icons/icons/ui/microphone-unmute.svg?" + timelineRoot.palette.windowText
|
||||||
}
|
}
|
||||||
|
|
||||||
ComboBox {
|
ComboBox {
|
||||||
|
@ -50,7 +50,7 @@ Popup {
|
||||||
Image {
|
Image {
|
||||||
Layout.preferredWidth: 22
|
Layout.preferredWidth: 22
|
||||||
Layout.preferredHeight: 22
|
Layout.preferredHeight: 22
|
||||||
source: "image://colorimage/:/icons/icons/ui/video-call.svg?" + Nheko.colors.windowText
|
source: "image://colorimage/:/icons/icons/ui/video-call.svg?" + timelineRoot.palette.windowText
|
||||||
}
|
}
|
||||||
|
|
||||||
ComboBox {
|
ComboBox {
|
||||||
|
@ -82,8 +82,8 @@ Popup {
|
||||||
}
|
}
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
border.color: Nheko.colors.windowText
|
border.color: timelineRoot.palette.windowText
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,7 @@ Popup {
|
||||||
closePolicy: Popup.NoAutoClose
|
closePolicy: Popup.NoAutoClose
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: parent.height
|
height: parent.height
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
|
|
||||||
Component {
|
Component {
|
||||||
id: deviceError
|
id: deviceError
|
||||||
|
@ -46,7 +46,7 @@ Popup {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
text: CallManager.callPartyDisplayName
|
text: CallManager.callPartyDisplayName
|
||||||
font.pointSize: fontMetrics.font.pointSize * 2
|
font.pointSize: fontMetrics.font.pointSize * 2
|
||||||
color: Nheko.colors.windowText
|
color: timelineRoot.palette.windowText
|
||||||
horizontalAlignment: Text.AlignHCenter
|
horizontalAlignment: Text.AlignHCenter
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -69,14 +69,14 @@ Popup {
|
||||||
Layout.alignment: Qt.AlignCenter
|
Layout.alignment: Qt.AlignCenter
|
||||||
Layout.preferredWidth: callInv.height / 10
|
Layout.preferredWidth: callInv.height / 10
|
||||||
Layout.preferredHeight: callInv.height / 10
|
Layout.preferredHeight: callInv.height / 10
|
||||||
source: "image://colorimage/" + image + "?" + Nheko.colors.windowText
|
source: "image://colorimage/" + image + "?" + timelineRoot.palette.windowText
|
||||||
}
|
}
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
Layout.alignment: Qt.AlignCenter
|
Layout.alignment: Qt.AlignCenter
|
||||||
text: CallManager.callType == CallType.VIDEO ? qsTr("Video Call") : qsTr("Voice Call")
|
text: CallManager.callType == CallType.VIDEO ? qsTr("Video Call") : qsTr("Voice Call")
|
||||||
font.pointSize: fontMetrics.font.pointSize * 2
|
font.pointSize: fontMetrics.font.pointSize * 2
|
||||||
color: Nheko.colors.windowText
|
color: timelineRoot.palette.windowText
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -95,7 +95,7 @@ Popup {
|
||||||
Image {
|
Image {
|
||||||
Layout.preferredWidth: deviceCombos.imageSize
|
Layout.preferredWidth: deviceCombos.imageSize
|
||||||
Layout.preferredHeight: deviceCombos.imageSize
|
Layout.preferredHeight: deviceCombos.imageSize
|
||||||
source: "image://colorimage/:/icons/icons/ui/microphone-unmute.svg?" + Nheko.colors.windowText
|
source: "image://colorimage/:/icons/icons/ui/microphone-unmute.svg?" + timelineRoot.palette.windowText
|
||||||
}
|
}
|
||||||
|
|
||||||
ComboBox {
|
ComboBox {
|
||||||
|
@ -114,7 +114,7 @@ Popup {
|
||||||
Image {
|
Image {
|
||||||
Layout.preferredWidth: deviceCombos.imageSize
|
Layout.preferredWidth: deviceCombos.imageSize
|
||||||
Layout.preferredHeight: deviceCombos.imageSize
|
Layout.preferredHeight: deviceCombos.imageSize
|
||||||
source: "image://colorimage/:/icons/icons/ui/video.svg?" + Nheko.colors.windowText
|
source: "image://colorimage/:/icons/icons/ui/video.svg?" + timelineRoot.palette.windowText
|
||||||
}
|
}
|
||||||
|
|
||||||
ComboBox {
|
ComboBox {
|
||||||
|
@ -202,8 +202,8 @@ Popup {
|
||||||
}
|
}
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
border.color: Nheko.colors.windowText
|
border.color: timelineRoot.palette.windowText
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -91,7 +91,7 @@ Rectangle {
|
||||||
Layout.rightMargin: 4
|
Layout.rightMargin: 4
|
||||||
icon.source: CallManager.callType == CallType.VIDEO ? "qrc:/icons/icons/ui/video.svg" : "qrc:/icons/icons/ui/place-call.svg"
|
icon.source: CallManager.callType == CallType.VIDEO ? "qrc:/icons/icons/ui/video.svg" : "qrc:/icons/icons/ui/place-call.svg"
|
||||||
text: qsTr("Accept")
|
text: qsTr("Accept")
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
onClicked: {
|
onClicked: {
|
||||||
if (CallManager.mics.length == 0) {
|
if (CallManager.mics.length == 0) {
|
||||||
var dialog = deviceError.createObject(timelineRoot, {
|
var dialog = deviceError.createObject(timelineRoot, {
|
||||||
|
@ -127,7 +127,7 @@ Rectangle {
|
||||||
Layout.rightMargin: 16
|
Layout.rightMargin: 16
|
||||||
icon.source: "qrc:/icons/icons/ui/end-call.svg"
|
icon.source: "qrc:/icons/icons/ui/end-call.svg"
|
||||||
text: qsTr("Decline")
|
text: qsTr("Decline")
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
onClicked: {
|
onClicked: {
|
||||||
CallManager.hangUp();
|
CallManager.hangUp();
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,19 +25,19 @@ Popup {
|
||||||
Image {
|
Image {
|
||||||
Layout.preferredWidth: 16
|
Layout.preferredWidth: 16
|
||||||
Layout.preferredHeight: 16
|
Layout.preferredHeight: 16
|
||||||
source: "image://colorimage/" + image + "?" + Nheko.colors.windowText
|
source: "image://colorimage/" + image + "?" + timelineRoot.palette.windowText
|
||||||
}
|
}
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: errorString
|
text: errorString
|
||||||
color: Nheko.colors.windowText
|
color: timelineRoot.palette.windowText
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
border.color: Nheko.colors.windowText
|
border.color: timelineRoot.palette.windowText
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,7 @@ Popup {
|
||||||
anchors.centerIn = parent;
|
anchors.centerIn = parent;
|
||||||
|
|
||||||
}
|
}
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
|
|
||||||
Component {
|
Component {
|
||||||
id: deviceError
|
id: deviceError
|
||||||
|
@ -39,7 +39,7 @@ Popup {
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: qsTr("Place a call to %1?").arg(room.roomName)
|
text: qsTr("Place a call to %1?").arg(room.roomName)
|
||||||
color: Nheko.colors.windowText
|
color: timelineRoot.palette.windowText
|
||||||
}
|
}
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
|
@ -140,7 +140,7 @@ Popup {
|
||||||
Image {
|
Image {
|
||||||
Layout.preferredWidth: 22
|
Layout.preferredWidth: 22
|
||||||
Layout.preferredHeight: 22
|
Layout.preferredHeight: 22
|
||||||
source: "image://colorimage/:/icons/icons/ui/microphone-unmute.svg?" + Nheko.colors.windowText
|
source: "image://colorimage/:/icons/icons/ui/microphone-unmute.svg?" + timelineRoot.palette.windowText
|
||||||
}
|
}
|
||||||
|
|
||||||
ComboBox {
|
ComboBox {
|
||||||
|
@ -161,7 +161,7 @@ Popup {
|
||||||
Image {
|
Image {
|
||||||
Layout.preferredWidth: 22
|
Layout.preferredWidth: 22
|
||||||
Layout.preferredHeight: 22
|
Layout.preferredHeight: 22
|
||||||
source: "image://colorimage/:/icons/icons/ui/video.svg?" + Nheko.colors.windowText
|
source: "image://colorimage/:/icons/icons/ui/video.svg?" + timelineRoot.palette.windowText
|
||||||
}
|
}
|
||||||
|
|
||||||
ComboBox {
|
ComboBox {
|
||||||
|
@ -178,8 +178,8 @@ Popup {
|
||||||
}
|
}
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
border.color: Nheko.colors.windowText
|
border.color: timelineRoot.palette.windowText
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,7 @@ Popup {
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
frameRateCombo.currentIndex = frameRateCombo.find(Settings.screenShareFrameRate);
|
frameRateCombo.currentIndex = frameRateCombo.find(Settings.screenShareFrameRate);
|
||||||
}
|
}
|
||||||
palette: Nheko.colors
|
palette: timelineRoot.palette
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
Label {
|
Label {
|
||||||
|
@ -27,7 +27,7 @@ Popup {
|
||||||
Layout.rightMargin: 8
|
Layout.rightMargin: 8
|
||||||
Layout.alignment: Qt.AlignLeft
|
Layout.alignment: Qt.AlignLeft
|
||||||
text: qsTr("Share desktop with %1?").arg(room.roomName)
|
text: qsTr("Share desktop with %1?").arg(room.roomName)
|
||||||
color: Nheko.colors.windowText
|
color: timelineRoot.palette.windowText
|
||||||
}
|
}
|
||||||
|
|
||||||
RowLayout {
|
RowLayout {
|
||||||
|
@ -38,7 +38,7 @@ Popup {
|
||||||
Label {
|
Label {
|
||||||
Layout.alignment: Qt.AlignLeft
|
Layout.alignment: Qt.AlignLeft
|
||||||
text: qsTr("Window:")
|
text: qsTr("Window:")
|
||||||
color: Nheko.colors.windowText
|
color: timelineRoot.palette.windowText
|
||||||
}
|
}
|
||||||
|
|
||||||
ComboBox {
|
ComboBox {
|
||||||
|
@ -58,7 +58,7 @@ Popup {
|
||||||
Label {
|
Label {
|
||||||
Layout.alignment: Qt.AlignLeft
|
Layout.alignment: Qt.AlignLeft
|
||||||
text: qsTr("Frame rate:")
|
text: qsTr("Frame rate:")
|
||||||
color: Nheko.colors.windowText
|
color: timelineRoot.palette.windowText
|
||||||
}
|
}
|
||||||
|
|
||||||
ComboBox {
|
ComboBox {
|
||||||
|
@ -156,8 +156,8 @@ Popup {
|
||||||
}
|
}
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: Nheko.colors.window
|
color: timelineRoot.palette.window
|
||||||
border.color: Nheko.colors.windowText
|
border.color: timelineRoot.palette.windowText
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -106,7 +106,6 @@
|
||||||
<file>qml/PrivacyScreen.qml</file>
|
<file>qml/PrivacyScreen.qml</file>
|
||||||
<file>qml/Reactions.qml</file>
|
<file>qml/Reactions.qml</file>
|
||||||
<file>qml/ReplyPopup.qml</file>
|
<file>qml/ReplyPopup.qml</file>
|
||||||
<file>qml/ScrollHelper.qml</file>
|
|
||||||
<file>qml/StatusIndicator.qml</file>
|
<file>qml/StatusIndicator.qml</file>
|
||||||
<file>qml/TimelineRow.qml</file>
|
<file>qml/TimelineRow.qml</file>
|
||||||
<file>qml/TopBar.qml</file>
|
<file>qml/TopBar.qml</file>
|
||||||
|
|
|
@ -81,6 +81,9 @@ MxcImageRunnable::run()
|
||||||
static QImage
|
static QImage
|
||||||
clipRadius(QImage img, double radius)
|
clipRadius(QImage img, double radius)
|
||||||
{
|
{
|
||||||
|
if (img.isNull())
|
||||||
|
return img;
|
||||||
|
|
||||||
QImage out(img.size(), QImage::Format_ARGB32_Premultiplied);
|
QImage out(img.size(), QImage::Format_ARGB32_Premultiplied);
|
||||||
out.fill(Qt::transparent);
|
out.fill(Qt::transparent);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue