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"