File indexing completed on 2024-06-23 05:18:34

0001 /*
0002   SPDX-FileCopyrightText: 2022-2024 Laurent Montel <montel@kde.org>
0003   SPDX-FileCopyrightText: 2009 Michael Leupold <lemma@confuego.org>
0004 
0005   SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 #include "mdnadvicedialog.h"
0009 
0010 #include <KLocalizedString>
0011 #include <KMessageBox>
0012 
0013 #include <QDialogButtonBox>
0014 #include <QPushButton>
0015 
0016 using namespace MessageComposer;
0017 
0018 MDNAdviceDialog::MDNAdviceDialog(const QString &text, bool canDeny, QWidget *parent)
0019     : QDialog(parent)
0020 {
0021     setWindowTitle(i18nc("@title:window", "Message Disposition Notification Request"));
0022     auto buttonBox = new QDialogButtonBox(QDialogButtonBox::Yes, this);
0023     auto user1Button = new QPushButton(this);
0024     buttonBox->addButton(user1Button, QDialogButtonBox::ActionRole);
0025     connect(user1Button, &QPushButton::clicked, this, &MDNAdviceDialog::slotUser1Clicked);
0026     if (canDeny) {
0027         auto user2Button = new QPushButton(this);
0028         connect(user2Button, &QPushButton::clicked, this, &MDNAdviceDialog::slotUser2Clicked);
0029         buttonBox->addButton(user2Button, QDialogButtonBox::ActionRole);
0030         user2Button->setText(i18n("Send \"&denied\""));
0031     }
0032     buttonBox->button(QDialogButtonBox::Yes)->setText(i18n("&Ignore"));
0033     connect(buttonBox->button(QDialogButtonBox::Yes), &QPushButton::clicked, this, &MDNAdviceDialog::slotYesClicked);
0034     user1Button->setText(i18n("&Send"));
0035     buttonBox->button(QDialogButtonBox::Yes)->setShortcut(Qt::Key_Escape);
0036     KMessageBox::createKMessageBox(this, buttonBox, QMessageBox::Question, text, QStringList(), QString(), nullptr, KMessageBox::NoExec);
0037 }
0038 
0039 MDNAdviceDialog::~MDNAdviceDialog() = default;
0040 
0041 MessageComposer::MDNAdvice MDNAdviceDialog::result() const
0042 {
0043     return m_result;
0044 }
0045 
0046 void MDNAdviceDialog::slotUser1Clicked()
0047 {
0048     m_result = MessageComposer::MDNSend;
0049     accept();
0050 }
0051 
0052 void MDNAdviceDialog::slotUser2Clicked()
0053 {
0054     m_result = MessageComposer::MDNSendDenied;
0055     accept();
0056 }
0057 
0058 void MDNAdviceDialog::slotYesClicked()
0059 {
0060     m_result = MessageComposer::MDNIgnore;
0061     accept();
0062 }
0063 
0064 #include "moc_mdnadvicedialog.cpp"