Page MenuHomePhorge

RoomSettingsPage.qml
No OneTemporary

Size
2 KB
Referenced Files
None
Subscribers
None

RoomSettingsPage.qml

/*
* This file is part of kazv.
* SPDX-FileCopyrightText: 2023 tusooa <tusooa@kazv.moe>
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import QtQuick 2.15
import QtQuick.Layouts 1.15
import QtQuick.Controls 2.15
import org.kde.kirigami 2.13 as Kirigami
import '../matrix-helpers.js' as Helpers
import '..' as Kazv
import '.' as RoomSettings
Kirigami.ScrollablePage {
id: roomSettingsPage
property var room
property var roomDisplayName: Helpers.roomNameOrHeroes(room, l10n)
property var customTagIds: room.tagIds.filter(k => k.startsWith('u.'))
title: l10n.get('room-settings-page-title', { room: roomDisplayName })
function tagIdToName(tagId) {
return tagId.slice(2);
}
property var tagHandler: RoomSettings.RoomTagHandler {
room: roomSettingsPage.room
}
ColumnLayout {
Label {
text: l10n.get('room-settings-tags')
Layout.fillWidth: true
}
CheckBox {
text: l10n.get('room-settings-favourited')
checkable: true
checked: tagHandler.hasTag('m.favourite')
enabled: tagHandler.available
onToggled: tagHandler.toggleTag('m.favourite')
}
ListView {
model: customTagIds.length
Layout.fillWidth: true
Layout.fillHeight: true
Layout.minimumHeight: childrenRect.height
delegate: Kirigami.SwipeListItem {
required property var index
Label {
text: tagIdToName(customTagIds[index])
}
actions: [
Kirigami.Action {
enabled: tagHandler.available
iconName: 'list-remove-symbolic'
text: l10n.get('room-settings-remove-tag')
onTriggered: tagHandler.toggleTag(customTagIds[index])
}
]
}
}
RowLayout {
TextField {
id: newTagName
enabled: tagHandler.available
text: ''
Layout.fillWidth: true
}
Button {
enabled: tagHandler.available
text: l10n.get('room-settings-add-tag')
onClicked: {
tagHandler.toggleTag('u.' + newTagName.text)
}
}
Connections {
target: tagHandler
function onTagAdded(tagId) {
if (tagId === 'u.' + newTagName.text) {
newTagName.text = '';
}
}
}
}
}
}

File Metadata

Mime Type
text/plain
Expires
Wed, May 14, 7:16 AM (1 d, 11 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
110202
Default Alt Text
RoomSettingsPage.qml (2 KB)

Event Timeline