Fix some bugs in scripting
This commit is contained in:
+4
-1
@@ -36,7 +36,10 @@ QList<QPair<QString, QString>> scanDirectories(const QStringList &paths)
|
|||||||
}
|
}
|
||||||
else if(info.isFile())
|
else if(info.isFile())
|
||||||
{
|
{
|
||||||
files.append({path, root});
|
if(path == root)
|
||||||
|
files.append({path, info.absolutePath()});
|
||||||
|
else
|
||||||
|
files.append({path, root});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
+15
-7
@@ -129,16 +129,23 @@ bool ScriptEngine::convert(File *file, QString &outpath, const QString &format,
|
|||||||
else
|
else
|
||||||
path = dir.absoluteFilePath(outpath);
|
path = dir.absoluteFilePath(outpath);
|
||||||
|
|
||||||
|
QString f = format.toLower();
|
||||||
|
if(f != "xisf" && f != "fits" && f != "png" && f != "bmp" && f != "jpg")
|
||||||
|
{
|
||||||
|
logError("Output format must be one of xisf fits jpg png bmp");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
info.setFile(path);
|
info.setFile(path);
|
||||||
outpath = info.absolutePath() + "/" + info.completeBaseName() + "." + format.toLower();
|
outpath = info.absolutePath() + "/" + info.completeBaseName() + "." + f;
|
||||||
if(async)
|
if(async)
|
||||||
{
|
{
|
||||||
_semaphore.acquire();
|
_semaphore.acquire();
|
||||||
_pool->start(new ConvertRunable(file->absoluteFilePath(), outpath, format, params, &_semaphore));
|
_pool->start(new ConvertRunable(file->absoluteFilePath(), outpath, f, params, &_semaphore));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ConvertRunable crun(file->absoluteFilePath(), outpath, format, params, nullptr);
|
ConvertRunable crun(file->absoluteFilePath(), outpath, f, params, nullptr);
|
||||||
crun.run();
|
crun.run();
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@@ -192,11 +199,11 @@ void File::loadFitsKeywords()
|
|||||||
{
|
{
|
||||||
_fitsKeywordsLoaded = true;
|
_fitsKeywordsLoaded = true;
|
||||||
ImageInfoData info;
|
ImageInfoData info;
|
||||||
if(suffix() == "xisf")
|
if(suffix().toLower() == "xisf")
|
||||||
{
|
{
|
||||||
readXISFHeader(_path, info);
|
readXISFHeader(_path, info);
|
||||||
}
|
}
|
||||||
else if(suffix() == "fits")
|
else if(suffix().toLower() == "fits" || suffix().toLower() == "fit")
|
||||||
{
|
{
|
||||||
readFITSHeader(_path, info);
|
readFITSHeader(_path, info);
|
||||||
}
|
}
|
||||||
@@ -343,7 +350,7 @@ bool File::modifyFITSRecords(const FITSRecordModify *modify)
|
|||||||
_fitsKeywordsLoaded = false;
|
_fitsKeywordsLoaded = false;
|
||||||
_fitsKeywords.clear();
|
_fitsKeywords.clear();
|
||||||
|
|
||||||
if(QRegularExpression("fits", QRegularExpression::CaseInsensitiveOption).match(suffix()).hasMatch())
|
if(QRegularExpression("fits?", QRegularExpression::CaseInsensitiveOption).match(suffix()).hasMatch())
|
||||||
{
|
{
|
||||||
fitsfile *file;
|
fitsfile *file;
|
||||||
int status = 0;
|
int status = 0;
|
||||||
@@ -371,6 +378,7 @@ bool File::modifyFITSRecords(const FITSRecordModify *modify)
|
|||||||
|
|
||||||
for(auto &remove : modify->_remove)
|
for(auto &remove : modify->_remove)
|
||||||
{
|
{
|
||||||
|
int status = 0;//we ignore errors from here
|
||||||
fits_delete_key(file, remove.toLatin1().data(), &status);
|
fits_delete_key(file, remove.toLatin1().data(), &status);
|
||||||
}
|
}
|
||||||
for(auto &record : modify->_update)
|
for(auto &record : modify->_update)
|
||||||
@@ -412,7 +420,7 @@ bool File::modifyFITSRecords(const FITSRecordModify *modify)
|
|||||||
{
|
{
|
||||||
char error[100];
|
char error[100];
|
||||||
fits_get_errstatus(status, error);
|
fits_get_errstatus(status, error);
|
||||||
_engine->newMessage(QString("Error when updating KEY {} {}").arg(record.key).arg(error), true);
|
_engine->newMessage(QString("Error when updating KEY %1 %2").arg(record.key).arg(error), true);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user