From 791221e923586bb717396ecf18bd13e57034df99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Tue, 27 Jan 2015 22:31:07 +0100 Subject: NOISSUE Refactors and moving of things --- logic/tools/MCEditTool.cpp | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'logic/tools/MCEditTool.cpp') diff --git a/logic/tools/MCEditTool.cpp b/logic/tools/MCEditTool.cpp index e44ce784..c918d5d0 100644 --- a/logic/tools/MCEditTool.cpp +++ b/logic/tools/MCEditTool.cpp @@ -4,9 +4,12 @@ #include #include #include +// FIXME: mixing logic and UI!!!! +#include #include "logic/settings/SettingsObject.h" #include "logic/BaseInstance.h" +#include "logic/minecraft/MinecraftInstance.h" #include "MultiMC.h" MCEditTool::MCEditTool(InstancePtr instance, QObject *parent) @@ -14,6 +17,36 @@ MCEditTool::MCEditTool(InstancePtr instance, QObject *parent) { } +QString MCEditTool::getSave() const +{ + // FIXME: mixing logic and UI!!!! + auto mcInstance = std::dynamic_pointer_cast(m_instance); + if(!mcInstance) + { + return QString(); + } + QDir saves(mcInstance->minecraftRoot() + "/saves"); + QStringList worlds = saves.entryList(QDir::Dirs | QDir::NoDotAndDotDot); + QMutableListIterator it(worlds); + while (it.hasNext()) + { + it.next(); + if (!QDir(saves.absoluteFilePath(it.value())).exists("level.dat")) + { + it.remove(); + } + } + bool ok = true; + const QString save = QInputDialog::getItem( + MMC->activeWindow(), tr("MCEdit"), tr("Choose which world to open:"), + worlds, 0, false, &ok); + if (ok) + { + return saves.absoluteFilePath(save); + } + return QString(); +} + void MCEditTool::runImpl() { const QString mceditPath = MMC->settings()->get("MCEditPath").toString(); -- cgit v1.2.3