Merge remote-tracking branch 'tdesktop/dev' into dev

This commit is contained in:
Eric Kotato 2020-06-03 19:09:23 +03:00
commit e97551e3a2
14 changed files with 64 additions and 49 deletions

View file

@ -9,7 +9,7 @@
<Identity Name="TelegramMessengerLLP.TelegramDesktop"
ProcessorArchitecture="ARCHITECTURE"
Publisher="CN=536BC709-8EE1-4478-AF22-F0F0F26FF64A"
Version="2.1.7.4" />
Version="2.1.8.0" />
<Properties>
<DisplayName>Telegram Desktop</DisplayName>
<PublisherDisplayName>Telegram FZ-LLC</PublisherDisplayName>

View file

@ -44,8 +44,8 @@ IDI_ICON1 ICON "..\\art\\icon256.ico"
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 2,1,7,4
PRODUCTVERSION 2,1,7,4
FILEVERSION 2,1,8,0
PRODUCTVERSION 2,1,8,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@ -62,10 +62,10 @@ BEGIN
BEGIN
VALUE "CompanyName", "Telegram FZ-LLC"
VALUE "FileDescription", "Telegram Desktop"
VALUE "FileVersion", "2.1.7.4"
VALUE "FileVersion", "2.1.8.0"
VALUE "LegalCopyright", "Copyright (C) 2014-2020"
VALUE "ProductName", "Telegram Desktop"
VALUE "ProductVersion", "2.1.7.4"
VALUE "ProductVersion", "2.1.8.0"
END
END
BLOCK "VarFileInfo"

View file

@ -35,8 +35,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 2,1,7,4
PRODUCTVERSION 2,1,7,4
FILEVERSION 2,1,8,0
PRODUCTVERSION 2,1,8,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@ -53,10 +53,10 @@ BEGIN
BEGIN
VALUE "CompanyName", "Telegram FZ-LLC"
VALUE "FileDescription", "Telegram Desktop Updater"
VALUE "FileVersion", "2.1.7.4"
VALUE "FileVersion", "2.1.8.0"
VALUE "LegalCopyright", "Copyright (C) 2014-2020"
VALUE "ProductName", "Telegram Desktop"
VALUE "ProductVersion", "2.1.7.4"
VALUE "ProductVersion", "2.1.8.0"
END
END
BLOCK "VarFileInfo"

View file

