bool TimerUnit::enableTimer(const QString & name ) { bool found = false; QMap<QString, TTimer *>::const_iterator it = mLookupTable.find( name ); while( it != mLookupTable.end() && it.key() == name ) { TTimer * pT = it.value(); if( ! pT->isOffsetTimer() ) /* ret = */ pT->setIsActive( true ); else pT->setShouldBeActive( true ); if( pT->isFolder() ) { // disable or enable all timers in the respective branch // irrespective of the user defined state. if( pT->shouldBeActive() ) { pT->enableTimer(); } else { pT->disableTimer(); } } else { if( pT->isOffsetTimer() ) { // state of offset timers is managed by the trigger engine if( pT->shouldBeActive() ) { pT->enableTimer(); } else { pT->disableTimer(); } } } ++it; found = true; } return found; }
void TTimer::enableTimer( QString & name ) { if( mName == name ) { if( canBeUnlocked( 0 ) ) { if( activate() ) { mpTimer->start(); } else { deactivate(); mpTimer->stop(); } } } if( ! isOffsetTimer() ) { typedef list<TTimer *>::const_iterator I; for( I it = mpMyChildrenList->begin(); it != mpMyChildrenList->end(); it++) { TTimer * pChild = *it; pChild->enableTimer( pChild->getName() ); } } }
void TTimer::enableTimer() { if( canBeUnlocked( 0 ) ) { if( activate() ) { if( mScript.size() > 0 ) { mpTimer->start(); } } else { deactivate(); mpTimer->stop(); } } if( ! isOffsetTimer() ) { typedef list<TTimer *>::const_iterator I; for( I it = mpMyChildrenList->begin(); it != mpMyChildrenList->end(); it++) { TTimer * pChild = *it; if( ! pChild->isOffsetTimer() ) pChild->enableTimer(); } } }
void TimerUnit::reParentTimer( int childID, int oldParentID, int newParentID, int parentPosition, int childPosition ) { TTimer * pOldParent = getTimerPrivate( oldParentID ); TTimer * pNewParent = getTimerPrivate( newParentID ); TTimer * pChild = getTimerPrivate( childID ); if( ! pChild ) { return; } pChild->disableTimer( childID ); if( pOldParent ) { pOldParent->popChild( pChild ); } if( ! pOldParent ) { mTimerRootNodeList.remove( pChild ); } if( pNewParent ) { pNewParent->addChild( pChild, parentPosition, childPosition ); if( pChild ) pChild->setParent( pNewParent ); } else { pChild->Tree<TTimer>::setParent( 0 ); addTimerRootNode( pChild, parentPosition, childPosition ); } pChild->enableTimer( childID ); }
void TimerUnit::reenableAllTriggers() { for(auto it = mTimerRootNodeList.begin(); it != mTimerRootNodeList.end(); it++) { TTimer * pChild = *it; pChild->enableTimer( pChild->getID() ); } }
void TimerUnit::reenableAllTriggers() { typedef list<TTimer *>::const_iterator I; for( I it = mTimerRootNodeList.begin(); it != mTimerRootNodeList.end(); it++) { TTimer * pChild = *it; pChild->enableTimer( pChild->getID() ); } }
void XMLimport::readTimerGroup( TTimer * pParent ) { TTimer * pT; if( pParent ) { pT = new TTimer( pParent, mpHost ); } else { pT = new TTimer( 0, mpHost ); } pT->registerTimer(); pT->setShouldBeActive( ( attributes().value("isActive") == "yes" ) ); pT->mIsFolder = ( attributes().value("isFolder") == "yes" ); pT->mIsTempTimer = ( attributes().value("isTempTimer") == "yes" ); if (module) pT->mModuleMember = true; while( ! atEnd() ) { readNext(); if( isEndElement() ) break; if( isStartElement() ) { if( name() == "name" ) { pT->setName( readElementText() ); continue; } else if( name() == "packageName") { pT->mPackageName = readElementText(); continue; } else if( name() == "script") { QString script = readElementText(); pT->setScript( script ); continue; } else if( name() == "command") { pT->mCommand = readElementText(); continue; } else if( name() == "time") { QString timeString = readElementText(); QTime time = QTime::fromString( timeString, "hh:mm:ss.zzz" ); pT->setTime( time ); continue; } else if( name() == "TimerGroup" ) { readTimerGroup( pT ); } else if( name() == "Timer" ) { readTimerGroup( pT ); } else { readUnknownTimerElement(); } } } if( ( ! pT->isOffsetTimer() ) && ( pT->shouldBeActive() ) ) pT->enableTimer( pT->getID() ); else pT->disableTimer( pT->getID() ); }
void TTimer::execute() { if( ! isActive() || mIsFolder ) { mpTimer->stop(); return; } if( mudlet::debugMode ) {TDebug(QColor(Qt::darkYellow),QColor(Qt::darkBlue)) << "\n[TIMER EXECUTES]: "<<mName<<" fired. Executing command="<<mCommand<<" and executing script:"<<mScript<<"\n" >> 0;} if( mIsTempTimer ) { if( mScript == "" ) { mpHost->mLuaInterpreter.call_luafunction( this ); } else { mpHost->mLuaInterpreter.compileAndExecuteScript( mScript ); } mpTimer->stop(); mpHost->mTimerUnit.markCleanup( this ); return; } if( ( ! isFolder() && hasChildren() ) || ( isOffsetTimer() ) ) { typedef list<TTimer *>::const_iterator I; for( I it = mpMyChildrenList->begin(); it != mpMyChildrenList->end(); it++) { TTimer * pChild = *it; if( pChild->isOffsetTimer() ) { pChild->enableTimer( pChild->getID() ); } } if( isOffsetTimer() ) { disableTimer( mID ); deactivate(); } } if( mCommand.size() > 0 ) { mpHost->send( mCommand ); } if( mScript.size() > 0 ) { if( mNeedsToBeCompiled ) { if( ! compileScript() ) { disableTimer(); return; } } if( ! mpHost->mLuaInterpreter.call( mFuncName, mName ) ) { mpTimer->stop(); } } }