diff --git a/Telegram/SourceFiles/data/data_session.cpp b/Telegram/SourceFiles/data/data_session.cpp index 6c56e3ba56..bcd6034573 100644 --- a/Telegram/SourceFiles/data/data_session.cpp +++ b/Telegram/SourceFiles/data/data_session.cpp @@ -19,6 +19,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "history/view/history_view_element.h" #include "inline_bots/inline_bot_layout_item.h" #include "storage/localstorage.h" +#include "boxes/abstract_box.h" #include "data/data_media_types.h" #include "data/data_feed.h" #include "data/data_photo.h" @@ -93,6 +94,13 @@ void Session::suggestStartExport(TimeId availableAt) { suggestStartExport(); } +void Session::clearExportSuggestion() { + _exportAvailableAt = 0; + if (_exportSuggestion) { + _exportSuggestion->closeBox(); + } +} + void Session::suggestStartExport() { if (_exportAvailableAt <= 0) { return; @@ -110,7 +118,7 @@ void Session::suggestStartExport() { } else if (_export) { Export::View::ClearSuggestStart(); } else { - Export::View::SuggestStart(); + _exportSuggestion = Export::View::SuggestStart(); } } diff --git a/Telegram/SourceFiles/data/data_session.h b/Telegram/SourceFiles/data/data_session.h index ecd294a8e5..56bcf09715 100644 --- a/Telegram/SourceFiles/data/data_session.h +++ b/Telegram/SourceFiles/data/data_session.h @@ -13,6 +13,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "base/timer.h" class HistoryItem; +class BoxContent; namespace HistoryView { struct Group; @@ -53,6 +54,7 @@ public: void startExport(); void suggestStartExport(TimeId availableAt); + void clearExportSuggestion(); rpl::producer currentExportView() const; bool exportInProgress() const; void stopExportWithConfirmation(FnMut callback); @@ -509,6 +511,7 @@ private: std::unique_ptr _exportPanel; rpl::event_stream _exportViewChanges; TimeId _exportAvailableAt = 0; + QPointer _exportSuggestion; base::Variable _contactsLoaded = { false }; base::Variable _allChatsLoaded = { false }; diff --git a/Telegram/SourceFiles/export/view/export_view_panel_controller.cpp b/Telegram/SourceFiles/export/view/export_view_panel_controller.cpp index 56edd0c034..53e9da1298 100644 --- a/Telegram/SourceFiles/export/view/export_view_panel_controller.cpp +++ b/Telegram/SourceFiles/export/view/export_view_panel_controller.cpp @@ -90,12 +90,14 @@ Environment PrepareEnvironment() { } // namespace -void SuggestStart() { +QPointer SuggestStart() { ClearSuggestStart(); - Ui::show(Box(), LayerOption::KeepOther); + return Ui::show(Box(), LayerOption::KeepOther).data(); } void ClearSuggestStart() { + Auth().data().clearExportSuggestion(); + auto settings = Local::ReadExportSettings(); if (settings.availableAt) { settings.availableAt = 0; diff --git a/Telegram/SourceFiles/export/view/export_view_panel_controller.h b/Telegram/SourceFiles/export/view/export_view_panel_controller.h index a9849c7bdf..6d77970ff6 100644 --- a/Telegram/SourceFiles/export/view/export_view_panel_controller.h +++ b/Telegram/SourceFiles/export/view/export_view_panel_controller.h @@ -21,7 +21,7 @@ class SeparatePanel; namespace Export { namespace View { -void SuggestStart(); +QPointer SuggestStart(); void ClearSuggestStart(); class Panel;