summaryrefslogtreecommitdiff
path: root/src/modlistsortproxy.h
diff options
context:
space:
mode:
authorMikaël Capelle <capelle.mikael@gmail.com>2022-05-17 11:37:19 +0200
committerMikaël Capelle <capelle.mikael@gmail.com>2023-07-09 17:17:53 +0200
commit86bb01ba9eac879d3685c439ac9da0028bc4bc80 (patch)
tree90cc575c2d02113af459b7772418285f2e5caa1f /src/modlistsortproxy.h
parent7d6cb8528d20e36a4cee822263865ee2f7f32481 (diff)
Convert everything to CRLF.
Diffstat (limited to 'src/modlistsortproxy.h')
-rw-r--r--src/modlistsortproxy.h344
1 files changed, 172 insertions, 172 deletions
diff --git a/src/modlistsortproxy.h b/src/modlistsortproxy.h
index 23be77ed..b59ab358 100644
--- a/src/modlistsortproxy.h
+++ b/src/modlistsortproxy.h
@@ -1,172 +1,172 @@
-/*
-Copyright (C) 2012 Sebastian Herbord. All rights reserved.
-
-This file is part of Mod Organizer.
-
-Mod Organizer is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-Mod Organizer is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef MODLISTSORTPROXY_H
-#define MODLISTSORTPROXY_H
-
-#include <QSortFilterProxyModel>
-#include <bitset>
-#include "modlist.h"
-
-class Profile;
-class OrganizerCore;
-
-class ModListSortProxy : public QSortFilterProxyModel
-{
- Q_OBJECT
-
-public:
- enum FilterMode
- {
- FilterAnd,
- FilterOr
- };
-
- enum CriteriaType {
- TypeSpecial,
- TypeCategory,
- TypeContent
- };
-
- enum SeparatorsMode
- {
- SeparatorFilter,
- SeparatorShow,
- SeparatorHide
- };
-
- struct Criteria
- {
- CriteriaType type;
- int id;
- bool inverse;
-
- bool operator==(const Criteria& other) const
- {
- return
- (type == other.type) &&
- (id == other.id) &&
- (inverse == other.inverse);
- }
-
- bool operator!=(const Criteria& other) const
- {
- return !(*this == other);
- }
- };
-
-public:
-
- explicit ModListSortProxy(Profile *profile, OrganizerCore *organizer);
-
- void setProfile(Profile *profile);
-
- bool canDropMimeData(const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent) const override;
- bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override;
-
- virtual void setSourceModel(QAbstractItemModel *sourceModel) override;
-
- /**
- * @brief tests if a filtere matches for a mod
- * @param info mod information
- * @param enabled true if the mod is currently active
- * @return true if current active filters match for the specified mod
- */
- bool filterMatchesMod(ModInfo::Ptr info, bool enabled) const;
-
- /**
- * @return true if a filter is currently active
- */
- bool isFilterActive() const { return m_FilterActive; }
-
- void setCriteria(const std::vector<Criteria>& criteria);
- void setOptions(FilterMode mode, SeparatorsMode separators);
-
- auto filterMode() const { return m_FilterMode; }
- auto separatorsMode() const { return m_FilterSeparators; }
-
- /**
- * @brief tests if the specified index has child nodes
- * @param parent the node to test
- * @return true if there are child nodes
- */
- virtual bool hasChildren ( const QModelIndex & parent = QModelIndex() ) const {
- return rowCount(parent) > 0;
- }
-
- /**
- * @brief sets whether a column is visible
- * @param column the index of the column
- * @param visible the visibility of the column
- */
- void setColumnVisible(int column, bool visible);
-
-public slots:
-
- void updateFilter(const QString &filter);
-
-signals:
-
- void filterActive(bool active);
- void filterInvalidated();
-
-protected:
-
- virtual bool lessThan(const QModelIndex &left, const QModelIndex &right) const;
- virtual bool filterAcceptsRow(int row, const QModelIndex &parent) const;
-
-private:
-
- unsigned long flagsId(const std::vector<ModInfo::EFlag> &flags) const;
- unsigned long conflictFlagsId(const std::vector<ModInfo::EConflictFlag>& flags) const;
- bool hasConflictFlag(const std::vector<ModInfo::EConflictFlag> &flags) const;
- void updateFilterActive();
- bool filterMatchesModAnd(ModInfo::Ptr info, bool enabled) const;
- bool filterMatchesModOr(ModInfo::Ptr info, bool enabled) const;
-
- // check if the source model is the by-priority proxy
- //
- bool sourceIsByPriorityProxy() const;
-
-private slots:
-
- void aboutToChangeData();
- void postDataChanged();
-
-private:
- OrganizerCore* m_Organizer;
-
- Profile* m_Profile;
- std::vector<Criteria> m_Criteria;
- QString m_Filter;
- std::bitset<ModList::COL_LASTCOLUMN + 1> m_EnabledColumns;
-
- bool m_FilterActive;
- FilterMode m_FilterMode;
- SeparatorsMode m_FilterSeparators;
-
- std::vector<Criteria> m_PreChangeCriteria;
-
- bool optionsMatchMod(ModInfo::Ptr info, bool enabled) const;
- bool criteriaMatchMod(ModInfo::Ptr info, bool enabled, const Criteria& c) const;
- bool categoryMatchesMod(ModInfo::Ptr info, bool enabled, int category) const;
- bool contentMatchesMod(ModInfo::Ptr info, bool enabled, int content) const;
-};
-
-#endif // MODLISTSORTPROXY_H
+/*
+Copyright (C) 2012 Sebastian Herbord. All rights reserved.
+
+This file is part of Mod Organizer.
+
+Mod Organizer is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Mod Organizer is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef MODLISTSORTPROXY_H
+#define MODLISTSORTPROXY_H
+
+#include <QSortFilterProxyModel>
+#include <bitset>
+#include "modlist.h"
+
+class Profile;
+class OrganizerCore;
+
+class ModListSortProxy : public QSortFilterProxyModel
+{
+ Q_OBJECT
+
+public:
+ enum FilterMode
+ {
+ FilterAnd,
+ FilterOr
+ };
+
+ enum CriteriaType {
+ TypeSpecial,
+ TypeCategory,
+ TypeContent
+ };
+
+ enum SeparatorsMode
+ {
+ SeparatorFilter,
+ SeparatorShow,
+ SeparatorHide
+ };
+
+ struct Criteria
+ {
+ CriteriaType type;
+ int id;
+ bool inverse;
+
+ bool operator==(const Criteria& other) const
+ {
+ return
+ (type == other.type) &&
+ (id == other.id) &&
+ (inverse == other.inverse);
+ }
+
+ bool operator!=(const Criteria& other) const
+ {
+ return !(*this == other);
+ }
+ };
+
+public:
+
+ explicit ModListSortProxy(Profile *profile, OrganizerCore *organizer);
+
+ void setProfile(Profile *profile);
+
+ bool canDropMimeData(const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent) const override;
+ bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override;
+
+ virtual void setSourceModel(QAbstractItemModel *sourceModel) override;
+
+ /**
+ * @brief tests if a filtere matches for a mod
+ * @param info mod information
+ * @param enabled true if the mod is currently active
+ * @return true if current active filters match for the specified mod
+ */
+ bool filterMatchesMod(ModInfo::Ptr info, bool enabled) const;
+
+ /**
+ * @return true if a filter is currently active
+ */
+ bool isFilterActive() const { return m_FilterActive; }
+
+ void setCriteria(const std::vector<Criteria>& criteria);
+ void setOptions(FilterMode mode, SeparatorsMode separators);
+
+ auto filterMode() const { return m_FilterMode; }
+ auto separatorsMode() const { return m_FilterSeparators; }
+
+ /**
+ * @brief tests if the specified index has child nodes
+ * @param parent the node to test
+ * @return true if there are child nodes
+ */
+ virtual bool hasChildren ( const QModelIndex & parent = QModelIndex() ) const {
+ return rowCount(parent) > 0;
+ }
+
+ /**
+ * @brief sets whether a column is visible
+ * @param column the index of the column
+ * @param visible the visibility of the column
+ */
+ void setColumnVisible(int column, bool visible);
+
+public slots:
+
+ void updateFilter(const QString &filter);
+
+signals:
+
+ void filterActive(bool active);
+ void filterInvalidated();
+
+protected:
+
+ virtual bool lessThan(const QModelIndex &left, const QModelIndex &right) const;
+ virtual bool filterAcceptsRow(int row, const QModelIndex &parent) const;
+
+private:
+
+ unsigned long flagsId(const std::vector<ModInfo::EFlag> &flags) const;
+ unsigned long conflictFlagsId(const std::vector<ModInfo::EConflictFlag>& flags) const;
+ bool hasConflictFlag(const std::vector<ModInfo::EConflictFlag> &flags) const;
+ void updateFilterActive();
+ bool filterMatchesModAnd(ModInfo::Ptr info, bool enabled) const;
+ bool filterMatchesModOr(ModInfo::Ptr info, bool enabled) const;
+
+ // check if the source model is the by-priority proxy
+ //
+ bool sourceIsByPriorityProxy() const;
+
+private slots:
+
+ void aboutToChangeData();
+ void postDataChanged();
+
+private:
+ OrganizerCore* m_Organizer;
+
+ Profile* m_Profile;
+ std::vector<Criteria> m_Criteria;
+ QString m_Filter;
+ std::bitset<ModList::COL_LASTCOLUMN + 1> m_EnabledColumns;
+
+ bool m_FilterActive;
+ FilterMode m_FilterMode;
+ SeparatorsMode m_FilterSeparators;
+
+ std::vector<Criteria> m_PreChangeCriteria;
+
+ bool optionsMatchMod(ModInfo::Ptr info, bool enabled) const;
+ bool criteriaMatchMod(ModInfo::Ptr info, bool enabled, const Criteria& c) const;
+ bool categoryMatchesMod(ModInfo::Ptr info, bool enabled, int category) const;
+ bool contentMatchesMod(ModInfo::Ptr info, bool enabled, int content) const;
+};
+
+#endif // MODLISTSORTPROXY_H