17 setWindowTitle(i18n(
"Supporter Benefits"));
21 connect(scroller, &QScroller::stateChanged,
this, [&](QScroller::State state) {
26 QPushButton *btnManageSubscriptions =
27 m_buttons->addButton(i18n(
"Manage Subscriptions"), QDialogButtonBox::ActionRole);
39 Qt::QueuedConnection);
40 connect(m_btnNoBenefitsSupport,
41 &QPushButton::clicked,
44 connect(btnManageSubscriptions,
45 &QPushButton::clicked,
50 m_stack->setCurrentWidget(m_pgNoBenefits);
51 m_btnNoBenefitsSupport->hide();
56 connect(m_buttons, &QDialogButtonBox::rejected,
this, &KisDonationManagementDialog::reject);
73 m_stack->setCurrentWidget(m_pgNoBenefits);
75 m_stack->setCurrentWidget(m_pgBenefitsList);
85 switch (product.availability) {
86 case KisSupporterProductAvailability::Missing:
88 case KisSupporterProductAvailability::Available:
89 availableProducts.append(product);
91 case KisSupporterProductAvailability::Owned:
92 ownedProducts.append(product);
100 if (productsChanged) {
104 while (!m_lytScrBenefitsList->isEmpty()) {
105 QLayoutItem *item = m_lytScrBenefitsList->takeAt(m_lytScrBenefitsList->count() - 1);
106 QWidget *widget = item->widget();
108 widget->deleteLater();
114 i18np(
"You have %1 supporter benefit:",
"You have %1 supporter benefits:",
m_ownedProducts.size()),
119 m_lytScrBenefitsList->addSpacing(12);
123 "There are %1 supporter benefits available:",
127 m_lytScrBenefitsList->addStretch();
135 int count = products.size();
138 new QLabel(QStringLiteral(
"<span style=\"font-size:large;\">%1</span>").arg(heading.toHtmlEscaped()));
139 label->setWordWrap(
true);
140 m_lytScrBenefitsList->addWidget(label);
142 for (
int i = 0; i < count; ++i) {
145 m_lytScrBenefitsList->addWidget(widget);
156 QFrame *separator =
new QFrame;
157 separator->setFrameShape(QFrame::HLine);
158 separator->setFrameShadow(QFrame::Sunken);
159 m_lytScrBenefitsList->addWidget(separator);
165 int count = a.size();
166 if (b.size() != count) {
170 for (
int i = 0; i < count; ++i) {
171 if (a[i].
id != b[i].
id) {
PythonPluginManager * instance
void slotManageSubscriptions()
void setShowDonationManagementDialogPending(bool pending)
void slotStartDonationFlow()
QVector< KisSupporterProduct > getCurrentProducts() const
QVector< KisSupporterProduct > m_availableProducts
void addProductSeparator()
KisAndroidDonations * m_androidDonations
void sigShowSupporterBundles()
void slotUpdateCurrentProducts()
void addProductWidgets(const QString &heading, const QVector< KisSupporterProduct > &products)
KisDonationManagementDialog(QWidget *parent=nullptr)
static bool isProductIdsEqual(const QVector< KisSupporterProduct > &a, const QVector< KisSupporterProduct > &b)
QVector< KisSupporterProduct > m_ownedProducts
#define KIS_SAFE_ASSERT_RECOVER_NOOP(cond)