Version 4.6.
- Emoji Profile Pictures. Quickly create group and profile pictures from animated emoji and stickers with the new "Use an Emoji" option. - Emoji Categories. Filter stickers and emoji by categories like "love", "cheers" or "sleeping" in the sticker and emoji tabs. - Chat Translation. As a Premium user, translate entire chats in real time as you scroll them or receive new messages. - Media Permissions in Groups. Control whether members of your groups can send 9 distinct media types – like Photos, Voice or Video Messages. - Select Chats for Bots. Bot developers can now let users quickly select groups, channels or contacts that meet predefined criteria (more in @BotNews). - Open in New Window. Open chats or additional accounts in separate windows.
This commit is contained in:
parent
84bf716f94
commit
b9188f892f
|
@ -1089,7 +1089,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
"lng_profile_copy_phone" = "Copy Phone Number";
|
"lng_profile_copy_phone" = "Copy Phone Number";
|
||||||
"lng_profile_copy_fullname" = "Copy Name";
|
"lng_profile_copy_fullname" = "Copy Name";
|
||||||
|
|
||||||
"lng_info_public_photo" = "public photo";
|
|
||||||
"lng_info_mobile_label" = "Mobile";
|
"lng_info_mobile_label" = "Mobile";
|
||||||
"lng_info_mobile_context_menu_fragment_about" = "This number is not tied to a SIM card and was acquired on {link}.";
|
"lng_info_mobile_context_menu_fragment_about" = "This number is not tied to a SIM card and was acquired on {link}.";
|
||||||
"lng_info_mobile_context_menu_fragment_about_link" = "Fragment";
|
"lng_info_mobile_context_menu_fragment_about_link" = "Fragment";
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
<Identity Name="TelegramMessengerLLP.TelegramDesktop"
|
<Identity Name="TelegramMessengerLLP.TelegramDesktop"
|
||||||
ProcessorArchitecture="ARCHITECTURE"
|
ProcessorArchitecture="ARCHITECTURE"
|
||||||
Publisher="CN=536BC709-8EE1-4478-AF22-F0F0F26FF64A"
|
Publisher="CN=536BC709-8EE1-4478-AF22-F0F0F26FF64A"
|
||||||
Version="4.5.9.0" />
|
Version="4.6.0.0" />
|
||||||
<Properties>
|
<Properties>
|
||||||
<DisplayName>Telegram Desktop</DisplayName>
|
<DisplayName>Telegram Desktop</DisplayName>
|
||||||
<PublisherDisplayName>Telegram Messenger LLP</PublisherDisplayName>
|
<PublisherDisplayName>Telegram Messenger LLP</PublisherDisplayName>
|
||||||
|
|
|
@ -44,8 +44,8 @@ IDI_ICON1 ICON "..\\art\\icon256.ico"
|
||||||
//
|
//
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 4,5,9,0
|
FILEVERSION 4,6,0,0
|
||||||
PRODUCTVERSION 4,5,9,0
|
PRODUCTVERSION 4,6,0,0
|
||||||
FILEFLAGSMASK 0x3fL
|
FILEFLAGSMASK 0x3fL
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
|
@ -62,10 +62,10 @@ BEGIN
|
||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "Telegram FZ-LLC"
|
VALUE "CompanyName", "Telegram FZ-LLC"
|
||||||
VALUE "FileDescription", "Telegram Desktop"
|
VALUE "FileDescription", "Telegram Desktop"
|
||||||
VALUE "FileVersion", "4.5.9.0"
|
VALUE "FileVersion", "4.6.0.0"
|
||||||
VALUE "LegalCopyright", "Copyright (C) 2014-2023"
|
VALUE "LegalCopyright", "Copyright (C) 2014-2023"
|
||||||
VALUE "ProductName", "Telegram Desktop"
|
VALUE "ProductName", "Telegram Desktop"
|
||||||
VALUE "ProductVersion", "4.5.9.0"
|
VALUE "ProductVersion", "4.6.0.0"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
|
|
@ -35,8 +35,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||||
//
|
//
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 4,5,9,0
|
FILEVERSION 4,6,0,0
|
||||||
PRODUCTVERSION 4,5,9,0
|
PRODUCTVERSION 4,6,0,0
|
||||||
FILEFLAGSMASK 0x3fL
|
FILEFLAGSMASK 0x3fL
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
|
@ -53,10 +53,10 @@ BEGIN
|
||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "Telegram FZ-LLC"
|
VALUE "CompanyName", "Telegram FZ-LLC"
|
||||||
VALUE "FileDescription", "Telegram Desktop Updater"
|
VALUE "FileDescription", "Telegram Desktop Updater"
|
||||||
VALUE "FileVersion", "4.5.9.0"
|
VALUE "FileVersion", "4.6.0.0"
|
||||||
VALUE "LegalCopyright", "Copyright (C) 2014-2023"
|
VALUE "LegalCopyright", "Copyright (C) 2014-2023"
|
||||||
VALUE "ProductName", "Telegram Desktop"
|
VALUE "ProductName", "Telegram Desktop"
|
||||||
VALUE "ProductVersion", "4.5.9.0"
|
VALUE "ProductVersion", "4.6.0.0"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
|
|
@ -220,23 +220,6 @@ ChatRestrictions NegateRestrictions(ChatRestrictions value) {
|
||||||
| Flag::SendOther);
|
| Flag::SendOther);
|
||||||
}
|
}
|
||||||
|
|
||||||
[[nodiscard]] std::vector<ChatRestrictions> MediaRestrictions() {
|
|
||||||
return std::vector<ChatRestrictions>{
|
|
||||||
ChatRestriction::SendPhotos,
|
|
||||||
ChatRestriction::SendVideos,
|
|
||||||
ChatRestriction::SendVideoMessages,
|
|
||||||
ChatRestriction::SendMusic,
|
|
||||||
ChatRestriction::SendVoiceMessages,
|
|
||||||
ChatRestriction::SendFiles,
|
|
||||||
ChatRestriction::SendStickers
|
|
||||||
| ChatRestriction::SendGifs
|
|
||||||
| ChatRestriction::SendGames
|
|
||||||
| ChatRestriction::SendInline,
|
|
||||||
ChatRestriction::EmbedLinks,
|
|
||||||
ChatRestriction::SendPolls,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
auto Dependencies(ChatAdminRights)
|
auto Dependencies(ChatAdminRights)
|
||||||
-> std::vector<std::pair<ChatAdminRight, ChatAdminRight>> {
|
-> std::vector<std::pair<ChatAdminRight, ChatAdminRight>> {
|
||||||
return {};
|
return {};
|
||||||
|
|
|
@ -267,7 +267,6 @@ bool SkipTranslate(TextWithEntities textWithEntities) {
|
||||||
#ifndef TDESKTOP_DISABLE_SPELLCHECK
|
#ifndef TDESKTOP_DISABLE_SPELLCHECK
|
||||||
const auto result = Platform::Language::Recognize(text);
|
const auto result = Platform::Language::Recognize(text);
|
||||||
const auto skip = Core::App().settings().skipTranslationLanguages();
|
const auto skip = Core::App().settings().skipTranslationLanguages();
|
||||||
const auto test = (result == result);
|
|
||||||
return result.known() && ranges::contains(skip, result);
|
return result.known() && ranges::contains(skip, result);
|
||||||
#else
|
#else
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -22,7 +22,7 @@ constexpr auto AppId = "{53F49750-6209-4FBF-9CA8-7A333C87D1ED}"_cs;
|
||||||
constexpr auto AppNameOld = "Telegram Win (Unofficial)"_cs;
|
constexpr auto AppNameOld = "Telegram Win (Unofficial)"_cs;
|
||||||
constexpr auto AppName = "Telegram Desktop"_cs;
|
constexpr auto AppName = "Telegram Desktop"_cs;
|
||||||
constexpr auto AppFile = "Telegram"_cs;
|
constexpr auto AppFile = "Telegram"_cs;
|
||||||
constexpr auto AppVersion = 4005009;
|
constexpr auto AppVersion = 4006000;
|
||||||
constexpr auto AppVersionStr = "4.5.9";
|
constexpr auto AppVersionStr = "4.6";
|
||||||
constexpr auto AppBetaVersion = true;
|
constexpr auto AppBetaVersion = false;
|
||||||
constexpr auto AppAlphaVersion = TDESKTOP_ALPHA_VERSION;
|
constexpr auto AppAlphaVersion = TDESKTOP_ALPHA_VERSION;
|
||||||
|
|
|
@ -4746,10 +4746,6 @@ void HistoryWidget::showMembersDropdown() {
|
||||||
bool HistoryWidget::pushTabbedSelectorToThirdSection(
|
bool HistoryWidget::pushTabbedSelectorToThirdSection(
|
||||||
not_null<Data::Thread*> thread,
|
not_null<Data::Thread*> thread,
|
||||||
const Window::SectionShow ¶ms) {
|
const Window::SectionShow ¶ms) {
|
||||||
const auto selectorTypes = ChatRestriction::SendOther
|
|
||||||
| ChatRestriction::SendInline
|
|
||||||
| ChatRestriction::SendStickers
|
|
||||||
| ChatRestriction::SendGifs;
|
|
||||||
if (!_tabbedPanel) {
|
if (!_tabbedPanel) {
|
||||||
return true;
|
return true;
|
||||||
} else if (!Data::CanSendAnyOf(
|
} else if (!Data::CanSendAnyOf(
|
||||||
|
|
|
@ -497,7 +497,6 @@ void TranslateBar::showToast(
|
||||||
const QString &buttonText,
|
const QString &buttonText,
|
||||||
Fn<void()> buttonCallback) {
|
Fn<void()> buttonCallback) {
|
||||||
const auto st = std::make_shared<style::Toast>(st::historyPremiumToast);
|
const auto st = std::make_shared<style::Toast>(st::historyPremiumToast);
|
||||||
const auto skip = st->padding.top();
|
|
||||||
st->padding.setRight(st::historyPremiumViewSet.font->width(buttonText)
|
st->padding.setRight(st::historyPremiumViewSet.font->width(buttonText)
|
||||||
- st::historyPremiumViewSet.width);
|
- st::historyPremiumViewSet.width);
|
||||||
|
|
||||||
|
|
|
@ -48,7 +48,6 @@ rpl::producer<bool> TranslateTracker::trackingLanguage() const {
|
||||||
|
|
||||||
void TranslateTracker::setup() {
|
void TranslateTracker::setup() {
|
||||||
const auto peer = _history->peer;
|
const auto peer = _history->peer;
|
||||||
const auto session = &_history->session();
|
|
||||||
peer->updateFull();
|
peer->updateFull();
|
||||||
|
|
||||||
using namespace rpl::mappers;
|
using namespace rpl::mappers;
|
||||||
|
@ -298,7 +297,6 @@ void TranslateTracker::applyLimit() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void TranslateTracker::recognizeCollected() {
|
void TranslateTracker::recognizeCollected() {
|
||||||
const auto owner = &_history->owner();
|
|
||||||
for (auto &[id, entry] : _itemsForRecognize) {
|
for (auto &[id, entry] : _itemsForRecognize) {
|
||||||
if (const auto text = std::get_if<QString>(&entry.id)) {
|
if (const auto text = std::get_if<QString>(&entry.id)) {
|
||||||
entry.id = Platform::Language::Recognize(*text);
|
entry.id = Platform::Language::Recognize(*text);
|
||||||
|
|
|
@ -252,7 +252,7 @@ void GroupsStrip::mouseReleaseEvent(QMouseEvent *e) {
|
||||||
const auto chosen = (index < 0 || index >= _buttons.size())
|
const auto chosen = (index < 0 || index >= _buttons.size())
|
||||||
? -1
|
? -1
|
||||||
: index;
|
: index;
|
||||||
if (pressed == index && index >= 0) {
|
if (pressed == chosen && chosen >= 0) {
|
||||||
_chosen = pressed;
|
_chosen = pressed;
|
||||||
fireChosenGroup();
|
fireChosenGroup();
|
||||||
update();
|
update();
|
||||||
|
|
|
@ -210,13 +210,6 @@ void UserpicButton::prepare() {
|
||||||
prepareUserpicPixmap();
|
prepareUserpicPixmap();
|
||||||
}
|
}
|
||||||
setClickHandlerByRole();
|
setClickHandlerByRole();
|
||||||
if ((_role == Role::ChoosePhoto) || (_role == Role::ChangePhoto)) {
|
|
||||||
const auto api = _controller
|
|
||||||
? &_controller->session().api()
|
|
||||||
: _peer
|
|
||||||
? &_peer->session().api()
|
|
||||||
: nullptr;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void UserpicButton::showCustomOnChosen() {
|
void UserpicButton::showCustomOnChosen() {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
AppVersion 4005009
|
AppVersion 4006000
|
||||||
AppVersionStrMajor 4.5
|
AppVersionStrMajor 4.6
|
||||||
AppVersionStrSmall 4.5.9
|
AppVersionStrSmall 4.6
|
||||||
AppVersionStr 4.5.9
|
AppVersionStr 4.6.0
|
||||||
BetaChannel 1
|
BetaChannel 0
|
||||||
AlphaVersion 0
|
AlphaVersion 0
|
||||||
AppVersionOriginal 4.5.9.beta
|
AppVersionOriginal 4.6
|
||||||
|
|
|
@ -1,3 +1,12 @@
|
||||||
|
4.6 (03.02.23)
|
||||||
|
|
||||||
|
- Emoji Profile Pictures. Quickly create group and profile pictures from animated emoji and stickers with the new "Use an Emoji" option.
|
||||||
|
- Emoji Categories. Filter stickers and emoji by categories like "love", "cheers" or "sleeping" in the sticker and emoji tabs.
|
||||||
|
- Chat Translation. As a Premium user, translate entire chats in real time as you scroll them or receive new messages.
|
||||||
|
- Media Permissions in Groups. Control whether members of your groups can send 9 distinct media types – like Photos, Voice or Video Messages.
|
||||||
|
- Select Chats for Bots. Bot developers can now let users quickly select groups, channels or contacts that meet predefined criteria (more in @BotNews).
|
||||||
|
- Open in New Window. Open chats or additional accounts in separate windows.
|
||||||
|
|
||||||
4.5.9 beta (02.02.23)
|
4.5.9 beta (02.02.23)
|
||||||
|
|
||||||
- Hide taskbar window preview when Telegram is locked by a passcode (Windows only).
|
- Hide taskbar window preview when Telegram is locked by a passcode (Windows only).
|
||||||
|
|
Loading…
Reference in New Issue