summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--api/logic/minecraft/ModList.cpp15
-rw-r--r--api/logic/minecraft/ModList.h3
-rw-r--r--application/pages/ModFolderPage.cpp12
-rw-r--r--application/pages/ModFolderPage.h2
-rw-r--r--application/pages/ModFolderPage.ui18
5 files changed, 49 insertions, 1 deletions
diff --git a/api/logic/minecraft/ModList.cpp b/api/logic/minecraft/ModList.cpp
index b9c7d9ba..d1ad75ab 100644
--- a/api/logic/minecraft/ModList.cpp
+++ b/api/logic/minecraft/ModList.cpp
@@ -175,6 +175,21 @@ bool ModList::installMod(const QString &filename)
return false;
}
+bool ModList::enableMods(const QModelIndexList& indexes, bool enable)
+{
+ if(indexes.isEmpty())
+ return true;
+
+ for (auto i: indexes)
+ {
+ Mod &m = mods[i.row()];
+ m.enable(enable);
+ emit dataChanged(i, i);
+ }
+ emit changed();
+ return true;
+}
+
bool ModList::deleteMods(const QModelIndexList& indexes)
{
if(indexes.isEmpty())
diff --git a/api/logic/minecraft/ModList.h b/api/logic/minecraft/ModList.h
index 14b102e1..e7267389 100644
--- a/api/logic/minecraft/ModList.h
+++ b/api/logic/minecraft/ModList.h
@@ -86,6 +86,9 @@ public:
/// Deletes all the selected mods
virtual bool deleteMods(const QModelIndexList &indexes);
+ /// Enable or disable listed mods
+ virtual bool enableMods(const QModelIndexList &indexes, bool enable = true);
+
void startWatching();
void stopWatching();
diff --git a/application/pages/ModFolderPage.cpp b/application/pages/ModFolderPage.cpp
index a1d02ccf..6b657ef6 100644
--- a/application/pages/ModFolderPage.cpp
+++ b/application/pages/ModFolderPage.cpp
@@ -165,6 +165,18 @@ void ModFolderPage::on_addModBtn_clicked()
}
}
+void ModFolderPage::on_enableModBtn_clicked()
+{
+ auto selection = m_filterModel->mapSelectionToSource(ui->modTreeView->selectionModel()->selection());
+ m_mods->enableMods(selection.indexes(), true);
+}
+
+void ModFolderPage::on_disableModBtn_clicked()
+{
+ auto selection = m_filterModel->mapSelectionToSource(ui->modTreeView->selectionModel()->selection());
+ m_mods->enableMods(selection.indexes(), false);
+}
+
void ModFolderPage::on_rmModBtn_clicked()
{
auto selection = m_filterModel->mapSelectionToSource(ui->modTreeView->selectionModel()->selection());
diff --git a/application/pages/ModFolderPage.h b/application/pages/ModFolderPage.h
index 4102a1bb..1c2710f6 100644
--- a/application/pages/ModFolderPage.h
+++ b/application/pages/ModFolderPage.h
@@ -90,6 +90,8 @@ slots:
void on_addModBtn_clicked();
void on_rmModBtn_clicked();
void on_viewModBtn_clicked();
+ void on_enableModBtn_clicked();
+ void on_disableModBtn_clicked();
};
class CoreModFolderPage : public ModFolderPage
diff --git a/application/pages/ModFolderPage.ui b/application/pages/ModFolderPage.ui
index 707987c7..4c79e1fa 100644
--- a/application/pages/ModFolderPage.ui
+++ b/application/pages/ModFolderPage.ui
@@ -56,6 +56,20 @@
</widget>
</item>
<item>
+ <widget class="QPushButton" name="enableModBtn">
+ <property name="text">
+ <string>Enable</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="disableModBtn">
+ <property name="text">
+ <string>Disable</string>
+ </property>
+ </widget>
+ </item>
+ <item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
@@ -143,10 +157,12 @@
<tabstops>
<tabstop>tabWidget</tabstop>
<tabstop>modTreeView</tabstop>
+ <tabstop>filterEdit</tabstop>
<tabstop>addModBtn</tabstop>
<tabstop>rmModBtn</tabstop>
+ <tabstop>enableModBtn</tabstop>
+ <tabstop>disableModBtn</tabstop>
<tabstop>viewModBtn</tabstop>
- <tabstop>filterEdit</tabstop>
</tabstops>
<resources/>
<connections/>