aboutsummaryrefslogtreecommitdiff
path: root/lib/room.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/room.cpp')
-rw-r--r--lib/room.cpp46
1 files changed, 19 insertions, 27 deletions
diff --git a/lib/room.cpp b/lib/room.cpp
index 475c6570..fa3f10a6 100644
--- a/lib/room.cpp
+++ b/lib/room.cpp
@@ -108,7 +108,7 @@ public:
QHash<StateEventKey, const StateEventBase*> currentState;
/// Servers with aliases for this room except the one of the local user
/// \sa Room::remoteAliases
- // This may not be required anymore
+
QSet<QString> aliasServers;
Timeline timeline;
@@ -432,15 +432,20 @@ QString Room::name() const
return d->getCurrentState<RoomNameEvent>()->name();
}
-QStringList Room::localAliases() const
+QStringList Room::aliases() const
{
- QStringList result(d
- ->getCurrentState<RoomCanonicalAliasEvent>()->alias());
- result += d->getCurrentState<RoomCanonicalAliasEvent>()->alt_aliases();
+ QStringList result(d->getCurrentState<RoomCanonicalAliasEvent>()->alias());
+ result += d->getCurrentState<RoomCanonicalAliasEvent>()->altAliases();
return result;
}
-// Not sure about this function, maybe it is no more required
+QStringList Room::localAliases() const
+{
+ return d->getCurrentState<RoomAliasesEvent>(
+ connection()->domain())
+ ->aliases();
+}
+
QStringList Room::remoteAliases() const
{
QStringList result;
@@ -1693,6 +1698,8 @@ void Room::setName(const QString& newName)
d->requestSetState<RoomNameEvent>(newName);
}
+// Change might be required here as well.
+// Not sure what will be best
void Room::setCanonicalAlias(const QString& newAlias)
{
d->requestSetState<RoomCanonicalAliasEvent>(newAlias);
@@ -1700,7 +1707,7 @@ void Room::setCanonicalAlias(const QString& newAlias)
void Room::setLocalAliases(const QStringList& aliases)
{
- d->requestSetState<RoomCanonicalAliasEvent>(aliases);
+ d->requestSetState<RoomCanonicalAliasEvent>(this->canonicalAlias(), aliases);
}
void Room::setTopic(const QString& newTopic)
@@ -2355,23 +2362,8 @@ Room::Changes Room::processStateEvent(const RoomEvent& e)
}
, [this,oldStateEvent] (const RoomAliasesEvent& ae) {
// clang-format on
- if (ae.aliases().isEmpty()) {
- if (d->aliasServers.remove(ae.stateKey()))
- qCDebug(STATE).noquote()
- << ae.stateKey() << "no more has aliases for room"
- << objectName();
- } else {
- d->aliasServers.insert(ae.stateKey());
- qCDebug(STATE).nospace().noquote()
- << "New server with aliases for room " << objectName()
- << ": " << ae.stateKey();
- }
- const auto previousAliases =
- oldStateEvent
- ? static_cast<const RoomAliasesEvent*>(oldStateEvent)->aliases()
- : QStringList();
- connection()->updateRoomAliases(id(), previousAliases, ae.aliases());
- return OtherChange;
+ // This event has been removed by MSC-2432
+ return NoChange;
// clang-format off
}
, [this, oldStateEvent] (const RoomCanonicalAliasEvent& cae) {
@@ -2386,7 +2378,7 @@ Room::Changes Room::processStateEvent(const RoomEvent& e)
auto previousAltAliases =
oldStateEvent
? static_cast<const RoomCanonicalAliasEvent*>(oldStateEvent)
- ->alt_aliases()
+ ->altAliases()
: QStringList();
if (!previousCanonicalAlias.isEmpty()) {
@@ -2395,7 +2387,7 @@ Room::Changes Room::processStateEvent(const RoomEvent& e)
const auto previousAliases = std::move(previousAltAliases);
- auto newAliases = cae.alt_aliases();
+ auto newAliases = cae.altAliases();
if (!cae.alias().isEmpty()) {
newAliases.push_front(cae.alias());
@@ -2651,7 +2643,7 @@ QString Room::Private::calculateDisplayname() const
return dispName;
// 3. m.room.aliases - only local aliases, subject for further removal
- const auto aliases = q->localAliases();
+ const auto aliases = q->aliases();
if (!aliases.isEmpty())
return aliases.front();