2014-02-16 09:46:14 +00:00
|
|
|
#include "MCEditTool.h"
|
|
|
|
|
|
|
|
#include <QDir>
|
|
|
|
#include <QProcess>
|
2014-02-21 19:13:12 +00:00
|
|
|
#include <QUrl>
|
2014-02-16 09:46:14 +00:00
|
|
|
|
2015-02-09 00:51:14 +00:00
|
|
|
#include "BaseInstance.h"
|
|
|
|
#include "minecraft/MinecraftInstance.h"
|
2023-08-14 17:16:53 +01:00
|
|
|
#include "settings/SettingsObject.h"
|
2014-02-16 09:46:14 +00:00
|
|
|
|
2016-11-02 01:33:55 +00:00
|
|
|
MCEditTool::MCEditTool(SettingsObjectPtr settings)
|
2014-02-16 09:46:14 +00:00
|
|
|
{
|
2016-11-02 01:33:55 +00:00
|
|
|
settings->registerSetting("MCEditPath");
|
|
|
|
m_settings = settings;
|
|
|
|
}
|
|
|
|
|
|
|
|
void MCEditTool::setPath(QString& path)
|
|
|
|
{
|
|
|
|
m_settings->set("MCEditPath", path);
|
2014-02-16 09:46:14 +00:00
|
|
|
}
|
|
|
|
|
2016-11-02 01:33:55 +00:00
|
|
|
QString MCEditTool::path() const
|
2015-01-27 21:31:07 +00:00
|
|
|
{
|
2016-11-02 01:33:55 +00:00
|
|
|
return m_settings->get("MCEditPath").toString();
|
|
|
|
}
|
|
|
|
|
|
|
|
bool MCEditTool::check(const QString& toolPath, QString& error)
|
|
|
|
{
|
2023-08-14 17:16:53 +01:00
|
|
|
if (toolPath.isEmpty()) {
|
2016-11-02 01:33:55 +00:00
|
|
|
error = QObject::tr("Path is empty");
|
|
|
|
return false;
|
2015-01-27 21:31:07 +00:00
|
|
|
}
|
2016-11-02 01:33:55 +00:00
|
|
|
const QDir dir(toolPath);
|
2023-08-14 17:16:53 +01:00
|
|
|
if (!dir.exists()) {
|
2016-11-02 01:33:55 +00:00
|
|
|
error = QObject::tr("Path does not exist");
|
|
|
|
return false;
|
2015-01-27 21:31:07 +00:00
|
|
|
}
|
2023-08-14 17:16:53 +01:00
|
|
|
if (!dir.exists("mcedit.sh") && !dir.exists("mcedit.py") && !dir.exists("mcedit.exe") && !dir.exists("Contents") &&
|
|
|
|
!dir.exists("mcedit2.exe")) {
|
2016-11-02 01:33:55 +00:00
|
|
|
error = QObject::tr("Path does not seem to be a MCEdit path");
|
|
|
|
return false;
|
2015-01-27 21:31:07 +00:00
|
|
|
}
|
2016-11-02 01:33:55 +00:00
|
|
|
return true;
|
2015-01-27 21:31:07 +00:00
|
|
|
}
|
|
|
|
|
2016-11-02 01:33:55 +00:00
|
|
|
QString MCEditTool::getProgramPath()
|
2014-02-16 09:46:14 +00:00
|
|
|
{
|
2014-02-21 19:13:12 +00:00
|
|
|
#ifdef Q_OS_OSX
|
2016-11-02 01:33:55 +00:00
|
|
|
return path();
|
2014-02-21 19:13:12 +00:00
|
|
|
#else
|
2016-11-02 01:33:55 +00:00
|
|
|
const QString mceditPath = path();
|
2014-02-16 10:49:55 +00:00
|
|
|
QDir mceditDir(mceditPath);
|
2022-06-01 17:02:42 +01:00
|
|
|
#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) || defined(Q_OS_OPENBSD)
|
2023-08-14 17:16:53 +01:00
|
|
|
if (mceditDir.exists("mcedit.sh")) {
|
2016-11-02 01:33:55 +00:00
|
|
|
return mceditDir.absoluteFilePath("mcedit.sh");
|
2023-08-14 17:16:53 +01:00
|
|
|
} else if (mceditDir.exists("mcedit.py")) {
|
2016-11-02 01:33:55 +00:00
|
|
|
return mceditDir.absoluteFilePath("mcedit.py");
|
2015-06-10 22:51:05 +01:00
|
|
|
}
|
2016-11-02 01:33:55 +00:00
|
|
|
return QString();
|
|
|
|
#elif defined(Q_OS_WIN32)
|
2023-08-14 17:16:53 +01:00
|
|
|
if (mceditDir.exists("mcedit.exe")) {
|
2016-11-02 01:33:55 +00:00
|
|
|
return mceditDir.absoluteFilePath("mcedit.exe");
|
2023-08-14 17:16:53 +01:00
|
|
|
} else if (mceditDir.exists("mcedit2.exe")) {
|
2016-11-02 01:33:55 +00:00
|
|
|
return mceditDir.absoluteFilePath("mcedit2.exe");
|
2015-04-01 21:43:18 +01:00
|
|
|
}
|
2016-11-02 01:33:55 +00:00
|
|
|
return QString();
|
|
|
|
#endif
|
2014-02-21 19:13:12 +00:00
|
|
|
#endif
|
2014-02-16 09:46:14 +00:00
|
|
|
}
|