void QgsMapTool::setAction( QAction* action ) { if ( mAction ) disconnect( mAction, SIGNAL( destroyed() ), this, SLOT( actionDestroyed() ) ); mAction = action; connect( mAction, SIGNAL( destroyed() ), this, SLOT( actionDestroyed() ) ); }
bool KviActionManager::unregisterAction(const QString &szName) { KviAction * a = m_pActions->find(szName); if(!a)return false; disconnect(a,SIGNAL(destroyed()),this,SLOT(actionDestroyed())); a->unregisterAccelerator(); return m_pActions->remove(szName); }
bool KviActionManager::registerAction(KviAction * a) { if(m_pActions->find(a->name()))return false; connect(a,SIGNAL(destroyed()),this,SLOT(actionDestroyed())); m_pActions->insert(a->name(),a); if(g_pMainWindow)a->registerAccelerator(); // otherwise it is delayed! return true; }
KviActionManager::~KviActionManager() { // the customizeToolBars dialog has been already // destroyed since the module manager has already // killed all the modules at this point... KviPointerHashTableIterator<QString, KviAction> it(*m_pActions); while(KviAction * a = it.current()) { disconnect(a, SIGNAL(destroyed()), this, SLOT(actionDestroyed())); ++it; } delete m_pActions; delete m_pCategories; }