Provided size of big file to premium limit box.

This commit is contained in:
23rd 2022-06-06 14:15:56 +03:00
parent f586ea3a75
commit 3959918fc5
6 changed files with 22 additions and 9 deletions

View File

@ -837,7 +837,8 @@ void CaptionLimitReachedBox(
void FileSizeLimitBox(
not_null<Ui::GenericBox*> box,
not_null<Main::Session*> session) {
not_null<Main::Session*> session,
uint64 fileSizeBytes) {
const auto premium = session->premium();
const auto defaultLimit = Limit(
@ -851,6 +852,12 @@ void FileSizeLimitBox(
const auto defaultGb = (defaultLimit + 999) / 2000;
const auto premiumGb = (premiumLimit + 999) / 2000;
const auto current = fileSizeBytes
? std::clamp(
float64(((fileSizeBytes / uint64(1024 * 1024)) + 999) / 1000),
defaultGb,
premiumGb)
: defaultGb;
const auto gb = [](int count) {
return tr::lng_file_size_limit(tr::now, lt_count, count);
};
@ -876,7 +883,7 @@ void FileSizeLimitBox(
"upload_max_fileparts",
{
defaultGb,
defaultGb,
current,
premiumGb,
&st::premiumIconFiles,
tr::lng_file_size_limit

View File

@ -48,7 +48,8 @@ void CaptionLimitReachedBox(
int remove);
void FileSizeLimitBox(
not_null<Ui::GenericBox*> box,
not_null<Main::Session*> session);
not_null<Main::Session*> session,
uint64 fileSizeBytes);
void AccountsLimitBox(
not_null<Ui::GenericBox*> box,
not_null<Main::Session*> session);

View File

@ -4913,7 +4913,8 @@ bool HistoryWidget::showSendingFilesError(
if (text.isEmpty()) {
return false;
} else if (text == u"(premium)"_q) {
controller()->show(Box(FileSizeLimitBox, &session()));
const auto fileSize = list.files.back().size;
controller()->show(Box(FileSizeLimitBox, &session(), fileSize));
return true;
}

View File

@ -948,7 +948,8 @@ bool RepliesWidget::showSendingFilesError(
if (text.isEmpty()) {
return false;
} else if (text == u"(premium)"_q) {
controller()->show(Box(FileSizeLimitBox, &session()));
const auto fileSize = list.files.back().size;
controller()->show(Box(FileSizeLimitBox, &session(), fileSize));
return true;
}

View File

@ -568,7 +568,8 @@ bool ScheduledWidget::showSendingFilesError(
if (text.isEmpty()) {
return false;
} else if (text == u"(premium)"_q) {
controller()->show(Box(FileSizeLimitBox, &session()));
const auto fileSize = list.files.back().size;
controller()->show(Box(FileSizeLimitBox, &session(), fileSize));
return true;
}

View File

@ -223,10 +223,12 @@ PreparedList PrepareMediaList(
file
};
} else if (filesize > kFileSizeLimit && !premium) {
return {
auto errorResult = PreparedList(
PreparedList::Error::PremiumRequired,
file
};
QString());
errorResult.files.emplace_back(file);
errorResult.files.back().size = filesize;
return errorResult;
}
if (result.files.size() < Ui::MaxAlbumItems()) {
result.files.emplace_back(file);