mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-05 06:33:57 +02:00
Replaced boxes for QR code of invite links with box for share QR code.
This commit is contained in:
parent
c47f5e9995
commit
d0536cc31f
5 changed files with 19 additions and 9 deletions
|
@ -582,6 +582,7 @@ void LinkController::addLinkBlock(not_null<Ui::VerticalLayout*> container) {
|
||||||
});
|
});
|
||||||
const auto getLinkQr = crl::guard(weak, [=] {
|
const auto getLinkQr = crl::guard(weak, [=] {
|
||||||
delegate()->peerListUiShow()->showBox(InviteLinkQrBox(
|
delegate()->peerListUiShow()->showBox(InviteLinkQrBox(
|
||||||
|
nullptr,
|
||||||
link,
|
link,
|
||||||
tr::lng_group_invite_qr_title(),
|
tr::lng_group_invite_qr_title(),
|
||||||
tr::lng_filters_link_qr_about()));
|
tr::lng_filters_link_qr_about()));
|
||||||
|
@ -890,6 +891,7 @@ base::unique_qptr<Ui::PopupMenu> LinksController::createRowContextMenu(
|
||||||
};
|
};
|
||||||
const auto getLinkQr = [=] {
|
const auto getLinkQr = [=] {
|
||||||
delegate()->peerListUiShow()->showBox(InviteLinkQrBox(
|
delegate()->peerListUiShow()->showBox(InviteLinkQrBox(
|
||||||
|
nullptr,
|
||||||
link,
|
link,
|
||||||
tr::lng_group_invite_qr_title(),
|
tr::lng_group_invite_qr_title(),
|
||||||
tr::lng_filters_link_qr_about()));
|
tr::lng_filters_link_qr_about()));
|
||||||
|
|
|
@ -33,6 +33,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/boxes/confirm_box.h"
|
#include "ui/boxes/confirm_box.h"
|
||||||
#include "ui/boxes/edit_invite_link.h"
|
#include "ui/boxes/edit_invite_link.h"
|
||||||
#include "ui/boxes/edit_invite_link_session.h"
|
#include "ui/boxes/edit_invite_link_session.h"
|
||||||
|
#include "ui/boxes/peer_qr_box.h"
|
||||||
#include "ui/controls/invite_link_buttons.h"
|
#include "ui/controls/invite_link_buttons.h"
|
||||||
#include "ui/controls/invite_link_label.h"
|
#include "ui/controls/invite_link_label.h"
|
||||||
#include "ui/controls/userpic_button.h"
|
#include "ui/controls/userpic_button.h"
|
||||||
|
@ -64,8 +65,8 @@ namespace {
|
||||||
|
|
||||||
constexpr auto kFirstPage = 20;
|
constexpr auto kFirstPage = 20;
|
||||||
constexpr auto kPerPage = 100;
|
constexpr auto kPerPage = 100;
|
||||||
constexpr auto kShareQrSize = 768;
|
// constexpr auto kShareQrSize = 768;
|
||||||
constexpr auto kShareQrPadding = 16;
|
// constexpr auto kShareQrPadding = 16;
|
||||||
|
|
||||||
using LinkData = Api::InviteLink;
|
using LinkData = Api::InviteLink;
|
||||||
|
|
||||||
|
@ -282,6 +283,8 @@ private:
|
||||||
return updated.link.isEmpty() || (!revoked && updated.revoked);
|
return updated.link.isEmpty() || (!revoked && updated.revoked);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
|
||||||
QImage QrExact(const Qr::Data &data, int pixel, QColor color) {
|
QImage QrExact(const Qr::Data &data, int pixel, QColor color) {
|
||||||
const auto image = [](int size) {
|
const auto image = [](int size) {
|
||||||
auto result = QImage(
|
auto result = QImage(
|
||||||
|
@ -383,6 +386,8 @@ void QrBox(
|
||||||
box->addLeftButton(tr::lng_group_invite_context_copy(), copyCallback);
|
box->addLeftButton(tr::lng_group_invite_context_copy(), copyCallback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
Controller::Controller(
|
Controller::Controller(
|
||||||
not_null<PeerData*> peer,
|
not_null<PeerData*> peer,
|
||||||
not_null<UserData*> admin,
|
not_null<UserData*> admin,
|
||||||
|
@ -421,6 +426,7 @@ void Controller::addHeaderBlock(not_null<Ui::VerticalLayout*> container) {
|
||||||
});
|
});
|
||||||
const auto getLinkQr = crl::guard(weak, [=] {
|
const auto getLinkQr = crl::guard(weak, [=] {
|
||||||
delegate()->peerListUiShow()->showBox(InviteLinkQrBox(
|
delegate()->peerListUiShow()->showBox(InviteLinkQrBox(
|
||||||
|
_peer,
|
||||||
link,
|
link,
|
||||||
tr::lng_group_invite_qr_title(),
|
tr::lng_group_invite_qr_title(),
|
||||||
tr::lng_group_invite_qr_about()));
|
tr::lng_group_invite_qr_about()));
|
||||||
|
@ -1253,6 +1259,7 @@ void AddPermanentLinkBlock(
|
||||||
const auto getLinkQr = crl::guard(weak, [=] {
|
const auto getLinkQr = crl::guard(weak, [=] {
|
||||||
if (const auto current = value->current(); !current.link.isEmpty()) {
|
if (const auto current = value->current(); !current.link.isEmpty()) {
|
||||||
show->showBox(InviteLinkQrBox(
|
show->showBox(InviteLinkQrBox(
|
||||||
|
peer,
|
||||||
current.link,
|
current.link,
|
||||||
tr::lng_group_invite_qr_title(),
|
tr::lng_group_invite_qr_title(),
|
||||||
tr::lng_group_invite_qr_about()));
|
tr::lng_group_invite_qr_about()));
|
||||||
|
@ -1510,16 +1517,14 @@ object_ptr<Ui::BoxContent> ShareInviteLinkBox(
|
||||||
}
|
}
|
||||||
|
|
||||||
object_ptr<Ui::BoxContent> InviteLinkQrBox(
|
object_ptr<Ui::BoxContent> InviteLinkQrBox(
|
||||||
|
PeerData *peer,
|
||||||
const QString &link,
|
const QString &link,
|
||||||
rpl::producer<QString> title,
|
rpl::producer<QString> title,
|
||||||
rpl::producer<QString> about) {
|
rpl::producer<QString> about) {
|
||||||
return Box(QrBox, link, std::move(title), std::move(about), [=](
|
return Box([=, t = std::move(title), a = std::move(about)](
|
||||||
const QImage &image,
|
not_null<Ui::GenericBox*> box) {
|
||||||
std::shared_ptr<Ui::Show> show) {
|
Ui::FillPeerQrBox(box, peer, link, std::move(a));
|
||||||
auto mime = std::make_unique<QMimeData>();
|
box->setTitle(std::move(t));
|
||||||
mime->setImageData(image);
|
|
||||||
QGuiApplication::clipboard()->setMimeData(mime.release());
|
|
||||||
show->showToast(tr::lng_group_invite_qr_copied(tr::now));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -50,6 +50,7 @@ void CopyInviteLink(std::shared_ptr<Ui::Show> show, const QString &link);
|
||||||
const QString &link,
|
const QString &link,
|
||||||
const QString &copied = {});
|
const QString &copied = {});
|
||||||
[[nodiscard]] object_ptr<Ui::BoxContent> InviteLinkQrBox(
|
[[nodiscard]] object_ptr<Ui::BoxContent> InviteLinkQrBox(
|
||||||
|
PeerData *peer,
|
||||||
const QString &link,
|
const QString &link,
|
||||||
rpl::producer<QString> title,
|
rpl::producer<QString> title,
|
||||||
rpl::producer<QString> about);
|
rpl::producer<QString> about);
|
||||||
|
|
|
@ -587,6 +587,7 @@ base::unique_qptr<Ui::PopupMenu> LinksController::createRowContextMenu(
|
||||||
}, &st::menuIconShare);
|
}, &st::menuIconShare);
|
||||||
result->addAction(tr::lng_group_invite_context_qr(tr::now), [=] {
|
result->addAction(tr::lng_group_invite_context_qr(tr::now), [=] {
|
||||||
delegate()->peerListUiShow()->showBox(InviteLinkQrBox(
|
delegate()->peerListUiShow()->showBox(InviteLinkQrBox(
|
||||||
|
nullptr,
|
||||||
link,
|
link,
|
||||||
tr::lng_group_invite_qr_title(),
|
tr::lng_group_invite_qr_title(),
|
||||||
tr::lng_group_invite_qr_about()));
|
tr::lng_group_invite_qr_about()));
|
||||||
|
|
|
@ -606,6 +606,7 @@ base::unique_qptr<Ui::PopupMenu> LinksController::createRowContextMenu(
|
||||||
}, &st::menuIconShare);
|
}, &st::menuIconShare);
|
||||||
result->addAction(tr::lng_group_invite_context_qr(tr::now), [=] {
|
result->addAction(tr::lng_group_invite_context_qr(tr::now), [=] {
|
||||||
delegate()->peerListUiShow()->showBox(InviteLinkQrBox(
|
delegate()->peerListUiShow()->showBox(InviteLinkQrBox(
|
||||||
|
nullptr,
|
||||||
link,
|
link,
|
||||||
tr::lng_chat_link_qr_title(),
|
tr::lng_chat_link_qr_title(),
|
||||||
tr::lng_chat_link_qr_about()));
|
tr::lng_chat_link_qr_about()));
|
||||||
|
|
Loading…
Add table
Reference in a new issue