Move to upstream JoinRuleEvent

This commit is contained in:
James Graham
2025-01-25 21:26:33 +00:00
parent 6dc4baeeb5
commit 8750486f7b
8 changed files with 18 additions and 166 deletions

View File

@@ -9,6 +9,8 @@ import QtQuick.Layouts
import org.kde.kirigami as Kirigami
import org.kde.kirigamiaddons.formcard as FormCard
import Quotient
import org.kde.neochat
FormCard.FormCardPage {
@@ -45,23 +47,23 @@ FormCard.FormCardPage {
FormCard.FormRadioDelegate {
text: i18nc("@option:check", "Private (invite only)")
description: i18n("Only invited people can join.")
checked: room.joinRule === "invite"
checked: room.joinRule === JoinRule.Invite
enabled: room.canSendState("m.room.join_rules")
onCheckedChanged: if (checked && room.joinRule != "invite") {
root.room.joinRule = "invite";
onCheckedChanged: if (checked && room.joinRule != JoinRule.Invite) {
root.room.joinRule = JoinRule.Invite;
}
}
FormCard.FormRadioDelegate {
text: i18nc("@option:check", "Space members")
description: i18n("Anyone in the selected spaces can find and join.") + (!["8", "9", "10"].includes(room.version) ? `\n${needUpgradeRoom}` : "")
checked: room.joinRule === "restricted"
checked: room.joinRule === JoinRule.Restricted
enabled: room.canSendState("m.room.join_rules") && ["8", "9", "10"].includes(room.version)
onCheckedChanged: if (checked && room.joinRule != "restricted") {
onCheckedChanged: if (checked && room.joinRule != JoinRule.Restricted) {
selectSpacesDialog.createObject(QQC2.Overlay.overlay).open();
}
contentItem.children: QQC2.Button {
visible: root.room.joinRule === "restricted"
visible: root.room.joinRule === JoinRule.Restricted
text: i18n("Select spaces")
icon.name: "list-add"
@@ -82,20 +84,20 @@ FormCard.FormCardPage {
FormCard.FormRadioDelegate {
text: i18nc("@option:check", "Knock")
description: i18n("People not in the room need to request an invite to join the room.") + (!["7", "8", "9", "10"].includes(room.version) ? `\n${needUpgradeRoom}` : "")
checked: room.joinRule === "knock"
checked: room.joinRule === JoinRule.Knock
// https://spec.matrix.org/v1.4/rooms/#feature-matrix
enabled: room.canSendState("m.room.join_rules") && ["7", "8", "9", "10"].includes(room.version)
onCheckedChanged: if (checked && room.joinRule != "knock") {
root.room.joinRule = "knock";
onCheckedChanged: if (checked && room.joinRule != JoinRule.Knock) {
root.room.joinRule = JoinRule.Knock;
}
}
FormCard.FormRadioDelegate {
text: i18nc("@option:check", "Public")
description: i18nc("@option:check", "Anyone can find and join.")
checked: room.joinRule === "public"
checked: room.joinRule === JoinRule.Public
enabled: room.canSendState("m.room.join_rules")
onCheckedChanged: if (checked && root.room.joinRule != "public") {
root.room.joinRule = "public";
onCheckedChanged: if (checked && root.room.joinRule != JoinRule.Public) {
root.room.joinRule = JoinRule.Public;
}
}
}