From 74c9af0432f6c2142be1387f16c481173c03a4ba Mon Sep 17 00:00:00 2001 From: Nicolas Werner Date: Tue, 19 Jan 2021 03:16:59 +0100 Subject: [PATCH] Fix presence unknown type warning --- src/UserSettingsPage.cpp | 18 +++++++++++------- src/main.cpp | 3 --- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/UserSettingsPage.cpp b/src/UserSettingsPage.cpp index 331c51a2..f90938c9 100644 --- a/src/UserSettingsPage.cpp +++ b/src/UserSettingsPage.cpp @@ -97,12 +97,14 @@ UserSettings::load(std::optional profile) decryptSidebar_ = settings.value("user/decrypt_sidebar", true).toBool(); shareKeysWithTrustedUsers_ = settings.value("user/share_keys_with_trusted_users", true).toBool(); - mobileMode_ = settings.value("user/mobile_mode", false).toBool(); - emojiFont_ = settings.value("user/emoji_font_family", "default").toString(); - baseFontSize_ = settings.value("user/font_size", QFont().pointSizeF()).toDouble(); - presence_ = - settings.value("user/presence", QVariant::fromValue(Presence::AutomaticPresence)) - .value(); + mobileMode_ = settings.value("user/mobile_mode", false).toBool(); + emojiFont_ = settings.value("user/emoji_font_family", "default").toString(); + baseFontSize_ = settings.value("user/font_size", QFont().pointSizeF()).toDouble(); + auto tempPresence = settings.value("user/presence", "").toString().toStdString(); + auto presenceValue = QMetaEnum::fromType().keyToValue(tempPresence.c_str()); + if (presenceValue < 0) + presenceValue = 0; + presence_ = static_cast(presenceValue); ringtone_ = settings.value("user/ringtone", "Default").toString(); microphone_ = settings.value("user/microphone", QString()).toString(); camera_ = settings.value("user/camera", QString()).toString(); @@ -542,7 +544,9 @@ UserSettings::save() settings.setValue("theme", theme()); settings.setValue("font_family", font_); settings.setValue("emoji_font_family", emojiFont_); - settings.setValue("presence", QVariant::fromValue(presence_)); + settings.setValue("presence", + QString::fromUtf8(QMetaEnum::fromType().valueToKey( + static_cast(presence_)))); settings.setValue("ringtone", ringtone_); settings.setValue("microphone", microphone_); settings.setValue("camera", camera_); diff --git a/src/main.cpp b/src/main.cpp index a0b72be7..b1dfa9f6 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -106,9 +106,6 @@ createCacheDirectory() int main(int argc, char *argv[]) { - // needed for settings so need to register before any settings are read to prevent warnings - qRegisterMetaType(); - QCoreApplication::setApplicationName("nheko"); QCoreApplication::setApplicationVersion(nheko::version); QCoreApplication::setOrganizationName("nheko");