summaryrefslogtreecommitdiffstats
path: root/src/ui
diff options
context:
space:
mode:
authorNicolas Werner <nicolas.werner@hotmail.de>2022-06-18 00:17:24 +0200
committerNicolas Werner <nicolas.werner@hotmail.de>2022-06-18 00:17:24 +0200
commit07228d336ab74b90c39d2cf8c9e152f93bb38f7f (patch)
tree86894b4e6e6130f54766522d70af3c5185fa1095 /src/ui
parentb57152a1c906c4c97e853c3d19770bd515e1d44f (diff)
Support the knock_restricted rule
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/RoomSettings.cpp13
-rw-r--r--src/ui/RoomSettings.h2
2 files changed, 15 insertions, 0 deletions
diff --git a/src/ui/RoomSettings.cpp b/src/ui/RoomSettings.cpp
index 42db1955..2d124e1e 100644
--- a/src/ui/RoomSettings.cpp
+++ b/src/ui/RoomSettings.cpp
@@ -78,6 +78,8 @@ RoomSettings::RoomSettings(QString roomid, QObject *parent)
accessRules_ = 3;
} else if (info_.join_rule == state::JoinRule::Restricted) {
accessRules_ = 4;
+ } else if (info_.join_rule == state::JoinRule::KnockRestricted) {
+ accessRules_ = 5;
}
emit accessJoinRulesChanged();
}
@@ -263,6 +265,14 @@ RoomSettings::supportsRestricted() const
info_.version != "3" && info_.version != "4" && info_.version != "5" &&
info_.version != "6" && info_.version != "7";
}
+bool
+RoomSettings::supportsKnockRestricted() const
+{
+ return info_.version != "" && info_.version != "1" && info_.version != "2" &&
+ info_.version != "3" && info_.version != "4" && info_.version != "5" &&
+ info_.version != "6" && info_.version != "7" && info_.version != "8" &&
+ info_.version != "9";
+}
void
RoomSettings::changeNotifications(int currentIndex)
@@ -349,6 +359,9 @@ RoomSettings::changeAccessRules(int index)
case 4:
event.join_rule = state::JoinRule::Restricted;
break;
+ case 5:
+ event.join_rule = state::JoinRule::KnockRestricted;
+ break;
default:
event.join_rule = state::JoinRule::Invite;
}
diff --git a/src/ui/RoomSettings.h b/src/ui/RoomSettings.h
index 9912cfd6..4cb5bcf4 100644
--- a/src/ui/RoomSettings.h
+++ b/src/ui/RoomSettings.h
@@ -48,6 +48,7 @@ class RoomSettings : public QObject
Q_PROPERTY(bool isEncryptionEnabled READ isEncryptionEnabled NOTIFY encryptionChanged)
Q_PROPERTY(bool supportsKnocking READ supportsKnocking CONSTANT)
Q_PROPERTY(bool supportsRestricted READ supportsRestricted CONSTANT)
+ Q_PROPERTY(bool supportsKnockRestricted READ supportsKnockRestricted CONSTANT)
public:
RoomSettings(QString roomid, QObject *parent = nullptr);
@@ -74,6 +75,7 @@ public:
bool isEncryptionEnabled() const;
bool supportsKnocking() const;
bool supportsRestricted() const;
+ bool supportsKnockRestricted() const;
Q_INVOKABLE void enableEncryption();
Q_INVOKABLE void updateAvatar();