Пример #1
0
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();
}
Пример #2
0
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;
}
Пример #3
0
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;
    }
}
Пример #4
0
void DockBarExtension::embeddedWindowDestroyed(DockContainer *c)
{
    removeContainer(c);
    saveContainerConfig();
    emit updateLayout();
}