summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2020-11-24 22:31:19 +0100
committerPetr Mrázek <peterix@gmail.com>2020-11-24 22:31:49 +0100
commit88d6b6ea3fb8b6f3711d4d829f78c367e497945a (patch)
tree2b59ee91b3b18cda41f48db21cf9fd4f507fdd7f
parent66c09999014fd4337baa6ae03f019cb77917d6df (diff)
downloadMultiMC-88d6b6ea3fb8b6f3711d4d829f78c367e497945a.tar
MultiMC-88d6b6ea3fb8b6f3711d4d829f78c367e497945a.tar.gz
MultiMC-88d6b6ea3fb8b6f3711d4d829f78c367e497945a.tar.lz
MultiMC-88d6b6ea3fb8b6f3711d4d829f78c367e497945a.tar.xz
MultiMC-88d6b6ea3fb8b6f3711d4d829f78c367e497945a.zip
GH-3427 add low effort datapack button to worlds
-rw-r--r--application/pages/instance/WorldListPage.cpp18
-rw-r--r--application/pages/instance/WorldListPage.h1
-rw-r--r--application/pages/instance/WorldListPage.ui9
3 files changed, 28 insertions, 0 deletions
diff --git a/application/pages/instance/WorldListPage.cpp b/application/pages/instance/WorldListPage.cpp
index 75741d22..4d737025 100644
--- a/application/pages/instance/WorldListPage.cpp
+++ b/application/pages/instance/WorldListPage.cpp
@@ -170,6 +170,24 @@ void WorldListPage::on_actionView_Folder_triggered()
DesktopServices::openDirectory(m_worlds->dir().absolutePath(), true);
}
+void WorldListPage::on_actionDatapacks_triggered()
+{
+ QModelIndex index = getSelectedWorld();
+
+ if (!index.isValid())
+ {
+ return;
+ }
+
+ if(!worldSafetyNagQuestion())
+ return;
+
+ auto fullPath = m_worlds->data(index, WorldList::FolderRole).toString();
+
+ DesktopServices::openDirectory(FS::PathCombine(fullPath, "datapacks"), true);
+}
+
+
void WorldListPage::on_actionReset_Icon_triggered()
{
auto proxiedIndex = getSelectedWorld();
diff --git a/application/pages/instance/WorldListPage.h b/application/pages/instance/WorldListPage.h
index 8ff14819..d19f4937 100644
--- a/application/pages/instance/WorldListPage.h
+++ b/application/pages/instance/WorldListPage.h
@@ -90,6 +90,7 @@ private slots:
void on_actionRename_triggered();
void on_actionRefresh_triggered();
void on_actionView_Folder_triggered();
+ void on_actionDatapacks_triggered();
void on_actionReset_Icon_triggered();
void worldChanged(const QModelIndex &current, const QModelIndex &previous);
void mceditState(LoggedProcess::State state);
diff --git a/application/pages/instance/WorldListPage.ui b/application/pages/instance/WorldListPage.ui
index 8d00f8f4..ed078d94 100644
--- a/application/pages/instance/WorldListPage.ui
+++ b/application/pages/instance/WorldListPage.ui
@@ -85,6 +85,7 @@
<addaction name="actionCopy"/>
<addaction name="actionRemove"/>
<addaction name="actionMCEdit"/>
+ <addaction name="actionDatapacks"/>
<addaction name="actionReset_Icon"/>
<addaction name="separator"/>
<addaction name="actionCopy_Seed"/>
@@ -139,6 +140,14 @@
<string>Remove world icon to make the game re-generate it on next load.</string>
</property>
</action>
+ <action name="actionDatapacks">
+ <property name="text">
+ <string>Datapacks</string>
+ </property>
+ <property name="toolTip">
+ <string>Manage datapacks inside the world.</string>
+ </property>
+ </action>
</widget>
<customwidgets>
<customwidget>