Successuly compiled first time.
authorAndrey Paskal <apaskal@gmail.com>
Tue, 22 Dec 2009 11:22:31 +0000 (14:22 +0300)
committerAndrey Paskal <apaskal@gmail.com>
Tue, 22 Dec 2009 11:22:31 +0000 (14:22 +0300)
src/lib/lib.pro
src/lib/sys/aapplication.cpp
src/plugins/aform.cpp
src/plugins/aform.h
src/plugins/engine.cpp
src/plugins/engine.h
src/plugins/plugins.pro

index 6a9b1d3..3bc75c3 100644 (file)
@@ -1,6 +1,10 @@
 include(../plugins/plugins.pri)
 include(lib.pri)
 
+QT += script
+QT += scripttools
+
+
 TARGET = ananas4
 TEMPLATE = lib 
 shared:CONFIG += dll
index a7634e8..b0f0046 100644 (file)
@@ -37,7 +37,7 @@ AApplication::AApplication(  int & argc, char ** argv, AApplicationType aat )
     :QApplication( argc, argv, true )
 {
     v_aat = aat;
-    printf("langDir = %s\n", langDir().toUtf8().data() );
+    //printf("langDir = %s\n", langDir().toUtf8().data() );
 }
 
 int
index a108061..017549e 100644 (file)
@@ -42,7 +42,8 @@
 #include <qstring.h>
 #include <qfile.h>
 #include <qdir.h>
-#include <qsinterpreter.h>
+//#include <qsinterpreter.h>
+
 //--#include <qbutton.h>
 #include <qpushbutton.h>
 //--#include <qfocusdata.h>
index 993ea6f..b0655d4 100644 (file)
 
 #include <qobject.h>
 #include <q3buttongroup.h>
-#include <qsproject.h>
-#include <qsinterpreter.h>
+//#include <qsproject.h>
+//#include <qsinterpreter.h>
+
+
 //--#include <qsargument.h>
 #include <qmutex.h>
 //Added by qt3to4:
index 3ee23e6..3690b96 100644 (file)
@@ -260,31 +260,40 @@ aEngine::init( const QString &rcfile )
        "";
 
        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;
 }
 
index 2e0e46d..155c73f 100644 (file)
 #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>
@@ -51,7 +55,9 @@
 
 class aEngine;
 class aWidget;
-class QSInterpreter;
+class QScriptEngine;
+
+
 
 /*!
  * \~english
@@ -62,7 +68,7 @@ class QSInterpreter;
  *     Наследует QSObjectFactory.
  * \~
  */
-class QT_WIDGET_PLUGIN_EXPORT aObjectsFactory : public QSObjectFactory
+class QT_WIDGET_PLUGIN_EXPORT aObjectsFactory
 {
 public:
         aEngine   *engine;
@@ -131,7 +137,8 @@ public:
  *     ссылка на интерпретатор скрипта.
  *     \~
 */
-       QSInterpreter*  code;
+        QScriptEngine* code;
+        QScriptEngineDebugger debugger;
 /*!
  *     \~english
  *     link to script project.
@@ -139,7 +146,7 @@ public:
  *     ссылка на проект.
  *     \~
 */
-    QSProject  project;
+    //QSProject        project;
 /*!
  *     \~english
  *     number to form
index 4326851..37ca5a2 100644 (file)
@@ -4,7 +4,9 @@ TARGET = ananasplugin4
 include( plugins.pri )
 include( ../lib/lib.pri )
 include ( ../ananas.pri )
-load(qsa)
+#load(qsa)
+QT += script
+QT += scripttools
 
 TEMPLATE = lib
 shared:CONFIG += dll plugin