File indexing completed on 2025-03-09 04:54:34

0001 /*
0002   SPDX-FileCopyrightText: 2022-2024 Laurent Montel <montel@kde.org>
0003 
0004   SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "mdnwarningwidget.h"
0008 #include <KLocalizedString>
0009 #include <QAction>
0010 
0011 using namespace MessageViewer;
0012 MDNWarningWidget::MDNWarningWidget(QWidget *parent)
0013     : KMessageWidget(parent)
0014     , mIgnoreAction(new QAction(i18nc("@action", "Ignore"), this))
0015     , mSendAction(new QAction(i18nc("@action", "Send"), this))
0016     , mSendDenyAction(new QAction(i18nc("@action", "Send Deny"), this))
0017 {
0018     setVisible(false);
0019     setMessageType(Information);
0020     setWordWrap(true);
0021     setCloseButtonVisible(false);
0022     setPosition(KMessageWidget::Header);
0023     connect(mIgnoreAction, &QAction::triggered, this, &MDNWarningWidget::slotIgnore);
0024     addAction(mIgnoreAction);
0025     connect(mSendAction, &QAction::triggered, this, &MDNWarningWidget::slotSend);
0026     addAction(mSendAction);
0027     connect(mSendDenyAction, &QAction::triggered, this, &MDNWarningWidget::slotSendDeny);
0028     addAction(mSendDenyAction);
0029     mSendDenyAction->setVisible(false); // Hidden by default
0030     mIgnoreAction->setObjectName(QLatin1StringView("mIgnoreAction"));
0031     mSendAction->setObjectName(QLatin1StringView("mSendAction"));
0032     mSendDenyAction->setObjectName(QLatin1StringView("mSendDenyAction"));
0033 }
0034 
0035 MDNWarningWidget::~MDNWarningWidget() = default;
0036 
0037 void MDNWarningWidget::setCanDeny(bool deny)
0038 {
0039     mSendDenyAction->setVisible(deny);
0040 }
0041 
0042 void MDNWarningWidget::setInformation(const QString &str)
0043 {
0044     setText(str);
0045     animatedShow();
0046 }
0047 
0048 void MDNWarningWidget::slotSend()
0049 {
0050     animatedHide();
0051     Q_EMIT sendResponse(MessageViewer::MDNWarningWidget::ResponseType::Send, mSendingMode);
0052 }
0053 
0054 void MDNWarningWidget::slotIgnore()
0055 {
0056     animatedHide();
0057     Q_EMIT sendResponse(MessageViewer::MDNWarningWidget::ResponseType::Ignore, mSendingMode);
0058 }
0059 
0060 void MDNWarningWidget::slotSendDeny()
0061 {
0062     animatedHide();
0063     Q_EMIT sendResponse(MessageViewer::MDNWarningWidget::ResponseType::SendDeny, mSendingMode);
0064 }
0065 
0066 KMime::MDN::SendingMode MDNWarningWidget::sendingMode() const
0067 {
0068     return mSendingMode;
0069 }
0070 
0071 void MDNWarningWidget::setSendingMode(KMime::MDN::SendingMode newSendingMode)
0072 {
0073     mSendingMode = newSendingMode;
0074 }
0075 
0076 #include "moc_mdnwarningwidget.cpp"