diff --git a/ExampleAnalysis/src/ExampleAnalysisPlugin.cpp b/ExampleAnalysis/src/ExampleAnalysisPlugin.cpp index 6fa4cf8..b2be2d0 100644 --- a/ExampleAnalysis/src/ExampleAnalysisPlugin.cpp +++ b/ExampleAnalysis/src/ExampleAnalysisPlugin.cpp @@ -25,10 +25,7 @@ std::uint32_t ExampleAnalysisPlugin::Point::numberOfDimensions = 7; float ExampleAnalysisPlugin::Point::maximumVelocity = 1.0f; ExampleAnalysisPlugin::ExampleAnalysisPlugin(const PluginFactory* factory) : - AnalysisPlugin(factory), - _settingsAction(), - _points(), - _pointHeadings() + AnalysisPlugin(factory) { } @@ -229,6 +226,27 @@ void ExampleAnalysisPlugin::onDataEvent(mv::DatasetEvent* dataEvent) } } +// ============================================================================= +// Plugin Factory +// ============================================================================= + +ExampleAnalysisPluginFactory::ExampleAnalysisPluginFactory() +{ + getPluginMetadata().setDescription("Example analysis plugin"); + getPluginMetadata().setSummary("This example shows how to implement a basic analysis plugin in ManiVault Studio."); + getPluginMetadata().setCopyrightHolder({ "BioVault (Biomedical Visual Analytics Unit LUMC - TU Delft)" }); + getPluginMetadata().setAuthors({ + { "J. Thijssen", { "Software architect" }, { "LUMC", "TU Delft" } }, + { "T. Kroes", { "Lead software architect" }, { "LUMC" } }, + { "A. Vieth", { "Plugin developer", "Maintainer" }, { "LUMC", "TU Delft" } } + }); + getPluginMetadata().setOrganizations({ + { "LUMC", "Leiden University Medical Center", "https://www.lumc.nl/en/" }, + { "TU Delft", "Delft university of technology", "https://www.tudelft.nl/" } + }); + getPluginMetadata().setLicenseText("This plugin is distributed under the [LGPL v3.0](https://www.gnu.org/licenses/lgpl-3.0.en.html) license."); +} + AnalysisPlugin* ExampleAnalysisPluginFactory::produce() { // Return a new instance of the example analysis plugin diff --git a/ExampleAnalysis/src/ExampleAnalysisPlugin.h b/ExampleAnalysis/src/ExampleAnalysisPlugin.h index 5168ad1..d024f87 100644 --- a/ExampleAnalysis/src/ExampleAnalysisPlugin.h +++ b/ExampleAnalysis/src/ExampleAnalysisPlugin.h @@ -155,10 +155,7 @@ class ExampleAnalysisPluginFactory : public AnalysisPluginFactory public: /** Default constructor */ - ExampleAnalysisPluginFactory() {} - - /** Destructor */ - ~ExampleAnalysisPluginFactory() override {} + ExampleAnalysisPluginFactory(); /** Creates an instance of the example analysis plugin */ AnalysisPlugin* produce() override; diff --git a/ExampleData/src/ExampleDataPlugin.cpp b/ExampleData/src/ExampleDataPlugin.cpp index 12fe890..6163262 100644 --- a/ExampleData/src/ExampleDataPlugin.cpp +++ b/ExampleData/src/ExampleDataPlugin.cpp @@ -153,6 +153,27 @@ void PixelSet::selectInvert() events().notifyDatasetDataSelectionChanged(this); } +// ============================================================================= +// Plugin Factory +// ============================================================================= + +ExampleDataPluginFactory::ExampleDataPluginFactory() +{ + getPluginMetadata().setDescription("Example data plugin"); + getPluginMetadata().setSummary("This example shows how to implement a basic data plugin in ManiVault Studio."); + getPluginMetadata().setCopyrightHolder({ "BioVault (Biomedical Visual Analytics Unit LUMC - TU Delft)" }); + getPluginMetadata().setAuthors({ + { "J. Thijssen", { "Software architect" }, { "LUMC", "TU Delft" } }, + { "T. Kroes", { "Lead software architect" }, { "LUMC" } }, + { "A. Vieth", { "Plugin developer", "Maintainer" }, { "LUMC", "TU Delft" } } + }); + getPluginMetadata().setOrganizations({ + { "LUMC", "Leiden University Medical Center", "https://www.lumc.nl/en/" }, + { "TU Delft", "Delft university of technology", "https://www.tudelft.nl/" } + }); + getPluginMetadata().setLicenseText("This plugin is distributed under the [LGPL v3.0](https://www.gnu.org/licenses/lgpl-3.0.en.html) license."); +} + QIcon ExampleDataPluginFactory::getIcon(const QColor& color /*= Qt::black*/) const { return Application::getIconFont("FontAwesome").getIcon("database", color); diff --git a/ExampleData/src/ExampleDataPlugin.h b/ExampleData/src/ExampleDataPlugin.h index a66d001..08fd493 100644 --- a/ExampleData/src/ExampleDataPlugin.h +++ b/ExampleData/src/ExampleDataPlugin.h @@ -120,8 +120,7 @@ class ExampleDataPluginFactory : public RawDataFactory FILE "ExampleDataPlugin.json") public: - ExampleDataPluginFactory() {} - ~ExampleDataPluginFactory() override {} + ExampleDataPluginFactory(); /** * Get plugin icon diff --git a/ExampleDependencies/src/ExampleDependenciesPlugin.cpp b/ExampleDependencies/src/ExampleDependenciesPlugin.cpp index aa39081..234a38c 100644 --- a/ExampleDependencies/src/ExampleDependenciesPlugin.cpp +++ b/ExampleDependencies/src/ExampleDependenciesPlugin.cpp @@ -27,8 +27,7 @@ using namespace mv; using namespace mv::plugin; ExampleDependenciesPlugin::ExampleDependenciesPlugin(const PluginFactory* factory) : - AnalysisPlugin(factory), - _settingsAction() + AnalysisPlugin(factory) { } @@ -136,9 +135,28 @@ void ExampleDependenciesPlugin::compute() std::cout << "ExampleDependenciesPlugin: Finished." << std::endl; } +// ============================================================================= +// Plugin Factory +// ============================================================================= + +ExampleDependenciesPluginFactory::ExampleDependenciesPluginFactory() +{ + getPluginMetadata().setDescription("Example dependencies plugin"); + getPluginMetadata().setSummary("This example shows how to work with plugin dependencies in ManiVault Studio."); + getPluginMetadata().setCopyrightHolder({ "BioVault (Biomedical Visual Analytics Unit LUMC - TU Delft)" }); + getPluginMetadata().setAuthors({ + { "A. Vieth", { "Plugin developer", "Maintainer" }, { "LUMC", "TU Delft" } } + }); + getPluginMetadata().setOrganizations({ + { "LUMC", "Leiden University Medical Center", "https://www.lumc.nl/en/" }, + { "TU Delft", "Delft university of technology", "https://www.tudelft.nl/" } + }); + getPluginMetadata().setLicenseText("This plugin is distributed under the [LGPL v3.0](https://www.gnu.org/licenses/lgpl-3.0.en.html) license."); +} + AnalysisPlugin* ExampleDependenciesPluginFactory::produce() { - // Return a new instance of the example analysis plugin + // Return a new instance of the example dependencies plugin return new ExampleDependenciesPlugin(this); } @@ -146,7 +164,7 @@ mv::DataTypes ExampleDependenciesPluginFactory::supportedDataTypes() const { DataTypes supportedTypes; - // This example analysis plugin is compatible with points datasets + // This example dependencies plugin is compatible with points datasets supportedTypes.append(PointType); return supportedTypes; diff --git a/ExampleDependencies/src/ExampleDependenciesPlugin.h b/ExampleDependencies/src/ExampleDependenciesPlugin.h index acb72e0..2c0e3eb 100644 --- a/ExampleDependencies/src/ExampleDependenciesPlugin.h +++ b/ExampleDependencies/src/ExampleDependenciesPlugin.h @@ -47,10 +47,7 @@ class ExampleDependenciesPluginFactory : public AnalysisPluginFactory public: /** Default constructor */ - ExampleDependenciesPluginFactory() {} - - /** Destructor */ - ~ExampleDependenciesPluginFactory() override {} + ExampleDependenciesPluginFactory(); /** Creates an instance of the example analysis plugin */ AnalysisPlugin* produce() override; diff --git a/ExampleLoader/src/ExampleLoaderPlugin.cpp b/ExampleLoader/src/ExampleLoaderPlugin.cpp index 670aa34..795f593 100644 --- a/ExampleLoader/src/ExampleLoaderPlugin.cpp +++ b/ExampleLoader/src/ExampleLoaderPlugin.cpp @@ -72,6 +72,23 @@ void ExampleLoaderPlugin::loadData() qDebug() << "Example file loaded. Num data points: " << points->getNumPoints(); } +ExampleLoaderPluginFactory::ExampleLoaderPluginFactory() +{ + getPluginMetadata().setDescription("Example loader plugin"); + getPluginMetadata().setSummary("This example shows how to implement a data loader plugin in ManiVault Studio."); + getPluginMetadata().setCopyrightHolder({ "BioVault (Biomedical Visual Analytics Unit LUMC - TU Delft)" }); + getPluginMetadata().setAuthors({ + { "J. Thijssen", { "Software architect" }, { "LUMC", "TU Delft" } }, + { "T. Kroes", { "Lead software architect" }, { "LUMC" } }, + { "A. Vieth", { "Plugin developer", "Maintainer" }, { "LUMC", "TU Delft" } } + }); + getPluginMetadata().setOrganizations({ + { "LUMC", "Leiden University Medical Center", "https://www.lumc.nl/en/" }, + { "TU Delft", "Delft university of technology", "https://www.tudelft.nl/" } + }); + getPluginMetadata().setLicenseText("This plugin is distributed under the [LGPL v3.0](https://www.gnu.org/licenses/lgpl-3.0.en.html) license."); +} + ExampleLoaderPlugin* ExampleLoaderPluginFactory::produce() { return new ExampleLoaderPlugin(this); diff --git a/ExampleLoader/src/ExampleLoaderPlugin.h b/ExampleLoader/src/ExampleLoaderPlugin.h index 080deea..90a1ab3 100644 --- a/ExampleLoader/src/ExampleLoaderPlugin.h +++ b/ExampleLoader/src/ExampleLoaderPlugin.h @@ -36,8 +36,7 @@ class ExampleLoaderPluginFactory : public LoaderPluginFactory FILE "ExampleLoaderPlugin.json") public: - ExampleLoaderPluginFactory(void) {} - ~ExampleLoaderPluginFactory(void) override {} + ExampleLoaderPluginFactory(); ExampleLoaderPlugin* produce() override; diff --git a/ExampleTransformation/src/ExampleTransformationPlugin.cpp b/ExampleTransformation/src/ExampleTransformationPlugin.cpp index 389ddaf..ce76d30 100644 --- a/ExampleTransformation/src/ExampleTransformationPlugin.cpp +++ b/ExampleTransformation/src/ExampleTransformationPlugin.cpp @@ -121,6 +121,27 @@ QString ExampleTransformationPlugin::getTypeName(const Type& type) return types[type]; } +// ============================================================================= +// Plugin Factory +// ============================================================================= + +ExampleTransformationPluginFactory::ExampleTransformationPluginFactory() +{ + getPluginMetadata().setDescription("Example transformation plugin"); + getPluginMetadata().setSummary("This example shows how to implement a basic data transformation plugin in ManiVault Studio."); + getPluginMetadata().setCopyrightHolder({ "BioVault (Biomedical Visual Analytics Unit LUMC - TU Delft)" }); + getPluginMetadata().setAuthors({ + { "T. Kroes", { "Lead software architect" }, { "LUMC" } }, + { "J. Thijssen", { "Software architect" }, { "LUMC", "TU Delft" } }, + { "A. Vieth", { "Plugin developer", "Maintainer" }, { "LUMC", "TU Delft" } } + }); + getPluginMetadata().setOrganizations({ + { "LUMC", "Leiden University Medical Center", "https://www.lumc.nl/en/" }, + { "TU Delft", "Delft university of technology", "https://www.tudelft.nl/" } + }); + getPluginMetadata().setLicenseText("This plugin is distributed under the [LGPL v3.0](https://www.gnu.org/licenses/lgpl-3.0.en.html) license."); +} + ExampleTransformationPlugin* ExampleTransformationPluginFactory::produce() { // Return a new instance of the example transformation plugin diff --git a/ExampleTransformation/src/ExampleTransformationPlugin.h b/ExampleTransformation/src/ExampleTransformationPlugin.h index 79f5d31..56036a1 100644 --- a/ExampleTransformation/src/ExampleTransformationPlugin.h +++ b/ExampleTransformation/src/ExampleTransformationPlugin.h @@ -95,10 +95,7 @@ class ExampleTransformationPluginFactory : public TransformationPluginFactory public: /** Default constructor */ - ExampleTransformationPluginFactory() {} - - /** Destructor */ - ~ExampleTransformationPluginFactory() override {} + ExampleTransformationPluginFactory(); /** Creates an instance of the example transform plugin */ ExampleTransformationPlugin* produce() override; diff --git a/ExampleView/src/ExampleViewPlugin.cpp b/ExampleView/src/ExampleViewPlugin.cpp index 57fec71..4e22ea1 100644 --- a/ExampleView/src/ExampleViewPlugin.cpp +++ b/ExampleView/src/ExampleViewPlugin.cpp @@ -24,11 +24,6 @@ ExampleViewPlugin::ExampleViewPlugin(const PluginFactory* factory) : // Align text in the center _currentDatasetNameLabel->setAlignment(Qt::AlignCenter); - getLearningCenterAction().setPluginTitle("Example view"); - - getLearningCenterAction().setShortDescription("Example view plugin"); - getLearningCenterAction().setLongDescription("This plugin shows how to implement a basic view plugin in ManiVault."); - getLearningCenterAction().addVideos(QStringList({ "Practitioner", "Developer" })); } @@ -188,6 +183,23 @@ void ExampleViewPlugin::onDataEvent(mv::DatasetEvent* dataEvent) } } +ExampleViewPluginFactory::ExampleViewPluginFactory() +{ + getPluginMetadata().setDescription("Example view plugin"); + getPluginMetadata().setSummary("This example shows how to implement a basic view plugin in ManiVault Studio."); + getPluginMetadata().setCopyrightHolder({ "BioVault (Biomedical Visual Analytics Unit LUMC - TU Delft)" }); + getPluginMetadata().setAuthors({ + { "A. Vieth", { "Plugin developer", "Maintainer" }, { "LUMC", "TU Delft" } }, + { "T. Kroes", { "Lead software architect" }, { "LUMC" } }, + { "J. Thijssen", { "Software architect" }, { "LUMC", "TU Delft" } } + }); + getPluginMetadata().setOrganizations({ + { "LUMC", "Leiden University Medical Center", "https://www.lumc.nl/en/" }, + { "TU Delft", "Delft university of technology", "https://www.tudelft.nl/" } + }); + getPluginMetadata().setLicenseText("This plugin is distributed under the [LGPL v3.0](https://www.gnu.org/licenses/lgpl-3.0.en.html) license."); +} + ViewPlugin* ExampleViewPluginFactory::produce() { return new ExampleViewPlugin(this); diff --git a/ExampleView/src/ExampleViewPlugin.h b/ExampleView/src/ExampleViewPlugin.h index 84dcd33..7c8515b 100644 --- a/ExampleView/src/ExampleViewPlugin.h +++ b/ExampleView/src/ExampleViewPlugin.h @@ -60,7 +60,7 @@ class ExampleViewPlugin : public ViewPlugin protected: DropWidget* _dropWidget; /** Widget for drag and drop behavior */ - mv::Dataset _points; /** Points smart pointer */ + mv::Dataset _points; /** Points smart pointer */ QString _currentDatasetName; /** Name of the current dataset */ QLabel* _currentDatasetNameLabel; /** Label that show the current dataset name */ }; @@ -80,11 +80,8 @@ class ExampleViewPluginFactory : public ViewPluginFactory public: /** Default constructor */ - ExampleViewPluginFactory() {} + ExampleViewPluginFactory(); - /** Destructor */ - ~ExampleViewPluginFactory() override {} - /** Creates an instance of the example view plugin */ ViewPlugin* produce() override; diff --git a/ExampleViewJS/src/ExampleViewJSPlugin.cpp b/ExampleViewJS/src/ExampleViewJSPlugin.cpp index a79fab9..fe51627 100644 --- a/ExampleViewJS/src/ExampleViewJSPlugin.cpp +++ b/ExampleViewJS/src/ExampleViewJSPlugin.cpp @@ -25,11 +25,6 @@ ExampleViewJSPlugin::ExampleViewJSPlugin(const PluginFactory* factory) : _dropWidget(nullptr), _currentDataSet(nullptr) { - getLearningCenterAction().setPluginTitle("Example Javascript view"); - - getLearningCenterAction().setShortDescription("Example Javascript view plugin"); - getLearningCenterAction().setLongDescription("This plugin shows how to implement a basic Javascript-based view plugin in ManiVault."); - getLearningCenterAction().addVideos(QStringList({ "Practitioner", "Developer" })); } @@ -234,6 +229,23 @@ void ExampleViewJSPlugin::createData() // Plugin Factory // ============================================================================= +ExampleViewJSPluginFactory::ExampleViewJSPluginFactory() +{ + getPluginMetadata().setDescription("Example Javascript view plugin"); + getPluginMetadata().setSummary("This plugin shows how to implement a basic Javascript-based view plugin in ManiVault Studio."); + getPluginMetadata().setCopyrightHolder({ "BioVault (Biomedical Visual Analytics Unit LUMC - TU Delft)" }); + getPluginMetadata().setAuthors({ + { "A. Vieth", { "Plugin developer", "Maintainer" }, { "LUMC", "TU Delft" } }, + { "J. Thijssen", { "Software architect" }, { "LUMC", "TU Delft" } }, + { "T. Kroes", { "Lead software architect" }, { "LUMC" } } + }); + getPluginMetadata().setOrganizations({ + { "LUMC", "Leiden University Medical Center", "https://www.lumc.nl/en/" }, + { "TU Delft", "Delft university of technology", "https://www.tudelft.nl/" } + }); + getPluginMetadata().setLicenseText("This plugin is distributed under the [LGPL v3.0](https://www.gnu.org/licenses/lgpl-3.0.en.html) license."); +} + QIcon ExampleViewJSPluginFactory::getIcon(const QColor& color /*= Qt::black*/) const { return mv::Application::getIconFont("FontAwesome").getIcon("bullseye", color); diff --git a/ExampleViewJS/src/ExampleViewJSPlugin.h b/ExampleViewJS/src/ExampleViewJSPlugin.h index 172a94c..161bd0c 100644 --- a/ExampleViewJS/src/ExampleViewJSPlugin.h +++ b/ExampleViewJS/src/ExampleViewJSPlugin.h @@ -71,7 +71,7 @@ public slots: private: ChartWidget* _chartWidget; // WebWidget that sets up the HTML page DropWidget* _dropWidget; // Widget for drag and drop behavior - mv::Dataset _currentDataSet; // Reference to currently shown data set + mv::Dataset _currentDataSet; // Reference to currently shown data set }; /** @@ -89,11 +89,8 @@ class ExampleViewJSPluginFactory : public ViewPluginFactory public: /** Default constructor */ - ExampleViewJSPluginFactory() {} + ExampleViewJSPluginFactory(); - /** Destructor */ - ~ExampleViewJSPluginFactory() override {} - /** Get plugin icon */ QIcon getIcon(const QColor& color = Qt::black) const override; diff --git a/ExampleViewOpenGL/src/ExampleViewGLPlugin.cpp b/ExampleViewOpenGL/src/ExampleViewGLPlugin.cpp index d4f1a2b..ddacfe9 100644 --- a/ExampleViewOpenGL/src/ExampleViewGLPlugin.cpp +++ b/ExampleViewOpenGL/src/ExampleViewGLPlugin.cpp @@ -112,11 +112,6 @@ ExampleViewGLPlugin::ExampleViewGLPlugin(const PluginFactory* factory) : // Create data so that we do not need to load any in this example createData(); - getLearningCenterAction().setPluginTitle("Example OpenGL view"); - - getLearningCenterAction().setShortDescription("Example OpenGL view plugin"); - getLearningCenterAction().setLongDescription("This plugin shows how to implement a basic OpenGL-based view plugin in ManiVault."); - getLearningCenterAction().addVideos(QStringList({ "Practitioner", "Developer" })); } @@ -237,12 +232,23 @@ ViewPlugin* ExampleViewGLPluginFactory::produce() } ExampleViewGLPluginFactory::ExampleViewGLPluginFactory() : - ViewPluginFactory(), _statusBarAction(nullptr), _statusBarPopupGroupAction(this, "Popup Group"), _statusBarPopupAction(this, "Popup") { - + getPluginMetadata().setDescription("Example OpenGL view"); + getPluginMetadata().setSummary("This example shows how to implement a basic OpenGL-based view plugin in ManiVault Studio."); + getPluginMetadata().setCopyrightHolder({ "BioVault (Biomedical Visual Analytics Unit LUMC - TU Delft)" }); + getPluginMetadata().setAuthors({ + { "J. Thijssen", { "Software architect" }, { "LUMC", "TU Delft" } }, + { "A. Vieth", { "Plugin developer", "Maintainer" }, { "LUMC", "TU Delft" } }, + { "T. Kroes", { "Lead software architect" }, { "LUMC" } } + }); + getPluginMetadata().setOrganizations({ + { "LUMC", "Leiden University Medical Center", "https://www.lumc.nl/en/" }, + { "TU Delft", "Delft university of technology", "https://www.tudelft.nl/" } + }); + getPluginMetadata().setLicenseText("This plugin is distributed under the [LGPL v3.0](https://www.gnu.org/licenses/lgpl-3.0.en.html) license."); } void ExampleViewGLPluginFactory::initialize() diff --git a/ExampleViewOpenGL/src/ExampleViewGLPlugin.h b/ExampleViewOpenGL/src/ExampleViewGLPlugin.h index 838d047..492e21a 100644 --- a/ExampleViewOpenGL/src/ExampleViewGLPlugin.h +++ b/ExampleViewOpenGL/src/ExampleViewGLPlugin.h @@ -91,9 +91,6 @@ class ExampleViewGLPluginFactory : public ViewPluginFactory /** Default constructor */ ExampleViewGLPluginFactory(); - /** Destructor */ - ~ExampleViewGLPluginFactory() override {} - /** Perform post-construction initialization */ void initialize() override; diff --git a/ExampleWriter/src/ExampleWriterPlugin.cpp b/ExampleWriter/src/ExampleWriterPlugin.cpp index a0745ec..528797d 100644 --- a/ExampleWriter/src/ExampleWriterPlugin.cpp +++ b/ExampleWriter/src/ExampleWriterPlugin.cpp @@ -66,6 +66,27 @@ void ExampleWriterPlugin::writeData() } } +// ============================================================================= +// Plugin Factory +// ============================================================================= + +ExampleWriterPluginFactory::ExampleWriterPluginFactory() +{ + getPluginMetadata().setDescription("Example writer plugin"); + getPluginMetadata().setSummary("This example shows how to implement a basic data writer plugin in ManiVault Studio."); + getPluginMetadata().setCopyrightHolder({ "BioVault (Biomedical Visual Analytics Unit LUMC - TU Delft)" }); + getPluginMetadata().setAuthors({ + { "A. Vieth", { "Plugin developer", "Maintainer" }, { "LUMC", "TU Delft" } }, + { "J. Thijssen", { "Software architect" }, { "LUMC", "TU Delft" } }, + { "T. Kroes", { "Lead software architect" }, { "LUMC" } } + }); + getPluginMetadata().setOrganizations({ + { "LUMC", "Leiden University Medical Center", "https://www.lumc.nl/en/" }, + { "TU Delft", "Delft university of technology", "https://www.tudelft.nl/" } + }); + getPluginMetadata().setLicenseText("This plugin is distributed under the [LGPL v3.0](https://www.gnu.org/licenses/lgpl-3.0.en.html) license."); +} + ExampleWriterPlugin* ExampleWriterPluginFactory::produce() { return new ExampleWriterPlugin(this); diff --git a/ExampleWriter/src/ExampleWriterPlugin.h b/ExampleWriter/src/ExampleWriterPlugin.h index 683242c..d2b404b 100644 --- a/ExampleWriter/src/ExampleWriterPlugin.h +++ b/ExampleWriter/src/ExampleWriterPlugin.h @@ -37,8 +37,7 @@ class ExampleWriterPluginFactory : public WriterPluginFactory FILE "ExampleWriterPlugin.json") public: - ExampleWriterPluginFactory(void) {} - ~ExampleWriterPluginFactory(void) override {} + ExampleWriterPluginFactory(); /** Creates an instance of the example writer plugin */ ExampleWriterPlugin* produce() override;