@ -354,6 +354,16 @@ bool ParticipantsAdditionalData::canRestrictUser(
Unexpected("Peer in ParticipantsAdditionalData::canRestrictUser.");
}
bool ParticipantsAdditionalData::canRemoveUser(
not_null<UserData*> user) const {
if (canRestrictUser(user)) {
return true;
} else if (const auto chat = _peer->asChat()) {
return chat->invitedByMe.contains(user);
}
return false;
}
auto ParticipantsAdditionalData::adminRights(
not_null<UserData*> user) const
-> std::optional<MTPChatAdminRights> {
@ -1439,6 +1449,8 @@ base::unique_qptr<Ui::PopupMenu> ParticipantsBoxController::rowContextMenu(
tr::lng_context_restrict_user(tr::now),
crl::guard(this, [=] { showRestricted(user); }));
}
}
if (_additional.canRemoveUser(user)) {
if (!_additional.isKicked(user)) {
const auto isGroup = _peer->isChat() || _peer->isMegagroup();
result->addAction(
@ -1809,7 +1821,7 @@ auto ParticipantsBoxController::computeType(
: _additional.adminRights(user).has_value()
? Rights::Admin
: Rights::Normal;
result.canRemove = _additional.canRestrictUser(user);
result.canRemove = _additional.canRemoveUser(user);
if (const auto channel = _peer->asChannel()) {
result.adminRank = channel->adminRank(user);
}

View file

@ -88,6 +88,7 @@ public:
[[nodiscard]] bool canEditAdmin(not_null<UserData*> user) const;
[[nodiscard]] bool canAddOrEditAdmin(not_null<UserData*> user) const;
[[nodiscard]] bool canRestrictUser(not_null<UserData*> user) const;
[[nodiscard]] bool canRemoveUser(not_null<UserData*> user) const;
[[nodiscard]] std::optional<MTPChatAdminRights> adminRights(
not_null<UserData*> user) const;
QString adminRank(not_null<UserData*> user) const;

View file

@ -18,30 +18,6 @@ namespace {
std::map<int, const char*> BetaLogs() {
return {
{
1009010,
"\xE2\x80\xA2 Switch to the Picture-in-Picture mode "
"to watch your video in a small window.\n"
"\xE2\x80\xA2 Change video playback speed "
"in the playback controls '...' menu.\n"
"\xE2\x80\xA2 Rotate photos and videos in the media viewer "
"using the rotate button in the bottom right corner.\n"
},
{
1009015,
"\xE2\x80\xA2 Mark new messages as read "
"while scrolling down through them.\n"
"\xE2\x80\xA2 Bug fixes and other minor improvements."
},
{
1009017,
"\xE2\x80\xA2 Spell checker on Windows 7.\n"
"\xE2\x80\xA2 Bug fixes and other minor improvements."
},
{
1009020,
"\xE2\x80\xA2 Fix crash in shared links search.\n"
@ -63,6 +39,13 @@ std::map<int, const char*> BetaLogs() {
"was added to archive.\n"
"\xE2\x80\xA2 Fix font issues in Linux version."
},
{
2001008,
"\xE2\x80\xA2 Add support for full group message history export.\n"
"\xE2\x80\xA2 Allow export of a single chat message history "
"in JSON format."
}
};
};

View file

@ -23,7 +23,7 @@ constexpr auto AppId = "{C4A4AE8F-B9F7-4CC7-8A6C-BF7EEE87ACA5}"_cs;
constexpr auto AppNameOld = "Telegram Win (Unofficial)"_cs;
constexpr auto AppName = "Kotatogram Desktop"_cs;
constexpr auto AppFile = "Kotatogram"_cs;
constexpr auto AppVersion = 2001007;
constexpr auto AppVersionStr = "2.1.7";
constexpr auto AppVersion = 2001008;
constexpr auto AppVersionStr = "2.1.8";
constexpr auto AppBetaVersion = true;
constexpr auto AppAlphaVersion = TDESKTOP_ALPHA_VERSION;

View file

@ -16,6 +16,12 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
namespace Data {
CloudFile::~CloudFile() {
// Destroy loader with still alive CloudFile with already zero '.loader'.
// Otherwise in ~FileLoader it tries to clear file.loader and crashes.
base::take(loader);
}
void CloudImageView::set(
not_null<Main::Session*> session,
QImage image) {
@ -224,7 +230,8 @@ void LoadCloudFile(
}
// NB! file.loader may be in ~FileLoader() already.
if (const auto loader = base::take(file.loader)) {
if (file.flags & CloudFile::Flag::Cancelled) {
if ((file.flags & CloudFile::Flag::Cancelled)
&& !loader->cancelled()) {
loader->cancel();
}
}

View file

@ -34,6 +34,8 @@ struct CloudFile final {
};
friend inline constexpr bool is_flag_type(Flag) { return true; };
~CloudFile();
ImageLocation location;
std::unique_ptr<FileLoader> loader;
int byteSize = 0;

View file

@ -1433,6 +1433,11 @@ Link::Link(
}
}
const auto createHandler = [](const QString &url) {
return UrlClickHandler::IsSuspicious(url)
? std::make_shared<HiddenUrlClickHandler>(url)
: std::make_shared<UrlClickHandler>(url);
};
_page = media ? media->webpage() : nullptr;
if (_page) {
mainUrl = _page->url;
@ -1442,7 +1447,7 @@ Link::Link(
parent->fullId());
} else if (_page->photo) {
if (_page->type == WebPageType::Profile || _page->type == WebPageType::Video) {
_photol = std::make_shared<UrlClickHandler>(_page->url);
_photol = createHandler(_page->url);
} else if (_page->type == WebPageType::Photo
|| _page->siteName == qstr("Twitter")
|| _page->siteName == qstr("Facebook")) {
@ -1450,13 +1455,13 @@ Link::Link(
_page->photo,
parent->fullId());
} else {
_photol = std::make_shared<UrlClickHandler>(_page->url);
_photol = createHandler(_page->url);
}
} else {
_photol = std::make_shared<UrlClickHandler>(_page->url);
_photol = createHandler(_page->url);
}
} else if (!mainUrl.isEmpty()) {
_photol = std::make_shared<UrlClickHandler>(mainUrl);
_photol = createHandler(mainUrl);
}
if (from >= till && _page) {
text = _page->description.text;

View file

@ -1,7 +1,7 @@
AppVersion 2001007
AppVersion 2001008
AppVersionStrMajor 2.1
AppVersionStrSmall 2.1.7
AppVersionStr 2.1.7
BetaChannel 0
AlphaVersion 2001007004
AppVersionOriginal 2.1.7.4
AppVersionStrSmall 2.1.8
AppVersionStr 2.1.8
BetaChannel 1
AlphaVersion 0
AppVersionOriginal 2.1.8.beta

@ -1 +1 @@
Subproject commit 019bb19f0923af2e8c7e0cd1abc2b8d9264afb7c
Subproject commit 48865e514979b4e2610fe6ca22bbb145bcfab4ea

@ -1 +1 @@
Subproject commit bb182bbf5d66921cfcd182643d7e156e19d1884a
Subproject commit a32ee9581d33f684e80a0b92e1cb29c748f091a1

View file

@ -1,3 +1,8 @@
2.1.8 beta (03.06.20)
- Add support for full group message history export.
- Allow export of a single chat message history in JSON format.
2.1.7 (24.05.20)
- Fix the Fcitx input method plugin.