diff options
author | Petr Mrázek <peterix@gmail.com> | 2015-01-27 22:31:07 +0100 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2015-04-02 00:14:06 +0200 |
commit | 791221e923586bb717396ecf18bd13e57034df99 (patch) | |
tree | 9f608af07375b38626c8964671620477158341ba /logic/tools/MCEditTool.cpp | |
parent | 593111b14463e9d5d08256061b981b5ab1cfb710 (diff) | |
download | MultiMC-791221e923586bb717396ecf18bd13e57034df99.tar MultiMC-791221e923586bb717396ecf18bd13e57034df99.tar.gz MultiMC-791221e923586bb717396ecf18bd13e57034df99.tar.lz MultiMC-791221e923586bb717396ecf18bd13e57034df99.tar.xz MultiMC-791221e923586bb717396ecf18bd13e57034df99.zip |
NOISSUE Refactors and moving of things
Diffstat (limited to 'logic/tools/MCEditTool.cpp')
-rw-r--r-- | logic/tools/MCEditTool.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
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 <QProcess> #include <QDesktopServices> #include <QUrl> +// FIXME: mixing logic and UI!!!! +#include <QInputDialog> #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<MinecraftInstance>(m_instance); + if(!mcInstance) + { + return QString(); + } + QDir saves(mcInstance->minecraftRoot() + "/saves"); + QStringList worlds = saves.entryList(QDir::Dirs | QDir::NoDotAndDotDot); + QMutableListIterator<QString> 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(); |