bool ProjectFile::LinkFile(QString oldFile, QString newDir)
{
	QString newLink = newDir + QDir::separator() + QFileInfo(oldFile).fileName();

#ifdef Q_OS_WIN32
	newLinkName.append(".lnk");
#endif

	if (CheckForExistingFile(newLink))
	{
		if (WarnFileExists(newLink))
		{
			RemoveFile(newLink);
		} else {
			return false;
		}
	}

	QFile file (oldFile);
	if (file.exists())
	{
		return file.link(newLink);
	}
	return false;
}
bool FullDomainRunner::CheckForRequiredFiles()
{
	QFile adcExe (adcircExecutableLocation);
	adcircExecutableName = QFileInfo(adcExe).fileName();

	/* Check for fort.14, fort.15, fort.015, ln to adcirc */
	bool fort14 = CheckForFile("fort.14");
	bool fort15 = CheckForFile("fort.15");
	bool fort015 = CheckForFile("fort.015");
	bool adcirc = CheckForFile(adcircExecutableName);

//	std::cout << fort14 << fort15 << fort015 << adcirc << adcExe.exists() << std::endl;

	if (adcExe.exists() && !adcirc)
	{
#ifdef Q_OS_WIN32
		adcirc = adcExe.link(fullDomainPath + QDir::separator() + exeName + ".lnk");
#else
		adcirc = adcExe.link(fullDomainPath + QDir::separator() + adcircExecutableName);
#endif
	}

	if (!adcirc || !fort14 || !fort15 || !fort015)
	{
		QString message ("Error - The following files are missing:\n");
		message.append(adcirc ? "" : QString(fullDomainPath) + QDir::separator() + adcircExecutableName + "\n");
		message.append(fort14 ? "" : QString(fullDomainPath) + QDir::separator() + "fort.14\n");
		message.append(fort15 ? "" : QString(fullDomainPath) + QDir::separator() + "fort.15\n");
		message.append(fort015 ? "" : QString(fullDomainPath) + QDir::separator() + "fort.015");
		QMessageBox dlg;
		dlg.setWindowTitle("Run Full Domain");
		dlg.setText(message);
		dlg.setIcon(QMessageBox::Critical);
		dlg.setStandardButtons(QMessageBox::Ok);
		dlg.exec();
		return false;
	}

	return true;
}