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); } }
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(); } }
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()); } }