bool KviActionManager::coreActionExists(const QString & szName) { KviAction * a = m_pActions->find(szName); if(a) return (!a->isKviUserActionNeverOverrideThis()); return false; }
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 KviCustomToolBarDescriptor::addAction(const QString & szAction) { KviAction * a = KviActionManager::instance()->getAction(szAction); if(a) { m_pActions->append(new QString(szAction)); if(m_pToolBar) a->addToCustomToolBar(m_pToolBar); return true; } return false; }
void KviCustomToolBarDescriptor::fillToolBar() { if(m_pActions->count() == 0) { // force layout of the toolbar QApplication::postEvent(m_pToolBar, new QEvent(QEvent::LayoutRequest)); } else { KviPointerList<QString> dying; dying.setAutoDelete(false); for(QString * p = m_pActions->first(); p; p = m_pActions->next()) { KviAction * a = KviActionManager::instance()->getAction(*p); if(a) a->addToCustomToolBar(m_pToolBar); else dying.append(p); } for(QString * d = dying.first(); d; d = dying.next()) m_pActions->removeRef(d); } }
void KviActionManager::actionDestroyed() { KviAction * a = (KviAction *)sender(); m_pActions->remove(a->name()); }
void CustomizeToolBarsDialog::exportToolBar() { KviCustomToolBar * t = KviActionManager::currentToolBar(); if(!t)return; QString szName = QDir::homePath(); if(!szName.endsWith(QString(KVI_PATH_SEPARATOR)))szName += KVI_PATH_SEPARATOR; szName += t->descriptor()->id(); szName += ".kvs"; QString szFile; if(!KviFileDialog::askForSaveFileName(szFile,__tr2qs_ctx("Choose a Filename - KVIrc","editor"),szName,KVI_FILTER_SCRIPT,true,true,true,this))return; QString szCode; int ret = QMessageBox::question(this, __tr2qs_ctx("ToolBar Export","editor"), __tr2qs_ctx("Do you want the associated actions to be exported with the toolbar ?","editor"), __tr2qs_ctx("Yes","editor"), __tr2qs_ctx("No","editor"), __tr2qs_ctx("Cancel","editor")); if(ret == 2)return; bool bExportActions = ret == 0; if(bExportActions) { KviPointerList<QString> * a = t->descriptor()->actions(); if(a) { for(QString * s = a->first();s;s = a->next()) { KviAction * act = KviActionManager::instance()->getAction(*s); if(act) { if(act->isKviUserActionNeverOverrideThis()) { ((KviKvsUserAction *)act)->exportToKvs(szCode); szCode += "\n\n"; } } } } } szCode += "toolbar.create "; szCode += t->descriptor()->id(); szCode += " "; szCode += t->descriptor()->labelCode(); szCode += " "; szCode += t->descriptor()->iconId(); szCode += "\n"; KviPointerList<QString> * aa = t->descriptor()->actions(); if(aa) { for(QString * ss = aa->first();ss;ss = aa->next()) { szCode += "toolbar.additem "; szCode += t->descriptor()->id(); szCode += " "; szCode += *ss; szCode += "\n"; } } szCode += "toolbar.show "; szCode += t->descriptor()->id(); szCode += "\n"; if(!KviFileUtils::writeFile(szFile,szCode)) { QMessageBox::warning(this,__tr2qs_ctx("Write Failed - KVIrc","editor"),__tr2qs_ctx("Unable to write to the toolbar file.","editor"),__tr2qs_ctx("OK","editor")); } }