diff options
author | Jan Dalheimer <jan@dalheimer.de> | 2014-02-16 12:08:39 +0100 |
---|---|---|
committer | Jan Dalheimer <jan@dalheimer.de> | 2014-02-16 12:08:39 +0100 |
commit | f26b7dedad70a46769b4c96122a7615b328a9fbb (patch) | |
tree | 7f1aaf20f9d916984878f52089f395445792b48d /logic/BaseExternalTool.cpp | |
parent | f5273ae2b1195bdbf433fbb0cf4ca47bd4c0e6b3 (diff) | |
download | MultiMC-f26b7dedad70a46769b4c96122a7615b328a9fbb.tar MultiMC-f26b7dedad70a46769b4c96122a7615b328a9fbb.tar.gz MultiMC-f26b7dedad70a46769b4c96122a7615b328a9fbb.tar.lz MultiMC-f26b7dedad70a46769b4c96122a7615b328a9fbb.tar.xz MultiMC-f26b7dedad70a46769b4c96122a7615b328a9fbb.zip |
Only show folders that really are worlds
Diffstat (limited to 'logic/BaseExternalTool.cpp')
-rw-r--r-- | logic/BaseExternalTool.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/logic/BaseExternalTool.cpp b/logic/BaseExternalTool.cpp index 6dffb4d6..081c3ef0 100644 --- a/logic/BaseExternalTool.cpp +++ b/logic/BaseExternalTool.cpp @@ -1,10 +1,16 @@ #include "BaseExternalTool.h" #include <QProcess> +#include <QDir> +#include <QInputDialog> + #ifdef Q_OS_WIN #include <windows.h> #endif +#include "BaseInstance.h" +#include "MultiMC.h" + BaseExternalTool::BaseExternalTool(BaseInstance *instance, QObject *parent) : QObject(parent), m_instance(instance) { @@ -24,6 +30,30 @@ qint64 BaseExternalTool::pid(QProcess *process) #endif } +QString BaseExternalTool::getSave() const +{ + QDir saves(m_instance->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(); +} + BaseDetachedTool::BaseDetachedTool(BaseInstance *instance, QObject *parent) : BaseExternalTool(instance, parent) |