Add scriptarg to cli options
This commit is contained in:
@@ -185,7 +185,7 @@ void BatchProcessing::refreshPaths()
|
||||
for(int i=0; i<_ui->pathsList->count(); i++)
|
||||
paths.append(_ui->pathsList->item(i)->text());
|
||||
_paths = scanDirectories(paths);
|
||||
_engine->setParams("", _paths, _ui->outputPath->text());
|
||||
_engine->setParams("", _paths, _ui->outputPath->text(), QString());
|
||||
}
|
||||
|
||||
void BatchProcessing::addFiles()
|
||||
@@ -268,7 +268,7 @@ void BatchProcessing::runScript()
|
||||
else
|
||||
script = ":/scripts/" + script;
|
||||
|
||||
_engineThread->setParams(script, _paths, _ui->outputPath->text());
|
||||
_engineThread->setParams(script, _paths, _ui->outputPath->text(), QString());
|
||||
_engineThread->start();
|
||||
_ui->startButton->setEnabled(false);
|
||||
_ui->stopButton->setEnabled(true);
|
||||
@@ -282,7 +282,7 @@ void BatchProcessing::runScript()
|
||||
}
|
||||
}
|
||||
|
||||
void BatchProcessing::runScript(const QString &script, bool exit)
|
||||
void BatchProcessing::runScript(const QString &script, const QString &arg, bool exit)
|
||||
{
|
||||
_ui->log->clear();
|
||||
{
|
||||
@@ -295,7 +295,7 @@ void BatchProcessing::runScript(const QString &script, bool exit)
|
||||
QFileInfo outDir(_ui->outputPath->text());
|
||||
if(outDir.exists() && outDir.isWritable())
|
||||
{
|
||||
_engineThread->setParams(script, _paths, _ui->outputPath->text());
|
||||
_engineThread->setParams(script, _paths, _ui->outputPath->text(), arg);
|
||||
_engineThread->start();
|
||||
_ui->startButton->setEnabled(false);
|
||||
_ui->stopButton->setEnabled(true);
|
||||
|
||||
@@ -44,7 +44,7 @@ public slots:
|
||||
void browse();
|
||||
void openScriptDir();
|
||||
void runScript();
|
||||
void runScript(const QString &script, bool exit);
|
||||
void runScript(const QString &script, const QString &arg, bool exit);
|
||||
void stopScript();
|
||||
void scriptFinished();
|
||||
void newMessage(const QString &message, bool error);
|
||||
|
||||
+3
-1
@@ -37,6 +37,7 @@ int main(int argc, char *argv[])
|
||||
cmd.addOption({{"s", "size"}, "Size of the thumbnails in pixels (default: 128)", "size", "128"});
|
||||
cmd.addPositionalArgument("file", "Files or paths to open");
|
||||
cmd.addOption({"script", "Execute script", "script"});
|
||||
cmd.addOption({"scriptarg", "String that will be passed to script as variable \"scriparg\"", "arg"});
|
||||
cmd.addOption({"outdir", "Output dir for script (default: CWD)", "dir", "."});
|
||||
cmd.addOption({"noexit", "Do not exit application when script finish"});
|
||||
cmd.addHelpOption();
|
||||
@@ -132,11 +133,12 @@ int main(int argc, char *argv[])
|
||||
QStringList paths = cmd.positionalArguments();
|
||||
QString script = cmd.value("script");
|
||||
QString outdir = cmd.value("outdir");
|
||||
QString arg = cmd.value("scriptarg");
|
||||
if(!QDir::isAbsolutePath(script))script = QDir::currentPath() + "/" + script;
|
||||
if(!QDir::isAbsolutePath(outdir))outdir = QDir::currentPath() + "/" + outdir;
|
||||
bool noexit = cmd.isSet("noexit");
|
||||
if(!noexit)w.hide();
|
||||
w.runScript(script, outdir, paths, !noexit);
|
||||
w.runScript(script, outdir, paths, arg, !noexit);
|
||||
}
|
||||
|
||||
return a.exec();
|
||||
|
||||
+3
-3
@@ -860,14 +860,14 @@ void MainWindow::openFileManager()
|
||||
#endif
|
||||
}
|
||||
|
||||
void MainWindow::runScript(const QString &script, const QString &outdir, const QStringList &paths, bool exit)
|
||||
void MainWindow::runScript(const QString &script, const QString &outdir, const QStringList &paths, const QString &arg, bool exit)
|
||||
{
|
||||
BatchProcessing *batchProcessing = new BatchProcessing(m_database, this);
|
||||
batchProcessing->setOutputDir(outdir);
|
||||
batchProcessing->setPaths(paths);
|
||||
if(exit)batchProcessing->hide();
|
||||
QTimer::singleShot(500, [batchProcessing, script, exit](){
|
||||
batchProcessing->runScript(script, exit);
|
||||
QTimer::singleShot(500, [batchProcessing, script, exit, arg](){
|
||||
batchProcessing->runScript(script, arg, exit);
|
||||
batchProcessing->exec();
|
||||
delete batchProcessing;
|
||||
if(exit)QCoreApplication::exit();
|
||||
|
||||
+1
-1
@@ -71,7 +71,7 @@ public slots:
|
||||
void exportCSV();
|
||||
void checkNewVersion();
|
||||
void openFileManager();
|
||||
void runScript(const QString &script, const QString &outdir, const QStringList &paths, bool exit);
|
||||
void runScript(const QString &script, const QString &outdir, const QStringList &paths, const QString &arg, bool exit);
|
||||
};
|
||||
|
||||
#endif // MAINWINDOW_H
|
||||
|
||||
@@ -38,9 +38,11 @@ ScriptEngine::ScriptEngine(Database *database, BatchProcessing *parent)
|
||||
#endif // PLATESOLVER
|
||||
}
|
||||
|
||||
void ScriptEngine::setParams(const QString &scriptPath, const QList<QPair<QString, QString>> &paths, const QString &outputDir)
|
||||
void ScriptEngine::setParams(const QString &scriptPath, const QList<QPair<QString, QString>> &paths, const QString &outputDir, const QString &arg)
|
||||
{
|
||||
_scriptPath = scriptPath;
|
||||
if(!arg.isNull())
|
||||
_jsEngine->globalObject().setProperty("scriptarg", arg);
|
||||
setPaths(paths);
|
||||
_outputDir = outputDir + "/";
|
||||
}
|
||||
@@ -965,9 +967,9 @@ ScriptEngineThread::~ScriptEngineThread()
|
||||
if(_engine)_engine->interrupt();
|
||||
}
|
||||
|
||||
void ScriptEngineThread::setParams(const QString &scriptPath, const QList<QPair<QString, QString>> &paths, const QString &outputDir)
|
||||
void ScriptEngineThread::setParams(const QString &scriptPath, const QList<QPair<QString, QString>> &paths, const QString &outputDir, const QString &arg)
|
||||
{
|
||||
_engine->setParams(scriptPath, paths, outputDir);
|
||||
_engine->setParams(scriptPath, paths, outputDir, arg);
|
||||
}
|
||||
|
||||
void ScriptEngineThread::start()
|
||||
|
||||
+2
-2
@@ -33,7 +33,7 @@ class ScriptEngine : public QObject
|
||||
Solver *_solver = nullptr;
|
||||
public:
|
||||
explicit ScriptEngine(Database *database, BatchProcessing *parent = nullptr);
|
||||
void setParams(const QString &scriptPath, const QList<QPair<QString, QString>> &paths, const QString &outputDir);
|
||||
void setParams(const QString &scriptPath, const QList<QPair<QString, QString>> &paths, const QString &outputDir, const QString &arg);
|
||||
void reportError(const QString &message);
|
||||
const QString& outputDir() const;
|
||||
void interrupt();
|
||||
@@ -82,7 +82,7 @@ class ScriptEngineThread : public QObject
|
||||
public:
|
||||
ScriptEngineThread(Database *database, BatchProcessing *parent = nullptr);
|
||||
~ScriptEngineThread();
|
||||
void setParams(const QString &scriptPath, const QList<QPair<QString, QString>> &paths, const QString &outputDir);
|
||||
void setParams(const QString &scriptPath, const QList<QPair<QString, QString>> &paths, const QString &outputDir, const QString &arg);
|
||||
void start();
|
||||
void interrupt();
|
||||
signals:
|
||||
|
||||
Reference in New Issue
Block a user