mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-05 06:33:57 +02:00
Moved out peer list controller for giveaway box to separated file.
This commit is contained in:
parent
fc6d4d66b7
commit
3ecf3f7c55
4 changed files with 86 additions and 38 deletions
|
@ -824,6 +824,8 @@ PRIVATE
|
||||||
history/history_view_highlight_manager.h
|
history/history_view_highlight_manager.h
|
||||||
history/history_widget.cpp
|
history/history_widget.cpp
|
||||||
history/history_widget.h
|
history/history_widget.h
|
||||||
|
info/boosts/giveaway/giveaway_list_controllers.cpp
|
||||||
|
info/boosts/giveaway/giveaway_list_controllers.h
|
||||||
info/boosts/create_giveaway_box.cpp
|
info/boosts/create_giveaway_box.cpp
|
||||||
info/boosts/create_giveaway_box.h
|
info/boosts/create_giveaway_box.h
|
||||||
info/boosts/info_boosts_inner_widget.cpp
|
info/boosts/info_boosts_inner_widget.cpp
|
||||||
|
|
|
@ -10,10 +10,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "api/api_premium.h"
|
#include "api/api_premium.h"
|
||||||
#include "base/call_delayed.h"
|
#include "base/call_delayed.h"
|
||||||
#include "base/unixtime.h"
|
#include "base/unixtime.h"
|
||||||
#include "boxes/peers/edit_participants_box.h" // ParticipantsBoxController
|
|
||||||
#include "data/data_peer.h"
|
#include "data/data_peer.h"
|
||||||
#include "data/data_subscription_option.h"
|
#include "info/boosts/giveaway/giveaway_list_controllers.h"
|
||||||
#include "data/data_user.h"
|
|
||||||
#include "info/boosts/giveaway/giveaway_type_row.h"
|
#include "info/boosts/giveaway/giveaway_type_row.h"
|
||||||
#include "info/boosts/giveaway/select_countries_box.h"
|
#include "info/boosts/giveaway/select_countries_box.h"
|
||||||
#include "info/info_controller.h"
|
#include "info/info_controller.h"
|
||||||
|
@ -49,38 +47,6 @@ namespace {
|
||||||
return dateNow;
|
return dateNow;
|
||||||
}
|
}
|
||||||
|
|
||||||
class MembersListController : public ParticipantsBoxController {
|
|
||||||
public:
|
|
||||||
using ParticipantsBoxController::ParticipantsBoxController;
|
|
||||||
|
|
||||||
void rowClicked(not_null<PeerListRow*> row) override;
|
|
||||||
std::unique_ptr<PeerListRow> createRow(
|
|
||||||
not_null<PeerData*> participant) const override;
|
|
||||||
base::unique_qptr<Ui::PopupMenu> rowContextMenu(
|
|
||||||
QWidget *parent,
|
|
||||||
not_null<PeerListRow*> row) override;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
void MembersListController::rowClicked(not_null<PeerListRow*> row) {
|
|
||||||
delegate()->peerListSetRowChecked(row, !row->checked());
|
|
||||||
}
|
|
||||||
|
|
||||||
std::unique_ptr<PeerListRow> MembersListController::createRow(
|
|
||||||
not_null<PeerData*> participant) const {
|
|
||||||
const auto user = participant->asUser();
|
|
||||||
if (!user || user->isInaccessible() || user->isBot() || user->isSelf()) {
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
return std::make_unique<PeerListRow>(participant);
|
|
||||||
}
|
|
||||||
|
|
||||||
base::unique_qptr<Ui::PopupMenu> MembersListController::rowContextMenu(
|
|
||||||
QWidget *parent,
|
|
||||||
not_null<PeerListRow*> row) {
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
void CreateGiveawayBox(
|
void CreateGiveawayBox(
|
||||||
|
@ -162,10 +128,9 @@ void CreateGiveawayBox(
|
||||||
|
|
||||||
box->uiShow()->showBox(
|
box->uiShow()->showBox(
|
||||||
Box<PeerListBox>(
|
Box<PeerListBox>(
|
||||||
std::make_unique<MembersListController>(
|
std::make_unique<Giveaway::AwardMembersListController>(
|
||||||
controller,
|
controller,
|
||||||
peer,
|
peer),
|
||||||
ParticipantsRole::Members),
|
|
||||||
std::move(initBox)),
|
std::move(initBox)),
|
||||||
Ui::LayerOption::KeepOther);
|
Ui::LayerOption::KeepOther);
|
||||||
});
|
});
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
/*
|
||||||
|
This file is part of Telegram Desktop,
|
||||||
|
the official desktop application for the Telegram messaging service.
|
||||||
|
|
||||||
|
For license and copyright information please follow this link:
|
||||||
|
https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
|
*/
|
||||||
|
#include "info/boosts/giveaway/giveaway_list_controllers.h"
|
||||||
|
|
||||||
|
#include "data/data_peer.h"
|
||||||
|
#include "data/data_user.h"
|
||||||
|
#include "lang/lang_keys.h"
|
||||||
|
|
||||||
|
namespace Giveaway {
|
||||||
|
|
||||||
|
AwardMembersListController::AwardMembersListController(
|
||||||
|
not_null<Window::SessionNavigation*> navigation,
|
||||||
|
not_null<PeerData*> peer)
|
||||||
|
: ParticipantsBoxController(navigation, peer, ParticipantsRole::Members) {
|
||||||
|
}
|
||||||
|
|
||||||
|
void AwardMembersListController::rowClicked(not_null<PeerListRow*> row) {
|
||||||
|
delegate()->peerListSetRowChecked(row, !row->checked());
|
||||||
|
}
|
||||||
|
|
||||||
|
std::unique_ptr<PeerListRow> AwardMembersListController::createRow(
|
||||||
|
not_null<PeerData*> participant) const {
|
||||||
|
const auto user = participant->asUser();
|
||||||
|
if (!user || user->isInaccessible() || user->isBot() || user->isSelf()) {
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
return std::make_unique<PeerListRow>(participant);
|
||||||
|
}
|
||||||
|
|
||||||
|
base::unique_qptr<Ui::PopupMenu> AwardMembersListController::rowContextMenu(
|
||||||
|
QWidget *parent,
|
||||||
|
not_null<PeerListRow*> row) {
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace Giveaway
|
|
@ -0,0 +1,40 @@
|
||||||
|
/*
|
||||||
|
This file is part of Telegram Desktop,
|
||||||
|
the official desktop application for the Telegram messaging service.
|
||||||
|
|
||||||
|
For license and copyright information please follow this link:
|
||||||
|
https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "boxes/peers/edit_participants_box.h"
|
||||||
|
|
||||||
|
class PeerData;
|
||||||
|
class PeerListRow;
|
||||||
|
|
||||||
|
namespace Ui {
|
||||||
|
class PopupMenu;
|
||||||
|
} // namespace Ui
|
||||||
|
|
||||||
|
namespace Window {
|
||||||
|
class SessionNavigation;
|
||||||
|
} // namespace Window
|
||||||
|
|
||||||
|
namespace Giveaway {
|
||||||
|
|
||||||
|
class AwardMembersListController : public ParticipantsBoxController {
|
||||||
|
public:
|
||||||
|
AwardMembersListController(
|
||||||
|
not_null<Window::SessionNavigation*> navigation,
|
||||||
|
not_null<PeerData*> peer);
|
||||||
|
|
||||||
|
void rowClicked(not_null<PeerListRow*> row) override;
|
||||||
|
std::unique_ptr<PeerListRow> createRow(
|
||||||
|
not_null<PeerData*> participant) const override;
|
||||||
|
base::unique_qptr<Ui::PopupMenu> rowContextMenu(
|
||||||
|
QWidget *parent,
|
||||||
|
not_null<PeerListRow*> row) override;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace Giveaway
|
Loading…
Add table
Reference in a new issue