File indexing completed on 2025-02-16 04:49:30

0001 /*
0002    SPDX-FileCopyrightText: 2016-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "checkduplicateemailsdialog.h"
0008 
0009 #include <KConfigGroup>
0010 #include <KLocalizedString>
0011 #include <KSharedConfig>
0012 #include <KWindowConfig>
0013 #include <QDialogButtonBox>
0014 #include <QLabel>
0015 #include <QListWidget>
0016 #include <QVBoxLayout>
0017 #include <QWindow>
0018 namespace
0019 {
0020 static const char myConfigCheckDuplicateEmailsDialog[] = "CheckDuplicateEmailsDialog";
0021 }
0022 CheckDuplicateEmailsDialog::CheckDuplicateEmailsDialog(QWidget *parent)
0023     : QDialog(parent)
0024     , mListWidget(new QListWidget(this))
0025 {
0026     setWindowTitle(i18nc("@title:window", "Duplicated emails"));
0027     auto mainLayout = new QVBoxLayout(this);
0028     auto lab = new QLabel(i18n("These emails are duplicated. Do you want to send email?"), this);
0029     lab->setObjectName(QLatin1StringView("label"));
0030     mainLayout->addWidget(lab);
0031 
0032     mListWidget->setObjectName(QLatin1StringView("listwidget"));
0033     mainLayout->addWidget(mListWidget);
0034 
0035     auto buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this);
0036     buttonBox->setObjectName(QLatin1StringView("buttonbox"));
0037     connect(buttonBox, &QDialogButtonBox::accepted, this, &CheckDuplicateEmailsDialog::accept);
0038     connect(buttonBox, &QDialogButtonBox::rejected, this, &CheckDuplicateEmailsDialog::reject);
0039     mainLayout->addWidget(buttonBox);
0040     readConfig();
0041 }
0042 
0043 CheckDuplicateEmailsDialog::~CheckDuplicateEmailsDialog()
0044 {
0045     writeConfig();
0046 }
0047 
0048 void CheckDuplicateEmailsDialog::setDuplicatedEmails(const QMap<QString, int> &emails)
0049 {
0050     QMapIterator<QString, int> i(emails);
0051     while (i.hasNext()) {
0052         i.next();
0053         mListWidget->addItem(i18nc("emails (number of emails)", "%1 (%2)", i.key(), i.value()));
0054     }
0055 }
0056 
0057 void CheckDuplicateEmailsDialog::writeConfig()
0058 {
0059     KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myConfigCheckDuplicateEmailsDialog));
0060     KWindowConfig::saveWindowSize(windowHandle(), group);
0061 }
0062 
0063 void CheckDuplicateEmailsDialog::readConfig()
0064 {
0065     create(); // ensure a window is created
0066     windowHandle()->resize(QSize(500, 300));
0067     KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myConfigCheckDuplicateEmailsDialog));
0068     KWindowConfig::restoreWindowSize(windowHandle(), group);
0069     resize(windowHandle()->size()); // workaround for QTBUG-40584
0070 }
0071 
0072 #include "moc_checkduplicateemailsdialog.cpp"