00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef ENGINE_H
00033 #define ENGINE_H
00034 #include <qobject.h>
00035 #include <qpopupmenu.h>
00036 #include <qsobjectfactory.h>
00037 #include <qsproject.h>
00038 #include <qsinterpreter.h>
00039
00040 #include "adatabase.h"
00041 #include "acfg.h"
00042 #include "awindowslist.h"
00043 #include <qmainwindow.h>
00044 #include "adatafield.h"
00045 #include "aobject.h"
00046
00047
00048
00049 class aEngine;
00050 class aWidget;
00051
00061 class ANANAS_EXPORT aObjectsFactory : public QSObjectFactory
00062 {
00063 public:
00064 aEngine *engine;
00065 aDatabase *db;
00066 aObjectsFactory( aEngine *e );
00067 QObject *create( const QString &className,
00068 const QSArgumentList &arguments,
00069 QObject *context );
00070 };
00071
00072
00073 class aForm;
00074
00087 class ANANAS_EXPORT aEngine : public QObject
00088 {
00089 Q_OBJECT
00090 public:
00098 aDatabase db;
00106 aCfg* md;
00114 QWidget* ws;
00122 aWindowsList* wl;
00130 QSInterpreter* code;
00138 QSProject project;
00146 int next_obj_id;
00147
00148 aEngine();
00149 virtual ~aEngine();
00150 virtual bool init( const QString &rcfile );
00151 virtual void done();
00152 void openEmbedCatalogueEditor(int oid, QWidget *parent=NULL, const bool toSelect=true);
00153
00154 QString sourcePreprocessor( const QString &src );
00155
00156 void timerEvent(QTimerEvent *e);
00157 int on_systemstart();
00158 int on_systemstop();
00159 aForm *openForm( int oid, int fid = 0 , int defaultfor = 1,
00160 int mode = 0, ANANAS_UID id = 0, aWidget* caller = 0, bool modal = false);
00161
00162 public slots:
00163 QString cfgname();
00164 QString Time();
00165 QString Date();
00166 void Exit();
00167 void Message(int n, const QString &msg );
00168 void StatusMessage( const QString &msg );
00169 void StatusMessage( const QString &msg, const int &pos );
00170 void settimer(int sec, QString proc);
00171 aForm * OpenForm(QString fname, int mode=0, aObject * selecter=0, bool modal=false);
00172 aForm * OpenForm(QString fname, int mode, int ido,aObject * selecter=0, bool modal=false);
00173 QVariant value( const QString &name );
00174 void setValue( const QString &name, QVariant value = QVariant::Invalid );
00175
00176 void on_MenuBar( int id );
00177 void execAction( aCfgItem &act, QObject *context = 0 );
00178
00179 aDataField *enterValue( const QString &FieldType, const QString &title = "" );
00180 bool startTransaction();
00181 bool commitTransaction();
00182 bool rollbackTransaction();
00183 private slots:
00184 void error ( const QString & message, QObject * context,
00185 const QString & scriptName, int lineNumber );
00186 void on_event( const QString &data );
00187 signals:
00188 void statusMessage( const QString &msg );
00189 void statusMessage( const QString &msg, const int &pos );
00190 void statusIcon( const int &status );
00191 void event( const QString &source, const QString &data );
00192
00193 private:
00194 QString pr_timer;
00195 QString mGlobal;
00196 QDict <QVariant> values;
00197
00198 };
00199
00200 #endif // ENGINE_H