void ResourceListenerManager::unregisterListener(IResourceListener* listener) { #if BS_DEBUG_MODE { RecursiveLock lock(mMutex); mActiveListeners.erase(listener); } #endif mDirtyListeners.erase(listener); clearDependencies(listener); }
void MyKGanttView::setScheduleManager( ScheduleManager *sm ) { clearDependencies(); m_manager = sm; KGantt::DateTimeGrid *g = static_cast<KGantt::DateTimeGrid*>( grid() ); if ( sm && project() ) { QDateTime start = project()->startTime( sm->scheduleId() ).addDays( -1 ); if ( g->startDateTime() != start ) { g->setStartDateTime( start ); } } if ( ! g->startDateTime().isValid() ) { g->setStartDateTime( QDateTime::currentDateTime() ); } model()->setScheduleManager( sm ); createDependencies(); }
void ActionAtomistic::requestAtoms(const vector<AtomNumber> & a){ plumed_massert(!lockRequestAtoms,"requested atom list can only be changed in the prepare() method"); int nat=a.size(); indexes=a; positions.resize(nat); forces.resize(nat); masses.resize(nat); charges.resize(nat); int n=atoms.positions.size(); clearDependencies(); unique.clear(); for(unsigned i=0;i<indexes.size();i++){ if(indexes[i].index()>=n) error("atom out of range"); if(atoms.isVirtualAtom(indexes[i])) addDependency(atoms.getVirtualAtomsAction(indexes[i])); // only real atoms are requested to lower level Atoms class else unique.insert(indexes[i]); } }
void MyKGanttView::setProject( Project *proj ) { clearDependencies(); if ( project() ) { disconnect( project(), SIGNAL(relationToBeModified(Relation*)), this, SLOT(removeDependency(Relation*))); disconnect( project(), SIGNAL(relationModified(Relation*)), this, SLOT(addDependency(Relation*))); disconnect( project(), SIGNAL(relationAdded(Relation*)), this, SLOT(addDependency(Relation*)) ); disconnect( project(), SIGNAL(relationToBeRemoved(Relation*)), this, SLOT(removeDependency(Relation*)) ); disconnect( project(), SIGNAL(projectCalculated(ScheduleManager*)), this, SLOT(slotProjectCalculated(ScheduleManager*)) ); } NodeGanttViewBase::setProject( proj ); if ( proj ) { connect( project(), SIGNAL(relationToBeModified(Relation*)), this, SLOT(removeDependency(Relation*))); connect( project(), SIGNAL(relationModified(Relation*)), this, SLOT(addDependency(Relation*))); connect( proj, SIGNAL(relationAdded(Relation*)), this, SLOT(addDependency(Relation*)) ); connect( proj, SIGNAL(relationToBeRemoved(Relation*)), this, SLOT(removeDependency(Relation*)) ); connect( proj, SIGNAL(projectCalculated(ScheduleManager*)), this, SLOT(slotProjectCalculated(ScheduleManager*)) ); } createDependencies(); }
void ResourceListenerManager::update() { for (auto& listener : mDirtyListeners) { clearDependencies(listener); addDependencies(listener); } mDirtyListeners.clear(); { RecursiveLock lock(mMutex); for (auto& entry : mLoadedResources) sendResourceLoaded(entry.second); for (auto& entry : mModifiedResources) sendResourceModified(entry.second); mLoadedResources.clear(); mModifiedResources.clear(); } }