Selaa lähdekoodia

Added a "Start now" button to the plugin browser.

This button starts the plugin ignoring its activation policy.
Sascha Zelzer 15 vuotta sitten
vanhempi
commit
27d73d2410

+ 17 - 1
Applications/ctkPluginBrowser/ctkPluginBrowser.cpp

@@ -102,15 +102,19 @@ ctkPluginBrowser::ctkPluginBrowser(ctkPluginFramework* framework)
   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);
 }
@@ -130,6 +134,7 @@ void ctkPluginBrowser::pluginSelected(const QModelIndex &index)
 
 void ctkPluginBrowser::updatePluginToolbar(ctkPlugin* plugin)
 {
+  startPluginNowAction->setEnabled(false);
   startPluginAction->setEnabled(false);
   stopPluginAction->setEnabled(false);
 
@@ -139,6 +144,7 @@ void ctkPluginBrowser::updatePluginToolbar(ctkPlugin* plugin)
   const ctkPlugin::States stopStates = ctkPlugin::STARTING | ctkPlugin::ACTIVE;
   if (startStates.testFlag(plugin->getState()))
   {
+    startPluginNowAction->setEnabled(true);
     startPluginAction->setEnabled(true);
   }
 
@@ -221,11 +227,21 @@ void ctkPluginBrowser::pluginEvent(const ctkPluginEvent& event)
 
 void ctkPluginBrowser::startPlugin()
 {
+  startPlugin(ctkPlugin::START_TRANSIENT | ctkPlugin::START_ACTIVATION_POLICY);
+}
+
+void ctkPluginBrowser::startPluginNow()
+{
+  startPlugin(ctkPlugin::START_TRANSIENT);
+}
+
+void ctkPluginBrowser::startPlugin(ctkPlugin::StartOptions options)
+{
   QModelIndex selection = ui.pluginsTableView->selectionModel()->currentIndex();
   QVariant v = selection.data(Qt::UserRole);
 
   ctkPlugin* plugin = framework->getPluginContext()->getPlugin(v.toLongLong());
-  plugin->start();
+  plugin->start(options);
 }
 
 void ctkPluginBrowser::stopPlugin()

+ 4 - 0
Applications/ctkPluginBrowser/ctkPluginBrowser.h

@@ -30,6 +30,7 @@
 
 #include <ctkPluginEvent.h>
 #include <ctkPluginFrameworkEvent.h>
+#include <ctkPlugin.h>
 
 
 class ctkPluginFramework;
@@ -53,11 +54,13 @@ private slots:
   void pluginEvent(const ctkPluginEvent& event);
 
   void startPlugin();
+  void startPluginNow();
   void stopPlugin();
 
 private:
 
   void updatePluginToolbar(ctkPlugin* plugin);
+  void startPlugin(ctkPlugin::StartOptions options);
 
   QMap<ctkPluginEvent::Type, QString> pluginEventTypeToString;
 
@@ -66,6 +69,7 @@ private:
   Ui::ctkPluginBrowserWindow ui;
   ctkPluginBrowserEditors* editors;
 
+  QAction* startPluginNowAction;
   QAction* startPluginAction;
   QAction* stopPluginAction;
 };

+ 1 - 0
Applications/ctkPluginBrowser/ctkPluginBrowserResources.qrc

@@ -3,5 +3,6 @@
         <file>images/linkicon.png</file>
         <file>images/run.png</file>
         <file>images/stop.png</file>
+        <file>images/run-now.png</file>
     </qresource>
 </RCC>

BIN
Applications/ctkPluginBrowser/images/run-now.png