diff options
author | LorenDB <computersemiexpert@outlook.com> | 2020-11-09 21:28:41 -0500 |
---|---|---|
committer | Loren Burkholder <computersemiexpert@outlook.com> | 2020-12-24 21:16:46 -0500 |
commit | 53f45bdb1c9ee2b42b88ca4587775756f8daa124 (patch) | |
tree | ab8b89b8016d37dfb4a1e9e0aaae50a9d86b2d6f /src/UserSettingsPage.cpp | |
parent | Merge pull request #357 from LorenDB/qkchdocs (diff) | |
download | nheko-53f45bdb1c9ee2b42b88ca4587775756f8daa124.tar.xz |
Switch profile code to a more flexible method
This introduces a new version of SingleApplication as well.
Diffstat (limited to 'src/UserSettingsPage.cpp')
-rw-r--r-- | src/UserSettingsPage.cpp | 72 |
1 files changed, 69 insertions, 3 deletions
diff --git a/src/UserSettingsPage.cpp b/src/UserSettingsPage.cpp index 708fb7fd..55f666c1 100644 --- a/src/UserSettingsPage.cpp +++ b/src/UserSettingsPage.cpp @@ -89,6 +89,14 @@ UserSettings::load() cameraResolution_ = settings.value("user/camera_resolution", QString()).toString(); cameraFrameRate_ = settings.value("user/camera_frame_rate", QString()).toString(); useStunServer_ = settings.value("user/use_stun_server", false).toBool(); + profile_ = settings.value("user/currentProfile", "").toString(); + + QString prefix = + (profile_ != "" && profile_ != "default") ? "profile/" + profile_ + "/" : ""; + accessToken_ = settings.value(prefix + "auth/access_token", "").toString(); + homeserver_ = settings.value(prefix + "auth/home_server", "").toString(); + userId_ = settings.value(prefix + "auth/user_id", "").toString(); + deviceId_ = settings.value(prefix + "auth/device_id", "").toString(); applyTheme(); } @@ -373,6 +381,56 @@ UserSettings::setCameraFrameRate(QString frameRate) } void +UserSettings::setProfile(QString profile) +{ + if (profile == profile_) + return; + profile_ = profile; + emit profileChanged(profile_); + save(); +} + +void +UserSettings::setUserId(QString userId) +{ + if (userId == userId_) + return; + userId_ = userId; + emit userIdChanged(userId_); + save(); +} + +void +UserSettings::setAccessToken(QString accessToken) +{ + if (accessToken == accessToken_) + return; + accessToken_ = accessToken; + emit accessTokenChanged(accessToken_); + save(); +} + +void +UserSettings::setDeviceId(QString deviceId) +{ + if (deviceId == deviceId_) + return; + deviceId_ = deviceId; + emit deviceIdChanged(deviceId_); + save(); +} + +void +UserSettings::setHomeserver(QString homeserver) +{ + if (homeserver == homeserver_) + return; + homeserver_ = homeserver; + emit homeserverChanged(homeserver_); + save(); +} + +void UserSettings::applyTheme() { QFile stylefile; @@ -436,14 +494,14 @@ UserSettings::save() settings.beginGroup("window"); settings.setValue("tray", tray_); settings.setValue("start_in_tray", startInTray_); - settings.endGroup(); + settings.endGroup(); // window settings.beginGroup("timeline"); settings.setValue("buttons", buttonsInTimeline_); settings.setValue("message_hover_highlight", messageHoverHighlight_); settings.setValue("enlarge_emoji_only_msg", enlargeEmojiOnlyMessages_); settings.setValue("max_width", timelineMaxWidth_); - settings.endGroup(); + settings.endGroup(); // timeline settings.setValue("avatar_circles", avatarCircles_); settings.setValue("decrypt_sidebar", decryptSidebar_); @@ -467,8 +525,16 @@ UserSettings::save() settings.setValue("camera_resolution", cameraResolution_); settings.setValue("camera_frame_rate", cameraFrameRate_); settings.setValue("use_stun_server", useStunServer_); + settings.setValue("currentProfile", profile_); + + QString prefix = + (profile_ != "" && profile_ != "default") ? "profile/" + profile_ + "/" : ""; + settings.setValue(prefix + "auth/access_token", accessToken_); + settings.setValue(prefix + "auth/home_server", homeserver_); + settings.setValue(prefix + "auth/user_id", userId_); + settings.setValue(prefix + "auth/device_id", deviceId_); - settings.endGroup(); + settings.endGroup(); // user settings.sync(); } |