Move session settings to main_session_settings.

This commit is contained in:
John Preston 2020-06-18 16:47:09 +04:00
parent 3a5ede534e
commit 4d6cc58f0d
85 changed files with 294 additions and 200 deletions

View file

@ -674,8 +674,8 @@ PRIVATE
main/main_app_config.h main/main_app_config.h
main/main_session.cpp main/main_session.cpp
main/main_session.h main/main_session.h
main/main_settings.cpp main/main_session_settings.cpp
main/main_settings.h main/main_session_settings.h
media/audio/media_audio.cpp media/audio/media_audio.cpp
media/audio/media_audio.h media/audio/media_audio.h
media/audio/media_audio_capture.cpp media/audio/media_audio_capture.cpp

View file

@ -49,6 +49,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "history/history_item_components.h" #include "history/history_item_components.h"
//#include "history/feed/history_feed_section.h" // #feed //#include "history/feed/history_feed_section.h" // #feed
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "main/main_account.h" #include "main/main_account.h"
#include "boxes/confirm_box.h" #include "boxes/confirm_box.h"
#include "boxes/stickers_box.h" #include "boxes/stickers_box.h"
@ -1984,7 +1985,7 @@ void ApiWrap::saveStickerSets(
auto &storage = local(); auto &storage = local();
if (writeInstalled) storage.writeInstalledStickers(); if (writeInstalled) storage.writeInstalledStickers();
if (writeRecent) storage.writeSettings(); if (writeRecent) session().saveSettings();
if (writeArchived) storage.writeArchivedStickers(); if (writeArchived) storage.writeArchivedStickers();
if (writeCloudRecent) storage.writeRecentStickers(); if (writeCloudRecent) storage.writeRecentStickers();
if (writeFaved) storage.writeFavedStickers(); if (writeFaved) storage.writeFavedStickers();

View file

@ -40,6 +40,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "mainwindow.h" #include "mainwindow.h"
#include "apiwrap.h" #include "apiwrap.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "facades.h" #include "facades.h"
#include "styles/style_layers.h" #include "styles/style_layers.h"
#include "styles/style_boxes.h" #include "styles/style_boxes.h"

View file

@ -9,6 +9,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "data/data_session.h" #include "data/data_session.h"
#include "data/data_auto_download.h" #include "data/data_auto_download.h"
#include "ui/widgets/continuous_sliders.h" #include "ui/widgets/continuous_sliders.h"

View file

@ -11,6 +11,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "storage/localstorage.h" #include "storage/localstorage.h"
#include "core/application.h" #include "core/application.h"
#include "mainwindow.h" #include "mainwindow.h"
#include "main/main_session.h"
#include "ui/widgets/checkbox.h" #include "ui/widgets/checkbox.h"
#include "facades.h" #include "facades.h"
#include "styles/style_layers.h" #include "styles/style_layers.h"

View file

@ -20,6 +20,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "ui/widgets/checkbox.h" #include "ui/widgets/checkbox.h"
#include "ui/toast/toast.h" #include "ui/toast/toast.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "chat_helpers/emoji_suggestions_widget.h" #include "chat_helpers/emoji_suggestions_widget.h"
#include "chat_helpers/message_field.h" #include "chat_helpers/message_field.h"
#include "history/view/history_view_schedule_box.h" #include "history/view/history_view_schedule_box.h"

View file

@ -14,6 +14,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "core/application.h" #include "core/application.h"
#include "main/main_account.h" #include "main/main_account.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "mainwidget.h" #include "mainwidget.h"
#include "mtproto/dedicated_file_loader.h" #include "mtproto/dedicated_file_loader.h"
#include "spellcheck/spellcheck_utils.h" #include "spellcheck/spellcheck_utils.h"

View file

@ -124,7 +124,7 @@ void DownloadPathBox::save() {
}; };
Global::SetDownloadPath(computePath()); Global::SetDownloadPath(computePath());
Global::SetDownloadPathBookmark((value == Directory::Custom) ? _pathBookmark : QByteArray()); Global::SetDownloadPathBookmark((value == Directory::Custom) ? _pathBookmark : QByteArray());
_controller->session().local().writeSettings(); _controller->session().saveSettings();
Global::RefDownloadPathChanged().notify(); Global::RefDownloadPathChanged().notify();
closeBox(); closeBox();
#endif // OS_WIN_STORE #endif // OS_WIN_STORE

View file

@ -10,6 +10,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "apiwrap.h" #include "apiwrap.h"
#include "api/api_text_entities.h" #include "api/api_text_entities.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "chat_helpers/emoji_suggestions_widget.h" #include "chat_helpers/emoji_suggestions_widget.h"
#include "chat_helpers/message_field.h" #include "chat_helpers/message_field.h"
#include "chat_helpers/tabbed_panel.h" #include "chat_helpers/tabbed_panel.h"

View file

@ -24,6 +24,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
#include "history/history.h" #include "history/history.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "window/window_session_controller.h" #include "window/window_session_controller.h"
#include "window/window_controller.h" #include "window/window_controller.h"
#include "apiwrap.h" #include "apiwrap.h"

View file

@ -9,6 +9,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "apiwrap.h" #include "apiwrap.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "boxes/add_contact_box.h" #include "boxes/add_contact_box.h"
#include "boxes/confirm_box.h" #include "boxes/confirm_box.h"
#include "boxes/peer_list_controllers.h" #include "boxes/peer_list_controllers.h"

View file

@ -14,6 +14,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "ui/widgets/input_fields.h" #include "ui/widgets/input_fields.h"
#include "mainwindow.h" #include "mainwindow.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "apiwrap.h" #include "apiwrap.h"
#include "styles/style_layers.h" #include "styles/style_layers.h"
#include "styles/style_calls.h" #include "styles/style_calls.h"

View file

@ -10,6 +10,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
#include "data/data_peer.h" #include "data/data_peer.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "boxes/confirm_box.h" #include "boxes/confirm_box.h"
#include "ui/widgets/checkbox.h" #include "ui/widgets/checkbox.h"
#include "ui/widgets/buttons.h" #include "ui/widgets/buttons.h"

View file

@ -12,6 +12,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "storage/localstorage.h" #include "storage/localstorage.h"
#include "storage/storage_media_prepare.h" #include "storage/storage_media_prepare.h"
#include "mainwidget.h" #include "mainwidget.h"
#include "main/main_session.h"
#include "main/main_session_settings.h"
#include "mtproto/mtproto_config.h" #include "mtproto/mtproto_config.h"
#include "chat_helpers/message_field.h" #include "chat_helpers/message_field.h"
#include "chat_helpers/emoji_suggestions_widget.h" #include "chat_helpers/emoji_suggestions_widget.h"

View file

@ -36,6 +36,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "data/data_folder.h" #include "data/data_folder.h"
#include "data/data_changes.h" #include "data/data_changes.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "core/application.h" #include "core/application.h"
#include "styles/style_layers.h" #include "styles/style_layers.h"
#include "styles/style_boxes.h" #include "styles/style_boxes.h"

View file

@ -8,6 +8,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "calls/calls_call.h" #include "calls/calls_call.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "apiwrap.h" #include "apiwrap.h"
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
#include "boxes/confirm_box.h" #include "boxes/confirm_box.h"

View file

@ -10,6 +10,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "mtproto/mtproto_dh_utils.h" #include "mtproto/mtproto_dh_utils.h"
#include "core/application.h" #include "core/application.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "apiwrap.h" #include "apiwrap.h"
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
#include "boxes/confirm_box.h" #include "boxes/confirm_box.h"

View file

@ -15,6 +15,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
#include "emoji_suggestions_data.h" #include "emoji_suggestions_data.h"
#include "emoji_suggestions_helper.h" #include "emoji_suggestions_helper.h"
#include "main/main_session.h"
#include "main/main_session_settings.h"
#include "window/window_session_controller.h" #include "window/window_session_controller.h"
#include "facades.h" #include "facades.h"
#include "app.h" #include "app.h"

View file

@ -19,6 +19,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "core/application.h" #include "core/application.h"
#include "base/event_filter.h" #include "base/event_filter.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "app.h" #include "app.h"
#include "styles/style_chat_helpers.h" #include "styles/style_chat_helpers.h"

View file

@ -25,6 +25,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "storage/localstorage.h" #include "storage/localstorage.h"
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
#include "mainwindow.h" #include "mainwindow.h"
#include "main/main_session.h"
#include "window/window_session_controller.h" #include "window/window_session_controller.h"
#include "history/view/history_view_cursor_state.h" #include "history/view/history_view_cursor_state.h"
#include "facades.h" #include "facades.h"

View file

@ -25,6 +25,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
#include "mainwindow.h" #include "mainwindow.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "styles/style_layers.h" #include "styles/style_layers.h"
#include "styles/style_boxes.h" #include "styles/style_boxes.h"
#include "styles/style_history.h" #include "styles/style_history.h"

View file

@ -15,6 +15,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "lang/lang_instance.h" #include "lang/lang_instance.h"
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "mainwidget.h" #include "mainwidget.h"
#include "spellcheck/platform/platform_spellcheck.h" #include "spellcheck/platform/platform_spellcheck.h"
#include "spellcheck/spellcheck_utils.h" #include "spellcheck/spellcheck_utils.h"

View file

@ -13,6 +13,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "ui/text/text_isolated_emoji.h" #include "ui/text/text_isolated_emoji.h"
#include "ui/image/image.h" #include "ui/image/image.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "data/data_file_origin.h" #include "data/data_file_origin.h"
#include "data/data_session.h" #include "data/data_session.h"
#include "data/data_document.h" #include "data/data_document.h"

View file

