void QuickInterpreter::clear() { // printf("QuickInterpreter::clear()\n"); // Clear all connections while (m_script_connections.size()) { QHash<int, QSAConnection>::Iterator it = m_script_connections.begin(); // printf(" -> removing connection: %d\n", it.key()); removeConnection(it->sender, it->signal.toLatin1(), it->function_ref); } // clean out slots delete m_dynamic_slots; m_dynamic_slots = 0; sourceIdNames.clear(); debuggerEngine()->clear(); qsKillTimers(env()); invalidateWrappers(); if(toplevel) toplevel->clear(); QSEngine::clear(); QSEngine::init(); init(); }
void QuickInterpreter::clear() { sourceIdNames.clear(); debuggerEngine()->clear(); stopAllTimers(); invalidateWrappers(); if( toplevel ) toplevel->clear(); QSEngine::clear(); QSEngine::init(); init(); }
void QuickInterpreter::stop() { qsKillTimers(env()); debuggerEngine()->clear(); }
void QuickInterpreter::init() { m_dynamic_slots = new QSMetaObject(this); qsa_setup_meta_objects(); debuggerEngine()->clear(); staticGlobals.clear(); staticGlobals << QString::fromLatin1("NaN") << QString::fromLatin1("undefined") << QString::fromLatin1("Infinity") << QString::fromLatin1("Application"); // add some common objects to the Global object QSObject global(env()->globalObject()); QSClass *objClass = env()->objectClass(); wrpClass = new QSWrapperClass(objClass); ptrClass = new QSPointerClass(objClass); varClass = new QSVariantClass(objClass); appClass = new QSApplicationClass(objClass); global.put(QString::fromLatin1("Application"), appClass->createWritable()); pntClass = new QSPointClass(objClass, this); registerType(pntClass); sizClass = new QSSizeClass(objClass, this); registerType(sizClass); rctClass = new QSRectClass(objClass, this); registerType(rctClass); baClass = new QSByteArrayClass(objClass); registerType(baClass); #ifndef QSA_NO_GUI colClass = new QSColorClass(objClass); registerType(colClass); fntClass = new QSFontClass(objClass); registerType(fntClass); pixClass = new QSPixmapClass(objClass, this); registerType(pixClass); palClass = new QSPaletteClass(objClass); registerType(palClass); colGrpClass = new QSColorGroupClass(objClass); registerType(colGrpClass); #endif enableDebug(); // adds "debug" function which uses qDebug() // // env()->globalClass()->addMember(QString::fromLatin1("connect"), QSMember(qsa_connect)); env()->globalClass()->addMember(QString::fromLatin1("disconnect"), QSMember(qsa_disconnect)); env()->globalClass()->addMember(QString::fromLatin1("startTimer"), QSMember(qsStartTimer)); env()->globalClass()->addMember(QString::fromLatin1("killTimer"), QSMember(qsKillTimer)); env()->globalClass()->addMember(QString::fromLatin1("killTimers"), QSMember(qsKillTimers)); QMap<QString,QObject*> statDescr = factory->staticDescriptors(); QMap<QString,QString> instDescr = factory->instanceDescriptors(); QList<QString> features = instDescr.keys(); for (QList<QString>::ConstIterator it = features.begin(); it != features.end(); ++it) { if (env()->globalClass()->definedMembers()->contains(*it)) { qWarning("QSObjectFactory: Trying to register existing class: '%s'", (*it).toLatin1().constData()); continue; } QSObject staticInst; if(statDescr.contains(*it)) { // has static? QObject *sinst = statDescr[ *it ]; Q_ASSERT(sinst); staticInst = wrap(sinst); statDescr.remove(*it); } QSObjectConstructor *constr = new QSObjectConstructor(objClass, *it); QSFactoryObjectProxy *ptype = new QSFactoryObjectProxy(env()->typeClass(), staticInst, constr); constr->setFactoryObjectProxy(ptype); QSObject proxy(ptype, env()->typeClass()->createTypeShared(constr)); env()->globalClass()->addStaticVariableMember(constr->identifier(), proxy, AttributeExecutable); } for(QMap<QString,QObject*>::ConstIterator sit = statDescr.begin(); sit != statDescr.end(); ++sit) { if (env()->globalClass()->definedMembers()->contains(sit.key())) { qWarning("QSObjectFactory: Trying to register existing class: '%s'", sit.key().toLatin1().constData()); continue; } QSObject staticInst; QObject *sinst = statDescr[ sit.key() ]; Q_ASSERT(sinst); staticInst = wrap(sinst); env()->globalClass()->addStaticVariableMember(sit.key(), staticInst, AttributeNone); } }
void QuickInterpreter::stop() { stopAllTimers(); debuggerEngine()->clear(); }