diff --git a/Telegram/SourceFiles/ui/chat/attach/attach_extensions.cpp b/Telegram/SourceFiles/ui/chat/attach/attach_extensions.cpp index 95c927bd32..222615ec52 100644 --- a/Telegram/SourceFiles/ui/chat/attach/attach_extensions.cpp +++ b/Telegram/SourceFiles/ui/chat/attach/attach_extensions.cpp @@ -7,17 +7,22 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #include "ui/chat/attach/attach_extensions.h" +#include +#include + namespace Ui { const QStringList &ImageExtensions() { - static const auto result = QStringList{ - u".bmp"_q, - u".jpg"_q, - u".jpeg"_q, - u".png"_q, - u".gif"_q, - }; - return result; + static const auto result = [] { + const auto formats = QImageReader::supportedImageFormats(); + return formats | ranges::views::transform([](const auto &format) { + return '.' + format.toLower(); + }) | ranges::views::filter([](const auto &format) { + const auto mimes = QMimeDatabase().mimeTypesForFileName(format); + return mimes.isEmpty() + || !mimes.front().name().startsWith(u"image/"_q); + }) | ranges::to; + }(); return result; }