summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/modlistview.cpp21
-rw-r--r--src/modlistview.h14
2 files changed, 34 insertions, 1 deletions
diff --git a/src/modlistview.cpp b/src/modlistview.cpp
index f6a564ac..9f94354e 100644
--- a/src/modlistview.cpp
+++ b/src/modlistview.cpp
@@ -103,7 +103,7 @@ void ModListView::setProfile(Profile* profile)
bool ModListView::hasCollapsibleSeparators() const
{
- return m_sortProxy != nullptr && m_sortProxy->sourceModel() == m_byPriorityProxy;
+ return groupByMode() == GroupByMode::SEPARATOR;
}
int ModListView::sortColumn() const
@@ -111,6 +111,25 @@ int ModListView::sortColumn() const
return m_sortProxy ? m_sortProxy->sortColumn() : -1;
}
+ModListView::GroupByMode ModListView::groupByMode() const
+{
+ if (m_sortProxy == nullptr) {
+ return GroupByMode::NONE;
+ }
+ else if (m_sortProxy->sourceModel() == m_byPriorityProxy) {
+ return GroupByMode::SEPARATOR;
+ }
+ else if (m_sortProxy->sourceModel() == m_byCategoryProxy) {
+ return GroupByMode::CATEGORY;
+ }
+ else if (m_sortProxy->sourceModel() == m_byNexusIdProxy) {
+ return GroupByMode::NEXUS_ID;
+ }
+ else {
+ return GroupByMode::NONE;
+ }
+}
+
ModListViewActions& ModListView::actions() const
{
return *m_actions;
diff --git a/src/modlistview.h b/src/modlistview.h
index dac96822..84e55e2b 100644
--- a/src/modlistview.h
+++ b/src/modlistview.h
@@ -36,6 +36,14 @@ public:
OnViewport = DropIndicatorPosition::OnViewport
};
+ // indiucate the groupby mode
+ enum class GroupByMode {
+ NONE,
+ SEPARATOR,
+ CATEGORY,
+ NEXUS_ID
+ };
+
public:
explicit ModListView(QWidget* parent = 0);
@@ -58,6 +66,10 @@ public:
//
int sortColumn() const;
+ // the current group mode
+ //
+ GroupByMode groupByMode() const;
+
// retrieve the actions from the view
//
ModListViewActions& actions() const;
@@ -173,6 +185,8 @@ private:
//
void updateGroupByProxy(int groupIndex);
+ // index in the groupby combo
+ //
enum GroupBy {
NONE = 0,
CATEGORY = 1,