Example #1
0
QStringList ContainerAreaLayout::listItems() const
{
    QStringList items;
    for (ItemList::const_iterator it = m_items.constBegin();
         it != m_items.constEnd(); ++it)
    {
        QLayoutItem* item = (*it)->item;
        BaseContainer* container = dynamic_cast<BaseContainer*>(item->widget());

        if (!container)
        {
            continue;
        }

        AppletContainer* applet = dynamic_cast<AppletContainer*>(container);
        if (applet)
        {
            items.append(applet->info().desktopFile());
        }
        else
        {
            // button containers don't give us anything useful that isn't
            // i18n'd (e.g. all service buttons and url buttons simply report
            // "URL" as their tileName()) which would require that we
            // extend PanelButton to be more expressive to get something more
            // instead i just cop'd out and use the visible name. good enough.
            items.append(container->visibleName());
        }
    }

    return items;
}
Example #2
0
void PanelRemoveAppletMenu::slotAboutToShow()
{
    int id = 0;

    clear();
    m_containers = m_containerArea->containers("Applet") +
                   m_containerArea->containers("Special Button");

    QValueList<PanelMenuItemInfo> items;

    for (BaseContainer::List::const_iterator it = m_containers.constBegin();
         it != m_containers.constEnd();)
    {
        BaseContainer* container = *it;
        if (container->isImmutable())
        {
            ++it;
            m_containers.remove(container);
            continue;
        }

        items.append(PanelMenuItemInfo(container->icon(),
                                       container->visibleName().replace("&", "&&"),
                                       id));
        ++id;
        ++it;
    }

    qHeapSort(items);

    for (QValueList<PanelMenuItemInfo>::iterator it = items.begin();
         it != items.end();
         ++it)
    {
        (*it).plug(this);
    }

    if (m_containers.count() > 1)
    {
        insertSeparator();
        insertItem(i18n("All"), this, SLOT(slotRemoveAll()), 0, id);
    }
}