78 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #include "MCEditTool.h"
 | |
| 
 | |
| #include <QDir>
 | |
| #include <QProcess>
 | |
| #include <QUrl>
 | |
| 
 | |
| #include "settings/SettingsObject.h"
 | |
| #include "BaseInstance.h"
 | |
| #include "minecraft/MinecraftInstance.h"
 | |
| 
 | |
| MCEditTool::MCEditTool(SettingsObjectPtr settings)
 | |
| {
 | |
|     settings->registerSetting("MCEditPath");
 | |
|     m_settings = settings;
 | |
| }
 | |
| 
 | |
| void MCEditTool::setPath(QString& path)
 | |
| {
 | |
|     m_settings->set("MCEditPath", path);
 | |
| }
 | |
| 
 | |
| QString MCEditTool::path() const
 | |
| {
 | |
|     return m_settings->get("MCEditPath").toString();
 | |
| }
 | |
| 
 | |
| bool MCEditTool::check(const QString& toolPath, QString& error)
 | |
| {
 | |
|     if (toolPath.isEmpty())
 | |
|     {
 | |
|         error = QObject::tr("Path is empty");
 | |
|         return false;
 | |
|     }
 | |
|     const QDir dir(toolPath);
 | |
|     if (!dir.exists())
 | |
|     {
 | |
|         error = QObject::tr("Path does not exist");
 | |
|         return false;
 | |
|     }
 | |
|     if (!dir.exists("mcedit.sh") && !dir.exists("mcedit.py") && !dir.exists("mcedit.exe") && !dir.exists("Contents") && !dir.exists("mcedit2.exe"))
 | |
|     {
 | |
|         error = QObject::tr("Path does not seem to be a MCEdit path");
 | |
|         return false;
 | |
|     }
 | |
|     return true;
 | |
| }
 | |
| 
 | |
| QString MCEditTool::getProgramPath()
 | |
| {
 | |
| #ifdef Q_OS_OSX
 | |
|     return path();
 | |
| #else
 | |
|     const QString mceditPath = path();
 | |
|     QDir mceditDir(mceditPath);
 | |
| #if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD)
 | |
|     if (mceditDir.exists("mcedit.sh"))
 | |
|     {
 | |
|         return mceditDir.absoluteFilePath("mcedit.sh");
 | |
|     }
 | |
|     else if (mceditDir.exists("mcedit.py"))
 | |
|     {
 | |
|         return mceditDir.absoluteFilePath("mcedit.py");
 | |
|     }
 | |
|     return QString();
 | |
| #elif defined(Q_OS_WIN32)
 | |
|     if (mceditDir.exists("mcedit.exe"))
 | |
|     {
 | |
|         return mceditDir.absoluteFilePath("mcedit.exe");
 | |
|     }
 | |
|     else if (mceditDir.exists("mcedit2.exe"))
 | |
|     {
 | |
|         return mceditDir.absoluteFilePath("mcedit2.exe");
 | |
|     }
 | |
|     return QString();
 | |
| #endif
 | |
| #endif
 | |
| }
 |