From efdf5f176717b5f9f1035dbec9c41c3446251324 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Wed, 5 Feb 2020 17:28:22 +0300 Subject: [PATCH] Moved producer of state description to CloudBlob. --- .../boxes/dictionaries_manager.cpp | 24 +++-------------- .../chat_helpers/emoji_sets_manager.cpp | 23 +++------------- .../storage/storage_cloud_blob.cpp | 27 +++++++++++++++++++ .../SourceFiles/storage/storage_cloud_blob.h | 7 +++++ 4 files changed, 40 insertions(+), 41 deletions(-) diff --git a/Telegram/SourceFiles/boxes/dictionaries_manager.cpp b/Telegram/SourceFiles/boxes/dictionaries_manager.cpp index 46f809fe15..9d9fc461c8 100644 --- a/Telegram/SourceFiles/boxes/dictionaries_manager.cpp +++ b/Telegram/SourceFiles/boxes/dictionaries_manager.cpp @@ -19,7 +19,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/effects/radial_animation.h" #include "lang/lang_keys.h" #include "base/zlib_help.h" -#include "layout.h" #include "core/application.h" #include "main/main_account.h" #include "main/main_session.h" @@ -110,26 +109,9 @@ DictState ComputeState(int id) { } QString StateDescription(const DictState &state) { - return state.match([](const Available &data) { - return tr::lng_emoji_set_download(tr::now, lt_size, formatSizeText(data.size)); - }, [](const Ready &data) -> QString { - return tr::lng_emoji_set_ready(tr::now); - }, [](const Active &data) -> QString { - return tr::lng_settings_manage_enabled_dictionary(tr::now); - // return tr::lng_emoji_set_active(tr::now); - }, [](const Loading &data) { - const auto percent = (data.size > 0) - ? snap((data.already * 100) / float64(data.size), 0., 100.) - : 0.; - return tr::lng_emoji_set_loading( - tr::now, - lt_percent, - QString::number(int(std::round(percent))) + '%', - lt_progress, - formatDownloadText(data.already, data.size)); - }, [](const Failed &data) { - return tr::lng_attach_failed(tr::now); - }); + return StateDescription( + state, + tr::lng_settings_manage_enabled_dictionary); } Loader::Loader( diff --git a/Telegram/SourceFiles/chat_helpers/emoji_sets_manager.cpp b/Telegram/SourceFiles/chat_helpers/emoji_sets_manager.cpp index c41fac066a..50c52c2158 100644 --- a/Telegram/SourceFiles/chat_helpers/emoji_sets_manager.cpp +++ b/Telegram/SourceFiles/chat_helpers/emoji_sets_manager.cpp @@ -17,7 +17,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/emoji_config.h" #include "lang/lang_keys.h" #include "base/zlib_help.h" -#include "layout.h" #include "core/application.h" #include "main/main_account.h" #include "mainwidget.h" @@ -149,25 +148,9 @@ SetState ComputeState(int id) { } QString StateDescription(const SetState &state) { - return state.match([](const Available &data) { - return tr::lng_emoji_set_download(tr::now, lt_size, formatSizeText(data.size)); - }, [](const Ready &data) -> QString { - return tr::lng_emoji_set_ready(tr::now); - }, [](const Active &data) -> QString { - return tr::lng_emoji_set_active(tr::now); - }, [](const Loading &data) { - const auto percent = (data.size > 0) - ? snap((data.already * 100) / float64(data.size), 0., 100.) - : 0.; - return tr::lng_emoji_set_loading( - tr::now, - lt_percent, - QString::number(int(std::round(percent))) + '%', - lt_progress, - formatDownloadText(data.already, data.size)); - }, [](const Failed &data) { - return tr::lng_attach_failed(tr::now); - }); + return StateDescription( + state, + tr::lng_emoji_set_active); } bool GoodSetPartName(const QString &name) { diff --git a/Telegram/SourceFiles/storage/storage_cloud_blob.cpp b/Telegram/SourceFiles/storage/storage_cloud_blob.cpp index 3707cc8cb9..41d7d1c9d0 100644 --- a/Telegram/SourceFiles/storage/storage_cloud_blob.cpp +++ b/Telegram/SourceFiles/storage/storage_cloud_blob.cpp @@ -9,6 +9,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "base/zlib_help.h" #include "core/application.h" +#include "lang/lang_keys.h" +#include "layout.h" #include "main/main_account.h" namespace Storage::CloudBlob { @@ -66,6 +68,31 @@ bool UnpackBlob( return true; } +QString StateDescription(const BlobState &state, tr::phrase<> activeText) { + return state.match([](const Available &data) { + return tr::lng_emoji_set_download( + tr::now, + lt_size, + formatSizeText(data.size)); + }, [](const Ready &data) -> QString { + return tr::lng_emoji_set_ready(tr::now); + }, [&](const Active &data) -> QString { + return activeText(tr::now); + }, [](const Loading &data) { + const auto percent = (data.size > 0) + ? snap((data.already * 100) / float64(data.size), 0., 100.) + : 0.; + return tr::lng_emoji_set_loading( + tr::now, + lt_percent, + QString::number(int(std::round(percent))) + '%', + lt_progress, + formatDownloadText(data.already, data.size)); + }, [](const Failed &data) { + return tr::lng_attach_failed(tr::now); + }); +} + BlobLoader::BlobLoader( QObject *parent, int id, diff --git a/Telegram/SourceFiles/storage/storage_cloud_blob.h b/Telegram/SourceFiles/storage/storage_cloud_blob.h index a0533eee78..4a1b485bc2 100644 --- a/Telegram/SourceFiles/storage/storage_cloud_blob.h +++ b/Telegram/SourceFiles/storage/storage_cloud_blob.h @@ -9,6 +9,11 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mtproto/dedicated_file_loader.h" +namespace tr { +template +struct phrase; +} // namespace tr + namespace Storage::CloudBlob { constexpr auto kCloudLocationUsername = "tdhbcfiles"_cs; @@ -68,6 +73,8 @@ bool UnpackBlob( const QString &folder, Fn checkNameCallback); +QString StateDescription(const BlobState &state, tr::phrase<> activeText); + class BlobLoader : public QObject { public: BlobLoader(