File indexing completed on 2025-02-16 04:56:08

0001 /*
0002    SPDX-FileCopyrightText: 2017-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include "ksieveui_private_export.h"
0010 #include "vacation/vacationutils.h"
0011 #include <QWidget>
0012 class QStackedWidget;
0013 namespace KSieveCore
0014 {
0015 class SieveImapAccountSettings;
0016 }
0017 namespace KSieveUi
0018 {
0019 class AbstractMoveImapFolderWidget;
0020 class AbstractSelectEmailLineEdit;
0021 class KSIEVEUI_TESTS_EXPORT VacationMailActionWidget : public QWidget
0022 {
0023     Q_OBJECT
0024 public:
0025     explicit VacationMailActionWidget(QWidget *parent = nullptr);
0026     ~VacationMailActionWidget() override;
0027 
0028     void setSieveImapAccountSettings(const KSieveCore::SieveImapAccountSettings &account);
0029     void mailActionChanged(KSieveCore::VacationUtils::MailAction action);
0030 
0031     [[nodiscard]] QString mailActionRecipient(bool &valid) const;
0032     void setMailAction(KSieveCore::VacationUtils::MailAction action, const QString &recipient);
0033 
0034 Q_SIGNALS:
0035     void wasChanged();
0036 
0037 private:
0038     void selectMailActionWidget(KSieveCore::VacationUtils::MailAction action);
0039     void setText(const QString &recipient);
0040 
0041     QStackedWidget *mStackedWidget = nullptr;
0042     AbstractMoveImapFolderWidget *mMoveImapFolderWidget = nullptr;
0043     AbstractSelectEmailLineEdit *mSelectEmailLineEdit = nullptr;
0044     QWidget *mMailActionRecipient = nullptr;
0045 };
0046 }