Navigate to space when room is selected

fixes #1260
spellcheck
Nicolas Werner 2 years ago
parent f3b7919a53
commit b2ccf766ba
No known key found for this signature in database
GPG Key ID: C8D75E610773F2D9
  1. 3
      resources/qml/RoomList.qml
  2. 3
      src/timeline/CommunitiesModel.cpp
  3. 4
      src/timeline/RoomlistModel.cpp
  4. 1
      src/timeline/RoomlistModel.h
  5. 3
      src/timeline/TimelineViewManager.cpp

@ -257,9 +257,6 @@ Page {
onClicked: {
console.log("tapped " + roomId);
if (isSpace && Communities.currentTagId != "space:"+roomId)
Communities.currentTagId = "space:"+roomId;
if (!Rooms.currentRoom || Rooms.currentRoom.roomId !== roomId)
Rooms.setCurrentRoom(roomId);
else

@ -579,6 +579,9 @@ CommunitiesModel::sync(const mtx::responses::Sync &sync_)
void
CommunitiesModel::setCurrentTagId(const QString &tagId)
{
if (currentTagId_ == tagId)
return;
if (tagId.startsWith(QLatin1String("tag:"))) {
auto tag = tagId.mid(4);
for (const auto &t : qAsConst(tags_)) {

@ -768,6 +768,10 @@ RoomlistModel::setCurrentRoom(const QString &roomid)
currentRoomPreview_.reset();
emit currentRoomChanged(currentRoom_->roomId());
nhlog::ui()->debug("Switched to: {}", roomid.toStdString());
if (currentRoom_->isSpace()) {
emit spaceSelected(roomid);
}
} else if (invites.contains(roomid) || previewedRooms.contains(roomid)) {
currentRoom_ = nullptr;
std::optional<RoomInfo> i;

@ -129,6 +129,7 @@ signals:
void totalUnreadMessageCountUpdated(int unreadMessages);
void currentRoomChanged(QString currentRoomId);
void fetchedPreview(QString roomid, RoomInfo info);
void spaceSelected(QString roomId);
private:
void addRoom(const QString &room_id, bool suppressInsertNotification = false);

@ -152,6 +152,9 @@ TimelineViewManager::TimelineViewManager(CallManager *, ChatPage *parent)
isConnected_ = true;
emit isConnectedChanged(true);
});
connect(rooms_, &RoomlistModel::spaceSelected, communities_, [this](QString roomId) {
communities_->setCurrentTagId("space:" + roomId);
});
}
void

Loading…
Cancel
Save