File indexing completed on 2024-04-28 05:27:03
0001 /* This file is part of the KDE project 0002 SPDX-FileCopyrightText: 2000-2008 David Faure <faure@kde.org> 0003 SPDX-FileCopyrightText: 2008 Urs Wolfer <uwolfer @ kde.org> 0004 0005 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0006 */ 0007 0008 #ifndef FILETYPESVIEW_H 0009 #define FILETYPESVIEW_H 0010 0011 #include <QLabel> 0012 #include <QList> 0013 #include <QMap> 0014 #include <QStackedWidget> 0015 0016 #include <KCModule> 0017 #include <KSharedConfig> 0018 0019 #include "typeslistitem.h" 0020 0021 class QTreeWidget; 0022 class QTreeWidgetItem; 0023 class QPushButton; 0024 class KLineEdit; 0025 class FileTypeDetails; 0026 class FileGroupDetails; 0027 0028 class FileTypesView : public KCModule 0029 { 0030 Q_OBJECT 0031 public: 0032 explicit FileTypesView(QObject *parent, const KPluginMetaData &data); 0033 ~FileTypesView() override; 0034 0035 void load() override; 0036 void save() override; 0037 void defaults() override; 0038 0039 protected Q_SLOTS: 0040 void addType(); 0041 void removeType(); 0042 void updateDisplay(QTreeWidgetItem *); 0043 void slotDoubleClicked(QTreeWidgetItem *); 0044 void slotFilter(const QString &patternFilter); 0045 void setDirty(bool state); 0046 0047 void slotDatabaseChanged(); 0048 void slotEmbedMajor(const QString &major, bool &embed); 0049 void multiApply(int type); 0050 0051 private: 0052 void readFileTypes(); 0053 void updateRemoveButton(TypesListItem *item); 0054 0055 private: 0056 QTreeWidget *typesLV; 0057 QPushButton *m_removeTypeB; 0058 0059 QStackedWidget *m_widgetStack; 0060 FileTypeDetails *m_details; 0061 FileGroupDetails *m_groupDetails; 0062 QLabel *m_emptyWidget; 0063 0064 KLineEdit *patternFilterLE; 0065 QStringList removedList; 0066 bool m_dirty; 0067 bool m_removeButtonSaysRevert; 0068 QMap<QString, TypesListItem *> m_majorMap; // groups 0069 QList<TypesListItem *> m_itemList; 0070 0071 KSharedConfig::Ptr m_fileTypesConfig; 0072 }; 0073 0074 #endif