From 2e7d26bcc010f6ad1908461a34361b64f56d53be Mon Sep 17 00:00:00 2001
From: Nicolas Werner <nicolas.werner@hotmail.de>
Date: Sat, 29 Jan 2022 17:27:28 +0100
Subject: [PATCH] Fix secrets not loading after registration

---
 src/Cache.cpp        | 2 ++
 src/RegisterPage.cpp | 6 ++++--
 src/RegisterPage.h   | 2 ++
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/Cache.cpp b/src/Cache.cpp
index c15d2f4b1..b55d53a6a 100644
--- a/src/Cache.cpp
+++ b/src/Cache.cpp
@@ -391,6 +391,7 @@ Cache::loadSecrets(std::vector<std::pair<std::string, bool>> toLoad)
             &QKeychain::ReadPasswordJob::finished,
             this,
             [this, name, toLoad, job](QKeychain::Job *) mutable {
+                nhlog::db()->debug("Finished reading '{}'", toLoad.begin()->first);
                 const QString secret = job->textData();
                 if (job->error() && job->error() != QKeychain::Error::EntryNotFound) {
                     nhlog::db()->error("Restoring secret '{}' failed ({}): {}",
@@ -413,6 +414,7 @@ Cache::loadSecrets(std::vector<std::pair<std::string, bool>> toLoad)
                 // You can't start a job from the finish signal of a job.
                 QTimer::singleShot(0, this, [this, toLoad] { loadSecrets(toLoad); });
             });
+    nhlog::db()->debug("Reading '{}'", name_);
     job->start();
 }
 
diff --git a/src/RegisterPage.cpp b/src/RegisterPage.cpp
index f94e14124..5b2ebc78b 100644
--- a/src/RegisterPage.cpp
+++ b/src/RegisterPage.cpp
@@ -19,7 +19,9 @@
 
 RegisterPage::RegisterPage(QObject *parent)
   : QObject(parent)
-{}
+{
+    connect(this, &RegisterPage::registerOk, this, [] { MainWindow::instance()->showChatPage(); });
+}
 
 void
 RegisterPage::setError(QString err)
@@ -199,7 +201,7 @@ RegisterPage::startRegistration(QString username, QString password, QString devi
               if (!err) {
                   http::client()->set_user(res.user_id);
                   http::client()->set_access_token(res.access_token);
-                  MainWindow::instance()->showChatPage();
+                  emit registerOk();
                   disconnect(UIA::instance(), &UIA::error, this, nullptr);
                   return;
               }
diff --git a/src/RegisterPage.h b/src/RegisterPage.h
index 9f32e820d..67e2a22e5 100644
--- a/src/RegisterPage.h
+++ b/src/RegisterPage.h
@@ -53,6 +53,8 @@ signals:
     void lookingUpHsChanged();
     void lookingUpUsernameChanged();
 
+    void registerOk();
+
 private:
     void versionsCheck();
 
-- 
GitLab