Files
neochat/src/settings/RoomSettingsView.qml
Carl Schwan a15a11f44b Rework config dialog
Use new KirigamiAddons ConfigurationsView as a replacement for
CategorizedSettings. Fix some issues on desktop when running Qt 6.8
and some less recent issues on mobile.

Visually this looks the same.
2024-06-29 18:03:40 +02:00

84 lines
2.5 KiB
QML

// SPDX-FileCopyrightText: 2021 Carl Schwan <carlschwan@kde.org>
// SPDX-License-Identifier: LGPL-2.0-or-later
pragma Singleton
import QtQuick
import org.kde.kirigami as Kirigami
import org.kde.kirigamiaddons.settings as KirigamiSettings
import QtQuick.Layouts
import org.kde.neochat
KirigamiSettings.ConfigurationView {
id: root
enum Type {
Room,
Space
}
property NeoChatRoom _room
property NeoChatConnection _connection
function openRoomSettings(room: NeoChatRoom, type: int): void {
root._room = room;
root._connection = room.connection;
if (type === RoomSettingsView.Type.Space) {
root.title = i18nc("@title:window", "Space Settings");
} else {
root.title = i18nc("@title:window", "Room Settings");
}
open();
}
objectName: "settingsPage"
modules: [
KirigamiSettings.ConfigurationModule {
moduleId: "general"
text: i18n("General")
icon.name: "settings-configure"
page: () => Qt.createComponent("org.kde.neochat.settings", "RoomGeneralPage")
initialProperties: () => {
return {
room: root._room,
connection: root._connection
};
}
},
KirigamiSettings.ConfigurationModule {
moduleId: "security"
text: i18n("Security")
icon.name: "security-low"
page: () => Qt.createComponent("org.kde.neochat.settings", "RoomSecurityPage")
initialProperties: () => {
return {
room: root._room
};
}
},
KirigamiSettings.ConfigurationModule {
moduleId: "permissions"
text: i18n("Permissions")
icon.name: "visibility"
page: () => Qt.createComponent("org.kde.neochat.settings", "Permissions")
initialProperties: () => {
return {
room: root._room
};
}
},
KirigamiSettings.ConfigurationModule {
moduleId: "notifications"
text: i18n("Notifications")
icon.name: "notifications"
page: () => Qt.createComponent("org.kde.neochat.settings", "PushNotification")
initialProperties: () => {
return {
room: root._room
};
}
}
]
}