Fix room joins

This commit is contained in:
Nicolas Werner 2020-07-20 18:25:22 +02:00
parent 19f27236ea
commit f23d733cff
2 changed files with 12 additions and 9 deletions

View file

@ -1440,7 +1440,15 @@ std::optional<Cache::TimelineRange>
Cache::getTimelineRange(const std::string &room_id) Cache::getTimelineRange(const std::string &room_id)
{ {
auto txn = lmdb::txn::begin(env_, nullptr, MDB_RDONLY); auto txn = lmdb::txn::begin(env_, nullptr, MDB_RDONLY);
auto orderDb = getOrderToMessageDb(txn, room_id); lmdb::dbi orderDb{0};
try {
orderDb = getOrderToMessageDb(txn, room_id);
} catch (lmdb::runtime_error &e) {
nhlog::db()->error("Can't open db for room '{}', probably doesn't exist yet. ({})",
room_id,
e.what());
return {};
}
lmdb::val indexVal, val; lmdb::val indexVal, val;

View file

@ -244,7 +244,6 @@ ChatPage::ChatPage(QSharedPointer<UserSettings> userSettings, QWidget *parent)
room_list_, &RoomList::roomChanged, view_manager_, &TimelineViewManager::setHistoryView); room_list_, &RoomList::roomChanged, view_manager_, &TimelineViewManager::setHistoryView);
connect(room_list_, &RoomList::acceptInvite, this, [this](const QString &room_id) { connect(room_list_, &RoomList::acceptInvite, this, [this](const QString &room_id) {
view_manager_->addRoom(room_id);
joinRoom(room_id); joinRoom(room_id);
room_list_->removeRoom(room_id, currentRoom() == room_id); room_list_->removeRoom(room_id, currentRoom() == room_id);
}); });
@ -543,12 +542,8 @@ ChatPage::ChatPage(QSharedPointer<UserSettings> userSettings, QWidget *parent)
emit notificationsRetrieved(std::move(res)); emit notificationsRetrieved(std::move(res));
}); });
}); });
connect(this, &ChatPage::syncRoomlist, room_list_, &RoomList::sync, Qt::QueuedConnection); connect(this, &ChatPage::syncRoomlist, room_list_, &RoomList::sync);
connect(this, connect(this, &ChatPage::syncTags, communitiesList_, &CommunitiesList::syncTags);
&ChatPage::syncTags,
communitiesList_,
&CommunitiesList::syncTags,
Qt::QueuedConnection);
connect( connect(
this, &ChatPage::syncTopBar, this, [this](const std::map<QString, RoomInfo> &updates) { this, &ChatPage::syncTopBar, this, [this](const std::map<QString, RoomInfo> &updates) {
if (updates.find(currentRoom()) != updates.end()) if (updates.find(currentRoom()) != updates.end())