"";
bool ok = false;
- if ( db->init( rcfile ) ) {
- md = &db->cfg;
- code = project.interpreter();
-// code->setErrorMode(QSInterpreter::Notify);
- code->setErrorMode(QSInterpreter::Nothing);
- connect(code, SIGNAL( error ( const QString &, QObject *, const QString &, int )),
- this, SLOT ( error ( const QString &, QObject *, const QString &, int )));
- code->addObjectFactory( new QSInputDialogFactory );
- code->addObjectFactory( new aObjectsFactory( this ) );
- code->addObjectFactory( new QSUtilFactory );
- project.addObject( this );
- project.addObject( md );
- project.addObject( AMetaData::metadata() );
- mGlobal = md->sText( md->find( md->find( mdc_metadata ), md_globals, 0 ), md_sourcecode );
- if ( ! mGlobal.isEmpty() ) {
-// project.createScript("global", mGlobal);
-// project.createScript(this, mGlobal );
-// project.createScript( "globalmodule", sysf );
-// project.createScript( this, sourcePreprocessor(mGlobal));
- project.createScript( "globalmodule", sysf+sourcePreprocessor(mGlobal));
-// code->evaluate(sourcePreprocessor(mGlobal));
- } else {
+ if ( ! db->init( rcfile ) ) {
+ return false;
+ }
+
+ md = &db->cfg;
+ code = new QScriptEngine();
+ debugger = new QScriptEngineDebugger();
+ debugger->attachTo(code); //окно дебагера появится при ошибке выполнении скрипта
+
+ //code->addObjectFactory( new QSInputDialogFactory );
+ code->addObjectFactory( new aObjectsFactory( this ) );
+ //code->addObjectFactory( new QSUtilFactory );
+
+ //project.addObject( this );
+
+ // Объект sys часто используется для вывода сообщений в окно сообщений
+ QScriptValue ananasEngineObject = code.newQObject(this);
+ code.globalObject().setProperty("sys", ananasEngineObject);
+
+
+ //project.addObject( md );
+ // Похоже не используется
+ QScriptValue ananasMetadataObject = code.newQObject(md*);
+ code.globalObject().setProperty("Metadata", ananasMetadataObject);
+
+// project.addObject( AMetaData::metadata() );
+ QScriptValue ananasMetadataData = code.newQObject(md*);
+ code.globalObject().setProperty("MetaData", ananasMetadataData);
+ mGlobal = md->sText( md->find( md->find( mdc_metadata ), md_globals, 0 ), md_sourcecode );
+ if ( ! mGlobal.isEmpty() ) {
+ code->evaluate(sysf+sourcePreprocessor(mGlobal));
+ } else {
// printf("Global module is empty\n");
- }
- } else return false;
+ }
return true;
}
#define ENGINE_H
#include <qobject.h>
#include <q3popupmenu.h>
-#include <qsobjectfactory.h>
-#include <qsproject.h>
-#include <qsinterpreter.h>
+
+//#include <qsobjectfactory.h>
+//#include <qsproject.h>
+//#include <qsinterpreter.h>
+#include <qscriptengine.h>
+#include <qscriptenginedebugger.h>
+
//Added by qt3to4:
#include <QTimerEvent>
#include <qwidgetplugin.h>
class aEngine;
class aWidget;
-class QSInterpreter;
+class QScriptEngine;
+
+
/*!
* \~english
* Наследует QSObjectFactory.
* \~
*/
-class QT_WIDGET_PLUGIN_EXPORT aObjectsFactory : public QSObjectFactory
+class QT_WIDGET_PLUGIN_EXPORT aObjectsFactory
{
public:
aEngine *engine;
* ссылка на интерпретатор скрипта.
* \~
*/
- QSInterpreter* code;
+ QScriptEngine* code;
+ QScriptEngineDebugger debugger;
/*!
* \~english
* link to script project.
* ссылка на проект.
* \~
*/
- QSProject project;
+ //QSProject project;
/*!
* \~english
* number to form