From 4d6cc58f0db7f8c0d32c61cc6bb7e8315eed2c40 Mon Sep 17 00:00:00 2001 From: John Preston Date: Thu, 18 Jun 2020 16:47:09 +0400 Subject: [PATCH] Move session settings to main_session_settings. --- Telegram/CMakeLists.txt | 4 +- Telegram/SourceFiles/apiwrap.cpp | 3 +- .../SourceFiles/boxes/add_contact_box.cpp | 1 + .../SourceFiles/boxes/auto_download_box.cpp | 1 + Telegram/SourceFiles/boxes/auto_lock_box.cpp | 1 + .../SourceFiles/boxes/create_poll_box.cpp | 1 + .../boxes/dictionaries_manager.cpp | 1 + .../SourceFiles/boxes/download_path_box.cpp | 2 +- .../SourceFiles/boxes/edit_caption_box.cpp | 1 + .../boxes/filters/edit_filter_box.cpp | 1 + .../boxes/peers/edit_peer_info_box.cpp | 1 + Telegram/SourceFiles/boxes/rate_call_box.cpp | 1 + Telegram/SourceFiles/boxes/report_box.cpp | 1 + Telegram/SourceFiles/boxes/send_files_box.cpp | 2 + Telegram/SourceFiles/boxes/share_box.cpp | 1 + Telegram/SourceFiles/calls/calls_call.cpp | 1 + Telegram/SourceFiles/calls/calls_instance.cpp | 1 + .../chat_helpers/emoji_list_widget.cpp | 2 + .../chat_helpers/emoji_suggestions_widget.cpp | 1 + .../chat_helpers/gifs_list_widget.cpp | 1 + .../chat_helpers/message_field.cpp | 1 + .../chat_helpers/spellchecker_common.cpp | 1 + .../chat_helpers/stickers_emoji_pack.cpp | 1 + .../chat_helpers/stickers_list_widget.cpp | 9 +- .../chat_helpers/tabbed_selector.cpp | 2 + .../chat_helpers/tabbed_selector.h | 7 +- Telegram/SourceFiles/core/file_utilities.cpp | 1 + .../SourceFiles/core/local_url_handlers.cpp | 1 + Telegram/SourceFiles/data/data_document.cpp | 1 + .../SourceFiles/data/data_document_media.cpp | 1 + Telegram/SourceFiles/data/data_drafts.cpp | 1 + Telegram/SourceFiles/data/data_folder.cpp | 1 + .../SourceFiles/data/data_media_types.cpp | 1 + .../SourceFiles/data/data_photo_media.cpp | 1 + Telegram/SourceFiles/data/data_session.cpp | 1 + Telegram/SourceFiles/data/data_user.cpp | 1 + .../data/stickers/data_stickers.cpp | 9 +- .../SourceFiles/dialogs/dialogs_entry.cpp | 1 + .../dialogs/dialogs_inner_widget.cpp | 1 + .../SourceFiles/dialogs/dialogs_layout.cpp | 1 + .../SourceFiles/dialogs/dialogs_widget.cpp | 1 + .../admin_log/history_admin_log_inner.cpp | 1 + .../history/history_inner_widget.cpp | 1 + Telegram/SourceFiles/history/history_item.cpp | 1 + .../SourceFiles/history/history_widget.cpp | 5 +- .../view/history_view_compose_controls.cpp | 2 + .../view/history_view_context_menu.cpp | 1 + .../history/view/history_view_element.cpp | 1 + .../view/history_view_top_bar_widget.cpp | 1 + .../history/view/media/history_view_gif.cpp | 1 + .../view/media/history_view_sticker.cpp | 1 + Telegram/SourceFiles/intro/intro_step.cpp | 4 +- Telegram/SourceFiles/main/main_account.cpp | 25 +- Telegram/SourceFiles/main/main_account.h | 12 +- Telegram/SourceFiles/main/main_session.cpp | 17 +- Telegram/SourceFiles/main/main_session.h | 14 +- ...settings.cpp => main_session_settings.cpp} | 245 +++++++++--------- ...ain_settings.h => main_session_settings.h} | 5 +- Telegram/SourceFiles/mainwidget.cpp | 5 +- Telegram/SourceFiles/mainwindow.cpp | 2 +- .../media/player/media_player_float.cpp | 1 + .../media/player/media_player_instance.cpp | 1 + .../media/player/media_player_widget.cpp | 2 +- .../media/view/media_view_overlay_widget.cpp | 1 + .../SourceFiles/overview/overview_layout.cpp | 1 + .../settings/settings_advanced.cpp | 1 + .../SourceFiles/settings/settings_chat.cpp | 1 + .../SourceFiles/settings/settings_codes.cpp | 1 + .../settings/settings_information.cpp | 1 + .../settings/settings_notifications.cpp | 2 +- .../settings/settings_privacy_controllers.cpp | 1 + .../details/storage_settings_scheme.cpp | 3 +- .../storage/details/storage_settings_scheme.h | 9 +- Telegram/SourceFiles/storage/localstorage.h | 1 - .../SourceFiles/storage/storage_account.cpp | 22 +- .../SourceFiles/storage/storage_account.h | 10 +- .../support/support_autocomplete.cpp | 1 + .../SourceFiles/support/support_helper.cpp | 1 + Telegram/SourceFiles/window/main_window.cpp | 5 +- .../window/notifications_manager.cpp | 1 + .../window/notifications_manager_default.cpp | 1 + .../window/themes/window_theme.cpp | 6 +- .../SourceFiles/window/window_main_menu.cpp | 3 +- .../SourceFiles/window/window_peer_menu.cpp | 1 + .../window/window_session_controller.cpp | 1 + 85 files changed, 294 insertions(+), 200 deletions(-) rename Telegram/SourceFiles/main/{main_settings.cpp => main_session_settings.cpp} (66%) rename Telegram/SourceFiles/main/{main_settings.h => main_session_settings.h} (98%) diff --git a/Telegram/CMakeLists.txt b/Telegram/CMakeLists.txt index fe7d9a9b0..23f33eced 100644 --- a/Telegram/CMakeLists.txt +++ b/Telegram/CMakeLists.txt @@ -674,8 +674,8 @@ PRIVATE main/main_app_config.h main/main_session.cpp main/main_session.h - main/main_settings.cpp - main/main_settings.h + main/main_session_settings.cpp + main/main_session_settings.h media/audio/media_audio.cpp media/audio/media_audio.h media/audio/media_audio_capture.cpp diff --git a/Telegram/SourceFiles/apiwrap.cpp b/Telegram/SourceFiles/apiwrap.cpp index 4a59480c3..b58b2220f 100644 --- a/Telegram/SourceFiles/apiwrap.cpp +++ b/Telegram/SourceFiles/apiwrap.cpp @@ -49,6 +49,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "history/history_item_components.h" //#include "history/feed/history_feed_section.h" // #feed #include "main/main_session.h" +#include "main/main_session_settings.h" #include "main/main_account.h" #include "boxes/confirm_box.h" #include "boxes/stickers_box.h" @@ -1984,7 +1985,7 @@ void ApiWrap::saveStickerSets( auto &storage = local(); if (writeInstalled) storage.writeInstalledStickers(); - if (writeRecent) storage.writeSettings(); + if (writeRecent) session().saveSettings(); if (writeArchived) storage.writeArchivedStickers(); if (writeCloudRecent) storage.writeRecentStickers(); if (writeFaved) storage.writeFavedStickers(); diff --git a/Telegram/SourceFiles/boxes/add_contact_box.cpp b/Telegram/SourceFiles/boxes/add_contact_box.cpp index fce87ac94..f83587791 100644 --- a/Telegram/SourceFiles/boxes/add_contact_box.cpp +++ b/Telegram/SourceFiles/boxes/add_contact_box.cpp @@ -40,6 +40,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mainwindow.h" #include "apiwrap.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "facades.h" #include "styles/style_layers.h" #include "styles/style_boxes.h" diff --git a/Telegram/SourceFiles/boxes/auto_download_box.cpp b/Telegram/SourceFiles/boxes/auto_download_box.cpp index fc246bdd6..9adae78c1 100644 --- a/Telegram/SourceFiles/boxes/auto_download_box.cpp +++ b/Telegram/SourceFiles/boxes/auto_download_box.cpp @@ -9,6 +9,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "lang/lang_keys.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "data/data_session.h" #include "data/data_auto_download.h" #include "ui/widgets/continuous_sliders.h" diff --git a/Telegram/SourceFiles/boxes/auto_lock_box.cpp b/Telegram/SourceFiles/boxes/auto_lock_box.cpp index 129f60a32..aa6ab468a 100644 --- a/Telegram/SourceFiles/boxes/auto_lock_box.cpp +++ b/Telegram/SourceFiles/boxes/auto_lock_box.cpp @@ -11,6 +11,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "storage/localstorage.h" #include "core/application.h" #include "mainwindow.h" +#include "main/main_session.h" #include "ui/widgets/checkbox.h" #include "facades.h" #include "styles/style_layers.h" diff --git a/Telegram/SourceFiles/boxes/create_poll_box.cpp b/Telegram/SourceFiles/boxes/create_poll_box.cpp index ef50b16b3..4ab656946 100644 --- a/Telegram/SourceFiles/boxes/create_poll_box.cpp +++ b/Telegram/SourceFiles/boxes/create_poll_box.cpp @@ -20,6 +20,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/widgets/checkbox.h" #include "ui/toast/toast.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "chat_helpers/emoji_suggestions_widget.h" #include "chat_helpers/message_field.h" #include "history/view/history_view_schedule_box.h" diff --git a/Telegram/SourceFiles/boxes/dictionaries_manager.cpp b/Telegram/SourceFiles/boxes/dictionaries_manager.cpp index 476cf9ba1..0a9e10640 100644 --- a/Telegram/SourceFiles/boxes/dictionaries_manager.cpp +++ b/Telegram/SourceFiles/boxes/dictionaries_manager.cpp @@ -14,6 +14,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "core/application.h" #include "main/main_account.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "mainwidget.h" #include "mtproto/dedicated_file_loader.h" #include "spellcheck/spellcheck_utils.h" diff --git a/Telegram/SourceFiles/boxes/download_path_box.cpp b/Telegram/SourceFiles/boxes/download_path_box.cpp index 5ced23d4b..4ddae0f47 100644 --- a/Telegram/SourceFiles/boxes/download_path_box.cpp +++ b/Telegram/SourceFiles/boxes/download_path_box.cpp @@ -124,7 +124,7 @@ void DownloadPathBox::save() { }; Global::SetDownloadPath(computePath()); Global::SetDownloadPathBookmark((value == Directory::Custom) ? _pathBookmark : QByteArray()); - _controller->session().local().writeSettings(); + _controller->session().saveSettings(); Global::RefDownloadPathChanged().notify(); closeBox(); #endif // OS_WIN_STORE diff --git a/Telegram/SourceFiles/boxes/edit_caption_box.cpp b/Telegram/SourceFiles/boxes/edit_caption_box.cpp index ad2cf53d9..972df7d07 100644 --- a/Telegram/SourceFiles/boxes/edit_caption_box.cpp +++ b/Telegram/SourceFiles/boxes/edit_caption_box.cpp @@ -10,6 +10,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "apiwrap.h" #include "api/api_text_entities.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "chat_helpers/emoji_suggestions_widget.h" #include "chat_helpers/message_field.h" #include "chat_helpers/tabbed_panel.h" diff --git a/Telegram/SourceFiles/boxes/filters/edit_filter_box.cpp b/Telegram/SourceFiles/boxes/filters/edit_filter_box.cpp index d1fb8251e..a9d601823 100644 --- a/Telegram/SourceFiles/boxes/filters/edit_filter_box.cpp +++ b/Telegram/SourceFiles/boxes/filters/edit_filter_box.cpp @@ -24,6 +24,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "lang/lang_keys.h" #include "history/history.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "window/window_session_controller.h" #include "window/window_controller.h" #include "apiwrap.h" diff --git a/Telegram/SourceFiles/boxes/peers/edit_peer_info_box.cpp b/Telegram/SourceFiles/boxes/peers/edit_peer_info_box.cpp index ff154168e..1b51a116e 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_peer_info_box.cpp +++ b/Telegram/SourceFiles/boxes/peers/edit_peer_info_box.cpp @@ -9,6 +9,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "apiwrap.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "boxes/add_contact_box.h" #include "boxes/confirm_box.h" #include "boxes/peer_list_controllers.h" diff --git a/Telegram/SourceFiles/boxes/rate_call_box.cpp b/Telegram/SourceFiles/boxes/rate_call_box.cpp index 999eb93aa..265963de1 100644 --- a/Telegram/SourceFiles/boxes/rate_call_box.cpp +++ b/Telegram/SourceFiles/boxes/rate_call_box.cpp @@ -14,6 +14,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/widgets/input_fields.h" #include "mainwindow.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "apiwrap.h" #include "styles/style_layers.h" #include "styles/style_calls.h" diff --git a/Telegram/SourceFiles/boxes/report_box.cpp b/Telegram/SourceFiles/boxes/report_box.cpp index 0c6fb1b03..72e9e85b6 100644 --- a/Telegram/SourceFiles/boxes/report_box.cpp +++ b/Telegram/SourceFiles/boxes/report_box.cpp @@ -10,6 +10,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "lang/lang_keys.h" #include "data/data_peer.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "boxes/confirm_box.h" #include "ui/widgets/checkbox.h" #include "ui/widgets/buttons.h" diff --git a/Telegram/SourceFiles/boxes/send_files_box.cpp b/Telegram/SourceFiles/boxes/send_files_box.cpp index 3893ef1a1..0ea2a109e 100644 --- a/Telegram/SourceFiles/boxes/send_files_box.cpp +++ b/Telegram/SourceFiles/boxes/send_files_box.cpp @@ -12,6 +12,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "storage/localstorage.h" #include "storage/storage_media_prepare.h" #include "mainwidget.h" +#include "main/main_session.h" +#include "main/main_session_settings.h" #include "mtproto/mtproto_config.h" #include "chat_helpers/message_field.h" #include "chat_helpers/emoji_suggestions_widget.h" diff --git a/Telegram/SourceFiles/boxes/share_box.cpp b/Telegram/SourceFiles/boxes/share_box.cpp index 8c6d0a5fd..573c6efb1 100644 --- a/Telegram/SourceFiles/boxes/share_box.cpp +++ b/Telegram/SourceFiles/boxes/share_box.cpp @@ -36,6 +36,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_folder.h" #include "data/data_changes.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "core/application.h" #include "styles/style_layers.h" #include "styles/style_boxes.h" diff --git a/Telegram/SourceFiles/calls/calls_call.cpp b/Telegram/SourceFiles/calls/calls_call.cpp index 27079ffad..565441bc6 100644 --- a/Telegram/SourceFiles/calls/calls_call.cpp +++ b/Telegram/SourceFiles/calls/calls_call.cpp @@ -8,6 +8,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "calls/calls_call.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "apiwrap.h" #include "lang/lang_keys.h" #include "boxes/confirm_box.h" diff --git a/Telegram/SourceFiles/calls/calls_instance.cpp b/Telegram/SourceFiles/calls/calls_instance.cpp index 2916f073b..3c590171b 100644 --- a/Telegram/SourceFiles/calls/calls_instance.cpp +++ b/Telegram/SourceFiles/calls/calls_instance.cpp @@ -10,6 +10,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mtproto/mtproto_dh_utils.h" #include "core/application.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "apiwrap.h" #include "lang/lang_keys.h" #include "boxes/confirm_box.h" diff --git a/Telegram/SourceFiles/chat_helpers/emoji_list_widget.cpp b/Telegram/SourceFiles/chat_helpers/emoji_list_widget.cpp index caa5eb18f..7b098d228 100644 --- a/Telegram/SourceFiles/chat_helpers/emoji_list_widget.cpp +++ b/Telegram/SourceFiles/chat_helpers/emoji_list_widget.cpp @@ -15,6 +15,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "lang/lang_keys.h" #include "emoji_suggestions_data.h" #include "emoji_suggestions_helper.h" +#include "main/main_session.h" +#include "main/main_session_settings.h" #include "window/window_session_controller.h" #include "facades.h" #include "app.h" diff --git a/Telegram/SourceFiles/chat_helpers/emoji_suggestions_widget.cpp b/Telegram/SourceFiles/chat_helpers/emoji_suggestions_widget.cpp index f5bee20f8..f33bb7b6c 100644 --- a/Telegram/SourceFiles/chat_helpers/emoji_suggestions_widget.cpp +++ b/Telegram/SourceFiles/chat_helpers/emoji_suggestions_widget.cpp @@ -19,6 +19,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "core/application.h" #include "base/event_filter.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "app.h" #include "styles/style_chat_helpers.h" diff --git a/Telegram/SourceFiles/chat_helpers/gifs_list_widget.cpp b/Telegram/SourceFiles/chat_helpers/gifs_list_widget.cpp index 6fb082fc0..cefddad5c 100644 --- a/Telegram/SourceFiles/chat_helpers/gifs_list_widget.cpp +++ b/Telegram/SourceFiles/chat_helpers/gifs_list_widget.cpp @@ -25,6 +25,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "storage/localstorage.h" #include "lang/lang_keys.h" #include "mainwindow.h" +#include "main/main_session.h" #include "window/window_session_controller.h" #include "history/view/history_view_cursor_state.h" #include "facades.h" diff --git a/Telegram/SourceFiles/chat_helpers/message_field.cpp b/Telegram/SourceFiles/chat_helpers/message_field.cpp index 3b06a15b6..297601ad0 100644 --- a/Telegram/SourceFiles/chat_helpers/message_field.cpp +++ b/Telegram/SourceFiles/chat_helpers/message_field.cpp @@ -25,6 +25,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "lang/lang_keys.h" #include "mainwindow.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "styles/style_layers.h" #include "styles/style_boxes.h" #include "styles/style_history.h" diff --git a/Telegram/SourceFiles/chat_helpers/spellchecker_common.cpp b/Telegram/SourceFiles/chat_helpers/spellchecker_common.cpp index c5427877c..bc1d18804 100644 --- a/Telegram/SourceFiles/chat_helpers/spellchecker_common.cpp +++ b/Telegram/SourceFiles/chat_helpers/spellchecker_common.cpp @@ -15,6 +15,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "lang/lang_instance.h" #include "lang/lang_keys.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "mainwidget.h" #include "spellcheck/platform/platform_spellcheck.h" #include "spellcheck/spellcheck_utils.h" diff --git a/Telegram/SourceFiles/chat_helpers/stickers_emoji_pack.cpp b/Telegram/SourceFiles/chat_helpers/stickers_emoji_pack.cpp index 2b206ae70..4d501ce54 100644 --- a/Telegram/SourceFiles/chat_helpers/stickers_emoji_pack.cpp +++ b/Telegram/SourceFiles/chat_helpers/stickers_emoji_pack.cpp @@ -13,6 +13,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/text/text_isolated_emoji.h" #include "ui/image/image.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "data/data_file_origin.h" #include "data/data_session.h" #include "data/data_document.h" diff --git a/Telegram/SourceFiles/chat_helpers/stickers_list_widget.cpp b/Telegram/SourceFiles/chat_helpers/stickers_list_widget.cpp index d82fbddee..303d8f52e 100644 --- a/Telegram/SourceFiles/chat_helpers/stickers_list_widget.cpp +++ b/Telegram/SourceFiles/chat_helpers/stickers_list_widget.cpp @@ -33,6 +33,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "boxes/confirm_box.h" #include "window/window_session_controller.h" // GifPauseReason. #include "main/main_session.h" +#include "main/main_session_settings.h" #include "apiwrap.h" #include "app.h" #include "styles/style_chat_helpers.h" @@ -2135,7 +2136,7 @@ void StickersListWidget::removeRecentSticker(int section, int index) { for (int32 i = 0, l = recent.size(); i < l; ++i) { if (recent.at(i).first == document) { recent.removeAt(i); - session().local().writeSettings(); + session().saveSettings(); refresh = true; break; } @@ -2581,7 +2582,7 @@ void StickersListWidget::refreshMegagroupStickers(GroupStickersPlace place) { auto removeHiddenForGroup = [this, &hidden] { if (hidden) { session().settings().removeGroupStickersSectionHidden(_megagroupSet->id); - session().local().writeSettings(); + session().saveSettings(); hidden = false; } }; @@ -2992,7 +2993,7 @@ void StickersListWidget::sendInstallRequest( void StickersListWidget::removeMegagroupSet(bool locally) { if (locally) { session().settings().setGroupStickersSectionHidden(_megagroupSet->id); - session().local().writeSettings(); + session().saveSettings(); refreshStickers(); return; } @@ -3053,7 +3054,7 @@ void StickersListWidget::removeSet(uint64 setId) { if (removeIndex >= 0) session().data().stickers().setsOrderRef().removeAt(removeIndex); refreshStickers(); session().local().writeInstalledStickers(); - if (writeRecent) session().local().writeSettings(); + if (writeRecent) session().saveSettings(); } _removingSetId = 0; _checkForHide.fire({}); diff --git a/Telegram/SourceFiles/chat_helpers/tabbed_selector.cpp b/Telegram/SourceFiles/chat_helpers/tabbed_selector.cpp index 075bca788..47acd5300 100644 --- a/Telegram/SourceFiles/chat_helpers/tabbed_selector.cpp +++ b/Telegram/SourceFiles/chat_helpers/tabbed_selector.cpp @@ -17,6 +17,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/widgets/scroll_area.h" #include "ui/image/image_prepare.h" #include "window/window_session_controller.h" +#include "main/main_session.h" +#include "main/main_session_settings.h" #include "storage/localstorage.h" #include "data/data_channel.h" #include "data/data_session.h" diff --git a/Telegram/SourceFiles/chat_helpers/tabbed_selector.h b/Telegram/SourceFiles/chat_helpers/tabbed_selector.h index 8924145b4..5e2305c21 100644 --- a/Telegram/SourceFiles/chat_helpers/tabbed_selector.h +++ b/Telegram/SourceFiles/chat_helpers/tabbed_selector.h @@ -11,19 +11,22 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/effects/animations.h" #include "ui/effects/panel_animation.h" #include "mtproto/sender.h" -#include "main/main_session.h" #include "base/object_ptr.h" namespace InlineBots { class Result; } // namespace InlineBots +namespace Main { +class Session; +} // namespace Main + namespace Ui { class PlainShadow; class ScrollArea; class SettingsSlider; class FlatLabel; -} // namesapce Ui +} // namespace Ui namespace Window { class SessionController; diff --git a/Telegram/SourceFiles/core/file_utilities.cpp b/Telegram/SourceFiles/core/file_utilities.cpp index e1f8eb268..654c89319 100644 --- a/Telegram/SourceFiles/core/file_utilities.cpp +++ b/Telegram/SourceFiles/core/file_utilities.cpp @@ -12,6 +12,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "core/application.h" #include "base/unixtime.h" #include "ui/delayed_activation.h" +#include "main/main_session.h" #include "mainwindow.h" #include diff --git a/Telegram/SourceFiles/core/local_url_handlers.cpp b/Telegram/SourceFiles/core/local_url_handlers.cpp index 8b6f5282b..29a59d6ca 100644 --- a/Telegram/SourceFiles/core/local_url_handlers.cpp +++ b/Telegram/SourceFiles/core/local_url_handlers.cpp @@ -34,6 +34,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mainwindow.h" #include "mainwidget.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "apiwrap.h" #include "app.h" diff --git a/Telegram/SourceFiles/data/data_document.cpp b/Telegram/SourceFiles/data/data_document.cpp index 65790e3a5..b493efd98 100644 --- a/Telegram/SourceFiles/data/data_document.cpp +++ b/Telegram/SourceFiles/data/data_document.cpp @@ -14,6 +14,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "lang/lang_keys.h" #include "inline_bots/inline_bot_layout_item.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "mainwidget.h" #include "core/file_utilities.h" #include "core/mime_type.h" diff --git a/Telegram/SourceFiles/data/data_document_media.cpp b/Telegram/SourceFiles/data/data_document_media.cpp index 67a0192f4..5d51d2d57 100644 --- a/Telegram/SourceFiles/data/data_document_media.cpp +++ b/Telegram/SourceFiles/data/data_document_media.cpp @@ -14,6 +14,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_auto_download.h" #include "media/clip/media_clip_reader.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "lottie/lottie_animation.h" #include "history/history_item.h" #include "history/history.h" diff --git a/Telegram/SourceFiles/data/data_drafts.cpp b/Telegram/SourceFiles/data/data_drafts.cpp index af02fd8d5..f24fda93f 100644 --- a/Telegram/SourceFiles/data/data_drafts.cpp +++ b/Telegram/SourceFiles/data/data_drafts.cpp @@ -12,6 +12,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "chat_helpers/message_field.h" #include "history/history.h" #include "history/history_widget.h" +#include "main/main_session.h" #include "data/data_session.h" #include "mainwidget.h" #include "storage/localstorage.h" diff --git a/Telegram/SourceFiles/data/data_folder.cpp b/Telegram/SourceFiles/data/data_folder.cpp index 9d0065dff..cf65e3cf5 100644 --- a/Telegram/SourceFiles/data/data_folder.cpp +++ b/Telegram/SourceFiles/data/data_folder.cpp @@ -20,6 +20,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "main/main_account.h" //#include "storage/storage_feed_messages.h" // #feed #include "main/main_session.h" +#include "main/main_session_settings.h" #include "mtproto/mtproto_config.h" #include "apiwrap.h" #include "mainwidget.h" diff --git a/Telegram/SourceFiles/data/data_media_types.cpp b/Telegram/SourceFiles/data/data_media_types.cpp index 134447224..1ccea5836 100644 --- a/Telegram/SourceFiles/data/data_media_types.cpp +++ b/Telegram/SourceFiles/data/data_media_types.cpp @@ -37,6 +37,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_poll.h" #include "data/data_channel.h" #include "data/data_file_origin.h" +#include "main/main_session.h" #include "lang/lang_keys.h" #include "layout.h" #include "storage/file_upload.h" diff --git a/Telegram/SourceFiles/data/data_photo_media.cpp b/Telegram/SourceFiles/data/data_photo_media.cpp index a2b832510..0f5a908d3 100644 --- a/Telegram/SourceFiles/data/data_photo_media.cpp +++ b/Telegram/SourceFiles/data/data_photo_media.cpp @@ -12,6 +12,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_file_origin.h" #include "data/data_auto_download.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "history/history_item.h" #include "history/history.h" #include "storage/file_download.h" diff --git a/Telegram/SourceFiles/data/data_session.cpp b/Telegram/SourceFiles/data/data_session.cpp index f9a8cc0c2..00cdd0773 100644 --- a/Telegram/SourceFiles/data/data_session.cpp +++ b/Telegram/SourceFiles/data/data_session.cpp @@ -8,6 +8,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_session.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "apiwrap.h" #include "mainwidget.h" #include "api/api_text_entities.h" diff --git a/Telegram/SourceFiles/data/data_user.cpp b/Telegram/SourceFiles/data/data_user.cpp index 8bf8fc1df..c3c6d1f6d 100644 --- a/Telegram/SourceFiles/data/data_user.cpp +++ b/Telegram/SourceFiles/data/data_user.cpp @@ -8,6 +8,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_user.h" #include "storage/localstorage.h" +#include "main/main_session.h" #include "data/data_session.h" #include "data/data_changes.h" #include "ui/text_options.h" diff --git a/Telegram/SourceFiles/data/stickers/data_stickers.cpp b/Telegram/SourceFiles/data/stickers/data_stickers.cpp index e5daeb82c..af46d8809 100644 --- a/Telegram/SourceFiles/data/stickers/data_stickers.cpp +++ b/Telegram/SourceFiles/data/stickers/data_stickers.cpp @@ -19,6 +19,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "apiwrap.h" #include "storage/storage_account.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "mtproto/mtproto_config.h" #include "ui/toast/toast.h" #include "ui/image/image_location_factory.h" @@ -150,7 +151,7 @@ void Stickers::incrementSticker(not_null document) { } if (writeOldRecent) { - session().local().writeSettings(); + session().saveSettings(); } // Remove that sticker from custom stickers, now it is in cloud recent stickers. @@ -607,7 +608,7 @@ void Stickers::setsReceived(const QVector &data, int32 hash) { } session().local().writeInstalledStickers(); - if (writeRecent) session().local().writeSettings(); + if (writeRecent) session().saveSettings(); const auto counted = Api::CountStickersHash(&session()); if (counted != hash) { @@ -730,7 +731,7 @@ void Stickers::specialSetReceived( } if (writeRecent) { - session().local().writeSettings(); + session().saveSettings(); } } @@ -1251,7 +1252,7 @@ StickersSet *Stickers::feedSetFull(const MTPmessages_StickerSet &data) { } if (writeRecent) { - session().local().writeSettings(); + session().saveSettings(); } if (set) { diff --git a/Telegram/SourceFiles/dialogs/dialogs_entry.cpp b/Telegram/SourceFiles/dialogs/dialogs_entry.cpp index 8f0826e31..c34feb978 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_entry.cpp +++ b/Telegram/SourceFiles/dialogs/dialogs_entry.cpp @@ -15,6 +15,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_chat_filters.h" #include "mainwidget.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "history/history_item.h" #include "history/history.h" #include "app.h" diff --git a/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp b/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp index c1c403e2a..966be7e0e 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp +++ b/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp @@ -40,6 +40,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "apiwrap.h" #include "window/themes/window_theme.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "window/notifications_manager.h" #include "window/window_session_controller.h" #include "window/window_peer_menu.h" diff --git a/Telegram/SourceFiles/dialogs/dialogs_layout.cpp b/Telegram/SourceFiles/dialogs/dialogs_layout.cpp index 5e6c2c606..894fedb5f 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_layout.cpp +++ b/Telegram/SourceFiles/dialogs/dialogs_layout.cpp @@ -19,6 +19,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/unread_badge.h" #include "lang/lang_keys.h" #include "support/support_helper.h" +#include "main/main_session.h" #include "history/history_item_components.h" #include "history/history_item.h" #include "history/history.h" diff --git a/Telegram/SourceFiles/dialogs/dialogs_widget.cpp b/Telegram/SourceFiles/dialogs/dialogs_widget.cpp index c845833af..273f47d6d 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_widget.cpp +++ b/Telegram/SourceFiles/dialogs/dialogs_widget.cpp @@ -22,6 +22,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mainwindow.h" #include "mainwidget.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "apiwrap.h" #include "base/event_filter.h" #include "core/application.h" diff --git a/Telegram/SourceFiles/history/admin_log/history_admin_log_inner.cpp b/Telegram/SourceFiles/history/admin_log/history_admin_log_inner.cpp index 4ab2d87c2..35906e55e 100644 --- a/Telegram/SourceFiles/history/admin_log/history_admin_log_inner.cpp +++ b/Telegram/SourceFiles/history/admin_log/history_admin_log_inner.cpp @@ -29,6 +29,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "layout.h" #include "window/window_session_controller.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "ui/widgets/popup_menu.h" #include "ui/image/image.h" #include "ui/text/text_utilities.h" diff --git a/Telegram/SourceFiles/history/history_inner_widget.cpp b/Telegram/SourceFiles/history/history_inner_widget.cpp index c41531d16..f1c9b1eb0 100644 --- a/Telegram/SourceFiles/history/history_inner_widget.cpp +++ b/Telegram/SourceFiles/history/history_inner_widget.cpp @@ -42,6 +42,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mainwidget.h" #include "layout.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "core/application.h" #include "apiwrap.h" #include "lang/lang_keys.h" diff --git a/Telegram/SourceFiles/history/history_item.cpp b/Telegram/SourceFiles/history/history_item.cpp index 9d00e1a6f..3a39883a6 100644 --- a/Telegram/SourceFiles/history/history_item.cpp +++ b/Telegram/SourceFiles/history/history_item.cpp @@ -27,6 +27,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "storage/storage_shared_media.h" //#include "storage/storage_feed_messages.h" // #feed #include "main/main_session.h" +#include "main/main_session_settings.h" #include "apiwrap.h" #include "media/audio/media_audio.h" #include "core/application.h" diff --git a/Telegram/SourceFiles/history/history_widget.cpp b/Telegram/SourceFiles/history/history_widget.cpp index 3d603cc46..91d09be90 100644 --- a/Telegram/SourceFiles/history/history_widget.cpp +++ b/Telegram/SourceFiles/history/history_widget.cpp @@ -86,6 +86,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/unread_badge.h" #include "ui/delayed_activation.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "window/themes/window_theme.h" #include "window/notifications_manager.h" #include "window/window_session_controller.h" @@ -5689,7 +5690,7 @@ bool HistoryWidget::pinnedMsgVisibilityUpdated() { pinnedId = 0; } else if (hiddenId) { session().settings().setHiddenPinnedMessageId(_peer->id, 0); - session().local().writeSettings(); + session().saveSettings(); } } if (pinnedId) { @@ -6020,7 +6021,7 @@ void HistoryWidget::hidePinnedMessage() { pinnedId)); } else { session().settings().setHiddenPinnedMessageId(_peer->id, pinnedId); - session().local().writeSettings(); + session().saveSettings(); if (pinnedMsgVisibilityUpdated()) { updateControlsGeometry(); update(); diff --git a/Telegram/SourceFiles/history/view/history_view_compose_controls.cpp b/Telegram/SourceFiles/history/view/history_view_compose_controls.cpp index 04daa403f..59568d756 100644 --- a/Telegram/SourceFiles/history/view/history_view_compose_controls.cpp +++ b/Telegram/SourceFiles/history/view/history_view_compose_controls.cpp @@ -21,6 +21,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "chat_helpers/message_field.h" #include "chat_helpers/emoji_suggestions_widget.h" #include "window/window_session_controller.h" +#include "main/main_session.h" +#include "main/main_session_settings.h" #include "inline_bots/inline_results_widget.h" #include "facades.h" #include "styles/style_history.h" diff --git a/Telegram/SourceFiles/history/view/history_view_context_menu.cpp b/Telegram/SourceFiles/history/view/history_view_context_menu.cpp index 7ba718719..886ce9864 100644 --- a/Telegram/SourceFiles/history/view/history_view_context_menu.cpp +++ b/Telegram/SourceFiles/history/view/history_view_context_menu.cpp @@ -41,6 +41,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mainwidget.h" #include "mainwindow.h" // App::wnd()->sessionController #include "main/main_session.h" +#include "main/main_session_settings.h" #include "apiwrap.h" #include "facades.h" diff --git a/Telegram/SourceFiles/history/view/history_view_element.cpp b/Telegram/SourceFiles/history/view/history_view_element.cpp index 0acd09a85..92977cdb7 100644 --- a/Telegram/SourceFiles/history/view/history_view_element.cpp +++ b/Telegram/SourceFiles/history/view/history_view_element.cpp @@ -17,6 +17,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "history/view/media/history_view_large_emoji.h" #include "history/history.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "chat_helpers/stickers_emoji_pack.h" #include "data/data_session.h" #include "data/data_groups.h" diff --git a/Telegram/SourceFiles/history/view/history_view_top_bar_widget.cpp b/Telegram/SourceFiles/history/view/history_view_top_bar_widget.cpp index 1f16ba828..76920c293 100644 --- a/Telegram/SourceFiles/history/view/history_view_top_bar_widget.cpp +++ b/Telegram/SourceFiles/history/view/history_view_top_bar_widget.cpp @@ -18,6 +18,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mainwidget.h" #include "mainwindow.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "mtproto/mtproto_config.h" #include "lang/lang_keys.h" #include "core/shortcuts.h" diff --git a/Telegram/SourceFiles/history/view/media/history_view_gif.cpp b/Telegram/SourceFiles/history/view/media/history_view_gif.cpp index b66f21b45..15dbe6c97 100644 --- a/Telegram/SourceFiles/history/view/media/history_view_gif.cpp +++ b/Telegram/SourceFiles/history/view/media/history_view_gif.cpp @@ -11,6 +11,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "layout.h" #include "mainwindow.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "media/audio/media_audio.h" #include "media/clip/media_clip_reader.h" #include "media/player/media_player_instance.h" diff --git a/Telegram/SourceFiles/history/view/media/history_view_sticker.cpp b/Telegram/SourceFiles/history/view/media/history_view_sticker.cpp index 3f4ef0371..4f2bf0f58 100644 --- a/Telegram/SourceFiles/history/view/media/history_view_sticker.cpp +++ b/Telegram/SourceFiles/history/view/media/history_view_sticker.cpp @@ -18,6 +18,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/image/image.h" #include "ui/emoji_config.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "main/main_account.h" #include "main/main_app_config.h" #include "mainwindow.h" // App::wnd()->sessionController. diff --git a/Telegram/SourceFiles/intro/intro_step.cpp b/Telegram/SourceFiles/intro/intro_step.cpp index 70c62b864..46c9dd7b0 100644 --- a/Telegram/SourceFiles/intro/intro_step.cpp +++ b/Telegram/SourceFiles/intro/intro_step.cpp @@ -13,6 +13,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "lang/lang_keys.h" #include "lang/lang_cloud_manager.h" #include "main/main_account.h" +#include "main/main_session.h" +#include "main/main_session_settings.h" #include "apiwrap.h" #include "mainwindow.h" #include "boxes/confirm_box.h" @@ -43,7 +45,7 @@ void PrepareSupportMode(not_null session) { Global::SetSoundNotify(false); Global::SetFlashBounceNotify(false); session->settings().autoDownload() = Full::FullDisabled(); - session->local().writeSettings(); + session->saveSettings(); } } // namespace diff --git a/Telegram/SourceFiles/main/main_account.cpp b/Telegram/SourceFiles/main/main_account.cpp index 5bcac3d19..1ad1054c9 100644 --- a/Telegram/SourceFiles/main/main_account.cpp +++ b/Telegram/SourceFiles/main/main_account.cpp @@ -28,6 +28,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "api/api_updates.h" #include "main/main_app_config.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "facades.h" namespace Main { @@ -124,14 +125,14 @@ UserId Account::willHaveUserId() const { } void Account::createSession(const MTPUser &user) { - createSession(user, QByteArray(), 0, Settings()); + createSession(user, QByteArray(), 0, std::make_unique()); } void Account::createSession( UserId id, QByteArray serialized, int streamVersion, - Settings &&settings) { + std::unique_ptr settings) { DEBUG_LOG(("sessionUserSerialized.size: %1").arg(serialized.size())); QDataStream peekStream(serialized); const auto phone = Serialize::peekUserPhone(streamVersion, peekStream); @@ -162,7 +163,7 @@ void Account::createSession( const MTPUser &user, QByteArray serialized, int streamVersion, - Settings &&settings) { + std::unique_ptr settings) { Expects(_mtp != nullptr); Expects(_session == nullptr); Expects(_sessionValue.current() == nullptr); @@ -177,7 +178,7 @@ void Account::createSession( } void Account::destroySession() { - _storedSettings.reset(); + _storedSessionSettings.reset(); _sessionUserId = 0; _sessionUserSerialized = {}; if (!sessionExists()) { @@ -291,7 +292,7 @@ void Account::setSessionUserId(UserId userId) { } void Account::setSessionFromStorage( - std::unique_ptr data, + std::unique_ptr data, QByteArray &&selfSerialized, int32 selfStreamVersion) { Expects(!sessionExists()); @@ -299,14 +300,16 @@ void Account::setSessionFromStorage( DEBUG_LOG(("sessionUserSerialized set: %1" ).arg(selfSerialized.size())); - _storedSettings = std::move(data); + _storedSessionSettings = std::move(data); _sessionUserSerialized = std::move(selfSerialized); _sessionUserStreamVersion = selfStreamVersion; } -Settings *Account::getSessionSettings() { +SessionSettings *Account::getSessionSettings() { if (_sessionUserId) { - return _storedSettings ? _storedSettings.get() : nullptr; + return _storedSessionSettings + ? _storedSessionSettings.get() + : nullptr; } else if (sessionExists()) { return &session().settings(); } @@ -431,9 +434,11 @@ void Account::startMtp(std::unique_ptr config) { _sessionUserId, base::take(_sessionUserSerialized), base::take(_sessionUserStreamVersion), - _storedSettings ? std::move(*_storedSettings) : Settings()); + (_storedSessionSettings + ? std::move(_storedSessionSettings) + : std::make_unique())); } - _storedSettings = nullptr; + _storedSessionSettings = nullptr; if (sessionExists()) { // Skip all pending self updates so that we won't local().writeSelf. diff --git a/Telegram/SourceFiles/main/main_account.h b/Telegram/SourceFiles/main/main_account.h index f4ffcbf16..c1af51663 100644 --- a/Telegram/SourceFiles/main/main_account.h +++ b/Telegram/SourceFiles/main/main_account.h @@ -24,7 +24,7 @@ class Config; namespace Main { class Session; -class Settings; +class SessionSettings; class AppConfig; class Account final : public base::has_weak_ptr { @@ -49,7 +49,7 @@ public: UserId id, QByteArray serialized, int streamVersion, - Settings &&settings); + std::unique_ptr settings); void destroySession(); void logOut(); @@ -81,10 +81,10 @@ public: void setLegacyMtpKey(std::shared_ptr key); void setSessionUserId(UserId userId); void setSessionFromStorage( - std::unique_ptr data, + std::unique_ptr data, QByteArray &&selfSerialized, int32 selfStreamVersion); - [[nodiscard]] Settings *getSessionSettings(); + [[nodiscard]] SessionSettings *getSessionSettings(); [[nodiscard]] rpl::producer<> mtpNewSessionCreated() const; [[nodiscard]] rpl::producer mtpUpdates() const; @@ -105,7 +105,7 @@ private: const MTPUser &user, QByteArray serialized, int streamVersion, - Settings &&settings); + std::unique_ptr settings); void watchProxyChanges(); void watchSessionChanges(); bool checkForUpdates(const mtpPrime *from, const mtpPrime *end); @@ -132,7 +132,7 @@ private: UserId _sessionUserId = 0; QByteArray _sessionUserSerialized; int32 _sessionUserStreamVersion = 0; - std::unique_ptr _storedSettings; + std::unique_ptr _storedSessionSettings; MTP::Instance::Fields _mtpFields; MTP::AuthKeysList _mtpKeysToDestroy; bool _loggingOut = false; diff --git a/Telegram/SourceFiles/main/main_session.cpp b/Telegram/SourceFiles/main/main_session.cpp index 8855c6feb..44d07aa44 100644 --- a/Telegram/SourceFiles/main/main_session.cpp +++ b/Telegram/SourceFiles/main/main_session.cpp @@ -11,6 +11,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "api/api_updates.h" #include "core/application.h" #include "main/main_account.h" +#include "main/main_session_settings.h" #include "mtproto/mtproto_config.h" #include "chat_helpers/stickers_emoji_pack.h" #include "chat_helpers/stickers_dice_pack.h" @@ -64,10 +65,9 @@ constexpr auto kLegacyCallsPeerToPeerNobody = 4; Session::Session( not_null account, const MTPUser &user, - Settings &&settings) + std::unique_ptr settings) : _account(account) , _settings(std::move(settings)) -, _saveSettingsTimer([=] { local().writeSettings(); }) , _api(std::make_unique(this)) , _updates(std::make_unique(this)) , _calls(std::make_unique(this)) @@ -80,7 +80,10 @@ Session::Session( , _user(_data->processUser(user)) , _emojiStickersPack(std::make_unique(this)) , _diceStickersPacks(std::make_unique(this)) -, _supportHelper(Support::Helper::Create(this)) { +, _supportHelper(Support::Helper::Create(this)) +, _saveSettingsTimer([=] { saveSettings(); }) { + Expects(_settings != nullptr); + Core::App().lockChanges( ) | rpl::start_with_next([=] { notifications().updateAll(); @@ -116,7 +119,7 @@ Session::Session( } }, _lifetime); - if (_settings.hadLegacyCallsPeerToPeerNobody()) { + if (_settings->hadLegacyCallsPeerToPeerNobody()) { api().savePrivacy( MTP_inputPrivacyKeyPhoneP2P(), QVector( @@ -227,10 +230,14 @@ Support::Templates& Session::supportTemplates() const { void Session::saveSettingsNowIfNeeded() { if (_saveSettingsTimer.isActive()) { _saveSettingsTimer.cancel(); - local().writeSettings(); + saveSettings(); } } +void Session::saveSettings() { + local().writeSessionSettings(); +} + void Session::addWindow(not_null controller) { _windows.emplace(controller); controller->lifetime().add([=] { diff --git a/Telegram/SourceFiles/main/main_session.h b/Telegram/SourceFiles/main/main_session.h index 5dc5aedce..35300ff04 100644 --- a/Telegram/SourceFiles/main/main_session.h +++ b/Telegram/SourceFiles/main/main_session.h @@ -10,7 +10,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include #include #include -#include "main/main_settings.h" #include "base/timer.h" class ApiWrap; @@ -60,6 +59,7 @@ class DicePacks; namespace Main { class Account; +class SessionSettings; class Session final : public base::has_weak_ptr @@ -68,7 +68,7 @@ public: Session( not_null account, const MTPUser &user, - Settings &&other); + std::unique_ptr settings); ~Session(); Session(const Session &other) = delete; @@ -111,9 +111,10 @@ public: [[nodiscard]] Data::Session &data() { return *_data; } - [[nodiscard]] Settings &settings() { - return _settings; + [[nodiscard]] SessionSettings &settings() { + return *_settings; } + void saveSettings(); void saveSettingsDelayed(crl::time delay = kDefaultSaveDelay); void saveSettingsNowIfNeeded(); @@ -156,9 +157,7 @@ private: const not_null _account; - Settings _settings; - base::Timer _saveSettingsTimer; - + const std::unique_ptr _settings; const std::unique_ptr _api; const std::unique_ptr _updates; const std::unique_ptr _calls; @@ -179,6 +178,7 @@ private: const std::unique_ptr _supportHelper; base::flat_set> _windows; + base::Timer _saveSettingsTimer; rpl::lifetime _lifetime; diff --git a/Telegram/SourceFiles/main/main_settings.cpp b/Telegram/SourceFiles/main/main_session_settings.cpp similarity index 66% rename from Telegram/SourceFiles/main/main_settings.cpp rename to Telegram/SourceFiles/main/main_session_settings.cpp index 895783ee6..f1e9f0982 100644 --- a/Telegram/SourceFiles/main/main_settings.cpp +++ b/Telegram/SourceFiles/main/main_session_settings.cpp @@ -5,7 +5,7 @@ the official desktop application for the Telegram messaging service. For license and copyright information please follow this link: https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ -#include "main/main_settings.h" +#include "main/main_session_settings.h" #include "chat_helpers/tabbed_selector.h" #include "window/section_widget.h" @@ -33,7 +33,7 @@ float64 DeserializePlaybackSpeed(qint32 speed) { } // namespace -Settings::Variables::Variables() +SessionSettings::Variables::Variables() : sendFilesWay(SendFilesWay::Album) , selectorTab(ChatHelpers::SelectorTab::Emoji) , floatPlayerColumn(Window::Column::Second) @@ -45,11 +45,11 @@ Settings::Variables::Variables() , supportSwitch(Support::SwitchSettings::Next) { } -bool Settings::ThirdColumnByDefault() { +bool SessionSettings::ThirdColumnByDefault() { return Platform::IsMacStoreBuild(); } -QByteArray Settings::serialize() const { +QByteArray SessionSettings::serialize() const { const auto autoDownload = _variables.autoDownload.serialize(); auto size = sizeof(qint32) * 38; for (const auto &[key, value] : _variables.soundOverrides) { @@ -131,11 +131,15 @@ QByteArray Settings::serialize() const { return result; } -void Settings::constructFromSerialized(const QByteArray &serialized) { +std::unique_ptr SessionSettings::FromSerialized( + const QByteArray &serialized) { if (serialized.isEmpty()) { - return; + return nullptr; } + auto result = std::make_unique(); + const auto variables = &result->_variables; + QDataStream stream(serialized); stream.setVersion(QDataStream::Qt_5_1); qint32 versionTag = 0; @@ -150,37 +154,37 @@ void Settings::constructFromSerialized(const QByteArray &serialized) { base::flat_set groupStickersSectionHidden; qint32 thirdSectionInfoEnabled = 0; qint32 smallDialogsList = 0; - float64 dialogsWidthRatio = _variables.dialogsWidthRatio.current(); - int thirdColumnWidth = _variables.thirdColumnWidth.current(); - int thirdSectionExtendedBy = _variables.thirdSectionExtendedBy; - qint32 sendFilesWay = static_cast(_variables.sendFilesWay); + float64 dialogsWidthRatio = variables->dialogsWidthRatio.current(); + int thirdColumnWidth = variables->thirdColumnWidth.current(); + int thirdSectionExtendedBy = variables->thirdSectionExtendedBy; + qint32 sendFilesWay = static_cast(variables->sendFilesWay); qint32 legacyCallsPeerToPeer = qint32(0); - qint32 sendSubmitWay = static_cast(_variables.sendSubmitWay); - qint32 supportSwitch = static_cast(_variables.supportSwitch); - qint32 supportFixChatsOrder = _variables.supportFixChatsOrder ? 1 : 0; - qint32 supportTemplatesAutocomplete = _variables.supportTemplatesAutocomplete ? 1 : 0; - qint32 supportChatsTimeSlice = _variables.supportChatsTimeSlice.current(); - qint32 includeMutedCounter = _variables.includeMutedCounter ? 1 : 0; - qint32 countUnreadMessages = _variables.countUnreadMessages ? 1 : 0; - qint32 exeLaunchWarning = _variables.exeLaunchWarning ? 1 : 0; + qint32 sendSubmitWay = static_cast(variables->sendSubmitWay); + qint32 supportSwitch = static_cast(variables->supportSwitch); + qint32 supportFixChatsOrder = variables->supportFixChatsOrder ? 1 : 0; + qint32 supportTemplatesAutocomplete = variables->supportTemplatesAutocomplete ? 1 : 0; + qint32 supportChatsTimeSlice = variables->supportChatsTimeSlice.current(); + qint32 includeMutedCounter = variables->includeMutedCounter ? 1 : 0; + qint32 countUnreadMessages = variables->countUnreadMessages ? 1 : 0; + qint32 exeLaunchWarning = variables->exeLaunchWarning ? 1 : 0; QByteArray autoDownload; - qint32 supportAllSearchResults = _variables.supportAllSearchResults.current() ? 1 : 0; - qint32 archiveCollapsed = _variables.archiveCollapsed.current() ? 1 : 0; - qint32 notifyAboutPinned = _variables.notifyAboutPinned.current() ? 1 : 0; - qint32 archiveInMainMenu = _variables.archiveInMainMenu.current() ? 1 : 0; - qint32 skipArchiveInSearch = _variables.skipArchiveInSearch.current() ? 1 : 0; + qint32 supportAllSearchResults = variables->supportAllSearchResults.current() ? 1 : 0; + qint32 archiveCollapsed = variables->archiveCollapsed.current() ? 1 : 0; + qint32 notifyAboutPinned = variables->notifyAboutPinned.current() ? 1 : 0; + qint32 archiveInMainMenu = variables->archiveInMainMenu.current() ? 1 : 0; + qint32 skipArchiveInSearch = variables->skipArchiveInSearch.current() ? 1 : 0; qint32 autoplayGifs = 1; - qint32 loopAnimatedStickers = _variables.loopAnimatedStickers ? 1 : 0; - qint32 largeEmoji = _variables.largeEmoji.current() ? 1 : 0; - qint32 replaceEmoji = _variables.replaceEmoji.current() ? 1 : 0; - qint32 suggestEmoji = _variables.suggestEmoji ? 1 : 0; - qint32 suggestStickersByEmoji = _variables.suggestStickersByEmoji ? 1 : 0; - qint32 spellcheckerEnabled = _variables.spellcheckerEnabled.current() ? 1 : 0; + qint32 loopAnimatedStickers = variables->loopAnimatedStickers ? 1 : 0; + qint32 largeEmoji = variables->largeEmoji.current() ? 1 : 0; + qint32 replaceEmoji = variables->replaceEmoji.current() ? 1 : 0; + qint32 suggestEmoji = variables->suggestEmoji ? 1 : 0; + qint32 suggestStickersByEmoji = variables->suggestStickersByEmoji ? 1 : 0; + qint32 spellcheckerEnabled = variables->spellcheckerEnabled.current() ? 1 : 0; std::vector> mediaLastPlaybackPosition; - qint32 videoPlaybackSpeed = SerializePlaybackSpeed(_variables.videoPlaybackSpeed.current()); - QByteArray videoPipGeometry = _variables.videoPipGeometry; + qint32 videoPlaybackSpeed = SerializePlaybackSpeed(variables->videoPlaybackSpeed.current()); + QByteArray videoPipGeometry = variables->videoPipGeometry; std::vector dictionariesEnabled; - qint32 autoDownloadDictionaries = _variables.autoDownloadDictionaries.current() ? 1 : 0; + qint32 autoDownloadDictionaries = variables->autoDownloadDictionaries.current() ? 1 : 0; base::flat_map hiddenPinnedMessages; stream >> versionTag; @@ -336,18 +340,18 @@ void Settings::constructFromSerialized(const QByteArray &serialized) { } if (stream.status() != QDataStream::Ok) { LOG(("App Error: " - "Bad data for Main::Settings::constructFromSerialized()")); - return; + "Bad data for Main::SessionSettings::FromSerialized()")); + return nullptr; } if (!autoDownload.isEmpty() - && !_variables.autoDownload.setFromSerialized(autoDownload)) { - return; + && !variables->autoDownload.setFromSerialized(autoDownload)) { + return nullptr; } if (!version) { if (!autoplayGifs) { using namespace Data::AutoDownload; - _variables.autoDownload = WithDisabledAutoPlay( - _variables.autoDownload); + variables->autoDownload = WithDisabledAutoPlay( + variables->autoDownload); } } @@ -355,104 +359,105 @@ void Settings::constructFromSerialized(const QByteArray &serialized) { switch (uncheckedTab) { case ChatHelpers::SelectorTab::Emoji: case ChatHelpers::SelectorTab::Stickers: - case ChatHelpers::SelectorTab::Gifs: _variables.selectorTab = uncheckedTab; break; + case ChatHelpers::SelectorTab::Gifs: variables->selectorTab = uncheckedTab; break; } - _variables.lastSeenWarningSeen = (lastSeenWarningSeen == 1); - _variables.tabbedSelectorSectionEnabled = (tabbedSelectorSectionEnabled == 1); - _variables.soundOverrides = std::move(soundOverrides); - _variables.tabbedSelectorSectionTooltipShown = tabbedSelectorSectionTooltipShown; + variables->lastSeenWarningSeen = (lastSeenWarningSeen == 1); + variables->tabbedSelectorSectionEnabled = (tabbedSelectorSectionEnabled == 1); + variables->soundOverrides = std::move(soundOverrides); + variables->tabbedSelectorSectionTooltipShown = tabbedSelectorSectionTooltipShown; auto uncheckedColumn = static_cast(floatPlayerColumn); switch (uncheckedColumn) { case Window::Column::First: case Window::Column::Second: - case Window::Column::Third: _variables.floatPlayerColumn = uncheckedColumn; break; + case Window::Column::Third: variables->floatPlayerColumn = uncheckedColumn; break; } auto uncheckedCorner = static_cast(floatPlayerCorner); switch (uncheckedCorner) { case RectPart::TopLeft: case RectPart::TopRight: case RectPart::BottomLeft: - case RectPart::BottomRight: _variables.floatPlayerCorner = uncheckedCorner; break; + case RectPart::BottomRight: variables->floatPlayerCorner = uncheckedCorner; break; } - _variables.groupStickersSectionHidden = std::move(groupStickersSectionHidden); - _variables.thirdSectionInfoEnabled = thirdSectionInfoEnabled; - _variables.smallDialogsList = smallDialogsList; - _variables.dialogsWidthRatio = dialogsWidthRatio; - _variables.thirdColumnWidth = thirdColumnWidth; - _variables.thirdSectionExtendedBy = thirdSectionExtendedBy; - if (_variables.thirdSectionInfoEnabled) { - _variables.tabbedSelectorSectionEnabled = false; + variables->groupStickersSectionHidden = std::move(groupStickersSectionHidden); + variables->thirdSectionInfoEnabled = thirdSectionInfoEnabled; + variables->smallDialogsList = smallDialogsList; + variables->dialogsWidthRatio = dialogsWidthRatio; + variables->thirdColumnWidth = thirdColumnWidth; + variables->thirdSectionExtendedBy = thirdSectionExtendedBy; + if (variables->thirdSectionInfoEnabled) { + variables->tabbedSelectorSectionEnabled = false; } auto uncheckedSendFilesWay = static_cast(sendFilesWay); switch (uncheckedSendFilesWay) { case SendFilesWay::Album: case SendFilesWay::Photos: - case SendFilesWay::Files: _variables.sendFilesWay = uncheckedSendFilesWay; break; + case SendFilesWay::Files: variables->sendFilesWay = uncheckedSendFilesWay; break; } auto uncheckedSendSubmitWay = static_cast( sendSubmitWay); switch (uncheckedSendSubmitWay) { case Ui::InputSubmitSettings::Enter: - case Ui::InputSubmitSettings::CtrlEnter: _variables.sendSubmitWay = uncheckedSendSubmitWay; break; + case Ui::InputSubmitSettings::CtrlEnter: variables->sendSubmitWay = uncheckedSendSubmitWay; break; } auto uncheckedSupportSwitch = static_cast( supportSwitch); switch (uncheckedSupportSwitch) { case Support::SwitchSettings::None: case Support::SwitchSettings::Next: - case Support::SwitchSettings::Previous: _variables.supportSwitch = uncheckedSupportSwitch; break; + case Support::SwitchSettings::Previous: variables->supportSwitch = uncheckedSupportSwitch; break; } - _variables.supportFixChatsOrder = (supportFixChatsOrder == 1); - _variables.supportTemplatesAutocomplete = (supportTemplatesAutocomplete == 1); - _variables.supportChatsTimeSlice = supportChatsTimeSlice; - _variables.hadLegacyCallsPeerToPeerNobody = (legacyCallsPeerToPeer == kLegacyCallsPeerToPeerNobody); - _variables.includeMutedCounter = (includeMutedCounter == 1); - _variables.countUnreadMessages = (countUnreadMessages == 1); - _variables.exeLaunchWarning = (exeLaunchWarning == 1); - _variables.supportAllSearchResults = (supportAllSearchResults == 1); - _variables.archiveCollapsed = (archiveCollapsed == 1); - _variables.notifyAboutPinned = (notifyAboutPinned == 1); - _variables.archiveInMainMenu = (archiveInMainMenu == 1); - _variables.skipArchiveInSearch = (skipArchiveInSearch == 1); - _variables.loopAnimatedStickers = (loopAnimatedStickers == 1); - _variables.largeEmoji = (largeEmoji == 1); - _variables.replaceEmoji = (replaceEmoji == 1); - _variables.suggestEmoji = (suggestEmoji == 1); - _variables.suggestStickersByEmoji = (suggestStickersByEmoji == 1); - _variables.spellcheckerEnabled = (spellcheckerEnabled == 1); - _variables.mediaLastPlaybackPosition = std::move(mediaLastPlaybackPosition); - _variables.videoPlaybackSpeed = DeserializePlaybackSpeed(videoPlaybackSpeed); - _variables.videoPipGeometry = videoPipGeometry; - _variables.dictionariesEnabled = std::move(dictionariesEnabled); - _variables.autoDownloadDictionaries = (autoDownloadDictionaries == 1); - _variables.hiddenPinnedMessages = std::move(hiddenPinnedMessages); + variables->supportFixChatsOrder = (supportFixChatsOrder == 1); + variables->supportTemplatesAutocomplete = (supportTemplatesAutocomplete == 1); + variables->supportChatsTimeSlice = supportChatsTimeSlice; + variables->hadLegacyCallsPeerToPeerNobody = (legacyCallsPeerToPeer == kLegacyCallsPeerToPeerNobody); + variables->includeMutedCounter = (includeMutedCounter == 1); + variables->countUnreadMessages = (countUnreadMessages == 1); + variables->exeLaunchWarning = (exeLaunchWarning == 1); + variables->supportAllSearchResults = (supportAllSearchResults == 1); + variables->archiveCollapsed = (archiveCollapsed == 1); + variables->notifyAboutPinned = (notifyAboutPinned == 1); + variables->archiveInMainMenu = (archiveInMainMenu == 1); + variables->skipArchiveInSearch = (skipArchiveInSearch == 1); + variables->loopAnimatedStickers = (loopAnimatedStickers == 1); + variables->largeEmoji = (largeEmoji == 1); + variables->replaceEmoji = (replaceEmoji == 1); + variables->suggestEmoji = (suggestEmoji == 1); + variables->suggestStickersByEmoji = (suggestStickersByEmoji == 1); + variables->spellcheckerEnabled = (spellcheckerEnabled == 1); + variables->mediaLastPlaybackPosition = std::move(mediaLastPlaybackPosition); + variables->videoPlaybackSpeed = DeserializePlaybackSpeed(videoPlaybackSpeed); + variables->videoPipGeometry = videoPipGeometry; + variables->dictionariesEnabled = std::move(dictionariesEnabled); + variables->autoDownloadDictionaries = (autoDownloadDictionaries == 1); + variables->hiddenPinnedMessages = std::move(hiddenPinnedMessages); + return result; } -void Settings::setSupportChatsTimeSlice(int slice) { +void SessionSettings::setSupportChatsTimeSlice(int slice) { _variables.supportChatsTimeSlice = slice; } -int Settings::supportChatsTimeSlice() const { +int SessionSettings::supportChatsTimeSlice() const { return _variables.supportChatsTimeSlice.current(); } -rpl::producer Settings::supportChatsTimeSliceValue() const { +rpl::producer SessionSettings::supportChatsTimeSliceValue() const { return _variables.supportChatsTimeSlice.value(); } -void Settings::setSupportAllSearchResults(bool all) { +void SessionSettings::setSupportAllSearchResults(bool all) { _variables.supportAllSearchResults = all; } -bool Settings::supportAllSearchResults() const { +bool SessionSettings::supportAllSearchResults() const { return _variables.supportAllSearchResults.current(); } -rpl::producer Settings::supportAllSearchResultsValue() const { +rpl::producer SessionSettings::supportAllSearchResultsValue() const { return _variables.supportAllSearchResults.value(); } -void Settings::setTabbedSelectorSectionEnabled(bool enabled) { +void SessionSettings::setTabbedSelectorSectionEnabled(bool enabled) { _variables.tabbedSelectorSectionEnabled = enabled; if (enabled) { setThirdSectionInfoEnabled(false); @@ -460,12 +465,12 @@ void Settings::setTabbedSelectorSectionEnabled(bool enabled) { setTabbedReplacedWithInfo(false); } -rpl::producer Settings::tabbedReplacedWithInfoValue() const { +rpl::producer SessionSettings::tabbedReplacedWithInfoValue() const { return _tabbedReplacedWithInfoValue.events_starting_with( tabbedReplacedWithInfo()); } -void Settings::setThirdSectionInfoEnabled(bool enabled) { +void SessionSettings::setThirdSectionInfoEnabled(bool enabled) { if (_variables.thirdSectionInfoEnabled != enabled) { _variables.thirdSectionInfoEnabled = enabled; if (enabled) { @@ -476,19 +481,19 @@ void Settings::setThirdSectionInfoEnabled(bool enabled) { } } -rpl::producer Settings::thirdSectionInfoEnabledValue() const { +rpl::producer SessionSettings::thirdSectionInfoEnabledValue() const { return _thirdSectionInfoEnabledValue.events_starting_with( thirdSectionInfoEnabled()); } -void Settings::setTabbedReplacedWithInfo(bool enabled) { +void SessionSettings::setTabbedReplacedWithInfo(bool enabled) { if (_tabbedReplacedWithInfo != enabled) { _tabbedReplacedWithInfo = enabled; _tabbedReplacedWithInfoValue.fire_copy(enabled); } } -QString Settings::getSoundPath(const QString &key) const { +QString SessionSettings::getSoundPath(const QString &key) const { auto it = _variables.soundOverrides.find(key); if (it != _variables.soundOverrides.end()) { return it->second; @@ -496,31 +501,31 @@ QString Settings::getSoundPath(const QString &key) const { return qsl(":/sounds/") + key + qsl(".mp3"); } -void Settings::setDialogsWidthRatio(float64 ratio) { +void SessionSettings::setDialogsWidthRatio(float64 ratio) { _variables.dialogsWidthRatio = ratio; } -float64 Settings::dialogsWidthRatio() const { +float64 SessionSettings::dialogsWidthRatio() const { return _variables.dialogsWidthRatio.current(); } -rpl::producer Settings::dialogsWidthRatioChanges() const { +rpl::producer SessionSettings::dialogsWidthRatioChanges() const { return _variables.dialogsWidthRatio.changes(); } -void Settings::setThirdColumnWidth(int width) { +void SessionSettings::setThirdColumnWidth(int width) { _variables.thirdColumnWidth = width; } -int Settings::thirdColumnWidth() const { +int SessionSettings::thirdColumnWidth() const { return _variables.thirdColumnWidth.current(); } -rpl::producer Settings::thirdColumnWidthChanges() const { +rpl::producer SessionSettings::thirdColumnWidthChanges() const { return _variables.thirdColumnWidth.changes(); } -void Settings::setMediaLastPlaybackPosition(DocumentId id, crl::time time) { +void SessionSettings::setMediaLastPlaybackPosition(DocumentId id, crl::time time) { auto &map = _variables.mediaLastPlaybackPosition; const auto i = ranges::find( map, @@ -540,7 +545,7 @@ void Settings::setMediaLastPlaybackPosition(DocumentId id, crl::time time) { } } -crl::time Settings::mediaLastPlaybackPosition(DocumentId id) const { +crl::time SessionSettings::mediaLastPlaybackPosition(DocumentId id) const { const auto i = ranges::find( _variables.mediaLastPlaybackPosition, id, @@ -548,83 +553,83 @@ crl::time Settings::mediaLastPlaybackPosition(DocumentId id) const { return (i != _variables.mediaLastPlaybackPosition.end()) ? i->second : 0; } -void Settings::setArchiveCollapsed(bool collapsed) { +void SessionSettings::setArchiveCollapsed(bool collapsed) { _variables.archiveCollapsed = collapsed; } -bool Settings::archiveCollapsed() const { +bool SessionSettings::archiveCollapsed() const { return _variables.archiveCollapsed.current(); } -rpl::producer Settings::archiveCollapsedChanges() const { +rpl::producer SessionSettings::archiveCollapsedChanges() const { return _variables.archiveCollapsed.changes(); } -void Settings::setArchiveInMainMenu(bool inMainMenu) { +void SessionSettings::setArchiveInMainMenu(bool inMainMenu) { _variables.archiveInMainMenu = inMainMenu; } -bool Settings::archiveInMainMenu() const { +bool SessionSettings::archiveInMainMenu() const { return _variables.archiveInMainMenu.current(); } -rpl::producer Settings::archiveInMainMenuChanges() const { +rpl::producer SessionSettings::archiveInMainMenuChanges() const { return _variables.archiveInMainMenu.changes(); } -void Settings::setNotifyAboutPinned(bool notify) { +void SessionSettings::setNotifyAboutPinned(bool notify) { _variables.notifyAboutPinned = notify; } -bool Settings::notifyAboutPinned() const { +bool SessionSettings::notifyAboutPinned() const { return _variables.notifyAboutPinned.current(); } -rpl::producer Settings::notifyAboutPinnedChanges() const { +rpl::producer SessionSettings::notifyAboutPinnedChanges() const { return _variables.notifyAboutPinned.changes(); } -void Settings::setSkipArchiveInSearch(bool skip) { +void SessionSettings::setSkipArchiveInSearch(bool skip) { _variables.skipArchiveInSearch = skip; } -bool Settings::skipArchiveInSearch() const { +bool SessionSettings::skipArchiveInSearch() const { return _variables.skipArchiveInSearch.current(); } -rpl::producer Settings::skipArchiveInSearchChanges() const { +rpl::producer SessionSettings::skipArchiveInSearchChanges() const { return _variables.skipArchiveInSearch.changes(); } -void Settings::setLargeEmoji(bool value) { +void SessionSettings::setLargeEmoji(bool value) { _variables.largeEmoji = value; } -bool Settings::largeEmoji() const { +bool SessionSettings::largeEmoji() const { return _variables.largeEmoji.current(); } -rpl::producer Settings::largeEmojiValue() const { +rpl::producer SessionSettings::largeEmojiValue() const { return _variables.largeEmoji.value(); } -rpl::producer Settings::largeEmojiChanges() const { +rpl::producer SessionSettings::largeEmojiChanges() const { return _variables.largeEmoji.changes(); } -void Settings::setReplaceEmoji(bool value) { +void SessionSettings::setReplaceEmoji(bool value) { _variables.replaceEmoji = value; } -bool Settings::replaceEmoji() const { +bool SessionSettings::replaceEmoji() const { return _variables.replaceEmoji.current(); } -rpl::producer Settings::replaceEmojiValue() const { +rpl::producer SessionSettings::replaceEmojiValue() const { return _variables.replaceEmoji.value(); } -rpl::producer Settings::replaceEmojiChanges() const { +rpl::producer SessionSettings::replaceEmojiChanges() const { return _variables.replaceEmoji.changes(); } diff --git a/Telegram/SourceFiles/main/main_settings.h b/Telegram/SourceFiles/main/main_session_settings.h similarity index 98% rename from Telegram/SourceFiles/main/main_settings.h rename to Telegram/SourceFiles/main/main_session_settings.h index cd874a491..eb25b1e01 100644 --- a/Telegram/SourceFiles/main/main_settings.h +++ b/Telegram/SourceFiles/main/main_session_settings.h @@ -30,10 +30,11 @@ enum class SelectorTab; namespace Main { -class Settings final { +class SessionSettings final { public: [[nodiscard]] QByteArray serialize() const; - void constructFromSerialized(const QByteArray &serialized); + [[nodiscard]] static std::unique_ptr FromSerialized( + const QByteArray &serialized); void setLastSeenWarningSeen(bool lastSeenWarningSeen) { _variables.lastSeenWarningSeen = lastSeenWarningSeen; diff --git a/Telegram/SourceFiles/mainwidget.cpp b/Telegram/SourceFiles/mainwidget.cpp index 67cd656ce..e1cda0e61 100644 --- a/Telegram/SourceFiles/mainwidget.cpp +++ b/Telegram/SourceFiles/mainwidget.cpp @@ -98,6 +98,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "export/view/export_view_top_bar.h" #include "export/view/export_view_panel_controller.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "main/main_account.h" #include "support/support_helper.h" #include "storage/storage_facade.h" @@ -2282,7 +2283,7 @@ void MainWidget::ensureFirstColumnResizeAreaCreated() { session().settings().setDialogsWidthRatio( float64(_dialogsWidth) / width()); } - session().local().writeSettings(); + session().saveSettings(); }; createResizeArea( _firstColumnResizeArea, @@ -2306,7 +2307,7 @@ void MainWidget::ensureThirdColumnResizeAreaCreated() { session().settings().thirdColumnWidth(), st::columnMinimalWidthThird, st::columnMaximalWidthThird)); - session().local().writeSettings(); + session().saveSettings(); }; createResizeArea( _thirdColumnResizeArea, diff --git a/Telegram/SourceFiles/mainwindow.cpp b/Telegram/SourceFiles/mainwindow.cpp index fd5816331..403c6ad50 100644 --- a/Telegram/SourceFiles/mainwindow.cpp +++ b/Telegram/SourceFiles/mainwindow.cpp @@ -810,7 +810,7 @@ void MainWindow::toggleDisplayNotifyFromTray() { Global::SetRestoreFlashBounceNotifyFromTray(false); } } - account().local().writeSettings(); + account().session().saveSettings(); using Change = Window::Notifications::ChangeType; auto &changes = account().session().notifications().settingsChanged(); changes.notify(Change::DesktopEnabled); diff --git a/Telegram/SourceFiles/media/player/media_player_float.cpp b/Telegram/SourceFiles/media/player/media_player_float.cpp index c2ff6df6a..aac8a94cc 100644 --- a/Telegram/SourceFiles/media/player/media_player_float.cpp +++ b/Telegram/SourceFiles/media/player/media_player_float.cpp @@ -21,6 +21,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "window/window_session_controller.h" #include "window/section_widget.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "facades.h" #include "app.h" #include "styles/style_media_player.h" diff --git a/Telegram/SourceFiles/media/player/media_player_instance.cpp b/Telegram/SourceFiles/media/player/media_player_instance.cpp index 46d3cf047..a793d1b86 100644 --- a/Telegram/SourceFiles/media/player/media_player_instance.cpp +++ b/Telegram/SourceFiles/media/player/media_player_instance.cpp @@ -26,6 +26,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "main/main_accounts.h" // Accounts::activeSessionValue. #include "mainwindow.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "facades.h" namespace Media { diff --git a/Telegram/SourceFiles/media/player/media_player_widget.cpp b/Telegram/SourceFiles/media/player/media_player_widget.cpp index 68a8baf4c..c904233f7 100644 --- a/Telegram/SourceFiles/media/player/media_player_widget.cpp +++ b/Telegram/SourceFiles/media/player/media_player_widget.cpp @@ -143,7 +143,7 @@ Widget::Widget(QWidget *parent, not_null session) Global::SetVoiceMsgPlaybackDoubled(doubled); instance()->updateVoicePlaybackSpeed(); updatePlaybackSpeedIcon(); - _session->local().writeSettings(); + _session->saveSettings(); }); subscribe(instance()->repeatChangedNotifier(), [this](AudioMsgId::Type type) { diff --git a/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp b/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp index 81cbe580b..bc2842418 100644 --- a/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp +++ b/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp @@ -51,6 +51,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "main/main_account.h" #include "main/main_accounts.h" // Accounts::activeSessionValue. #include "main/main_session.h" +#include "main/main_session_settings.h" #include "layout.h" #include "storage/file_download.h" #include "calls/calls_instance.h" diff --git a/Telegram/SourceFiles/overview/overview_layout.cpp b/Telegram/SourceFiles/overview/overview_layout.cpp index 171ed4e8a..e2e6972ae 100644 --- a/Telegram/SourceFiles/overview/overview_layout.cpp +++ b/Telegram/SourceFiles/overview/overview_layout.cpp @@ -25,6 +25,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mainwidget.h" #include "storage/file_upload.h" #include "mainwindow.h" +#include "main/main_session.h" #include "media/audio/media_audio.h" #include "media/player/media_player_instance.h" #include "storage/localstorage.h" diff --git a/Telegram/SourceFiles/settings/settings_advanced.cpp b/Telegram/SourceFiles/settings/settings_advanced.cpp index 9ed96b9b8..c91978655 100644 --- a/Telegram/SourceFiles/settings/settings_advanced.cpp +++ b/Telegram/SourceFiles/settings/settings_advanced.cpp @@ -28,6 +28,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_session.h" #include "main/main_account.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "mtproto/facade.h" #include "layout.h" #include "facades.h" diff --git a/Telegram/SourceFiles/settings/settings_chat.cpp b/Telegram/SourceFiles/settings/settings_chat.cpp index 707a6b254..4478b64fa 100644 --- a/Telegram/SourceFiles/settings/settings_chat.cpp +++ b/Telegram/SourceFiles/settings/settings_chat.cpp @@ -46,6 +46,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "support/support_common.h" #include "support/support_templates.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "mainwidget.h" #include "mainwindow.h" #include "facades.h" diff --git a/Telegram/SourceFiles/settings/settings_codes.cpp b/Telegram/SourceFiles/settings/settings_codes.cpp index 2d43386c7..aad82e0d8 100644 --- a/Telegram/SourceFiles/settings/settings_codes.cpp +++ b/Telegram/SourceFiles/settings/settings_codes.cpp @@ -13,6 +13,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mainwindow.h" #include "data/data_session.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "main/main_account.h" #include "main/main_accounts.h" #include "boxes/confirm_box.h" diff --git a/Telegram/SourceFiles/settings/settings_information.cpp b/Telegram/SourceFiles/settings/settings_information.cpp index f35d60607..15270b3c2 100644 --- a/Telegram/SourceFiles/settings/settings_information.cpp +++ b/Telegram/SourceFiles/settings/settings_information.cpp @@ -26,6 +26,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "info/profile/info_profile_values.h" #include "lang/lang_keys.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "window/window_session_controller.h" #include "apiwrap.h" #include "core/file_utilities.h" diff --git a/Telegram/SourceFiles/settings/settings_notifications.cpp b/Telegram/SourceFiles/settings/settings_notifications.cpp index 01596d152..bf953e29f 100644 --- a/Telegram/SourceFiles/settings/settings_notifications.cpp +++ b/Telegram/SourceFiles/settings/settings_notifications.cpp @@ -22,6 +22,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mainwindow.h" #include "core/application.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "apiwrap.h" #include "facades.h" #include "app.h" @@ -593,7 +594,6 @@ void SetupNotificationsContent( tr::lng_settings_count_unread(tr::now), session->settings().countUnreadMessages()); - AddSkip(container, st::settingsCheckboxesSkip); AddDivider(container); AddSkip(container, st::settingsCheckboxesSkip); diff --git a/Telegram/SourceFiles/settings/settings_privacy_controllers.cpp b/Telegram/SourceFiles/settings/settings_privacy_controllers.cpp index e4b9f352c..f7ea9bda7 100644 --- a/Telegram/SourceFiles/settings/settings_privacy_controllers.cpp +++ b/Telegram/SourceFiles/settings/settings_privacy_controllers.cpp @@ -12,6 +12,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "apiwrap.h" #include "mainwidget.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "data/data_user.h" #include "data/data_session.h" #include "data/data_changes.h" diff --git a/Telegram/SourceFiles/storage/details/storage_settings_scheme.cpp b/Telegram/SourceFiles/storage/details/storage_settings_scheme.cpp index 8f1e6808f..ce5962b9a 100644 --- a/Telegram/SourceFiles/storage/details/storage_settings_scheme.cpp +++ b/Telegram/SourceFiles/storage/details/storage_settings_scheme.cpp @@ -391,7 +391,8 @@ bool ReadSetting( stream >> v; if (!CheckStreamStatus(stream)) return false; - context.sessionSettings().constructFromSerialized(v); + context.sessionSettingsStorage + = Main::SessionSettings::FromSerialized(v); } break; case dbiWorkMode: { diff --git a/Telegram/SourceFiles/storage/details/storage_settings_scheme.h b/Telegram/SourceFiles/storage/details/storage_settings_scheme.h index b4bc1a6de..60024db73 100644 --- a/Telegram/SourceFiles/storage/details/storage_settings_scheme.h +++ b/Telegram/SourceFiles/storage/details/storage_settings_scheme.h @@ -8,7 +8,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #pragma once #include "mtproto/mtproto_dc_options.h" -#include "main/main_settings.h" +#include "main/main_session_settings.h" #include "storage/storage_account.h" namespace MTP { @@ -19,9 +19,10 @@ namespace Storage { namespace details { struct ReadSettingsContext { - [[nodiscard]] Main::Settings &sessionSettings() { + [[nodiscard]] Main::SessionSettings &sessionSettings() { if (!sessionSettingsStorage) { - sessionSettingsStorage = std::make_unique(); + sessionSettingsStorage + = std::make_unique(); } return *sessionSettingsStorage; } @@ -45,7 +46,7 @@ struct ReadSettingsContext { qint64 cacheBigFileTotalSizeLimit = 0; qint32 cacheBigFileTotalTimeLimit = 0; - std::unique_ptr sessionSettingsStorage; + std::unique_ptr sessionSettingsStorage; FileKey themeKeyLegacy = 0; FileKey themeKeyDay = 0; diff --git a/Telegram/SourceFiles/storage/localstorage.h b/Telegram/SourceFiles/storage/localstorage.h index 0ac8396d1..50890a034 100644 --- a/Telegram/SourceFiles/storage/localstorage.h +++ b/Telegram/SourceFiles/storage/localstorage.h @@ -9,7 +9,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "storage/file_download.h" #include "storage/localimageloader.h" -#include "main/main_session.h" #include diff --git a/Telegram/SourceFiles/storage/storage_account.cpp b/Telegram/SourceFiles/storage/storage_account.cpp index 36a6567ce..56c92503a 100644 --- a/Telegram/SourceFiles/storage/storage_account.cpp +++ b/Telegram/SourceFiles/storage/storage_account.cpp @@ -394,7 +394,7 @@ Account::ReadMapResult Account::readMapWith( readLocations(); } - auto stored = readSettings(); + auto stored = readSessionSettings(); readMtpData(); DEBUG_LOG(("selfSerialized set: %1").arg(selfSerialized.size())); @@ -745,11 +745,11 @@ void Account::deserializeCallSettings(QByteArray &settings) { } } -void Account::writeSettings() { - writeSettings(nullptr); +void Account::writeSessionSettings() { + writeSessionSettings(nullptr); } -void Account::writeSettings(Main::Settings *stored) { +void Account::writeSessionSettings(Main::SessionSettings *stored) { if (_readingUserSettings) { LOG(("App Error: attempt to write settings while reading them!")); return; @@ -846,7 +846,7 @@ ReadSettingsContext Account::prepareReadSettingsContext() const { }; } -std::unique_ptr Account::readSettings() { +std::unique_ptr Account::readSessionSettings() { ReadSettingsContext context; FileReadDescriptor userSettings; if (!ReadEncryptedFile(userSettings, _settingsKey, _basePath, _localKey)) { @@ -855,7 +855,7 @@ std::unique_ptr Account::readSettings() { Local::readOldUserSettings(true, context); auto result = applyReadContext(std::move(context)); - writeSettings(result.get()); + writeSessionSettings(result.get()); return result; } @@ -867,13 +867,13 @@ std::unique_ptr Account::readSettings() { userSettings.stream >> blockId; if (!CheckStreamStatus(userSettings.stream)) { _readingUserSettings = false; - writeSettings(); + writeSessionSettings(); return nullptr; } if (!ReadSetting(blockId, userSettings.stream, userSettings.version, context)) { _readingUserSettings = false; - writeSettings(); + writeSessionSettings(); return nullptr; } } @@ -883,7 +883,7 @@ std::unique_ptr Account::readSettings() { return applyReadContext(std::move(context)); } -std::unique_ptr Account::applyReadContext( +std::unique_ptr Account::applyReadContext( ReadSettingsContext &&context) { ApplyReadFallbackConfig(context); @@ -1326,7 +1326,7 @@ void Account::updateCacheSettings( _cacheTotalTimeLimit = update.totalTimeLimit; _cacheBigFileTotalSizeLimit = updateBig.totalSizeLimit; _cacheBigFileTotalTimeLimit = updateBig.totalTimeLimit; - writeSettings(); + writeSessionSettings(); } QString Account::cacheBigFilePath() const { @@ -1894,7 +1894,7 @@ void Account::importOldRecentStickers() { } writeInstalledStickers(); - writeSettings(); + writeSessionSettings(); ClearKey(_recentStickersKeyOld, _basePath); _recentStickersKeyOld = 0; diff --git a/Telegram/SourceFiles/storage/storage_account.h b/Telegram/SourceFiles/storage/storage_account.h index dfe18aa56..728987f7e 100644 --- a/Telegram/SourceFiles/storage/storage_account.h +++ b/Telegram/SourceFiles/storage/storage_account.h @@ -20,7 +20,7 @@ struct Settings; namespace Main { class Account; -class Settings; +class SessionSettings; } // namespace Main namespace Data { @@ -67,7 +67,7 @@ public: return _localKey; } - void writeSettings(); + void writeSessionSettings(); void writeMtpData(); void writeMtpConfig(); @@ -172,12 +172,12 @@ private: void writeLocationsQueued(); void writeLocationsDelayed(); - std::unique_ptr readSettings(); - void writeSettings(Main::Settings *stored); + std::unique_ptr readSessionSettings(); + void writeSessionSettings(Main::SessionSettings *stored); std::unique_ptr readMtpConfig(); void readMtpData(); - std::unique_ptr applyReadContext( + std::unique_ptr applyReadContext( details::ReadSettingsContext &&context); [[nodiscard]] QByteArray serializeCallSettings(); diff --git a/Telegram/SourceFiles/support/support_autocomplete.cpp b/Telegram/SourceFiles/support/support_autocomplete.cpp index a8724c310..5fddeea3d 100644 --- a/Telegram/SourceFiles/support/support_autocomplete.cpp +++ b/Telegram/SourceFiles/support/support_autocomplete.cpp @@ -21,6 +21,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "base/unixtime.h" #include "base/call_delayed.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "apiwrap.h" #include "styles/style_chat_helpers.h" #include "styles/style_window.h" diff --git a/Telegram/SourceFiles/support/support_helper.cpp b/Telegram/SourceFiles/support/support_helper.cpp index b86152ca3..ab70bf740 100644 --- a/Telegram/SourceFiles/support/support_helper.cpp +++ b/Telegram/SourceFiles/support/support_helper.cpp @@ -28,6 +28,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "storage/localimageloader.h" #include "core/sandbox.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "apiwrap.h" #include "facades.h" #include "styles/style_layers.h" diff --git a/Telegram/SourceFiles/window/main_window.cpp b/Telegram/SourceFiles/window/main_window.cpp index 64051c4f2..2dda52102 100644 --- a/Telegram/SourceFiles/window/main_window.cpp +++ b/Telegram/SourceFiles/window/main_window.cpp @@ -24,6 +24,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "lang/lang_keys.h" #include "data/data_session.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "base/crc32hash.h" #include "base/call_delayed.h" #include "ui/toast/toast.h" @@ -413,10 +414,10 @@ void MainWindow::initSize() { ? primaryScreen->availableGeometry() : QRect(0, 0, st::windowDefaultWidth, st::windowDefaultHeight); bool maximized = false; - const auto initialWidth = Main::Settings::ThirdColumnByDefault() + const auto initialWidth = Main::SessionSettings::ThirdColumnByDefault() ? st::windowBigDefaultWidth : st::windowDefaultWidth; - const auto initialHeight = Main::Settings::ThirdColumnByDefault() + const auto initialHeight = Main::SessionSettings::ThirdColumnByDefault() ? st::windowBigDefaultHeight : st::windowDefaultHeight; auto geometry = QRect( diff --git a/Telegram/SourceFiles/window/notifications_manager.cpp b/Telegram/SourceFiles/window/notifications_manager.cpp index cbb36adeb..12ace85d9 100644 --- a/Telegram/SourceFiles/window/notifications_manager.cpp +++ b/Telegram/SourceFiles/window/notifications_manager.cpp @@ -25,6 +25,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "api/api_updates.h" #include "apiwrap.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "main/main_accounts.h" #include "facades.h" #include "app.h" diff --git a/Telegram/SourceFiles/window/notifications_manager_default.cpp b/Telegram/SourceFiles/window/notifications_manager_default.cpp index 5d19b9195..b976775c8 100644 --- a/Telegram/SourceFiles/window/notifications_manager_default.cpp +++ b/Telegram/SourceFiles/window/notifications_manager_default.cpp @@ -21,6 +21,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "window/themes/window_theme.h" #include "storage/file_download.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "history/history.h" #include "history/history_item.h" #include "platform/platform_specific.h" diff --git a/Telegram/SourceFiles/window/themes/window_theme.cpp b/Telegram/SourceFiles/window/themes/window_theme.cpp index 6c3ee8d31..e6f3b8912 100644 --- a/Telegram/SourceFiles/window/themes/window_theme.cpp +++ b/Telegram/SourceFiles/window/themes/window_theme.cpp @@ -875,7 +875,7 @@ void ChatBackground::setTile(bool tile) { if (this->tile() != old) { if (!Data::details::IsTestingThemeWallPaper(_paper) && !Data::details::IsTestingDefaultWallPaper(_paper)) { - local().writeSettings(); + local().writeSessionSettings(); } notify(BackgroundUpdate(BackgroundUpdate::Type::Changed, tile)); } @@ -1030,7 +1030,7 @@ bool ChatBackground::isNonDefaultBackground() { void ChatBackground::writeNewBackgroundSettings() { if (tile() != _tileForRevert) { - local().writeSettings(); + local().writeSessionSettings(); } local().writeBackground( _paper, @@ -1117,7 +1117,7 @@ void ChatBackground::reapplyWithNightMode( ClearApplying(); keepApplied(saved.object, settingExactTheme); if (tile() != _tileForRevert) { - local().writeSettings(); + local().writeSessionSettings(); } if (nightModeChanged) { Local::writeSettings(); diff --git a/Telegram/SourceFiles/window/window_main_menu.cpp b/Telegram/SourceFiles/window/window_main_menu.cpp index e87232633..28c88eab9 100644 --- a/Telegram/SourceFiles/window/window_main_menu.cpp +++ b/Telegram/SourceFiles/window/window_main_menu.cpp @@ -28,6 +28,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "lang/lang_keys.h" #include "core/click_handler_types.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "mtproto/mtproto_config.h" #include "data/data_folder.h" #include "data/data_session.h" @@ -289,7 +290,7 @@ void MainMenu::refreshMenu() { (*fix)->setChecked(!(*fix)->isChecked()); _controller->session().settings().setSupportFixChatsOrder( (*fix)->isChecked()); - _controller->session().local().writeSettings(); + _controller->session().saveSettings(); }, &st::mainMenuFixOrder, &st::mainMenuFixOrderOver); (*fix)->setCheckable(true); (*fix)->setChecked( diff --git a/Telegram/SourceFiles/window/window_peer_menu.cpp b/Telegram/SourceFiles/window/window_peer_menu.cpp index c6cf23534..ec67310c7 100644 --- a/Telegram/SourceFiles/window/window_peer_menu.cpp +++ b/Telegram/SourceFiles/window/window_peer_menu.cpp @@ -21,6 +21,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/widgets/checkbox.h" #include "ui/layers/generic_box.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "apiwrap.h" #include "mainwidget.h" #include "mainwindow.h" diff --git a/Telegram/SourceFiles/window/window_session_controller.cpp b/Telegram/SourceFiles/window/window_session_controller.cpp index 1a9861260..939a1b21a 100644 --- a/Telegram/SourceFiles/window/window_session_controller.cpp +++ b/Telegram/SourceFiles/window/window_session_controller.cpp @@ -31,6 +31,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mainwidget.h" #include "mainwindow.h" #include "main/main_session.h" +#include "main/main_session_settings.h" #include "apiwrap.h" #include "support/support_helper.h" #include "facades.h"