void DockBarExtension::loadContainerConfig() { KConfig *conf = config(); conf->setGroup("General"); QStringList applets = conf->readListEntry("Applets"); QStringList fail_list; for(QStringList::Iterator it = applets.begin(); it != applets.end(); ++it) { if(!conf->hasGroup(*it)) continue; conf->setGroup(*it); QString cmd = conf->readPathEntry("Command"); QString resName = conf->readPathEntry("resName"); QString resClass = conf->readEntry("resClass"); if(cmd.isEmpty() || resName.isEmpty() || resClass.isEmpty()) continue; DockContainer *c = new DockContainer(cmd, this, resName, resClass); addContainer(c); KProcess proc; proc << KShell::splitArgs(cmd); if(!proc.start(KProcess::DontCare)) { fail_list.append(cmd); removeContainer(c); } } if(!fail_list.isEmpty()) KMessageBox::queuedMessageBox(0, KMessageBox::Information, i18n("The following dockbar applets could not be started: %1").arg(fail_list.join(", ")), i18n("kicker: information"), 0); saveContainerConfig(); }
void PMSpinBoxAction::unplug( QWidget *w ) { if( !w->inherits( "KToolBar" ) ) return; KToolBar *toolBar = (KToolBar *)w; int idx = findContainer( w ); toolBar->removeItem( itemId( idx ) ); removeContainer( idx ); m_spinBox = 0L; }
void PMLabelAction::unplug( QWidget *widget ) { if( widget->inherits( "KToolBar" ) ) { KToolBar* bar = ( KToolBar* ) widget; int idx = findContainer( bar ); if( idx != -1 ) { bar->removeItem( itemId( idx ) ); removeContainer( idx ); } m_button = 0; return; } }
void DockBarExtension::embeddedWindowDestroyed(DockContainer *c) { removeContainer(c); saveContainerConfig(); emit updateLayout(); }