Additional work on batch processing

This commit is contained in:
2024-01-08 15:44:05 +01:00
parent 67355a82b7
commit cd6a64a98b
5 changed files with 62 additions and 10 deletions
+44 -5
View File
@@ -20,7 +20,7 @@ void ScriptEngine::setParams(const QString &scriptPath, const QStringList &paths
{
_scriptPath = scriptPath;
_paths = paths;
_outputDir = outputDir;
_outputDir = outputDir + "/";
}
void ScriptEngine::reportError(const QString &message)
@@ -38,9 +38,14 @@ void ScriptEngine::interrupt()
_jsEngine->setInterrupted(true);
}
void ScriptEngine::logError(const QString &message)
{
emit newMessage(message, true);
}
void ScriptEngine::log(const QString &message)
{
emit newMessage(message);
emit newMessage(message, false);
}
void ScriptEngine::mark(File *file)
@@ -79,7 +84,7 @@ void ScriptEngine::run()
{
QString error = result.property("name").toString() + " on line " + result.property("lineNumber").toString() + " : " + result.toString();
error += "\n" + result.property("stack").toString();
emit newMessage(error);
emit newMessage(error, true);
}
emit finished();
@@ -108,6 +113,26 @@ void File::loadFitsKeywords()
}
}
bool File::mkpath(const QString &path) const
{
QFileInfo info(path);
if(!info.isRelative())
{
_engine->logError("Destination path is not relative");
return false;
}
QDir dir(_engine->outputDir());
if(dir.mkpath(info.path()))
{
return true;
}
else
{
_engine->logError("Failed to create dir " + info.path());
return false;
}
}
File::File(const QString &path, Script::ScriptEngine *engine) :
_engine(engine),
_path(path),
@@ -173,12 +198,26 @@ bool File::isMarked() const
bool File::copy(const QString &newpath) const
{
return QFile::copy(_path, _engine->outputDir() + newpath);
if(mkpath(newpath))
{
if(QFile::copy(_path, _engine->outputDir() + newpath))
return true;
_engine->logError("Failed copy to " + newpath);
return false;
}
return false;
}
bool File::move(const QString &newpath) const
{
return QFile::rename(_path, _engine->outputDir() + newpath);
if(mkpath(newpath))
{
if(QFile::rename(_path, _engine->outputDir() + newpath))
return true;
_engine->logError("Failed move to " + newpath);
return false;
}
return false;
}
bool File::convertTo(const QString &format)