void PlasmoidProtocol::restorePlasmoids()
{
    if (!m_systrayApplet) {
        return;
    }
    //First: remove all that are not allowed anymore
    QStringList tasksToDelete;
    foreach (const QString &task, m_tasks.keys()) {
        if (!m_allowedPlugins.contains(task)) {
            tasksToDelete << task;
        }
    }

    // Check if we want to remove applets based on formfactor
    foreach (const QString &task, m_tasks.keys()) {
        PlasmoidTask *plasmoidtask = qobject_cast<PlasmoidTask*>(m_tasks[task]);
        if (plasmoidtask) {
            KPluginMetaData md = plasmoidtask->pluginInfo().toMetaData();
            if (!md.formFactors().isEmpty() && !md.formFactors().contains(m_formFactor)) {
                if (!tasksToDelete.contains(task)) {
                    tasksToDelete << task;
                }
            }
        }
    }

    foreach (const QString &task, tasksToDelete) {
        cleanupTask(task);
    }
void DBusSystemTrayProtocol::init()
{
    qCDebug(SYSTEMTRAY) << "ST Dataengine" << m_dataEngine->isValid();
    if (m_dataEngine->isValid()) {
        initRegisteredServices();
        connect(m_dataEngine, SIGNAL(sourceAdded(QString)),
                this, SLOT(newTask(QString)));
        connect(m_dataEngine, SIGNAL(sourceRemoved(QString)),
                this, SLOT(cleanupTask(QString)));
    }
}
Example #3
0
int VoxelImporter::exec() {
    reset();
    _importDialog.exec();
    
    if (!_didImport) {
        // if the import is rejected, we make sure to cleanup before leaving
        cleanupTask();
        return 1;
    } else {
        _didImport = false;
        return 0;
    }
}
Example #4
0
void VoxelImporter::cancel() {
    switch (_importDialog.getMode()) {
        case loadingMode:
            disconnect(_task, 0, 0, 0);
            cleanupTask();
        case placeMode:
            _importDialog.setMode(importMode);
            break;
        case importMode:
        default:
            _importDialog.close();
            break;
    }
}
void FdoSelectionManagerPrivate::handleRequestDock(const XClientMessageEvent &event)
{
    const WId winId = (WId)event.data.l[2];

    if (tasks.contains(winId)) {
        kDebug() << "got a dock request from an already existing task";
        return;
    }

    FdoTask *task = new FdoTask(winId, q);

    tasks[winId] = task;
    q->connect(task, SIGNAL(taskDeleted(WId)), q, SLOT(cleanupTask(WId)));

    emit q->taskCreated(task);
}
Example #6
0
void VoxelImporter::reset() {
    _voxelTree.eraseAllOctreeElements();
    _importDialog.reset();

    cleanupTask();
}
Example #7
0
VoxelImporter::~VoxelImporter() {
    cleanupTask();
}