diff --git a/Telegram/SourceFiles/core/core_settings.cpp b/Telegram/SourceFiles/core/core_settings.cpp index c88373baf2..41be395dfb 100644 --- a/Telegram/SourceFiles/core/core_settings.cpp +++ b/Telegram/SourceFiles/core/core_settings.cpp @@ -94,7 +94,17 @@ QByteArray Settings::serialize() const { } stream << qint32(_autoDownloadDictionaries.current() ? 1 : 0) - << qint32(_mainMenuAccountsShown.current() ? 1 : 0); + << qint32(_mainMenuAccountsShown.current() ? 1 : 0) + << qint32(_tabbedSelectorSectionEnabled ? 1 : 0) + << qint32(_floatPlayerColumn) + << qint32(_floatPlayerCorner) + << qint32(_thirdSectionInfoEnabled ? 1 : 0) + << qint32(snap( + qRound(_dialogsWidthRatio.current() * 1000000), + 0, + 1000000)) + << qint32(_thirdColumnWidth.current()) + << qint32(_thirdSectionExtendedBy); } return result; } @@ -150,6 +160,13 @@ void Settings::addFromSerialized(const QByteArray &serialized) { std::vector dictionariesEnabled; qint32 autoDownloadDictionaries = _autoDownloadDictionaries.current() ? 1 : 0; qint32 mainMenuAccountsShown = _mainMenuAccountsShown.current() ? 1 : 0; + qint32 tabbedSelectorSectionEnabled = 1; + qint32 floatPlayerColumn = static_cast(Window::Column::Second); + qint32 floatPlayerCorner = static_cast(RectPart::TopRight); + qint32 thirdSectionInfoEnabled = 0; + float64 dialogsWidthRatio = _dialogsWidthRatio.current(); + qint32 thirdColumnWidth = _thirdColumnWidth.current(); + qint32 thirdSectionExtendedBy = _thirdSectionExtendedBy; stream >> themesAccentColors; if (!stream.atEnd()) { @@ -211,6 +228,18 @@ void Settings::addFromSerialized(const QByteArray &serialized) { >> autoDownloadDictionaries >> mainMenuAccountsShown; } + if (!stream.atEnd()) { + auto dialogsWidthRatioInt = qint32(); + stream + >> tabbedSelectorSectionEnabled + >> floatPlayerColumn + >> floatPlayerCorner + >> thirdSectionInfoEnabled + >> dialogsWidthRatioInt + >> thirdColumnWidth + >> thirdSectionExtendedBy; + dialogsWidthRatio = snap(dialogsWidthRatioInt / 1000000., 0., 1.); + } if (stream.status() != QDataStream::Ok) { LOG(("App Error: " "Bad data for Core::Settings::constructFromSerialized()")); @@ -281,6 +310,27 @@ void Settings::addFromSerialized(const QByteArray &serialized) { _dictionariesEnabled = std::move(dictionariesEnabled); _autoDownloadDictionaries = (autoDownloadDictionaries == 1); _mainMenuAccountsShown = (mainMenuAccountsShown == 1); + _tabbedSelectorSectionEnabled = (tabbedSelectorSectionEnabled == 1); + auto uncheckedColumn = static_cast(floatPlayerColumn); + switch (uncheckedColumn) { + case Window::Column::First: + case Window::Column::Second: + case Window::Column::Third: _floatPlayerColumn = uncheckedColumn; break; + } + auto uncheckedCorner = static_cast(floatPlayerCorner); + switch (uncheckedCorner) { + case RectPart::TopLeft: + case RectPart::TopRight: + case RectPart::BottomLeft: + case RectPart::BottomRight: _floatPlayerCorner = uncheckedCorner; break; + } + _thirdSectionInfoEnabled = thirdSectionInfoEnabled; + _dialogsWidthRatio = dialogsWidthRatio; + _thirdColumnWidth = thirdColumnWidth; + _thirdSectionExtendedBy = thirdSectionExtendedBy; + if (_thirdSectionInfoEnabled) { + _tabbedSelectorSectionEnabled = false; + } } bool Settings::chatWide() const { diff --git a/Telegram/SourceFiles/media/player/media_player_volume_controller.cpp b/Telegram/SourceFiles/media/player/media_player_volume_controller.cpp index 135453ba5e..d21a1fbdcb 100644 --- a/Telegram/SourceFiles/media/player/media_player_volume_controller.cpp +++ b/Telegram/SourceFiles/media/player/media_player_volume_controller.cpp @@ -39,7 +39,7 @@ VolumeController::VolumeController( Core::App().settings().setRememberedSongVolume(volume); } applyVolumeChange(volume); - controller->session().saveSettingsDelayed(); + Core::App().saveSettingsDelayed(); }); Core::App().settings().songVolumeChanges( ) | rpl::start_with_next([=](float64 volume) { diff --git a/Telegram/SourceFiles/media/player/media_player_widget.cpp b/Telegram/SourceFiles/media/player/media_player_widget.cpp index 0bc26ebf43..f7fa56b8b8 100644 --- a/Telegram/SourceFiles/media/player/media_player_widget.cpp +++ b/Telegram/SourceFiles/media/player/media_player_widget.cpp @@ -132,6 +132,7 @@ Widget::Widget(QWidget *parent, not_null session) ? 0. : Core::App().settings().rememberedSongVolume(); Core::App().settings().setSongVolume(volume); + Core::App().saveSettingsDelayed(); mixer()->setSongVolume(volume); }); Core::App().settings().songVolumeChanges( diff --git a/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp b/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp index 322f606f9d..1700cba3da 100644 --- a/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp +++ b/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp @@ -2653,10 +2653,8 @@ void OverlayWidget::playbackControlsSeekFinished(crl::time position) { void OverlayWidget::playbackControlsVolumeChanged(float64 volume) { Core::App().settings().setVideoVolume(volume); + Core::App().saveSettingsDelayed(); updateMixerVideoVolume(); - if (_document) { - _document->session().saveSettingsDelayed(); - } } float64 OverlayWidget::playbackControlsCurrentVolume() { diff --git a/Telegram/SourceFiles/settings/settings_calls.cpp b/Telegram/SourceFiles/settings/settings_calls.cpp index ddfbef47c1..01b1bf5fd7 100644 --- a/Telegram/SourceFiles/settings/settings_calls.cpp +++ b/Telegram/SourceFiles/settings/settings_calls.cpp @@ -52,7 +52,7 @@ Calls::Calls( Calls::~Calls() { if (_needWriteSettings) { - _controller->session().saveSettingsDelayed(); + Core::App().saveSettingsDelayed(); } } @@ -134,7 +134,7 @@ void Calls::setupContent() { : "default"; Core::App().settings().setCallOutputDeviceID( QString::fromStdString(deviceId)); - _controller->session().saveSettingsDelayed(); + Core::App().saveSettingsDelayed(); if (const auto call = Core::App().calls().currentCall()) { call->setCurrentAudioDevice(false, deviceId); } @@ -210,7 +210,7 @@ void Calls::setupContent() { : "default"; Core::App().settings().setCallInputDeviceID( QString::fromStdString(deviceId)); - _controller->session().saveSettingsDelayed(); + Core::App().saveSettingsDelayed(); if (_micTester) { stopTestingMicrophone(); }