1 files changed, 20 insertions, 17 deletions
diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp
index 8bc90f29..396e1ab1 100644
--- a/src/MainWindow.cpp
+++ b/src/MainWindow.cpp
@@ -130,26 +130,29 @@ MainWindow::MainWindow(QWidget *parent)
trayIcon_->setVisible(userSettings_->tray());
- if (hasActiveUser()) {
- QString token = userSettings_->accessToken();
- QString home_server = userSettings_->homeserver();
- QString user_id = userSettings_->userId();
- QString device_id = userSettings_->deviceId();
+ // load cache on event loop
+ QTimer::singleShot(0, this, [this] {
+ if (hasActiveUser()) {
+ QString token = userSettings_->accessToken();
+ QString home_server = userSettings_->homeserver();
+ QString user_id = userSettings_->userId();
+ QString device_id = userSettings_->deviceId();
- http::client()->set_access_token(token.toStdString());
- http::client()->set_server(home_server.toStdString());
- http::client()->set_device_id(device_id.toStdString());
+ http::client()->set_access_token(token.toStdString());
+ http::client()->set_server(home_server.toStdString());
+ http::client()->set_device_id(device_id.toStdString());
- try {
- using namespace mtx::identifiers;
- http::client()->set_user(parse<User>(user_id.toStdString()));
- } catch (const std::invalid_argument &) {
- nhlog::ui()->critical("bootstrapped with invalid user_id: {}",
- user_id.toStdString());
- }
+ try {
+ using namespace mtx::identifiers;
+ http::client()->set_user(parse<User>(user_id.toStdString()));
+ } catch (const std::invalid_argument &) {
+ nhlog::ui()->critical("bootstrapped with invalid user_id: {}",
+ user_id.toStdString());
+ }
- showChatPage();
- }
+ showChatPage();
+ }
+ });
if (loadJdenticonPlugin()) {
nhlog::ui()->info("loaded jdenticon.");
|