@ -33,6 +33,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "boxes/confirm_box.h" #include "boxes/confirm_box.h"
#include "window/window_session_controller.h" // GifPauseReason. #include "window/window_session_controller.h" // GifPauseReason.
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "apiwrap.h" #include "apiwrap.h"
#include "app.h" #include "app.h"
#include "styles/style_chat_helpers.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) { for (int32 i = 0, l = recent.size(); i < l; ++i) {
if (recent.at(i).first == document) { if (recent.at(i).first == document) {
recent.removeAt(i); recent.removeAt(i);
session().local().writeSettings(); session().saveSettings();
refresh = true; refresh = true;
break; break;
} }
@ -2581,7 +2582,7 @@ void StickersListWidget::refreshMegagroupStickers(GroupStickersPlace place) {
auto removeHiddenForGroup = [this, &hidden] { auto removeHiddenForGroup = [this, &hidden] {
if (hidden) { if (hidden) {
session().settings().removeGroupStickersSectionHidden(_megagroupSet->id); session().settings().removeGroupStickersSectionHidden(_megagroupSet->id);
session().local().writeSettings(); session().saveSettings();
hidden = false; hidden = false;
} }
}; };
@ -2992,7 +2993,7 @@ void StickersListWidget::sendInstallRequest(
void StickersListWidget::removeMegagroupSet(bool locally) { void StickersListWidget::removeMegagroupSet(bool locally) {
if (locally) { if (locally) {
session().settings().setGroupStickersSectionHidden(_megagroupSet->id); session().settings().setGroupStickersSectionHidden(_megagroupSet->id);
session().local().writeSettings(); session().saveSettings();
refreshStickers(); refreshStickers();
return; return;
} }
@ -3053,7 +3054,7 @@ void StickersListWidget::removeSet(uint64 setId) {
if (removeIndex >= 0) session().data().stickers().setsOrderRef().removeAt(removeIndex); if (removeIndex >= 0) session().data().stickers().setsOrderRef().removeAt(removeIndex);
refreshStickers(); refreshStickers();
session().local().writeInstalledStickers(); session().local().writeInstalledStickers();
if (writeRecent) session().local().writeSettings(); if (writeRecent) session().saveSettings();
} }
_removingSetId = 0; _removingSetId = 0;
_checkForHide.fire({}); _checkForHide.fire({});

View file

@ -17,6 +17,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "ui/widgets/scroll_area.h" #include "ui/widgets/scroll_area.h"
#include "ui/image/image_prepare.h" #include "ui/image/image_prepare.h"
#include "window/window_session_controller.h" #include "window/window_session_controller.h"
#include "main/main_session.h"
#include "main/main_session_settings.h"
#include "storage/localstorage.h" #include "storage/localstorage.h"
#include "data/data_channel.h" #include "data/data_channel.h"
#include "data/data_session.h" #include "data/data_session.h"

View file

@ -11,19 +11,22 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "ui/effects/animations.h" #include "ui/effects/animations.h"
#include "ui/effects/panel_animation.h" #include "ui/effects/panel_animation.h"
#include "mtproto/sender.h" #include "mtproto/sender.h"
#include "main/main_session.h"
#include "base/object_ptr.h" #include "base/object_ptr.h"
namespace InlineBots { namespace InlineBots {
class Result; class Result;
} // namespace InlineBots } // namespace InlineBots
namespace Main {
class Session;
} // namespace Main
namespace Ui { namespace Ui {
class PlainShadow; class PlainShadow;
class ScrollArea; class ScrollArea;
class SettingsSlider; class SettingsSlider;
class FlatLabel; class FlatLabel;
} // namesapce Ui } // namespace Ui
namespace Window { namespace Window {
class SessionController; class SessionController;

View file

@ -12,6 +12,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "core/application.h" #include "core/application.h"
#include "base/unixtime.h" #include "base/unixtime.h"
#include "ui/delayed_activation.h" #include "ui/delayed_activation.h"
#include "main/main_session.h"
#include "mainwindow.h" #include "mainwindow.h"
#include <QtWidgets/QFileDialog> #include <QtWidgets/QFileDialog>

View file

@ -34,6 +34,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "mainwindow.h" #include "mainwindow.h"
#include "mainwidget.h" #include "mainwidget.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "apiwrap.h" #include "apiwrap.h"
#include "app.h" #include "app.h"

View file

@ -14,6 +14,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
#include "inline_bots/inline_bot_layout_item.h" #include "inline_bots/inline_bot_layout_item.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "mainwidget.h" #include "mainwidget.h"
#include "core/file_utilities.h" #include "core/file_utilities.h"
#include "core/mime_type.h" #include "core/mime_type.h"

View file

@ -14,6 +14,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "data/data_auto_download.h" #include "data/data_auto_download.h"
#include "media/clip/media_clip_reader.h" #include "media/clip/media_clip_reader.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "lottie/lottie_animation.h" #include "lottie/lottie_animation.h"
#include "history/history_item.h" #include "history/history_item.h"
#include "history/history.h" #include "history/history.h"

View file

@ -12,6 +12,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "chat_helpers/message_field.h" #include "chat_helpers/message_field.h"
#include "history/history.h" #include "history/history.h"
#include "history/history_widget.h" #include "history/history_widget.h"
#include "main/main_session.h"
#include "data/data_session.h" #include "data/data_session.h"
#include "mainwidget.h" #include "mainwidget.h"
#include "storage/localstorage.h" #include "storage/localstorage.h"

View file

@ -20,6 +20,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "main/main_account.h" #include "main/main_account.h"
//#include "storage/storage_feed_messages.h" // #feed //#include "storage/storage_feed_messages.h" // #feed
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "mtproto/mtproto_config.h" #include "mtproto/mtproto_config.h"
#include "apiwrap.h" #include "apiwrap.h"
#include "mainwidget.h" #include "mainwidget.h"

View file

@ -37,6 +37,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "data/data_poll.h" #include "data/data_poll.h"
#include "data/data_channel.h" #include "data/data_channel.h"
#include "data/data_file_origin.h" #include "data/data_file_origin.h"
#include "main/main_session.h"
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
#include "layout.h" #include "layout.h"
#include "storage/file_upload.h" #include "storage/file_upload.h"

View file

@ -12,6 +12,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "data/data_file_origin.h" #include "data/data_file_origin.h"
#include "data/data_auto_download.h" #include "data/data_auto_download.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "history/history_item.h" #include "history/history_item.h"
#include "history/history.h" #include "history/history.h"
#include "storage/file_download.h" #include "storage/file_download.h"

View file

@ -8,6 +8,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "data/data_session.h" #include "data/data_session.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "apiwrap.h" #include "apiwrap.h"
#include "mainwidget.h" #include "mainwidget.h"
#include "api/api_text_entities.h" #include "api/api_text_entities.h"

View file

@ -8,6 +8,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "data/data_user.h" #include "data/data_user.h"
#include "storage/localstorage.h" #include "storage/localstorage.h"
#include "main/main_session.h"
#include "data/data_session.h" #include "data/data_session.h"
#include "data/data_changes.h" #include "data/data_changes.h"
#include "ui/text_options.h" #include "ui/text_options.h"

View file

@ -19,6 +19,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "apiwrap.h" #include "apiwrap.h"
#include "storage/storage_account.h" #include "storage/storage_account.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "mtproto/mtproto_config.h" #include "mtproto/mtproto_config.h"
#include "ui/toast/toast.h" #include "ui/toast/toast.h"
#include "ui/image/image_location_factory.h" #include "ui/image/image_location_factory.h"
@ -150,7 +151,7 @@ void Stickers::incrementSticker(not_null<DocumentData*> document) {
} }
if (writeOldRecent) { if (writeOldRecent) {
session().local().writeSettings(); session().saveSettings();
} }
// Remove that sticker from custom stickers, now it is in cloud recent stickers. // Remove that sticker from custom stickers, now it is in cloud recent stickers.
@ -607,7 +608,7 @@ void Stickers::setsReceived(const QVector<MTPStickerSet> &data, int32 hash) {
} }
session().local().writeInstalledStickers(); session().local().writeInstalledStickers();
if (writeRecent) session().local().writeSettings(); if (writeRecent) session().saveSettings();
const auto counted = Api::CountStickersHash(&session()); const auto counted = Api::CountStickersHash(&session());
if (counted != hash) { if (counted != hash) {
@ -730,7 +731,7 @@ void Stickers::specialSetReceived(
} }
if (writeRecent) { if (writeRecent) {
session().local().writeSettings(); session().saveSettings();
} }
} }
@ -1251,7 +1252,7 @@ StickersSet *Stickers::feedSetFull(const MTPmessages_StickerSet &data) {
} }
if (writeRecent) { if (writeRecent) {
session().local().writeSettings(); session().saveSettings();
} }
if (set) { if (set) {

View file

@ -15,6 +15,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "data/data_chat_filters.h" #include "data/data_chat_filters.h"
#include "mainwidget.h" #include "mainwidget.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "history/history_item.h" #include "history/history_item.h"
#include "history/history.h" #include "history/history.h"
#include "app.h" #include "app.h"

View file

@ -40,6 +40,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "apiwrap.h" #include "apiwrap.h"
#include "window/themes/window_theme.h" #include "window/themes/window_theme.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "window/notifications_manager.h" #include "window/notifications_manager.h"
#include "window/window_session_controller.h" #include "window/window_session_controller.h"
#include "window/window_peer_menu.h" #include "window/window_peer_menu.h"

View file

@ -19,6 +19,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "ui/unread_badge.h" #include "ui/unread_badge.h"
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
#include "support/support_helper.h" #include "support/support_helper.h"
#include "main/main_session.h"
#include "history/history_item_components.h" #include "history/history_item_components.h"
#include "history/history_item.h" #include "history/history_item.h"
#include "history/history.h" #include "history/history.h"

View file

@ -22,6 +22,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "mainwindow.h" #include "mainwindow.h"
#include "mainwidget.h" #include "mainwidget.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "apiwrap.h" #include "apiwrap.h"
#include "base/event_filter.h" #include "base/event_filter.h"
#include "core/application.h" #include "core/application.h"

View file

@ -29,6 +29,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "layout.h" #include "layout.h"
#include "window/window_session_controller.h" #include "window/window_session_controller.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "ui/widgets/popup_menu.h" #include "ui/widgets/popup_menu.h"
#include "ui/image/image.h" #include "ui/image/image.h"
#include "ui/text/text_utilities.h" #include "ui/text/text_utilities.h"

View file

@ -42,6 +42,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "mainwidget.h" #include "mainwidget.h"
#include "layout.h" #include "layout.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "core/application.h" #include "core/application.h"
#include "apiwrap.h" #include "apiwrap.h"
#include "lang/lang_keys.h" #include "lang/lang_keys.h"

View file

@ -27,6 +27,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "storage/storage_shared_media.h" #include "storage/storage_shared_media.h"
//#include "storage/storage_feed_messages.h" // #feed //#include "storage/storage_feed_messages.h" // #feed
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "apiwrap.h" #include "apiwrap.h"
#include "media/audio/media_audio.h" #include "media/audio/media_audio.h"
#include "core/application.h" #include "core/application.h"

View file

@ -86,6 +86,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "ui/unread_badge.h" #include "ui/unread_badge.h"
#include "ui/delayed_activation.h" #include "ui/delayed_activation.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "window/themes/window_theme.h" #include "window/themes/window_theme.h"
#include "window/notifications_manager.h" #include "window/notifications_manager.h"
#include "window/window_session_controller.h" #include "window/window_session_controller.h"
@ -5689,7 +5690,7 @@ bool HistoryWidget::pinnedMsgVisibilityUpdated() {
pinnedId = 0; pinnedId = 0;
} else if (hiddenId) { } else if (hiddenId) {
session().settings().setHiddenPinnedMessageId(_peer->id, 0); session().settings().setHiddenPinnedMessageId(_peer->id, 0);
session().local().writeSettings(); session().saveSettings();
} }
} }
if (pinnedId) { if (pinnedId) {
@ -6020,7 +6021,7 @@ void HistoryWidget::hidePinnedMessage() {
pinnedId)); pinnedId));
} else { } else {
session().settings().setHiddenPinnedMessageId(_peer->id, pinnedId); session().settings().setHiddenPinnedMessageId(_peer->id, pinnedId);
session().local().writeSettings(); session().saveSettings();
if (pinnedMsgVisibilityUpdated()) { if (pinnedMsgVisibilityUpdated()) {
updateControlsGeometry(); updateControlsGeometry();
update(); update();

View file

@ -21,6 +21,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "chat_helpers/message_field.h" #include "chat_helpers/message_field.h"
#include "chat_helpers/emoji_suggestions_widget.h" #include "chat_helpers/emoji_suggestions_widget.h"
#include "window/window_session_controller.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 "inline_bots/inline_results_widget.h"
#include "facades.h" #include "facades.h"
#include "styles/style_history.h" #include "styles/style_history.h"

View file

@ -41,6 +41,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "mainwidget.h" #include "mainwidget.h"
#include "mainwindow.h" // App::wnd()->sessionController #include "mainwindow.h" // App::wnd()->sessionController
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "apiwrap.h" #include "apiwrap.h"
#include "facades.h" #include "facades.h"

View file

@ -17,6 +17,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "history/view/media/history_view_large_emoji.h" #include "history/view/media/history_view_large_emoji.h"
#include "history/history.h" #include "history/history.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "chat_helpers/stickers_emoji_pack.h" #include "chat_helpers/stickers_emoji_pack.h"
#include "data/data_session.h" #include "data/data_session.h"
#include "data/data_groups.h" #include "data/data_groups.h"

View file

@ -18,6 +18,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "mainwidget.h" #include "mainwidget.h"
#include "mainwindow.h" #include "mainwindow.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "mtproto/mtproto_config.h" #include "mtproto/mtproto_config.h"
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
#include "core/shortcuts.h" #include "core/shortcuts.h"

View file

@ -11,6 +11,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "layout.h" #include "layout.h"
#include "mainwindow.h" #include "mainwindow.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "media/audio/media_audio.h" #include "media/audio/media_audio.h"
#include "media/clip/media_clip_reader.h" #include "media/clip/media_clip_reader.h"
#include "media/player/media_player_instance.h" #include "media/player/media_player_instance.h"

View file

@ -18,6 +18,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "ui/image/image.h" #include "ui/image/image.h"
#include "ui/emoji_config.h" #include "ui/emoji_config.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "main/main_account.h" #include "main/main_account.h"
#include "main/main_app_config.h" #include "main/main_app_config.h"
#include "mainwindow.h" // App::wnd()->sessionController. #include "mainwindow.h" // App::wnd()->sessionController.

View file

@ -13,6 +13,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
#include "lang/lang_cloud_manager.h" #include "lang/lang_cloud_manager.h"
#include "main/main_account.h" #include "main/main_account.h"
#include "main/main_session.h"
#include "main/main_session_settings.h"
#include "apiwrap.h" #include "apiwrap.h"
#include "mainwindow.h" #include "mainwindow.h"
#include "boxes/confirm_box.h" #include "boxes/confirm_box.h"
@ -43,7 +45,7 @@ void PrepareSupportMode(not_null<Main::Session*> session) {
Global::SetSoundNotify(false); Global::SetSoundNotify(false);
Global::SetFlashBounceNotify(false); Global::SetFlashBounceNotify(false);
session->settings().autoDownload() = Full::FullDisabled(); session->settings().autoDownload() = Full::FullDisabled();
session->local().writeSettings(); session->saveSettings();
} }
} // namespace } // namespace

View file

@ -28,6 +28,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "api/api_updates.h" #include "api/api_updates.h"
#include "main/main_app_config.h" #include "main/main_app_config.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "facades.h" #include "facades.h"
namespace Main { namespace Main {
@ -124,14 +125,14 @@ UserId Account::willHaveUserId() const {
} }
void Account::createSession(const MTPUser &user) { void Account::createSession(const MTPUser &user) {
createSession(user, QByteArray(), 0, Settings()); createSession(user, QByteArray(), 0, std::make_unique<SessionSettings>());
} }
void Account::createSession( void Account::createSession(
UserId id, UserId id,
QByteArray serialized, QByteArray serialized,
int streamVersion, int streamVersion,
Settings &&settings) { std::unique_ptr<SessionSettings> settings) {
DEBUG_LOG(("sessionUserSerialized.size: %1").arg(serialized.size())); DEBUG_LOG(("sessionUserSerialized.size: %1").arg(serialized.size()));
QDataStream peekStream(serialized); QDataStream peekStream(serialized);
const auto phone = Serialize::peekUserPhone(streamVersion, peekStream); const auto phone = Serialize::peekUserPhone(streamVersion, peekStream);
@ -162,7 +163,7 @@ void Account::createSession(
const MTPUser &user, const MTPUser &user,
QByteArray serialized, QByteArray serialized,
int streamVersion, int streamVersion,
Settings &&settings) { std::unique_ptr<SessionSettings> settings) {
Expects(_mtp != nullptr); Expects(_mtp != nullptr);
Expects(_session == nullptr); Expects(_session == nullptr);
Expects(_sessionValue.current() == nullptr); Expects(_sessionValue.current() == nullptr);
@ -177,7 +178,7 @@ void Account::createSession(
} }
void Account::destroySession() { void Account::destroySession() {
_storedSettings.reset(); _storedSessionSettings.reset();
_sessionUserId = 0; _sessionUserId = 0;
_sessionUserSerialized = {}; _sessionUserSerialized = {};
if (!sessionExists()) { if (!sessionExists()) {
@ -291,7 +292,7 @@ void Account::setSessionUserId(UserId userId) {
} }
void Account::setSessionFromStorage( void Account::setSessionFromStorage(
std::unique_ptr<Settings> data, std::unique_ptr<SessionSettings> data,
QByteArray &&selfSerialized, QByteArray &&selfSerialized,
int32 selfStreamVersion) { int32 selfStreamVersion) {
Expects(!sessionExists()); Expects(!sessionExists());
@ -299,14 +300,16 @@ void Account::setSessionFromStorage(
DEBUG_LOG(("sessionUserSerialized set: %1" DEBUG_LOG(("sessionUserSerialized set: %1"
).arg(selfSerialized.size())); ).arg(selfSerialized.size()));
_storedSettings = std::move(data); _storedSessionSettings = std::move(data);
_sessionUserSerialized = std::move(selfSerialized); _sessionUserSerialized = std::move(selfSerialized);
_sessionUserStreamVersion = selfStreamVersion; _sessionUserStreamVersion = selfStreamVersion;
} }
Settings *Account::getSessionSettings() { SessionSettings *Account::getSessionSettings() {
if (_sessionUserId) { if (_sessionUserId) {
return _storedSettings ? _storedSettings.get() : nullptr; return _storedSessionSettings
? _storedSessionSettings.get()
: nullptr;
} else if (sessionExists()) { } else if (sessionExists()) {
return &session().settings(); return &session().settings();
} }
@ -431,9 +434,11 @@ void Account::startMtp(std::unique_ptr<MTP::Config> config) {
_sessionUserId, _sessionUserId,
base::take(_sessionUserSerialized), base::take(_sessionUserSerialized),
base::take(_sessionUserStreamVersion), base::take(_sessionUserStreamVersion),
_storedSettings ? std::move(*_storedSettings) : Settings()); (_storedSessionSettings
? std::move(_storedSessionSettings)
: std::make_unique<SessionSettings>()));
} }
_storedSettings = nullptr; _storedSessionSettings = nullptr;
if (sessionExists()) { if (sessionExists()) {
// Skip all pending self updates so that we won't local().writeSelf. // Skip all pending self updates so that we won't local().writeSelf.

View file

@ -24,7 +24,7 @@ class Config;
namespace Main { namespace Main {
class Session; class Session;
class Settings; class SessionSettings;
class AppConfig; class AppConfig;
class Account final : public base::has_weak_ptr { class Account final : public base::has_weak_ptr {
@ -49,7 +49,7 @@ public:
UserId id, UserId id,
QByteArray serialized, QByteArray serialized,
int streamVersion, int streamVersion,
Settings &&settings); std::unique_ptr<SessionSettings> settings);
void destroySession(); void destroySession();
void logOut(); void logOut();
@ -81,10 +81,10 @@ public:
void setLegacyMtpKey(std::shared_ptr<MTP::AuthKey> key); void setLegacyMtpKey(std::shared_ptr<MTP::AuthKey> key);
void setSessionUserId(UserId userId); void setSessionUserId(UserId userId);
void setSessionFromStorage( void setSessionFromStorage(
std::unique_ptr<Settings> data, std::unique_ptr<SessionSettings> data,
QByteArray &&selfSerialized, QByteArray &&selfSerialized,
int32 selfStreamVersion); int32 selfStreamVersion);
[[nodiscard]] Settings *getSessionSettings(); [[nodiscard]] SessionSettings *getSessionSettings();
[[nodiscard]] rpl::producer<> mtpNewSessionCreated() const; [[nodiscard]] rpl::producer<> mtpNewSessionCreated() const;
[[nodiscard]] rpl::producer<MTPUpdates> mtpUpdates() const; [[nodiscard]] rpl::producer<MTPUpdates> mtpUpdates() const;
@ -105,7 +105,7 @@ private:
const MTPUser &user, const MTPUser &user,
QByteArray serialized, QByteArray serialized,
int streamVersion, int streamVersion,
Settings &&settings); std::unique_ptr<SessionSettings> settings);
void watchProxyChanges(); void watchProxyChanges();
void watchSessionChanges(); void watchSessionChanges();
bool checkForUpdates(const mtpPrime *from, const mtpPrime *end); bool checkForUpdates(const mtpPrime *from, const mtpPrime *end);
@ -132,7 +132,7 @@ private:
UserId _sessionUserId = 0; UserId _sessionUserId = 0;
QByteArray _sessionUserSerialized; QByteArray _sessionUserSerialized;
int32 _sessionUserStreamVersion = 0; int32 _sessionUserStreamVersion = 0;
std::unique_ptr<Settings> _storedSettings; std::unique_ptr<SessionSettings> _storedSessionSettings;
MTP::Instance::Fields _mtpFields; MTP::Instance::Fields _mtpFields;
MTP::AuthKeysList _mtpKeysToDestroy; MTP::AuthKeysList _mtpKeysToDestroy;
bool _loggingOut = false; bool _loggingOut = false;

View file

@ -11,6 +11,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "api/api_updates.h" #include "api/api_updates.h"
#include "core/application.h" #include "core/application.h"
#include "main/main_account.h" #include "main/main_account.h"
#include "main/main_session_settings.h"
#include "mtproto/mtproto_config.h" #include "mtproto/mtproto_config.h"
#include "chat_helpers/stickers_emoji_pack.h" #include "chat_helpers/stickers_emoji_pack.h"
#include "chat_helpers/stickers_dice_pack.h" #include "chat_helpers/stickers_dice_pack.h"
@ -64,10 +65,9 @@ constexpr auto kLegacyCallsPeerToPeerNobody = 4;
Session::Session( Session::Session(
not_null<Main::Account*> account, not_null<Main::Account*> account,
const MTPUser &user, const MTPUser &user,
Settings &&settings) std::unique_ptr<SessionSettings> settings)
: _account(account) : _account(account)
, _settings(std::move(settings)) , _settings(std::move(settings))
, _saveSettingsTimer([=] { local().writeSettings(); })
, _api(std::make_unique<ApiWrap>(this)) , _api(std::make_unique<ApiWrap>(this))
, _updates(std::make_unique<Api::Updates>(this)) , _updates(std::make_unique<Api::Updates>(this))
, _calls(std::make_unique<Calls::Instance>(this)) , _calls(std::make_unique<Calls::Instance>(this))
@ -80,7 +80,10 @@ Session::Session(
, _user(_data->processUser(user)) , _user(_data->processUser(user))
, _emojiStickersPack(std::make_unique<Stickers::EmojiPack>(this)) , _emojiStickersPack(std::make_unique<Stickers::EmojiPack>(this))
, _diceStickersPacks(std::make_unique<Stickers::DicePacks>(this)) , _diceStickersPacks(std::make_unique<Stickers::DicePacks>(this))
, _supportHelper(Support::Helper::Create(this)) { , _supportHelper(Support::Helper::Create(this))
, _saveSettingsTimer([=] { saveSettings(); }) {
Expects(_settings != nullptr);
Core::App().lockChanges( Core::App().lockChanges(
) | rpl::start_with_next([=] { ) | rpl::start_with_next([=] {
notifications().updateAll(); notifications().updateAll();
@ -116,7 +119,7 @@ Session::Session(
} }
}, _lifetime); }, _lifetime);
if (_settings.hadLegacyCallsPeerToPeerNobody()) { if (_settings->hadLegacyCallsPeerToPeerNobody()) {
api().savePrivacy( api().savePrivacy(
MTP_inputPrivacyKeyPhoneP2P(), MTP_inputPrivacyKeyPhoneP2P(),
QVector<MTPInputPrivacyRule>( QVector<MTPInputPrivacyRule>(
@ -227,10 +230,14 @@ Support::Templates& Session::supportTemplates() const {
void Session::saveSettingsNowIfNeeded() { void Session::saveSettingsNowIfNeeded() {
if (_saveSettingsTimer.isActive()) { if (_saveSettingsTimer.isActive()) {
_saveSettingsTimer.cancel(); _saveSettingsTimer.cancel();
local().writeSettings(); saveSettings();
} }
} }
void Session::saveSettings() {
local().writeSessionSettings();
}
void Session::addWindow(not_null<Window::SessionController*> controller) { void Session::addWindow(not_null<Window::SessionController*> controller) {
_windows.emplace(controller); _windows.emplace(controller);
controller->lifetime().add([=] { controller->lifetime().add([=] {

View file

@ -10,7 +10,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include <rpl/event_stream.h> #include <rpl/event_stream.h>
#include <rpl/filter.h> #include <rpl/filter.h>
#include <rpl/variable.h> #include <rpl/variable.h>
#include "main/main_settings.h"
#include "base/timer.h" #include "base/timer.h"
class ApiWrap; class ApiWrap;
@ -60,6 +59,7 @@ class DicePacks;
namespace Main { namespace Main {
class Account; class Account;
class SessionSettings;
class Session final class Session final
: public base::has_weak_ptr : public base::has_weak_ptr
@ -68,7 +68,7 @@ public:
Session( Session(
not_null<Main::Account*> account, not_null<Main::Account*> account,
const MTPUser &user, const MTPUser &user,
Settings &&other); std::unique_ptr<SessionSettings> settings);
~Session(); ~Session();
Session(const Session &other) = delete; Session(const Session &other) = delete;
@ -111,9 +111,10 @@ public:
[[nodiscard]] Data::Session &data() { [[nodiscard]] Data::Session &data() {
return *_data; return *_data;
} }
[[nodiscard]] Settings &settings() { [[nodiscard]] SessionSettings &settings() {
return _settings; return *_settings;
} }
void saveSettings();
void saveSettingsDelayed(crl::time delay = kDefaultSaveDelay); void saveSettingsDelayed(crl::time delay = kDefaultSaveDelay);
void saveSettingsNowIfNeeded(); void saveSettingsNowIfNeeded();
@ -156,9 +157,7 @@ private:
const not_null<Main::Account*> _account; const not_null<Main::Account*> _account;
Settings _settings; const std::unique_ptr<SessionSettings> _settings;
base::Timer _saveSettingsTimer;
const std::unique_ptr<ApiWrap> _api; const std::unique_ptr<ApiWrap> _api;
const std::unique_ptr<Api::Updates> _updates; const std::unique_ptr<Api::Updates> _updates;
const std::unique_ptr<Calls::Instance> _calls; const std::unique_ptr<Calls::Instance> _calls;
@ -179,6 +178,7 @@ private:
const std::unique_ptr<Support::Helper> _supportHelper; const std::unique_ptr<Support::Helper> _supportHelper;
base::flat_set<not_null<Window::SessionController*>> _windows; base::flat_set<not_null<Window::SessionController*>> _windows;
base::Timer _saveSettingsTimer;
rpl::lifetime _lifetime; rpl::lifetime _lifetime;

View file

@ -5,7 +5,7 @@ the official desktop application for the Telegram messaging service.
For license and copyright information please follow this link: For license and copyright information please follow this link:
https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL 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 "chat_helpers/tabbed_selector.h"
#include "window/section_widget.h" #include "window/section_widget.h"
@ -33,7 +33,7 @@ float64 DeserializePlaybackSpeed(qint32 speed) {
} // namespace } // namespace
Settings::Variables::Variables() SessionSettings::Variables::Variables()
: sendFilesWay(SendFilesWay::Album) : sendFilesWay(SendFilesWay::Album)
, selectorTab(ChatHelpers::SelectorTab::Emoji) , selectorTab(ChatHelpers::SelectorTab::Emoji)
, floatPlayerColumn(Window::Column::Second) , floatPlayerColumn(Window::Column::Second)
@ -45,11 +45,11 @@ Settings::Variables::Variables()
, supportSwitch(Support::SwitchSettings::Next) { , supportSwitch(Support::SwitchSettings::Next) {
} }
bool Settings::ThirdColumnByDefault() { bool SessionSettings::ThirdColumnByDefault() {
return Platform::IsMacStoreBuild(); return Platform::IsMacStoreBuild();
} }
QByteArray Settings::serialize() const { QByteArray SessionSettings::serialize() const {
const auto autoDownload = _variables.autoDownload.serialize(); const auto autoDownload = _variables.autoDownload.serialize();
auto size = sizeof(qint32) * 38; auto size = sizeof(qint32) * 38;
for (const auto &[key, value] : _variables.soundOverrides) { for (const auto &[key, value] : _variables.soundOverrides) {
@ -131,11 +131,15 @@ QByteArray Settings::serialize() const {
return result; return result;
} }
void Settings::constructFromSerialized(const QByteArray &serialized) { std::unique_ptr<SessionSettings> SessionSettings::FromSerialized(
const QByteArray &serialized) {
if (serialized.isEmpty()) { if (serialized.isEmpty()) {
return; return nullptr;
} }
auto result = std::make_unique<SessionSettings>();
const auto variables = &result->_variables;
QDataStream stream(serialized); QDataStream stream(serialized);
stream.setVersion(QDataStream::Qt_5_1); stream.setVersion(QDataStream::Qt_5_1);
qint32 versionTag = 0; qint32 versionTag = 0;
@ -150,37 +154,37 @@ void Settings::constructFromSerialized(const QByteArray &serialized) {
base::flat_set<PeerId> groupStickersSectionHidden; base::flat_set<PeerId> groupStickersSectionHidden;
qint32 thirdSectionInfoEnabled = 0; qint32 thirdSectionInfoEnabled = 0;
qint32 smallDialogsList = 0; qint32 smallDialogsList = 0;
float64 dialogsWidthRatio = _variables.dialogsWidthRatio.current(); float64 dialogsWidthRatio = variables->dialogsWidthRatio.current();
int thirdColumnWidth = _variables.thirdColumnWidth.current(); int thirdColumnWidth = variables->thirdColumnWidth.current();
int thirdSectionExtendedBy = _variables.thirdSectionExtendedBy; int thirdSectionExtendedBy = variables->thirdSectionExtendedBy;
qint32 sendFilesWay = static_cast<qint32>(_variables.sendFilesWay); qint32 sendFilesWay = static_cast<qint32>(variables->sendFilesWay);
qint32 legacyCallsPeerToPeer = qint32(0); qint32 legacyCallsPeerToPeer = qint32(0);
qint32 sendSubmitWay = static_cast<qint32>(_variables.sendSubmitWay); qint32 sendSubmitWay = static_cast<qint32>(variables->sendSubmitWay);
qint32 supportSwitch = static_cast<qint32>(_variables.supportSwitch); qint32 supportSwitch = static_cast<qint32>(variables->supportSwitch);
qint32 supportFixChatsOrder = _variables.supportFixChatsOrder ? 1 : 0; qint32 supportFixChatsOrder = variables->supportFixChatsOrder ? 1 : 0;
qint32 supportTemplatesAutocomplete = _variables.supportTemplatesAutocomplete ? 1 : 0; qint32 supportTemplatesAutocomplete = variables->supportTemplatesAutocomplete ? 1 : 0;
qint32 supportChatsTimeSlice = _variables.supportChatsTimeSlice.current(); qint32 supportChatsTimeSlice = variables->supportChatsTimeSlice.current();
qint32 includeMutedCounter = _variables.includeMutedCounter ? 1 : 0; qint32 includeMutedCounter = variables->includeMutedCounter ? 1 : 0;
qint32 countUnreadMessages = _variables.countUnreadMessages ? 1 : 0; qint32 countUnreadMessages = variables->countUnreadMessages ? 1 : 0;
qint32 exeLaunchWarning = _variables.exeLaunchWarning ? 1 : 0; qint32 exeLaunchWarning = variables->exeLaunchWarning ? 1 : 0;
QByteArray autoDownload; QByteArray autoDownload;
qint32 supportAllSearchResults = _variables.supportAllSearchResults.current() ? 1 : 0; qint32 supportAllSearchResults = variables->supportAllSearchResults.current() ? 1 : 0;
qint32 archiveCollapsed = _variables.archiveCollapsed.current() ? 1 : 0; qint32 archiveCollapsed = variables->archiveCollapsed.current() ? 1 : 0;
qint32 notifyAboutPinned = _variables.notifyAboutPinned.current() ? 1 : 0; qint32 notifyAboutPinned = variables->notifyAboutPinned.current() ? 1 : 0;
qint32 archiveInMainMenu = _variables.archiveInMainMenu.current() ? 1 : 0; qint32 archiveInMainMenu = variables->archiveInMainMenu.current() ? 1 : 0;
qint32 skipArchiveInSearch = _variables.skipArchiveInSearch.current() ? 1 : 0; qint32 skipArchiveInSearch = variables->skipArchiveInSearch.current() ? 1 : 0;
qint32 autoplayGifs = 1; qint32 autoplayGifs = 1;
qint32 loopAnimatedStickers = _variables.loopAnimatedStickers ? 1 : 0; qint32 loopAnimatedStickers = variables->loopAnimatedStickers ? 1 : 0;
qint32 largeEmoji = _variables.largeEmoji.current() ? 1 : 0; qint32 largeEmoji = variables->largeEmoji.current() ? 1 : 0;
qint32 replaceEmoji = _variables.replaceEmoji.current() ? 1 : 0; qint32 replaceEmoji = variables->replaceEmoji.current() ? 1 : 0;
qint32 suggestEmoji = _variables.suggestEmoji ? 1 : 0; qint32 suggestEmoji = variables->suggestEmoji ? 1 : 0;
qint32 suggestStickersByEmoji = _variables.suggestStickersByEmoji ? 1 : 0; qint32 suggestStickersByEmoji = variables->suggestStickersByEmoji ? 1 : 0;
qint32 spellcheckerEnabled = _variables.spellcheckerEnabled.current() ? 1 : 0; qint32 spellcheckerEnabled = variables->spellcheckerEnabled.current() ? 1 : 0;
std::vector<std::pair<DocumentId, crl::time>> mediaLastPlaybackPosition; std::vector<std::pair<DocumentId, crl::time>> mediaLastPlaybackPosition;
qint32 videoPlaybackSpeed = SerializePlaybackSpeed(_variables.videoPlaybackSpeed.current()); qint32 videoPlaybackSpeed = SerializePlaybackSpeed(variables->videoPlaybackSpeed.current());
QByteArray videoPipGeometry = _variables.videoPipGeometry; QByteArray videoPipGeometry = variables->videoPipGeometry;
std::vector<int> dictionariesEnabled; std::vector<int> dictionariesEnabled;
qint32 autoDownloadDictionaries = _variables.autoDownloadDictionaries.current() ? 1 : 0; qint32 autoDownloadDictionaries = variables->autoDownloadDictionaries.current() ? 1 : 0;
base::flat_map<PeerId, MsgId> hiddenPinnedMessages; base::flat_map<PeerId, MsgId> hiddenPinnedMessages;
stream >> versionTag; stream >> versionTag;
@ -336,18 +340,18 @@ void Settings::constructFromSerialized(const QByteArray &serialized) {
} }
if (stream.status() != QDataStream::Ok) { if (stream.status() != QDataStream::Ok) {
LOG(("App Error: " LOG(("App Error: "
"Bad data for Main::Settings::constructFromSerialized()")); "Bad data for Main::SessionSettings::FromSerialized()"));
return; return nullptr;
} }
if (!autoDownload.isEmpty() if (!autoDownload.isEmpty()
&& !_variables.autoDownload.setFromSerialized(autoDownload)) { && !variables->autoDownload.setFromSerialized(autoDownload)) {
return; return nullptr;
} }
if (!version) { if (!version) {
if (!autoplayGifs) { if (!autoplayGifs) {
using namespace Data::AutoDownload; using namespace Data::AutoDownload;
_variables.autoDownload = WithDisabledAutoPlay( variables->autoDownload = WithDisabledAutoPlay(
_variables.autoDownload); variables->autoDownload);
} }
} }
@ -355,104 +359,105 @@ void Settings::constructFromSerialized(const QByteArray &serialized) {
switch (uncheckedTab) { switch (uncheckedTab) {
case ChatHelpers::SelectorTab::Emoji: case ChatHelpers::SelectorTab::Emoji:
case ChatHelpers::SelectorTab::Stickers: 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->lastSeenWarningSeen = (lastSeenWarningSeen == 1);
_variables.tabbedSelectorSectionEnabled = (tabbedSelectorSectionEnabled == 1); variables->tabbedSelectorSectionEnabled = (tabbedSelectorSectionEnabled == 1);
_variables.soundOverrides = std::move(soundOverrides); variables->soundOverrides = std::move(soundOverrides);
_variables.tabbedSelectorSectionTooltipShown = tabbedSelectorSectionTooltipShown; variables->tabbedSelectorSectionTooltipShown = tabbedSelectorSectionTooltipShown;
auto uncheckedColumn = static_cast<Window::Column>(floatPlayerColumn); auto uncheckedColumn = static_cast<Window::Column>(floatPlayerColumn);
switch (uncheckedColumn) { switch (uncheckedColumn) {
case Window::Column::First: case Window::Column::First:
case Window::Column::Second: case Window::Column::Second:
case Window::Column::Third: _variables.floatPlayerColumn = uncheckedColumn; break; case Window::Column::Third: variables->floatPlayerColumn = uncheckedColumn; break;
} }
auto uncheckedCorner = static_cast<RectPart>(floatPlayerCorner); auto uncheckedCorner = static_cast<RectPart>(floatPlayerCorner);
switch (uncheckedCorner) { switch (uncheckedCorner) {
case RectPart::TopLeft: case RectPart::TopLeft:
case RectPart::TopRight: case RectPart::TopRight:
case RectPart::BottomLeft: case RectPart::BottomLeft:
case RectPart::BottomRight: _variables.floatPlayerCorner = uncheckedCorner; break; case RectPart::BottomRight: variables->floatPlayerCorner = uncheckedCorner; break;
} }
_variables.groupStickersSectionHidden = std::move(groupStickersSectionHidden); variables->groupStickersSectionHidden = std::move(groupStickersSectionHidden);
_variables.thirdSectionInfoEnabled = thirdSectionInfoEnabled; variables->thirdSectionInfoEnabled = thirdSectionInfoEnabled;
_variables.smallDialogsList = smallDialogsList; variables->smallDialogsList = smallDialogsList;
_variables.dialogsWidthRatio = dialogsWidthRatio; variables->dialogsWidthRatio = dialogsWidthRatio;
_variables.thirdColumnWidth = thirdColumnWidth; variables->thirdColumnWidth = thirdColumnWidth;
_variables.thirdSectionExtendedBy = thirdSectionExtendedBy; variables->thirdSectionExtendedBy = thirdSectionExtendedBy;
if (_variables.thirdSectionInfoEnabled) { if (variables->thirdSectionInfoEnabled) {
_variables.tabbedSelectorSectionEnabled = false; variables->tabbedSelectorSectionEnabled = false;
} }
auto uncheckedSendFilesWay = static_cast<SendFilesWay>(sendFilesWay); auto uncheckedSendFilesWay = static_cast<SendFilesWay>(sendFilesWay);
switch (uncheckedSendFilesWay) { switch (uncheckedSendFilesWay) {
case SendFilesWay::Album: case SendFilesWay::Album:
case SendFilesWay::Photos: case SendFilesWay::Photos:
case SendFilesWay::Files: _variables.sendFilesWay = uncheckedSendFilesWay; break; case SendFilesWay::Files: variables->sendFilesWay = uncheckedSendFilesWay; break;
} }
auto uncheckedSendSubmitWay = static_cast<Ui::InputSubmitSettings>( auto uncheckedSendSubmitWay = static_cast<Ui::InputSubmitSettings>(
sendSubmitWay); sendSubmitWay);
switch (uncheckedSendSubmitWay) { switch (uncheckedSendSubmitWay) {
case Ui::InputSubmitSettings::Enter: case Ui::InputSubmitSettings::Enter:
case Ui::InputSubmitSettings::CtrlEnter: _variables.sendSubmitWay = uncheckedSendSubmitWay; break; case Ui::InputSubmitSettings::CtrlEnter: variables->sendSubmitWay = uncheckedSendSubmitWay; break;
} }
auto uncheckedSupportSwitch = static_cast<Support::SwitchSettings>( auto uncheckedSupportSwitch = static_cast<Support::SwitchSettings>(
supportSwitch); supportSwitch);
switch (uncheckedSupportSwitch) { switch (uncheckedSupportSwitch) {
case Support::SwitchSettings::None: case Support::SwitchSettings::None:
case Support::SwitchSettings::Next: 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->supportFixChatsOrder = (supportFixChatsOrder == 1);
_variables.supportTemplatesAutocomplete = (supportTemplatesAutocomplete == 1); variables->supportTemplatesAutocomplete = (supportTemplatesAutocomplete == 1);
_variables.supportChatsTimeSlice = supportChatsTimeSlice; variables->supportChatsTimeSlice = supportChatsTimeSlice;
_variables.hadLegacyCallsPeerToPeerNobody = (legacyCallsPeerToPeer == kLegacyCallsPeerToPeerNobody); variables->hadLegacyCallsPeerToPeerNobody = (legacyCallsPeerToPeer == kLegacyCallsPeerToPeerNobody);
_variables.includeMutedCounter = (includeMutedCounter == 1); variables->includeMutedCounter = (includeMutedCounter == 1);
_variables.countUnreadMessages = (countUnreadMessages == 1); variables->countUnreadMessages = (countUnreadMessages == 1);
_variables.exeLaunchWarning = (exeLaunchWarning == 1); variables->exeLaunchWarning = (exeLaunchWarning == 1);
_variables.supportAllSearchResults = (supportAllSearchResults == 1); variables->supportAllSearchResults = (supportAllSearchResults == 1);
_variables.archiveCollapsed = (archiveCollapsed == 1); variables->archiveCollapsed = (archiveCollapsed == 1);
_variables.notifyAboutPinned = (notifyAboutPinned == 1); variables->notifyAboutPinned = (notifyAboutPinned == 1);
_variables.archiveInMainMenu = (archiveInMainMenu == 1); variables->archiveInMainMenu = (archiveInMainMenu == 1);
_variables.skipArchiveInSearch = (skipArchiveInSearch == 1); variables->skipArchiveInSearch = (skipArchiveInSearch == 1);
_variables.loopAnimatedStickers = (loopAnimatedStickers == 1); variables->loopAnimatedStickers = (loopAnimatedStickers == 1);
_variables.largeEmoji = (largeEmoji == 1); variables->largeEmoji = (largeEmoji == 1);
_variables.replaceEmoji = (replaceEmoji == 1); variables->replaceEmoji = (replaceEmoji == 1);
_variables.suggestEmoji = (suggestEmoji == 1); variables->suggestEmoji = (suggestEmoji == 1);
_variables.suggestStickersByEmoji = (suggestStickersByEmoji == 1); variables->suggestStickersByEmoji = (suggestStickersByEmoji == 1);
_variables.spellcheckerEnabled = (spellcheckerEnabled == 1); variables->spellcheckerEnabled = (spellcheckerEnabled == 1);
_variables.mediaLastPlaybackPosition = std::move(mediaLastPlaybackPosition); variables->mediaLastPlaybackPosition = std::move(mediaLastPlaybackPosition);
_variables.videoPlaybackSpeed = DeserializePlaybackSpeed(videoPlaybackSpeed); variables->videoPlaybackSpeed = DeserializePlaybackSpeed(videoPlaybackSpeed);
_variables.videoPipGeometry = videoPipGeometry; variables->videoPipGeometry = videoPipGeometry;
_variables.dictionariesEnabled = std::move(dictionariesEnabled); variables->dictionariesEnabled = std::move(dictionariesEnabled);
_variables.autoDownloadDictionaries = (autoDownloadDictionaries == 1); variables->autoDownloadDictionaries = (autoDownloadDictionaries == 1);
_variables.hiddenPinnedMessages = std::move(hiddenPinnedMessages); variables->hiddenPinnedMessages = std::move(hiddenPinnedMessages);
return result;
} }
void Settings::setSupportChatsTimeSlice(int slice) { void SessionSettings::setSupportChatsTimeSlice(int slice) {
_variables.supportChatsTimeSlice = slice; _variables.supportChatsTimeSlice = slice;
} }
int Settings::supportChatsTimeSlice() const { int SessionSettings::supportChatsTimeSlice() const {
return _variables.supportChatsTimeSlice.current(); return _variables.supportChatsTimeSlice.current();
} }
rpl::producer<int> Settings::supportChatsTimeSliceValue() const { rpl::producer<int> SessionSettings::supportChatsTimeSliceValue() const {
return _variables.supportChatsTimeSlice.value(); return _variables.supportChatsTimeSlice.value();
} }
void Settings::setSupportAllSearchResults(bool all) { void SessionSettings::setSupportAllSearchResults(bool all) {
_variables.supportAllSearchResults = all; _variables.supportAllSearchResults = all;
} }
bool Settings::supportAllSearchResults() const { bool SessionSettings::supportAllSearchResults() const {
return _variables.supportAllSearchResults.current(); return _variables.supportAllSearchResults.current();
} }
rpl::producer<bool> Settings::supportAllSearchResultsValue() const { rpl::producer<bool> SessionSettings::supportAllSearchResultsValue() const {
return _variables.supportAllSearchResults.value(); return _variables.supportAllSearchResults.value();
} }
void Settings::setTabbedSelectorSectionEnabled(bool enabled) { void SessionSettings::setTabbedSelectorSectionEnabled(bool enabled) {
_variables.tabbedSelectorSectionEnabled = enabled; _variables.tabbedSelectorSectionEnabled = enabled;
if (enabled) { if (enabled) {
setThirdSectionInfoEnabled(false); setThirdSectionInfoEnabled(false);
@ -460,12 +465,12 @@ void Settings::setTabbedSelectorSectionEnabled(bool enabled) {
setTabbedReplacedWithInfo(false); setTabbedReplacedWithInfo(false);
} }
rpl::producer<bool> Settings::tabbedReplacedWithInfoValue() const { rpl::producer<bool> SessionSettings::tabbedReplacedWithInfoValue() const {
return _tabbedReplacedWithInfoValue.events_starting_with( return _tabbedReplacedWithInfoValue.events_starting_with(
tabbedReplacedWithInfo()); tabbedReplacedWithInfo());
} }
void Settings::setThirdSectionInfoEnabled(bool enabled) { void SessionSettings::setThirdSectionInfoEnabled(bool enabled) {
if (_variables.thirdSectionInfoEnabled != enabled) { if (_variables.thirdSectionInfoEnabled != enabled) {
_variables.thirdSectionInfoEnabled = enabled; _variables.thirdSectionInfoEnabled = enabled;
if (enabled) { if (enabled) {
@ -476,19 +481,19 @@ void Settings::setThirdSectionInfoEnabled(bool enabled) {
} }
} }
rpl::producer<bool> Settings::thirdSectionInfoEnabledValue() const { rpl::producer<bool> SessionSettings::thirdSectionInfoEnabledValue() const {
return _thirdSectionInfoEnabledValue.events_starting_with( return _thirdSectionInfoEnabledValue.events_starting_with(
thirdSectionInfoEnabled()); thirdSectionInfoEnabled());
} }
void Settings::setTabbedReplacedWithInfo(bool enabled) { void SessionSettings::setTabbedReplacedWithInfo(bool enabled) {
if (_tabbedReplacedWithInfo != enabled) { if (_tabbedReplacedWithInfo != enabled) {
_tabbedReplacedWithInfo = enabled; _tabbedReplacedWithInfo = enabled;
_tabbedReplacedWithInfoValue.fire_copy(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); auto it = _variables.soundOverrides.find(key);
if (it != _variables.soundOverrides.end()) { if (it != _variables.soundOverrides.end()) {
return it->second; return it->second;
@ -496,31 +501,31 @@ QString Settings::getSoundPath(const QString &key) const {
return qsl(":/sounds/") + key + qsl(".mp3"); return qsl(":/sounds/") + key + qsl(".mp3");
} }
void Settings::setDialogsWidthRatio(float64 ratio) { void SessionSettings::setDialogsWidthRatio(float64 ratio) {
_variables.dialogsWidthRatio = ratio; _variables.dialogsWidthRatio = ratio;
} }
float64 Settings::dialogsWidthRatio() const { float64 SessionSettings::dialogsWidthRatio() const {
return _variables.dialogsWidthRatio.current(); return _variables.dialogsWidthRatio.current();
} }
rpl::producer<float64> Settings::dialogsWidthRatioChanges() const { rpl::producer<float64> SessionSettings::dialogsWidthRatioChanges() const {
return _variables.dialogsWidthRatio.changes(); return _variables.dialogsWidthRatio.changes();
} }
void Settings::setThirdColumnWidth(int width) { void SessionSettings::setThirdColumnWidth(int width) {
_variables.thirdColumnWidth = width; _variables.thirdColumnWidth = width;
} }
int Settings::thirdColumnWidth() const { int SessionSettings::thirdColumnWidth() const {
return _variables.thirdColumnWidth.current(); return _variables.thirdColumnWidth.current();
} }
rpl::producer<int> Settings::thirdColumnWidthChanges() const { rpl::producer<int> SessionSettings::thirdColumnWidthChanges() const {
return _variables.thirdColumnWidth.changes(); return _variables.thirdColumnWidth.changes();
} }
void Settings::setMediaLastPlaybackPosition(DocumentId id, crl::time time) { void SessionSettings::setMediaLastPlaybackPosition(DocumentId id, crl::time time) {
auto &map = _variables.mediaLastPlaybackPosition; auto &map = _variables.mediaLastPlaybackPosition;
const auto i = ranges::find( const auto i = ranges::find(
map, 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( const auto i = ranges::find(
_variables.mediaLastPlaybackPosition, _variables.mediaLastPlaybackPosition,
id, id,
@ -548,83 +553,83 @@ crl::time Settings::mediaLastPlaybackPosition(DocumentId id) const {
return (i != _variables.mediaLastPlaybackPosition.end()) ? i->second : 0; return (i != _variables.mediaLastPlaybackPosition.end()) ? i->second : 0;
} }
void Settings::setArchiveCollapsed(bool collapsed) { void SessionSettings::setArchiveCollapsed(bool collapsed) {
_variables.archiveCollapsed = collapsed; _variables.archiveCollapsed = collapsed;
} }
bool Settings::archiveCollapsed() const { bool SessionSettings::archiveCollapsed() const {
return _variables.archiveCollapsed.current(); return _variables.archiveCollapsed.current();
} }
rpl::producer<bool> Settings::archiveCollapsedChanges() const { rpl::producer<bool> SessionSettings::archiveCollapsedChanges() const {
return _variables.archiveCollapsed.changes(); return _variables.archiveCollapsed.changes();
} }
void Settings::setArchiveInMainMenu(bool inMainMenu) { void SessionSettings::setArchiveInMainMenu(bool inMainMenu) {
_variables.archiveInMainMenu = inMainMenu; _variables.archiveInMainMenu = inMainMenu;
} }
bool Settings::archiveInMainMenu() const { bool SessionSettings::archiveInMainMenu() const {
return _variables.archiveInMainMenu.current(); return _variables.archiveInMainMenu.current();
} }
rpl::producer<bool> Settings::archiveInMainMenuChanges() const { rpl::producer<bool> SessionSettings::archiveInMainMenuChanges() const {
return _variables.archiveInMainMenu.changes(); return _variables.archiveInMainMenu.changes();
} }
void Settings::setNotifyAboutPinned(bool notify) { void SessionSettings::setNotifyAboutPinned(bool notify) {
_variables.notifyAboutPinned = notify; _variables.notifyAboutPinned = notify;
} }
bool Settings::notifyAboutPinned() const { bool SessionSettings::notifyAboutPinned() const {
return _variables.notifyAboutPinned.current(); return _variables.notifyAboutPinned.current();
} }
rpl::producer<bool> Settings::notifyAboutPinnedChanges() const { rpl::producer<bool> SessionSettings::notifyAboutPinnedChanges() const {
return _variables.notifyAboutPinned.changes(); return _variables.notifyAboutPinned.changes();
} }
void Settings::setSkipArchiveInSearch(bool skip) { void SessionSettings::setSkipArchiveInSearch(bool skip) {
_variables.skipArchiveInSearch = skip; _variables.skipArchiveInSearch = skip;
} }
bool Settings::skipArchiveInSearch() const { bool SessionSettings::skipArchiveInSearch() const {
return _variables.skipArchiveInSearch.current(); return _variables.skipArchiveInSearch.current();
} }
rpl::producer<bool> Settings::skipArchiveInSearchChanges() const { rpl::producer<bool> SessionSettings::skipArchiveInSearchChanges() const {
return _variables.skipArchiveInSearch.changes(); return _variables.skipArchiveInSearch.changes();
} }
void Settings::setLargeEmoji(bool value) { void SessionSettings::setLargeEmoji(bool value) {
_variables.largeEmoji = value; _variables.largeEmoji = value;
} }
bool Settings::largeEmoji() const { bool SessionSettings::largeEmoji() const {
return _variables.largeEmoji.current(); return _variables.largeEmoji.current();
} }
rpl::producer<bool> Settings::largeEmojiValue() const { rpl::producer<bool> SessionSettings::largeEmojiValue() const {
return _variables.largeEmoji.value(); return _variables.largeEmoji.value();
} }
rpl::producer<bool> Settings::largeEmojiChanges() const { rpl::producer<bool> SessionSettings::largeEmojiChanges() const {
return _variables.largeEmoji.changes(); return _variables.largeEmoji.changes();
} }
void Settings::setReplaceEmoji(bool value) { void SessionSettings::setReplaceEmoji(bool value) {
_variables.replaceEmoji = value; _variables.replaceEmoji = value;
} }
bool Settings::replaceEmoji() const { bool SessionSettings::replaceEmoji() const {
return _variables.replaceEmoji.current(); return _variables.replaceEmoji.current();
} }
rpl::producer<bool> Settings::replaceEmojiValue() const { rpl::producer<bool> SessionSettings::replaceEmojiValue() const {
return _variables.replaceEmoji.value(); return _variables.replaceEmoji.value();
} }
rpl::producer<bool> Settings::replaceEmojiChanges() const { rpl::producer<bool> SessionSettings::replaceEmojiChanges() const {
return _variables.replaceEmoji.changes(); return _variables.replaceEmoji.changes();
} }

View file

@ -30,10 +30,11 @@ enum class SelectorTab;
namespace Main { namespace Main {
class Settings final { class SessionSettings final {
public: public:
[[nodiscard]] QByteArray serialize() const; [[nodiscard]] QByteArray serialize() const;
void constructFromSerialized(const QByteArray &serialized); [[nodiscard]] static std::unique_ptr<SessionSettings> FromSerialized(
const QByteArray &serialized);
void setLastSeenWarningSeen(bool lastSeenWarningSeen) { void setLastSeenWarningSeen(bool lastSeenWarningSeen) {
_variables.lastSeenWarningSeen = lastSeenWarningSeen; _variables.lastSeenWarningSeen = lastSeenWarningSeen;

View file

@ -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_top_bar.h"
#include "export/view/export_view_panel_controller.h" #include "export/view/export_view_panel_controller.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "main/main_account.h" #include "main/main_account.h"
#include "support/support_helper.h" #include "support/support_helper.h"
#include "storage/storage_facade.h" #include "storage/storage_facade.h"
@ -2282,7 +2283,7 @@ void MainWidget::ensureFirstColumnResizeAreaCreated() {
session().settings().setDialogsWidthRatio( session().settings().setDialogsWidthRatio(
float64(_dialogsWidth) / width()); float64(_dialogsWidth) / width());
} }
session().local().writeSettings(); session().saveSettings();
}; };
createResizeArea( createResizeArea(
_firstColumnResizeArea, _firstColumnResizeArea,
@ -2306,7 +2307,7 @@ void MainWidget::ensureThirdColumnResizeAreaCreated() {
session().settings().thirdColumnWidth(), session().settings().thirdColumnWidth(),
st::columnMinimalWidthThird, st::columnMinimalWidthThird,
st::columnMaximalWidthThird)); st::columnMaximalWidthThird));
session().local().writeSettings(); session().saveSettings();
}; };
createResizeArea( createResizeArea(
_thirdColumnResizeArea, _thirdColumnResizeArea,

View file

@ -810,7 +810,7 @@ void MainWindow::toggleDisplayNotifyFromTray() {
Global::SetRestoreFlashBounceNotifyFromTray(false); Global::SetRestoreFlashBounceNotifyFromTray(false);
} }
} }
account().local().writeSettings(); account().session().saveSettings();
using Change = Window::Notifications::ChangeType; using Change = Window::Notifications::ChangeType;
auto &changes = account().session().notifications().settingsChanged(); auto &changes = account().session().notifications().settingsChanged();
changes.notify(Change::DesktopEnabled); changes.notify(Change::DesktopEnabled);

View file

@ -21,6 +21,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "window/window_session_controller.h" #include "window/window_session_controller.h"
#include "window/section_widget.h" #include "window/section_widget.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "facades.h" #include "facades.h"
#include "app.h" #include "app.h"
#include "styles/style_media_player.h" #include "styles/style_media_player.h"

View file

@ -26,6 +26,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "main/main_accounts.h" // Accounts::activeSessionValue. #include "main/main_accounts.h" // Accounts::activeSessionValue.
#include "mainwindow.h" #include "mainwindow.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "facades.h" #include "facades.h"
namespace Media { namespace Media {

View file

@ -143,7 +143,7 @@ Widget::Widget(QWidget *parent, not_null<Main::Session*> session)
Global::SetVoiceMsgPlaybackDoubled(doubled); Global::SetVoiceMsgPlaybackDoubled(doubled);
instance()->updateVoicePlaybackSpeed(); instance()->updateVoicePlaybackSpeed();
updatePlaybackSpeedIcon(); updatePlaybackSpeedIcon();
_session->local().writeSettings(); _session->saveSettings();
}); });
subscribe(instance()->repeatChangedNotifier(), [this](AudioMsgId::Type type) { subscribe(instance()->repeatChangedNotifier(), [this](AudioMsgId::Type type) {

View file

@ -51,6 +51,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "main/main_account.h" #include "main/main_account.h"
#include "main/main_accounts.h" // Accounts::activeSessionValue. #include "main/main_accounts.h" // Accounts::activeSessionValue.
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "layout.h" #include "layout.h"
#include "storage/file_download.h" #include "storage/file_download.h"
#include "calls/calls_instance.h" #include "calls/calls_instance.h"

View file

@ -25,6 +25,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "mainwidget.h" #include "mainwidget.h"
#include "storage/file_upload.h" #include "storage/file_upload.h"
#include "mainwindow.h" #include "mainwindow.h"
#include "main/main_session.h"
#include "media/audio/media_audio.h" #include "media/audio/media_audio.h"
#include "media/player/media_player_instance.h" #include "media/player/media_player_instance.h"
#include "storage/localstorage.h" #include "storage/localstorage.h"

View file

@ -28,6 +28,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "data/data_session.h" #include "data/data_session.h"
#include "main/main_account.h" #include "main/main_account.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "mtproto/facade.h" #include "mtproto/facade.h"
#include "layout.h" #include "layout.h"
#include "facades.h" #include "facades.h"

View file

@ -46,6 +46,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "support/support_common.h" #include "support/support_common.h"
#include "support/support_templates.h" #include "support/support_templates.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "mainwidget.h" #include "mainwidget.h"
#include "mainwindow.h" #include "mainwindow.h"
#include "facades.h" #include "facades.h"

View file

@ -13,6 +13,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "mainwindow.h" #include "mainwindow.h"
#include "data/data_session.h" #include "data/data_session.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "main/main_account.h" #include "main/main_account.h"
#include "main/main_accounts.h" #include "main/main_accounts.h"
#include "boxes/confirm_box.h" #include "boxes/confirm_box.h"

View file

@ -26,6 +26,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "info/profile/info_profile_values.h" #include "info/profile/info_profile_values.h"
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "window/window_session_controller.h" #include "window/window_session_controller.h"
#include "apiwrap.h" #include "apiwrap.h"
#include "core/file_utilities.h" #include "core/file_utilities.h"

View file

@ -22,6 +22,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "mainwindow.h" #include "mainwindow.h"
#include "core/application.h" #include "core/application.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "apiwrap.h" #include "apiwrap.h"
#include "facades.h" #include "facades.h"
#include "app.h" #include "app.h"
@ -593,7 +594,6 @@ void SetupNotificationsContent(
tr::lng_settings_count_unread(tr::now), tr::lng_settings_count_unread(tr::now),
session->settings().countUnreadMessages()); session->settings().countUnreadMessages());
AddSkip(container, st::settingsCheckboxesSkip); AddSkip(container, st::settingsCheckboxesSkip);
AddDivider(container); AddDivider(container);
AddSkip(container, st::settingsCheckboxesSkip); AddSkip(container, st::settingsCheckboxesSkip);

View file

@ -12,6 +12,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "apiwrap.h" #include "apiwrap.h"
#include "mainwidget.h" #include "mainwidget.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "data/data_user.h" #include "data/data_user.h"
#include "data/data_session.h" #include "data/data_session.h"
#include "data/data_changes.h" #include "data/data_changes.h"

View file

@ -391,7 +391,8 @@ bool ReadSetting(
stream >> v; stream >> v;
if (!CheckStreamStatus(stream)) return false; if (!CheckStreamStatus(stream)) return false;
context.sessionSettings().constructFromSerialized(v); context.sessionSettingsStorage
= Main::SessionSettings::FromSerialized(v);
} break; } break;
case dbiWorkMode: { case dbiWorkMode: {

View file

@ -8,7 +8,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#pragma once #pragma once
#include "mtproto/mtproto_dc_options.h" #include "mtproto/mtproto_dc_options.h"
#include "main/main_settings.h" #include "main/main_session_settings.h"
#include "storage/storage_account.h" #include "storage/storage_account.h"
namespace MTP { namespace MTP {
@ -19,9 +19,10 @@ namespace Storage {
namespace details { namespace details {
struct ReadSettingsContext { struct ReadSettingsContext {
[[nodiscard]] Main::Settings &sessionSettings() { [[nodiscard]] Main::SessionSettings &sessionSettings() {
if (!sessionSettingsStorage) { if (!sessionSettingsStorage) {
sessionSettingsStorage = std::make_unique<Main::Settings>(); sessionSettingsStorage
= std::make_unique<Main::SessionSettings>();
} }
return *sessionSettingsStorage; return *sessionSettingsStorage;
} }
@ -45,7 +46,7 @@ struct ReadSettingsContext {
qint64 cacheBigFileTotalSizeLimit = 0; qint64 cacheBigFileTotalSizeLimit = 0;
qint32 cacheBigFileTotalTimeLimit = 0; qint32 cacheBigFileTotalTimeLimit = 0;
std::unique_ptr<Main::Settings> sessionSettingsStorage; std::unique_ptr<Main::SessionSettings> sessionSettingsStorage;
FileKey themeKeyLegacy = 0; FileKey themeKeyLegacy = 0;
FileKey themeKeyDay = 0; FileKey themeKeyDay = 0;

View file

@ -9,7 +9,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "storage/file_download.h" #include "storage/file_download.h"
#include "storage/localimageloader.h" #include "storage/localimageloader.h"
#include "main/main_session.h"
#include <QtCore/QTimer> #include <QtCore/QTimer>

View file

@ -394,7 +394,7 @@ Account::ReadMapResult Account::readMapWith(
readLocations(); readLocations();
} }
auto stored = readSettings(); auto stored = readSessionSettings();
readMtpData(); readMtpData();
DEBUG_LOG(("selfSerialized set: %1").arg(selfSerialized.size())); DEBUG_LOG(("selfSerialized set: %1").arg(selfSerialized.size()));
@ -745,11 +745,11 @@ void Account::deserializeCallSettings(QByteArray &settings) {
} }
} }
void Account::writeSettings() { void Account::writeSessionSettings() {
writeSettings(nullptr); writeSessionSettings(nullptr);
} }
void Account::writeSettings(Main::Settings *stored) { void Account::writeSessionSettings(Main::SessionSettings *stored) {
if (_readingUserSettings) { if (_readingUserSettings) {
LOG(("App Error: attempt to write settings while reading them!")); LOG(("App Error: attempt to write settings while reading them!"));
return; return;
@ -846,7 +846,7 @@ ReadSettingsContext Account::prepareReadSettingsContext() const {
}; };
} }
std::unique_ptr<Main::Settings> Account::readSettings() { std::unique_ptr<Main::SessionSettings> Account::readSessionSettings() {
ReadSettingsContext context; ReadSettingsContext context;
FileReadDescriptor userSettings; FileReadDescriptor userSettings;
if (!ReadEncryptedFile(userSettings, _settingsKey, _basePath, _localKey)) { if (!ReadEncryptedFile(userSettings, _settingsKey, _basePath, _localKey)) {
@ -855,7 +855,7 @@ std::unique_ptr<Main::Settings> Account::readSettings() {
Local::readOldUserSettings(true, context); Local::readOldUserSettings(true, context);
auto result = applyReadContext(std::move(context)); auto result = applyReadContext(std::move(context));
writeSettings(result.get()); writeSessionSettings(result.get());
return result; return result;
} }
@ -867,13 +867,13 @@ std::unique_ptr<Main::Settings> Account::readSettings() {
userSettings.stream >> blockId; userSettings.stream >> blockId;
if (!CheckStreamStatus(userSettings.stream)) { if (!CheckStreamStatus(userSettings.stream)) {
_readingUserSettings = false; _readingUserSettings = false;
writeSettings(); writeSessionSettings();
return nullptr; return nullptr;
} }
if (!ReadSetting(blockId, userSettings.stream, userSettings.version, context)) { if (!ReadSetting(blockId, userSettings.stream, userSettings.version, context)) {
_readingUserSettings = false; _readingUserSettings = false;
writeSettings(); writeSessionSettings();
return nullptr; return nullptr;
} }
} }
@ -883,7 +883,7 @@ std::unique_ptr<Main::Settings> Account::readSettings() {
return applyReadContext(std::move(context)); return applyReadContext(std::move(context));
} }
std::unique_ptr<Main::Settings> Account::applyReadContext( std::unique_ptr<Main::SessionSettings> Account::applyReadContext(
ReadSettingsContext &&context) { ReadSettingsContext &&context) {
ApplyReadFallbackConfig(context); ApplyReadFallbackConfig(context);
@ -1326,7 +1326,7 @@ void Account::updateCacheSettings(
_cacheTotalTimeLimit = update.totalTimeLimit; _cacheTotalTimeLimit = update.totalTimeLimit;
_cacheBigFileTotalSizeLimit = updateBig.totalSizeLimit; _cacheBigFileTotalSizeLimit = updateBig.totalSizeLimit;
_cacheBigFileTotalTimeLimit = updateBig.totalTimeLimit; _cacheBigFileTotalTimeLimit = updateBig.totalTimeLimit;
writeSettings(); writeSessionSettings();
} }
QString Account::cacheBigFilePath() const { QString Account::cacheBigFilePath() const {
@ -1894,7 +1894,7 @@ void Account::importOldRecentStickers() {
} }
writeInstalledStickers(); writeInstalledStickers();
writeSettings(); writeSessionSettings();
ClearKey(_recentStickersKeyOld, _basePath); ClearKey(_recentStickersKeyOld, _basePath);
_recentStickersKeyOld = 0; _recentStickersKeyOld = 0;

View file

@ -20,7 +20,7 @@ struct Settings;
namespace Main { namespace Main {
class Account; class Account;
class Settings; class SessionSettings;
} // namespace Main } // namespace Main
namespace Data { namespace Data {
@ -67,7 +67,7 @@ public:
return _localKey; return _localKey;
} }
void writeSettings(); void writeSessionSettings();
void writeMtpData(); void writeMtpData();
void writeMtpConfig(); void writeMtpConfig();
@ -172,12 +172,12 @@ private:
void writeLocationsQueued(); void writeLocationsQueued();
void writeLocationsDelayed(); void writeLocationsDelayed();
std::unique_ptr<Main::Settings> readSettings(); std::unique_ptr<Main::SessionSettings> readSessionSettings();
void writeSettings(Main::Settings *stored); void writeSessionSettings(Main::SessionSettings *stored);
std::unique_ptr<MTP::Config> readMtpConfig(); std::unique_ptr<MTP::Config> readMtpConfig();
void readMtpData(); void readMtpData();
std::unique_ptr<Main::Settings> applyReadContext( std::unique_ptr<Main::SessionSettings> applyReadContext(
details::ReadSettingsContext &&context); details::ReadSettingsContext &&context);
[[nodiscard]] QByteArray serializeCallSettings(); [[nodiscard]] QByteArray serializeCallSettings();

View file

@ -21,6 +21,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "base/unixtime.h" #include "base/unixtime.h"
#include "base/call_delayed.h" #include "base/call_delayed.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "apiwrap.h" #include "apiwrap.h"
#include "styles/style_chat_helpers.h" #include "styles/style_chat_helpers.h"
#include "styles/style_window.h" #include "styles/style_window.h"

View file

@ -28,6 +28,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "storage/localimageloader.h" #include "storage/localimageloader.h"
#include "core/sandbox.h" #include "core/sandbox.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "apiwrap.h" #include "apiwrap.h"
#include "facades.h" #include "facades.h"
#include "styles/style_layers.h" #include "styles/style_layers.h"

View file

@ -24,6 +24,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
#include "data/data_session.h" #include "data/data_session.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "base/crc32hash.h" #include "base/crc32hash.h"
#include "base/call_delayed.h" #include "base/call_delayed.h"
#include "ui/toast/toast.h" #include "ui/toast/toast.h"
@ -413,10 +414,10 @@ void MainWindow::initSize() {
? primaryScreen->availableGeometry() ? primaryScreen->availableGeometry()
: QRect(0, 0, st::windowDefaultWidth, st::windowDefaultHeight); : QRect(0, 0, st::windowDefaultWidth, st::windowDefaultHeight);
bool maximized = false; bool maximized = false;
const auto initialWidth = Main::Settings::ThirdColumnByDefault() const auto initialWidth = Main::SessionSettings::ThirdColumnByDefault()
? st::windowBigDefaultWidth ? st::windowBigDefaultWidth
: st::windowDefaultWidth; : st::windowDefaultWidth;
const auto initialHeight = Main::Settings::ThirdColumnByDefault() const auto initialHeight = Main::SessionSettings::ThirdColumnByDefault()
? st::windowBigDefaultHeight ? st::windowBigDefaultHeight
: st::windowDefaultHeight; : st::windowDefaultHeight;
auto geometry = QRect( auto geometry = QRect(

View file

@ -25,6 +25,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "api/api_updates.h" #include "api/api_updates.h"
#include "apiwrap.h" #include "apiwrap.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "main/main_accounts.h" #include "main/main_accounts.h"
#include "facades.h" #include "facades.h"
#include "app.h" #include "app.h"

View file

@ -21,6 +21,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "window/themes/window_theme.h" #include "window/themes/window_theme.h"
#include "storage/file_download.h" #include "storage/file_download.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "history/history.h" #include "history/history.h"
#include "history/history_item.h" #include "history/history_item.h"
#include "platform/platform_specific.h" #include "platform/platform_specific.h"

View file

@ -875,7 +875,7 @@ void ChatBackground::setTile(bool tile) {
if (this->tile() != old) { if (this->tile() != old) {
if (!Data::details::IsTestingThemeWallPaper(_paper) if (!Data::details::IsTestingThemeWallPaper(_paper)
&& !Data::details::IsTestingDefaultWallPaper(_paper)) { && !Data::details::IsTestingDefaultWallPaper(_paper)) {
local().writeSettings(); local().writeSessionSettings();
} }
notify(BackgroundUpdate(BackgroundUpdate::Type::Changed, tile)); notify(BackgroundUpdate(BackgroundUpdate::Type::Changed, tile));
} }
@ -1030,7 +1030,7 @@ bool ChatBackground::isNonDefaultBackground() {
void ChatBackground::writeNewBackgroundSettings() { void ChatBackground::writeNewBackgroundSettings() {
if (tile() != _tileForRevert) { if (tile() != _tileForRevert) {
local().writeSettings(); local().writeSessionSettings();
} }
local().writeBackground( local().writeBackground(
_paper, _paper,
@ -1117,7 +1117,7 @@ void ChatBackground::reapplyWithNightMode(
ClearApplying(); ClearApplying();
keepApplied(saved.object, settingExactTheme); keepApplied(saved.object, settingExactTheme);
if (tile() != _tileForRevert) { if (tile() != _tileForRevert) {
local().writeSettings(); local().writeSessionSettings();
} }
if (nightModeChanged) { if (nightModeChanged) {
Local::writeSettings(); Local::writeSettings();

View file

@ -28,6 +28,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
#include "core/click_handler_types.h" #include "core/click_handler_types.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "mtproto/mtproto_config.h" #include "mtproto/mtproto_config.h"
#include "data/data_folder.h" #include "data/data_folder.h"
#include "data/data_session.h" #include "data/data_session.h"
@ -289,7 +290,7 @@ void MainMenu::refreshMenu() {
(*fix)->setChecked(!(*fix)->isChecked()); (*fix)->setChecked(!(*fix)->isChecked());
_controller->session().settings().setSupportFixChatsOrder( _controller->session().settings().setSupportFixChatsOrder(
(*fix)->isChecked()); (*fix)->isChecked());
_controller->session().local().writeSettings(); _controller->session().saveSettings();
}, &st::mainMenuFixOrder, &st::mainMenuFixOrderOver); }, &st::mainMenuFixOrder, &st::mainMenuFixOrderOver);
(*fix)->setCheckable(true); (*fix)->setCheckable(true);
(*fix)->setChecked( (*fix)->setChecked(

View file

@ -21,6 +21,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "ui/widgets/checkbox.h" #include "ui/widgets/checkbox.h"
#include "ui/layers/generic_box.h" #include "ui/layers/generic_box.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "apiwrap.h" #include "apiwrap.h"
#include "mainwidget.h" #include "mainwidget.h"
#include "mainwindow.h" #include "mainwindow.h"

View file

@ -31,6 +31,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "mainwidget.h" #include "mainwidget.h"
#include "mainwindow.h" #include "mainwindow.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h"
#include "apiwrap.h" #include "apiwrap.h"
#include "support/support_helper.h" #include "support/support_helper.h"
#include "facades.h" #include "facades.h"