mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-05 06:33:57 +02:00
Provided count of pinned dialogs to premium limit boxes for pins.
This commit is contained in:
parent
95cc27b145
commit
9b6b5968e2
3 changed files with 24 additions and 8 deletions
|
@ -25,6 +25,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "data/data_user.h"
|
#include "data/data_user.h"
|
||||||
#include "data/data_channel.h"
|
#include "data/data_channel.h"
|
||||||
#include "data/data_session.h"
|
#include "data/data_session.h"
|
||||||
|
#include "data/data_folder.h"
|
||||||
#include "lang/lang_keys.h"
|
#include "lang/lang_keys.h"
|
||||||
#include "settings/settings_common.h"
|
#include "settings/settings_common.h"
|
||||||
#include "settings/settings_premium.h"
|
#include "settings/settings_premium.h"
|
||||||
|
@ -462,6 +463,10 @@ void SimpleLimitBox(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[[nodiscard]] int PinsCount(not_null<Dialogs::MainList*> list) {
|
||||||
|
return list->pinned()->order().size();
|
||||||
|
}
|
||||||
|
|
||||||
void SimplePinsLimitBox(
|
void SimplePinsLimitBox(
|
||||||
not_null<Ui::GenericBox*> box,
|
not_null<Ui::GenericBox*> box,
|
||||||
not_null<Main::Session*> session,
|
not_null<Main::Session*> session,
|
||||||
|
@ -469,11 +474,16 @@ void SimplePinsLimitBox(
|
||||||
const QString &keyDefault,
|
const QString &keyDefault,
|
||||||
int limitDefault,
|
int limitDefault,
|
||||||
const QString &keyPremium,
|
const QString &keyPremium,
|
||||||
int limitPremium) {
|
int limitPremium,
|
||||||
|
int currentCount) {
|
||||||
const auto premium = session->premium();
|
const auto premium = session->premium();
|
||||||
|
|
||||||
const auto defaultLimit = Limit(session, keyDefault, limitDefault);
|
const auto defaultLimit = Limit(session, keyDefault, limitDefault);
|
||||||
const auto premiumLimit = Limit(session, keyPremium, limitPremium);
|
const auto premiumLimit = Limit(session, keyPremium, limitPremium);
|
||||||
|
const auto current = std::clamp(
|
||||||
|
float64(currentCount),
|
||||||
|
defaultLimit,
|
||||||
|
premiumLimit);
|
||||||
|
|
||||||
auto text = rpl::combine(
|
auto text = rpl::combine(
|
||||||
tr::lng_filter_pin_limit1(
|
tr::lng_filter_pin_limit1(
|
||||||
|
@ -497,7 +507,7 @@ void SimplePinsLimitBox(
|
||||||
tr::lng_filter_pin_limit_title(),
|
tr::lng_filter_pin_limit_title(),
|
||||||
std::move(text),
|
std::move(text),
|
||||||
refAddition,
|
refAddition,
|
||||||
{ defaultLimit, defaultLimit, premiumLimit, &st::premiumIconPins },
|
{ defaultLimit, current, premiumLimit, &st::premiumIconPins },
|
||||||
premium);
|
premium);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -742,7 +752,8 @@ void FiltersLimitBox(
|
||||||
|
|
||||||
void FilterPinsLimitBox(
|
void FilterPinsLimitBox(
|
||||||
not_null<Ui::GenericBox*> box,
|
not_null<Ui::GenericBox*> box,
|
||||||
not_null<Main::Session*> session) {
|
not_null<Main::Session*> session,
|
||||||
|
FilterId filterId) {
|
||||||
SimplePinsLimitBox(
|
SimplePinsLimitBox(
|
||||||
box,
|
box,
|
||||||
session,
|
session,
|
||||||
|
@ -750,7 +761,8 @@ void FilterPinsLimitBox(
|
||||||
"dialog_filters_chats_limit_default",
|
"dialog_filters_chats_limit_default",
|
||||||
100,
|
100,
|
||||||
"dialog_filters_chats_limit_premium",
|
"dialog_filters_chats_limit_premium",
|
||||||
200);
|
200,
|
||||||
|
PinsCount(session->data().chatsFilters().chatsList(filterId)));
|
||||||
}
|
}
|
||||||
|
|
||||||
void FolderPinsLimitBox(
|
void FolderPinsLimitBox(
|
||||||
|
@ -763,7 +775,8 @@ void FolderPinsLimitBox(
|
||||||
"dialogs_folder_pinned_limit_default",
|
"dialogs_folder_pinned_limit_default",
|
||||||
100,
|
100,
|
||||||
"dialogs_folder_pinned_limit_premium",
|
"dialogs_folder_pinned_limit_premium",
|
||||||
200);
|
200,
|
||||||
|
PinsCount(session->data().folder(Data::Folder::kId)->chatsList()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void PinsLimitBox(
|
void PinsLimitBox(
|
||||||
|
@ -776,7 +789,8 @@ void PinsLimitBox(
|
||||||
"dialogs_pinned_limit_default",
|
"dialogs_pinned_limit_default",
|
||||||
5,
|
5,
|
||||||
"dialogs_pinned_limit_premium",
|
"dialogs_pinned_limit_premium",
|
||||||
10);
|
10,
|
||||||
|
PinsCount(session->data().chatsList()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void CaptionLimitBox(
|
void CaptionLimitBox(
|
||||||
|
|
|
@ -32,7 +32,8 @@ void FiltersLimitBox(
|
||||||
not_null<Main::Session*> session);
|
not_null<Main::Session*> session);
|
||||||
void FilterPinsLimitBox(
|
void FilterPinsLimitBox(
|
||||||
not_null<Ui::GenericBox*> box,
|
not_null<Ui::GenericBox*> box,
|
||||||
not_null<Main::Session*> session);
|
not_null<Main::Session*> session,
|
||||||
|
FilterId filterId);
|
||||||
void FolderPinsLimitBox(
|
void FolderPinsLimitBox(
|
||||||
not_null<Ui::GenericBox*> box,
|
not_null<Ui::GenericBox*> box,
|
||||||
not_null<Main::Session*> session);
|
not_null<Main::Session*> session);
|
||||||
|
|
|
@ -251,7 +251,8 @@ bool PinnedLimitReached(
|
||||||
owner->setChatPinned(history, FilterId(), true);
|
owner->setChatPinned(history, FilterId(), true);
|
||||||
history->session().api().savePinnedOrder(folder);
|
history->session().api().savePinnedOrder(folder);
|
||||||
} else if (filterId) {
|
} else if (filterId) {
|
||||||
controller->show(Box(FilterPinsLimitBox, &history->session()));
|
controller->show(
|
||||||
|
Box(FilterPinsLimitBox, &history->session(), filterId));
|
||||||
} else if (folder) {
|
} else if (folder) {
|
||||||
controller->show(Box(FolderPinsLimitBox, &history->session()));
|
controller->show(Box(FolderPinsLimitBox, &history->session()));
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Add table
Reference in a new issue