Esempio n. 1
0
void AddPluginDialog::emitPluginSelected()
{
    QListWidget* pluginList = ui->pluginList;
    if (pluginList->currentItem() && pluginList->currentItem()->isSelected())
    {
        LXQt::PluginInfo plugin = mPlugins.at(pluginList->currentItem()->data(INDEX_ROLE).toInt());
        emit pluginSelected(plugin);
    }
}
Esempio n. 2
0
void Browser::executeItem() {
    stopTimer();

    if (navigationStatus == BROWSER_READ_FROM_TREE) {
        if (currentItem != NULL) {
#ifdef SCASE_DEBUG_LEVEL_VERBOSE
            qDebug() << "Browser:executeItem:" << currentItem->getPresentationData();
#endif
            if (currentItem->hasLevelBelow()) {
#ifdef SCASE_DEBUG_LEVEL_VERBOSE
                qDebug() << "Browser:executeItem:hasLevelBelow";
#endif
                if (currentItem->hasPluginDelegate()) {
                    emit pluginSelected(currentItem->getPluginDelegate());
                    currentItem->getLevelBelow()->setIsStop(true);
#ifdef SCASE_DEBUG_LEVEL_VERBOSE
                    qDebug() << "Browser:executeItem:currentItem->getLevelBelow is a stop?" << ((currentItem->getLevelBelow()->isStop()) ? "yes":"no");
#endif
                }
                setCurrentLevel(currentItem->getLevelBelow());
            } else {
                if (currentItem->hasAction()) {
#ifdef SCASE_DEBUG_LEVEL_VERBOSE
                    qDebug() << "Browser:executeItem:hasAction:" << currentItem->getActionModule() << "," << currentItem->getActionName();
#endif
                    if (currentItem->getActionModule() == SCASE_MODULE_BROWSER) {
                        QMetaObject::invokeMethod(this, currentItem->getActionName().toLatin1().constData());
                        startTimer();
                    } else {
                        emit executeActionFromPlugin(currentItem->getActionModule(), currentItem->getActionName());
                    }
                }
            }
        }
    } else if (navigationStatus == BROWSER_PSEUDOITEM_UP_ONE_LEVEL) {
#ifdef SCASE_DEBUG_LEVEL_VERBOSE
        qDebug() << "Browser:executeItem:goToPreviousLevel";
#endif
        goToPreviousLevel();
    }
}
Esempio n. 3
0
ctkPluginBrowser::ctkPluginBrowser(ctkPluginFramework* framework)
    : framework(framework)
{
    pluginEventTypeToString[ctkPluginEvent::INSTALLED] = "Installed";
    pluginEventTypeToString[ctkPluginEvent::LAZY_ACTIVATION] = "Lazy Activation";
    pluginEventTypeToString[ctkPluginEvent::RESOLVED] = "Resolved";
    pluginEventTypeToString[ctkPluginEvent::STARTED] = "Started";
    pluginEventTypeToString[ctkPluginEvent::STARTING] = "Starting";
    pluginEventTypeToString[ctkPluginEvent::STOPPED] = "Stopped";
    pluginEventTypeToString[ctkPluginEvent::STOPPING] = "Stopping";
    pluginEventTypeToString[ctkPluginEvent::UNINSTALLED] = "Uninstalled";
    pluginEventTypeToString[ctkPluginEvent::UNRESOLVED] = "Unresolved";
    pluginEventTypeToString[ctkPluginEvent::UPDATED] = "Updated";

    framework->getPluginContext()->connectFrameworkListener(this, SLOT(frameworkEvent(ctkPluginFrameworkEvent)));
    framework->getPluginContext()->connectPluginListener(this, SLOT(pluginEvent(ctkPluginEvent)));
    framework->getPluginContext()->connectServiceListener(this, "serviceEvent");

    QStringList pluginDirs;
#ifdef CMAKE_INTDIR
    pluginDirs << CTK_PLUGIN_DIR CMAKE_INTDIR "/";
#else
    pluginDirs << CTK_PLUGIN_DIR;
#endif

    QStringListIterator dirIt(pluginDirs);
    while (dirIt.hasNext())
    {
        QApplication::addLibraryPath(dirIt.next());
    }

    QStringList libFilter;
    libFilter << "*.dll" << "*.so" << "*.dylib";
    QDirIterator dirIter(pluginDirs.at(0), libFilter, QDir::Files);
    while(dirIter.hasNext())
    {
        try
        {
            framework->getPluginContext()->installPlugin(QUrl::fromLocalFile(dirIter.next()).toString());
            //plugin->start(ctkPlugin::START_ACTIVATION_POLICY);
        }
        catch (const ctkPluginException& e)
        {
            qCritical() << e.what();
        }
    }

    framework->start();

    ui.setupUi(this);

    tabifyDockWidget(ui.qtResourcesDockWidget, ui.pluginResourcesDockWidget);

    editors = new ctkPluginBrowserEditors(ui.centralwidget);

    QAbstractItemModel* pluginTableModel = new ctkPluginTableModel(framework->getPluginContext(), this);
    ui.pluginsTableView->setModel(pluginTableModel);

    QAbstractItemModel* qtresourcesTreeModel = new ctkQtResourcesTreeModel(this);
    ui.qtResourcesTreeView->setModel(qtresourcesTreeModel);

    connect(ui.pluginsTableView, SIGNAL(clicked(QModelIndex)), this, SLOT(pluginSelected(QModelIndex)));
    connect(ui.pluginsTableView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(pluginDoubleClicked(QModelIndex)));
    connect(ui.pluginResourcesTreeView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(dbResourceDoubleClicked(QModelIndex)));
    connect(ui.qtResourcesTreeView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(qtResourceDoubleClicked(QModelIndex)));

    startPluginNowAction = new QAction(QIcon(":/pluginbrowser/images/run-now.png"), "Start Plugin (ignore activation policy)", this);
    startPluginAction = new QAction(QIcon(":/pluginbrowser/images/run.png"), "Start Plugin", this);
    stopPluginAction = new QAction(QIcon(":/pluginbrowser/images/stop.png"), "Stop Plugin", this);

    connect(startPluginNowAction, SIGNAL(triggered()), this, SLOT(startPluginNow()));
    connect(startPluginAction, SIGNAL(triggered()), this, SLOT(startPlugin()));
    connect(stopPluginAction, SIGNAL(triggered()), this, SLOT(stopPlugin()));

    startPluginNowAction->setEnabled(false);
    startPluginAction->setEnabled(false);
    stopPluginAction->setEnabled(false);

    ui.pluginToolBar->addAction(startPluginNowAction);
    ui.pluginToolBar->addAction(startPluginAction);
    ui.pluginToolBar->addAction(stopPluginAction);

    QSettings settings;
    if(settings.contains(SETTINGS_WND_GEOM))
    {
        this->restoreGeometry(settings.value(SETTINGS_WND_GEOM).toByteArray());
    }
    if (settings.contains(SETTINGS_WND_STATE))
    {
        this->restoreState(settings.value(SETTINGS_WND_STATE).toByteArray());
    }
}