diff --git a/Telegram/Resources/uwp/AppX/AppxManifest.xml b/Telegram/Resources/uwp/AppX/AppxManifest.xml
index 6c57abb3e..2627ef790 100644
--- a/Telegram/Resources/uwp/AppX/AppxManifest.xml
+++ b/Telegram/Resources/uwp/AppX/AppxManifest.xml
@@ -10,7 +10,7 @@
+ Version="4.16.0.0" />
Telegram Desktop
Telegram Messenger LLP
diff --git a/Telegram/Resources/winrc/Telegram.rc b/Telegram/Resources/winrc/Telegram.rc
index 9e4970334..09f5f8a95 100644
--- a/Telegram/Resources/winrc/Telegram.rc
+++ b/Telegram/Resources/winrc/Telegram.rc
@@ -44,8 +44,8 @@ IDI_ICON1 ICON "..\\art\\icon256.ico"
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 4,15,7,0
- PRODUCTVERSION 4,15,7,0
+ FILEVERSION 4,16,0,0
+ PRODUCTVERSION 4,16,0,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -62,10 +62,10 @@ BEGIN
BEGIN
VALUE "CompanyName", "Telegram FZ-LLC"
VALUE "FileDescription", "Telegram Desktop"
- VALUE "FileVersion", "4.15.7.0"
+ VALUE "FileVersion", "4.16.0.0"
VALUE "LegalCopyright", "Copyright (C) 2014-2024"
VALUE "ProductName", "Telegram Desktop"
- VALUE "ProductVersion", "4.15.7.0"
+ VALUE "ProductVersion", "4.16.0.0"
END
END
BLOCK "VarFileInfo"
diff --git a/Telegram/Resources/winrc/Updater.rc b/Telegram/Resources/winrc/Updater.rc
index 6c5fb5b1d..95a5053d0 100644
--- a/Telegram/Resources/winrc/Updater.rc
+++ b/Telegram/Resources/winrc/Updater.rc
@@ -35,8 +35,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 4,15,7,0
- PRODUCTVERSION 4,15,7,0
+ FILEVERSION 4,16,0,0
+ PRODUCTVERSION 4,16,0,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", "4.15.7.0"
+ VALUE "FileVersion", "4.16.0.0"
VALUE "LegalCopyright", "Copyright (C) 2014-2024"
VALUE "ProductName", "Telegram Desktop"
- VALUE "ProductVersion", "4.15.7.0"
+ VALUE "ProductVersion", "4.16.0.0"
END
END
BLOCK "VarFileInfo"
diff --git a/Telegram/SourceFiles/api/api_user_privacy.cpp b/Telegram/SourceFiles/api/api_user_privacy.cpp
index dd5693cee..b27580aaa 100644
--- a/Telegram/SourceFiles/api/api_user_privacy.cpp
+++ b/Telegram/SourceFiles/api/api_user_privacy.cpp
@@ -106,7 +106,6 @@ UserPrivacy::Rule TLToRules(const TLRules &rules, Data::Session &owner) {
using Option = UserPrivacy::Option;
auto result = UserPrivacy::Rule();
auto optionSet = false;
- auto allowPremium = false;
const auto setOption = [&](Option option) {
if (optionSet) {
return;
diff --git a/Telegram/SourceFiles/boxes/gift_premium_box.cpp b/Telegram/SourceFiles/boxes/gift_premium_box.cpp
index fb4c25c2c..b107af7c9 100644
--- a/Telegram/SourceFiles/boxes/gift_premium_box.cpp
+++ b/Telegram/SourceFiles/boxes/gift_premium_box.cpp
@@ -906,7 +906,7 @@ void ShareWithFriend(
Window::ShowChooseRecipientBox(navigation, chosen);
}
-[[nodiscard]] void ShowAlreadyPremiumToast(
+void ShowAlreadyPremiumToast(
not_null navigation,
const QString &slug,
TimeId date) {
diff --git a/Telegram/SourceFiles/boxes/peers/replace_boost_box.cpp b/Telegram/SourceFiles/boxes/peers/replace_boost_box.cpp
index a13295d00..70648d627 100644
--- a/Telegram/SourceFiles/boxes/peers/replace_boost_box.cpp
+++ b/Telegram/SourceFiles/boxes/peers/replace_boost_box.cpp
@@ -689,7 +689,6 @@ object_ptr CreateUserpicsWithMoreBadge(
+ st::lineWidth;
auto result = object_ptr(parent, full);
const auto raw = result.data();
- const auto &st = st::boostReplaceUserpic;
const auto overlay = CreateChild(raw);
const auto state = raw->lifetime().make_state();
diff --git a/Telegram/SourceFiles/core/version.h b/Telegram/SourceFiles/core/version.h
index 7dcf0938e..e3374144e 100644
--- a/Telegram/SourceFiles/core/version.h
+++ b/Telegram/SourceFiles/core/version.h
@@ -22,7 +22,7 @@ constexpr auto AppId = "{53F49750-6209-4FBF-9CA8-7A333C87D1ED}"_cs;
constexpr auto AppNameOld = "Telegram Win (Unofficial)"_cs;
constexpr auto AppName = "Telegram Desktop"_cs;
constexpr auto AppFile = "Telegram"_cs;
-constexpr auto AppVersion = 4015007;
-constexpr auto AppVersionStr = "4.15.7";
-constexpr auto AppBetaVersion = true;
+constexpr auto AppVersion = 4016000;
+constexpr auto AppVersionStr = "4.16";
+constexpr auto AppBetaVersion = false;
constexpr auto AppAlphaVersion = TDESKTOP_ALPHA_VERSION;
diff --git a/Telegram/SourceFiles/info/channel_statistics/earn/info_earn_inner_widget.cpp b/Telegram/SourceFiles/info/channel_statistics/earn/info_earn_inner_widget.cpp
index 04d46a0b5..1a0cedb1b 100644
--- a/Telegram/SourceFiles/info/channel_statistics/earn/info_earn_inner_widget.cpp
+++ b/Telegram/SourceFiles/info/channel_statistics/earn/info_earn_inner_widget.cpp
@@ -281,7 +281,7 @@ void InnerWidget::fill() {
const auto &data = _state;
constexpr auto kMinus = QChar(0x2212);
- constexpr auto kApproximately = QChar(0x2248);
+ //constexpr auto kApproximately = QChar(0x2248);
const auto multiplier = data.usdRate;
constexpr auto kNonInteractivePeriod = 1717200000;
@@ -706,9 +706,6 @@ void InnerWidget::fill() {
(b.height() - l.height()) / 2);
}, label->lifetime());
- const auto fadeAnimation =
- label->lifetime().make_state();
-
const auto colorText = [=](float64 value) {
label->setTextColorOverride(
anim::with_alpha(
@@ -1044,7 +1041,7 @@ void InnerWidget::fill() {
Ui::AddSkip(container);
}
if (channel) {
- constexpr auto kMaxCPM = 50; // Debug.
+ //constexpr auto kMaxCPM = 50; // Debug.
const auto requiredLevel = Data::LevelLimits(session)
.channelRestrictSponsoredLevelMin();
const auto &phrase = tr::lng_channel_earn_off;
diff --git a/Telegram/SourceFiles/info/profile/info_profile_actions.cpp b/Telegram/SourceFiles/info/profile/info_profile_actions.cpp
index adba93d89..19d7eebae 100644
--- a/Telegram/SourceFiles/info/profile/info_profile_actions.cpp
+++ b/Telegram/SourceFiles/info/profile/info_profile_actions.cpp
@@ -670,12 +670,12 @@ base::options::toggle ShowPeerIdBelowAbout({
const TextWithEntities &value) {
slide->show(anim::type::normal);
});
- auto labeled = layout->add(object_ptr(
+ layout->add(object_ptr(
layout,
std::move(nonEmptyText),
st::birthdayLabeled));
layout->add(Ui::CreateSkipWidget(layout, st::infoLabelSkip));
- const auto subtext = layout->add(object_ptr(
+ layout->add(object_ptr(
layout,
std::move(
label
diff --git a/Telegram/SourceFiles/settings/business/settings_chat_intro.cpp b/Telegram/SourceFiles/settings/business/settings_chat_intro.cpp
index e7da8a27f..16072b1f0 100644
--- a/Telegram/SourceFiles/settings/business/settings_chat_intro.cpp
+++ b/Telegram/SourceFiles/settings/business/settings_chat_intro.cpp
@@ -103,9 +103,6 @@ public:
not_null button;
};
void show(Descriptor &&descriptor);
- void repaint();
-
- [[nodiscard]] bool hasFocus() const;
struct CustomChosen {
not_null sticker;
@@ -240,7 +237,6 @@ rpl::producer> IconPlayerValue(
stickerChosen(chosen.sticker);
}, raw->lifetime());
- const auto session = &show->session();
std::move(
stickerValue
) | rpl::start_with_next([=](DocumentData *sticker) {
@@ -435,7 +431,6 @@ StickerPanel::StickerPanel() = default;
StickerPanel::~StickerPanel() = default;
void StickerPanel::show(Descriptor &&descriptor) {
- const auto controller = descriptor.controller;
if (!_panel) {
create(descriptor);
@@ -466,14 +461,6 @@ void StickerPanel::show(Descriptor &&descriptor) {
_panel->toggleAnimated();
}
-bool StickerPanel::hasFocus() const {
- return _panel && Ui::InFocusChain(_panel.get());
-}
-
-void StickerPanel::repaint() {
- _panel->selector()->update();
-}
-
void StickerPanel::create(const Descriptor &descriptor) {
using Selector = ChatHelpers::TabbedSelector;
using Descriptor = ChatHelpers::TabbedSelectorDescriptor;
@@ -572,7 +559,7 @@ void ChatIntro::setupContent(
_intro = intro;
};
- const auto preview = content->add(
+ content->add(
object_ptr(
content,
session,
diff --git a/Telegram/SourceFiles/settings/business/settings_chat_links.cpp b/Telegram/SourceFiles/settings/business/settings_chat_links.cpp
index 15349246c..796701b22 100644
--- a/Telegram/SourceFiles/settings/business/settings_chat_links.cpp
+++ b/Telegram/SourceFiles/settings/business/settings_chat_links.cpp
@@ -673,7 +673,6 @@ void LinksController::rowPaintIcon(
const auto skip = st::inviteLinkIconSkip;
const auto inner = size - 2 * skip;
const auto bg = &st::msgFile1Bg;
- const auto stroke = st::inviteLinkIconStroke;
if (_icon.isNull()) {
_icon = QImage(
QSize(inner, inner) * style::DevicePixelRatio(),
diff --git a/Telegram/SourceFiles/settings/settings_information.cpp b/Telegram/SourceFiles/settings/settings_information.cpp
index b6b75b589..9db8d59a9 100644
--- a/Telegram/SourceFiles/settings/settings_information.cpp
+++ b/Telegram/SourceFiles/settings/settings_information.cpp
@@ -416,8 +416,6 @@ void SetupPersonalChannel(
not_null container,
not_null controller,
not_null self) {
- const auto session = &self->session();
-
Ui::AddSkip(container);
auto value = rpl::combine(
diff --git a/Telegram/build/version b/Telegram/build/version
index a9c7b538f..7da53e563 100644
--- a/Telegram/build/version
+++ b/Telegram/build/version
@@ -1,7 +1,7 @@
-AppVersion 4015007
-AppVersionStrMajor 4.15
-AppVersionStrSmall 4.15.7
-AppVersionStr 4.15.7
-BetaChannel 1
+AppVersion 4016000
+AppVersionStrMajor 4.16
+AppVersionStrSmall 4.16
+AppVersionStr 4.16.0
+BetaChannel 0
AlphaVersion 0
-AppVersionOriginal 4.15.7.beta
+AppVersionOriginal 4.16
diff --git a/changelog.txt b/changelog.txt
index 17ff9b6e3..a0e595060 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,3 +1,12 @@
+4.16 (01.04.24)
+
+- Instant View on Windows 10+ and macOS.
+- Allow scheduling messages in topics.
+- Telegram Business: Links to Chats.
+- Telegram Business: Custom Intro.
+- Telegram Business: Chatbots.
+- Sharing Revenue with Channel Owners.
+
4.15.7 beta (01.04.24)
- Test crashfix on Linux.