File indexing completed on 2024-06-16 05:00:38
0001 /* 0002 SPDX-FileCopyrightText: 2013-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include "utils.h" 0010 #include <QMap> 0011 #include <QTreeWidget> 0012 0013 class QTreeWidgetItem; 0014 0015 class SelectionTypeTreeWidget : public QTreeWidget 0016 { 0017 Q_OBJECT 0018 public: 0019 explicit SelectionTypeTreeWidget(bool backupData, QWidget *parent = nullptr); 0020 ~SelectionTypeTreeWidget() override; 0021 0022 [[nodiscard]] QMap<Utils::AppsType, Utils::importExportParameters> storedType() const; 0023 0024 void selectAllItems(); 0025 void unSelectAllItems(); 0026 0027 void saveAsTemplate(); 0028 0029 void loadTemplate(const QString &fileName = QString()); 0030 void saveAsDefaultTemplate(); 0031 void loadDefaultTemplate(); 0032 [[nodiscard]] QString exportedFileInfo(); 0033 void removeNotSelectedItems(); 0034 0035 private: 0036 void slotItemChanged(QTreeWidgetItem *, int); 0037 0038 enum ActionType { action = Qt::UserRole + 1 }; 0039 0040 void initialize(bool backupData); 0041 void setSelectItems(bool b); 0042 void changeState(QTreeWidgetItem *item, bool b); 0043 void createSubItem(QTreeWidgetItem *parent, Utils::StoredType type); 0044 void setParameters(const QMap<Utils::AppsType, Utils::importExportParameters> ¶ms); 0045 0046 [[nodiscard]] Utils::importExportParameters typeChecked(QTreeWidgetItem *parent) const; 0047 void initializeSubItem(QTreeWidgetItem *item, Utils::StoredTypes types); 0048 void loadFileName(const QString &fileName); 0049 [[nodiscard]] QString templateSelectionToString(); 0050 bool removeNotSelectedItem(QTreeWidgetItem *parent); 0051 0052 QTreeWidgetItem *mKmailItem = nullptr; 0053 QTreeWidgetItem *mKalarmItem = nullptr; 0054 QTreeWidgetItem *mKaddressbookItem = nullptr; 0055 QTreeWidgetItem *mKorganizerItem = nullptr; 0056 QTreeWidgetItem *mKNotesItem = nullptr; 0057 QTreeWidgetItem *mAkregatorItem = nullptr; 0058 };