diff options
| author | Chris Bessent <lost.dragonist@gmail.com> | 2020-01-06 05:17:01 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-01-06 05:17:01 -0700 |
| commit | dfa600996c49c1b23dca884c963dc917bd9cfc0a (patch) | |
| tree | c6def4277cc962822d0dcde71fa9148e050f693f /src/filterlist.h | |
| parent | e69078e2399a88bda7bb9ffae7a3d57db9a4e9cf (diff) | |
| parent | d1a788dfad341b32235abc25c2ba1645f8be1ace (diff) | |
Merge pull request #954 from ModOrganizer2/Develop
Stage for release 2.2.2
Diffstat (limited to 'src/filterlist.h')
| -rw-r--r-- | src/filterlist.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/src/filterlist.h b/src/filterlist.h new file mode 100644 index 00000000..b0ebc9a4 --- /dev/null +++ b/src/filterlist.h @@ -0,0 +1,55 @@ +#ifndef MODORGANIZER_CATEGORIESLIST_INCLUDED +#define MODORGANIZER_CATEGORIESLIST_INCLUDED + +#include "modlistsortproxy.h" +#include <QTreeWidgetItem> + +namespace Ui { class MainWindow; }; +class CategoryFactory; +class Settings; + +class FilterList : public QObject +{ + Q_OBJECT; + +public: + FilterList(Ui::MainWindow* ui, CategoryFactory& factory); + + void restoreState(const Settings& s); + void saveState(Settings& s) const; + + void setSelection(const std::vector<ModListSortProxy::Criteria>& criteria); + void clearSelection(); + void refresh(); + +signals: + void criteriaChanged(std::vector<ModListSortProxy::Criteria> criteria); + void optionsChanged( + ModListSortProxy::FilterMode mode, ModListSortProxy::SeparatorsMode sep); + +private: + class CriteriaItem; + + Ui::MainWindow* ui; + CategoryFactory& m_factory; + + bool onClick(QMouseEvent* e); + void onItemActivated(QTreeWidgetItem* item); + void onOptionsChanged(); + + void editCategories(); + void checkCriteria(); + std::vector<ModListSortProxy::Criteria> selectedCriteria() const; + bool cycleItem(QTreeWidgetItem* item, int direction); + + QTreeWidgetItem* addCriteriaItem( + QTreeWidgetItem *root, const QString &name, int categoryID, + ModListSortProxy::CriteriaType type); + + void addContentCriteria(); + void addCategoryCriteria( + QTreeWidgetItem *root, const std::set<int> &categoriesUsed, int targetID); + void addSpecialCriteria(int type); +}; + +#endif // MODORGANIZER_CATEGORIESLIST_INCLUDED |
