From e26085b627fe41a037cbe4bb60c833bb4d47a2de Mon Sep 17 00:00:00 2001 From: RadRussianRus Date: Wed, 31 Mar 2021 23:24:33 +0300 Subject: [PATCH] Show descriptions for disabled file dialog options --- Telegram/Resources/langs/lang.strings | 2 ++ Telegram/Resources/langs/rewrites/en.json | 2 ++ Telegram/Resources/langs/rewrites/ru.json | 2 ++ Telegram/SourceFiles/kotato/settings_menu.cpp | 1 + .../platform/linux/file_utilities_linux.cpp | 21 +++++++++++++++---- .../platform/linux/file_utilities_linux.h | 4 ---- .../platform/mac/file_utilities_mac.h | 6 +++++- .../platform/platform_file_utilities.h | 1 + .../platform/win/file_utilities_win.h | 6 +++++- 9 files changed, 35 insertions(+), 10 deletions(-) diff --git a/Telegram/Resources/langs/lang.strings b/Telegram/Resources/langs/lang.strings index 2354b75ac..04e96b30b 100644 --- a/Telegram/Resources/langs/lang.strings +++ b/Telegram/Resources/langs/lang.strings @@ -2756,6 +2756,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL "ktg_settings_file_dialog_type" = "File dialog"; "ktg_file_dialog_type_default" = "Default"; +"ktg_file_dialog_disabled_on_build" = "Disabled on build"; +"ktg_file_dialog_disabled_by_option" = "Disabled by option"; "ktg_settings_other" = "Other"; "ktg_profile_copy_id" = "Copy ID"; diff --git a/Telegram/Resources/langs/rewrites/en.json b/Telegram/Resources/langs/rewrites/en.json index 31949541b..fab2f71e3 100644 --- a/Telegram/Resources/langs/rewrites/en.json +++ b/Telegram/Resources/langs/rewrites/en.json @@ -70,6 +70,8 @@ "ktg_settings_gtk_integration": "GTK integration", "ktg_settings_file_dialog_type": "File dialog", "ktg_file_dialog_type_default": "Default", + "ktg_file_dialog_disabled_on_build": "Disabled on build", + "ktg_file_dialog_disabled_by_option": "Disabled by option", "ktg_settings_other": "Other", "ktg_profile_copy_id": "Copy ID", "ktg_profile_bot_id": "Bot ID", diff --git a/Telegram/Resources/langs/rewrites/ru.json b/Telegram/Resources/langs/rewrites/ru.json index 84b41ef97..46b94f80e 100644 --- a/Telegram/Resources/langs/rewrites/ru.json +++ b/Telegram/Resources/langs/rewrites/ru.json @@ -69,6 +69,8 @@ "ktg_settings_gtk_integration": "GTK-интеграция", "ktg_settings_file_dialog_type": "Файловый диалог", "ktg_file_dialog_type_default": "По умолчанию", + "ktg_file_dialog_disabled_on_build": "Отключено при сборке", + "ktg_file_dialog_disabled_by_option": "Отключено настройкой", "ktg_settings_other": "Прочие", "ktg_profile_copy_id": "Копировать ID", "ktg_profile_bot_id": "ID бота", diff --git a/Telegram/SourceFiles/kotato/settings_menu.cpp b/Telegram/SourceFiles/kotato/settings_menu.cpp index ed09bf8a8..22355bcd4 100644 --- a/Telegram/SourceFiles/kotato/settings_menu.cpp +++ b/Telegram/SourceFiles/kotato/settings_menu.cpp @@ -477,6 +477,7 @@ void SetupKotatoSystem( int(cFileDialogType()), int(Platform::FileDialog::ImplementationType::Count), FileDialogTypeLabel, + Platform::FileDialog::ImplementationTypeDescription, [=](int value) { cSetFileDialogType(Platform::FileDialog::ImplementationType(value)); ::Kotato::JsonSettings::Write(); diff --git a/Telegram/SourceFiles/platform/linux/file_utilities_linux.cpp b/Telegram/SourceFiles/platform/linux/file_utilities_linux.cpp index c5c4fc7db..174e85547 100644 --- a/Telegram/SourceFiles/platform/linux/file_utilities_linux.cpp +++ b/Telegram/SourceFiles/platform/linux/file_utilities_linux.cpp @@ -161,17 +161,30 @@ bool GetQt( QString ImplementationTypeLabel(ImplementationType value) { switch (value) { -#ifndef DESKTOP_APP_DISABLE_DBUS_INTEGRATION case ImplementationType::XDP: return qsl("XDG Desktop Portal"); -#endif // !DESKTOP_APP_DISABLE_DBUS_INTEGRATION -#ifndef DESKTOP_APP_DISABLE_GTK_INTEGRATION case ImplementationType::GTK: return qsl("GTK"); -#endif // !DESKTOP_APP_DISABLE_GTK_INTEGRATION case ImplementationType::Qt: return qsl("Qt"); } Unexpected("Value in Platform::FileDialog::ImplementationTypeLabel."); } +QString ImplementationTypeDescription(ImplementationType value) { + switch (value) { +#ifdef DESKTOP_APP_DISABLE_DBUS_INTEGRATION + case ImplementationType::XDP: return tr::ktg_file_dialog_disabled_on_build(tr::now); +#endif // DESKTOP_APP_DISABLE_DBUS_INTEGRATION +#ifdef DESKTOP_APP_DISABLE_GTK_INTEGRATION + case ImplementationType::GTK: return tr::ktg_file_dialog_disabled_on_build(tr::now); +#else // DESKTOP_APP_DISABLE_GTK_INTEGRATION + case ImplementationType::GTK: + return GtkIntegration::Instance() + ? tr::ktg_file_dialog_disabled_by_option(tr::now) + : QString(); +#endif // !DESKTOP_APP_DISABLE_GTK_INTEGRATION + } + return QString(); +} + bool Get( QPointer parent, QStringList &files, diff --git a/Telegram/SourceFiles/platform/linux/file_utilities_linux.h b/Telegram/SourceFiles/platform/linux/file_utilities_linux.h index 1cef5305c..e6a336542 100644 --- a/Telegram/SourceFiles/platform/linux/file_utilities_linux.h +++ b/Telegram/SourceFiles/platform/linux/file_utilities_linux.h @@ -29,12 +29,8 @@ namespace FileDialog { enum class ImplementationType { Default, -#ifndef DESKTOP_APP_DISABLE_DBUS_INTEGRATION XDP, -#endif // !DESKTOP_APP_DISABLE_DBUS_INTEGRATION -#ifndef DESKTOP_APP_DISABLE_GTK_INTEGRATION GTK, -#endif // !DESKTOP_APP_DISABLE_GTK_INTEGRATION Qt, Count, }; diff --git a/Telegram/SourceFiles/platform/mac/file_utilities_mac.h b/Telegram/SourceFiles/platform/mac/file_utilities_mac.h index 8a6b93b44..13387335e 100644 --- a/Telegram/SourceFiles/platform/mac/file_utilities_mac.h +++ b/Telegram/SourceFiles/platform/mac/file_utilities_mac.h @@ -33,7 +33,11 @@ enum class ImplementationType { }; inline QString ImplementationTypeLabel(ImplementationType value) { - Unexpected("Value in Platform::FileDialog::TypeLabel."); + Unexpected("Value in Platform::FileDialog::ImplementationTypeLabel."); +} + +inline QString ImplementationTypeDescription(ImplementationType value) { + return QString(); } inline void InitLastPath() { diff --git a/Telegram/SourceFiles/platform/platform_file_utilities.h b/Telegram/SourceFiles/platform/platform_file_utilities.h index fc6730ee1..6a9ab46e6 100644 --- a/Telegram/SourceFiles/platform/platform_file_utilities.h +++ b/Telegram/SourceFiles/platform/platform_file_utilities.h @@ -30,6 +30,7 @@ namespace FileDialog { enum class ImplementationType; QString ImplementationTypeLabel(ImplementationType value); +QString ImplementationTypeDescription(ImplementationType value); void InitLastPath(); diff --git a/Telegram/SourceFiles/platform/win/file_utilities_win.h b/Telegram/SourceFiles/platform/win/file_utilities_win.h index 19f2fe6f8..d0e9990f1 100644 --- a/Telegram/SourceFiles/platform/win/file_utilities_win.h +++ b/Telegram/SourceFiles/platform/win/file_utilities_win.h @@ -30,7 +30,11 @@ enum class ImplementationType { }; inline QString ImplementationTypeLabel(ImplementationType value) { - Unexpected("Value in Platform::FileDialog::TypeLabel."); + Unexpected("Value in Platform::FileDialog::ImplementationTypeLabel."); +} + +inline QString ImplementationTypeDescription(ImplementationType value) { + return QString(); } } // namespace FileDialog