New core.question script method

This commit is contained in:
2025-04-28 17:04:45 +02:00
parent 53472d807c
commit 3feee0256c
4 changed files with 48 additions and 0 deletions
+39
View File
@@ -272,6 +272,45 @@ QJSValue BatchProcessing::getItem(const QStringList &items, const QString &label
return ok ? ret : QJSValue(); return ok ? ret : QJSValue();
} }
QJSValue BatchProcessing::question(const QString &question, const QStringList &buttons, const QString &title)
{
QMessageBox::StandardButtons standardButtons = QMessageBox::NoButton;
if(buttons.contains("ok"))standardButtons |= QMessageBox::Ok;
if(buttons.contains("yes"))standardButtons |= QMessageBox::Yes;
if(buttons.contains("no"))standardButtons |= QMessageBox::No;
if(buttons.contains("yesall"))standardButtons |= QMessageBox::YesToAll;
if(buttons.contains("noall"))standardButtons |= QMessageBox::NoToAll;
if(buttons.contains("abort"))standardButtons |= QMessageBox::Abort;
if(buttons.contains("retry"))standardButtons |= QMessageBox::Retry;
if(buttons.contains("ignore"))standardButtons |= QMessageBox::Ignore;
if(buttons.contains("cancel"))standardButtons |= QMessageBox::Cancel;
if(buttons.contains("discard"))standardButtons |= QMessageBox::Discard;
if(buttons.contains("apply"))standardButtons |= QMessageBox::Apply;
if(buttons.contains("reset"))standardButtons |= QMessageBox::Reset;
if(standardButtons == QMessageBox::NoButton)standardButtons = QMessageBox::Ok;
QMessageBox::StandardButton button = QMessageBox::question(this, title, question, standardButtons);
QJSValue ret;
switch(button)
{
default:
case QMessageBox::Ok: ret = "ok"; break;
case QMessageBox::Yes: ret = "yes"; break;
case QMessageBox::No: ret = "no"; break;
case QMessageBox::YesToAll: ret = "yesall"; break;
case QMessageBox::NoToAll: ret = "noall"; break;
case QMessageBox::Abort: ret = "abort"; break;
case QMessageBox::Retry: ret = "retry"; break;
case QMessageBox::Ignore: ret = "ignore"; break;
case QMessageBox::Cancel: ret = "cancel"; break;
case QMessageBox::Discard: ret = "discard"; break;
case QMessageBox::Apply: ret = "apply"; break;
case QMessageBox::Reset: ret = "reset"; break;
}
return ret;
}
void BatchProcessing::plot(const QVariant &graph) void BatchProcessing::plot(const QVariant &graph)
{ {
ChartGraph *chart = new ChartGraph(this); ChartGraph *chart = new ChartGraph(this);
+1
View File
@@ -41,6 +41,7 @@ public slots:
QJSValue getInt(const QString &label, int value); QJSValue getInt(const QString &label, int value);
QJSValue getFloat(const QString &label, double value, int decimals); QJSValue getFloat(const QString &label, double value, int decimals);
QJSValue getItem(const QStringList &items, const QString &label, int current); QJSValue getItem(const QStringList &items, const QString &label, int current);
QJSValue question(const QString &question, const QStringList &buttons, const QString &title = "");
void plot(const QVariant &graph); void plot(const QVariant &graph);
}; };
+7
View File
@@ -136,6 +136,13 @@ QJSValue ScriptEngine::getItem(const QStringList &items, const QString &label, i
return ret; return ret;
} }
QJSValue ScriptEngine::question(const QString &question, const QStringList &buttons, const QString &title) const
{
QJSValue ret;
QMetaObject::invokeMethod(_parent, "question", Qt::BlockingQueuedConnection, Q_RETURN_ARG(QJSValue, ret), Q_ARG(QString, question), Q_ARG(QStringList, buttons), Q_ARG(QString, title));
return ret;
}
void ScriptEngine::plot(const QJSValue &graph) void ScriptEngine::plot(const QJSValue &graph)
{ {
QVariant graphV = graph.toVariant(QJSValue::ConvertJSObjects); QVariant graphV = graph.toVariant(QJSValue::ConvertJSObjects);
+1
View File
@@ -47,6 +47,7 @@ public:
Q_INVOKABLE QJSValue getInt(const QString &label = QString(), int value = 0); Q_INVOKABLE QJSValue getInt(const QString &label = QString(), int value = 0);
Q_INVOKABLE QJSValue getFloat(const QString &label = QString(), double value = 0, int decimals = 3) const; Q_INVOKABLE QJSValue getFloat(const QString &label = QString(), double value = 0, int decimals = 3) const;
Q_INVOKABLE QJSValue getItem(const QStringList &items, const QString &label = "", int current = 0) const; Q_INVOKABLE QJSValue getItem(const QStringList &items, const QString &label = "", int current = 0) const;
Q_INVOKABLE QJSValue question(const QString &question, const QStringList &buttons = {"ok"}, const QString &title = "") const;
Q_INVOKABLE void plot(const QJSValue &pointsArray); Q_INVOKABLE void plot(const QJSValue &pointsArray);
Q_INVOKABLE QJSValue openFile(const QString &fileName, const QString &mode = "r"); Q_INVOKABLE QJSValue openFile(const QString &fileName, const QString &mode = "r");
bool convert(File *file, QString &outpath, const QString &format, const QVariantMap &params, bool async); bool convert(File *file, QString &outpath, const QString &format, const QVariantMap &params, bool async);