79 lines
2.3 KiB
C++
79 lines
2.3 KiB
C++
#pragma once
|
|
#include "BoxEngine.h"
|
|
|
|
class JWizardObject : public QObject
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
JWizardObject(CWizardEngine* pEngine) : m_pEngine(pEngine) {}
|
|
|
|
/*Q_INVOKABLE QJSValue showMessageBox(const QString& Type, const QString& Text){
|
|
|
|
//Type = "info_yes_NO_cancel";
|
|
|
|
return "cancel";
|
|
}*/
|
|
|
|
Q_INVOKABLE QJSValue showForm(const QJSValue& form, const QString& Text = ""){
|
|
|
|
QMutexLocker Locker(&m_pEngine->m_Mutex);
|
|
if (!m_pEngine->TestRunning()) return QJSValue();
|
|
|
|
QVariantMap Data;
|
|
Data["type"] = "form";
|
|
Data["form"] = form.toVariant().toList();
|
|
Data["text"] = Text;
|
|
m_pEngine->m_Data = Data;
|
|
|
|
m_pEngine->SetState(CBoxEngine::eQuery);
|
|
if (!m_pEngine->WaitLocked()) return QJSValue();
|
|
|
|
return m_pEngine->m_pEngine->toScriptValue(m_pEngine->m_Data);
|
|
}
|
|
|
|
Q_INVOKABLE void showStatus(const QString& Text, bool bWait = false){
|
|
|
|
QMutexLocker Locker(&m_pEngine->m_Mutex);
|
|
if (!m_pEngine->TestRunning()) return;
|
|
|
|
m_pEngine->SetState(bWait ? CBoxEngine::eReady : CBoxEngine::eRunningAsync, Text);
|
|
if(bWait) m_pEngine->WaitLocked();
|
|
}
|
|
|
|
Q_INVOKABLE void setResult(bool bSuccess, const QString& Text = "") {
|
|
|
|
QMutexLocker Locker(&m_pEngine->m_Mutex);
|
|
if (!m_pEngine->TestRunning()) return;
|
|
|
|
if(bSuccess) m_pEngine->SetState(CBoxEngine::eSuccess);
|
|
else m_pEngine->SetState(CBoxEngine::eFailed, Text);
|
|
}
|
|
|
|
Q_INVOKABLE void reportAdd(const QString& name, const QString& value) {
|
|
m_pEngine->m_Report[name] = value;
|
|
}
|
|
|
|
Q_INVOKABLE void openSettings(const QString& page) {
|
|
|
|
QMutexLocker Locker(&m_pEngine->m_Mutex);
|
|
if (!m_pEngine->TestRunning()) return;
|
|
|
|
QMetaObject::invokeMethod(m_pEngine, "OpenSettings", Qt::QueuedConnection, Q_ARG(QString, page));
|
|
|
|
m_pEngine->WaitLocked();
|
|
}
|
|
|
|
Q_INVOKABLE void openOptions(const QString& box, const QString& page) {
|
|
|
|
QMutexLocker Locker(&m_pEngine->m_Mutex);
|
|
if (!m_pEngine->TestRunning()) return;
|
|
|
|
QMetaObject::invokeMethod(m_pEngine, "OpenOptions", Qt::QueuedConnection, Q_ARG(QString, box), Q_ARG(QString, page));
|
|
|
|
m_pEngine->WaitLocked();
|
|
}
|
|
|
|
protected:
|
|
CWizardEngine* m_pEngine;
|
|
};
|