/* This file is part of Telegram Desktop, the official desktop application for the Telegram messaging service. For license and copyright information please follow this link: https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #pragma once #include "ui/rp_widget.h" #include "export/view/export_view_content.h" #include "base/object_ptr.h" #include "base/timer.h" namespace Ui { class VerticalLayout; class RoundButton; class FlatLabel; class LinkButton; template class FadeWrap; } // namespace Ui namespace Export { namespace View { class ProgressWidget : public Ui::RpWidget { public: ProgressWidget( QWidget *parent, rpl::producer content); rpl::producer skipChatClicks() const; rpl::producer skipFileClicks() const; rpl::producer<> cancelClicks() const; rpl::producer<> doneClicks() const; ~ProgressWidget(); private: void setupBottomButton(not_null button); void updateState(Content &&content); void showDone(); Content _content; class Row; object_ptr _body; std::vector> _rows; base::unique_qptr> _skipFile; base::unique_qptr> _skipChat; QPointer _about; base::unique_qptr _cancel; base::unique_qptr _done; rpl::event_stream<> _doneClicks; uint64 _chatRandomId = 0; uint64 _fileRandomId = 0; base::Timer _fileShowSkipTimer; }; } // namespace View } // namespace Export