Add getInt getString getFloat methods to scripting
This commit is contained in:
+20
-3
@@ -2,6 +2,7 @@
|
||||
#include <QDir>
|
||||
#include <QFileInfo>
|
||||
#include <QDebug>
|
||||
#include <QInputDialog>
|
||||
#include "loadrunable.h"
|
||||
#include "rawimage.h"
|
||||
#include "loadrunable.h"
|
||||
@@ -11,9 +12,10 @@
|
||||
namespace Script
|
||||
{
|
||||
|
||||
ScriptEngine::ScriptEngine(QObject *parent) : QObject(parent)
|
||||
ScriptEngine::ScriptEngine(QDialog *parent) : QObject(parent)
|
||||
, _jsEngine(new QJSEngine(this))
|
||||
, _database(new Database(this))
|
||||
, _parent(parent)
|
||||
, _pool(new QThreadPool(this))
|
||||
{
|
||||
QJSValue core = _jsEngine->newQObject(this);
|
||||
@@ -87,6 +89,21 @@ void ScriptEngine::sync()
|
||||
_pool->waitForDone();
|
||||
}
|
||||
|
||||
QString ScriptEngine::getString(const QString &label, const QString &text) const
|
||||
{
|
||||
return QInputDialog::getText(_parent, tr("Enter text"), label, QLineEdit::Normal, text);
|
||||
}
|
||||
|
||||
int ScriptEngine::getInt(const QString &label, int value)
|
||||
{
|
||||
return QInputDialog::getInt(_parent, tr("Enter integer number"), label, value);
|
||||
}
|
||||
|
||||
double ScriptEngine::getFloat(const QString &label, double value, int decimals) const
|
||||
{
|
||||
return QInputDialog::getDouble(_parent, tr("Enter float number"), label, value, INT_MIN, INT_MAX, decimals);
|
||||
}
|
||||
|
||||
bool ScriptEngine::convert(File *file, QString &outpath, const QString &format, const QVariantMap ¶ms, bool async)
|
||||
{
|
||||
QString path;
|
||||
@@ -535,11 +552,11 @@ QJSValue File::stats()
|
||||
return _stats;
|
||||
}
|
||||
|
||||
ScriptEngineThread::ScriptEngineThread(QObject *parent) : QObject(parent)
|
||||
ScriptEngineThread::ScriptEngineThread(QDialog *parent) : QObject(parent)
|
||||
{
|
||||
_thread = new QThread();
|
||||
_thread->setObjectName("ScriptEngine");
|
||||
_engine = new ScriptEngine;
|
||||
_engine = new ScriptEngine(parent);
|
||||
_engine->moveToThread(_thread);
|
||||
connect(_engine, &ScriptEngine::finished, _thread, &QThread::quit);
|
||||
connect(_engine, &ScriptEngine::newMessage, this, &ScriptEngineThread::newMessage);
|
||||
|
||||
+6
-2
@@ -20,13 +20,14 @@ class ScriptEngine : public QObject
|
||||
Q_OBJECT
|
||||
QJSEngine *_jsEngine;
|
||||
Database *_database;
|
||||
QDialog *_parent;
|
||||
QThreadPool *_pool;
|
||||
QSemaphore _semaphore;
|
||||
QString _scriptPath;
|
||||
QString _outputDir;
|
||||
QList<QPair<QString, QString>> _paths;
|
||||
public:
|
||||
explicit ScriptEngine(QObject *parent = nullptr);
|
||||
explicit ScriptEngine(QDialog *parent = nullptr);
|
||||
void setParams(const QString &scriptPath, const QList<QPair<QString, QString>> &paths, const QString &outputDir);
|
||||
void reportError(const QString &message);
|
||||
const QString& outputDir() const;
|
||||
@@ -38,6 +39,9 @@ public:
|
||||
Q_INVOKABLE bool isMarked(const File *file) const;
|
||||
Q_INVOKABLE void setMaxThread(int maxthread);
|
||||
Q_INVOKABLE void sync();
|
||||
Q_INVOKABLE QString getString(const QString &label = QString(), const QString &text = QString()) const;
|
||||
Q_INVOKABLE int getInt(const QString &label = QString(), int value = 0);
|
||||
Q_INVOKABLE double getFloat(const QString &label = QString(), double value = 0, int decimals = 3) const;
|
||||
bool convert(File *file, QString &outpath, const QString &format, const QVariantMap ¶ms, bool async);
|
||||
QJSValue newObject();
|
||||
QJSValue newArray(uint size);
|
||||
@@ -54,7 +58,7 @@ class ScriptEngineThread : public QObject
|
||||
QThread *_thread;
|
||||
ScriptEngine *_engine;
|
||||
public:
|
||||
ScriptEngineThread(QObject *parent = nullptr);
|
||||
ScriptEngineThread(QDialog *parent = nullptr);
|
||||
~ScriptEngineThread();
|
||||
void setParams(const QString &scriptPath, const QList<QPair<QString, QString>> &paths, const QString &outputDir);
|
||||
void start();
|
||||
|
||||
Reference in New Issue
Block a user