File indexing completed on 2024-09-22 04:49:58

0001 /*
0002 
0003   SPDX-FileCopyrightText: 2011-2024 Laurent Montel <montel@kde.org>
0004 
0005   SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 #pragma once
0009 
0010 #include "mailcommon_private_export.h"
0011 #include <Akonadi/Collection>
0012 
0013 #include <QDialog>
0014 
0015 class QAbstractItemModel;
0016 class QListWidget;
0017 class QListWidgetItem;
0018 class QModelIndex;
0019 class QPushButton;
0020 
0021 namespace MailCommon
0022 {
0023 class FolderRequester;
0024 }
0025 
0026 class MAILCOMMON_TESTS_EXPORT FilterActionMissingFolderDialog : public QDialog
0027 {
0028     Q_OBJECT
0029 public:
0030     explicit FilterActionMissingFolderDialog(const Akonadi::Collection::List &list,
0031                                              const QString &filtername = QString(),
0032                                              const QString &argStr = QString(),
0033                                              QWidget *parent = nullptr);
0034     ~FilterActionMissingFolderDialog() override;
0035 
0036     [[nodiscard]] Akonadi::Collection selectedCollection() const;
0037     [[nodiscard]] static Akonadi::Collection::List potentialCorrectFolders(const QString &path, bool &exactPath);
0038 
0039 private:
0040     void slotCurrentItemChanged();
0041     void slotFolderChanged(const Akonadi::Collection &col);
0042     void slotDoubleItemClicked(QListWidgetItem *item);
0043     static void getPotentialFolders(const QAbstractItemModel *model, const QModelIndex &parentIndex, const QString &realPath, Akonadi::Collection::List &list);
0044     enum collectionEnum { IdentifyCollection = Qt::UserRole + 1 };
0045 
0046 private:
0047     void writeConfig();
0048     void readConfig();
0049     MailCommon::FolderRequester *const mFolderRequester;
0050     QListWidget *mListwidget = nullptr;
0051     QPushButton *mOkButton = nullptr;
0052 };