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 };