File indexing completed on 2024-06-09 05:18:15

0001 /*
0002   SPDX-FileCopyrightText: 2012-2024 Laurent Montel <montel@kde.org>
0003 
0004   SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include "mailcommon_export.h"
0010 #include "tag.h"
0011 #include <Akonadi/Tag>
0012 #include <Akonadi/TagCreateJob>
0013 #include <QDialog>
0014 #include <QList>
0015 
0016 class KActionCollection;
0017 
0018 namespace MailCommon
0019 {
0020 class AddTagDialogPrivate;
0021 class MAILCOMMON_EXPORT AddTagDialog : public QDialog
0022 {
0023     Q_OBJECT
0024 public:
0025     explicit AddTagDialog(const QList<KActionCollection *> &actions, QWidget *parent = nullptr);
0026     ~AddTagDialog() override;
0027 
0028     void setTags(const QList<MailCommon::Tag::Ptr> &tags);
0029     [[nodiscard]] QString label() const;
0030     [[nodiscard]] Akonadi::Tag tag() const;
0031 
0032 private:
0033     MAILCOMMON_NO_EXPORT void slotSave();
0034     MAILCOMMON_NO_EXPORT void slotTagNameChanged(const QString &text);
0035     MAILCOMMON_NO_EXPORT void onTagCreated(KJob *job);
0036     std::unique_ptr<AddTagDialogPrivate> const d;
0037 };
0038 }