MeshLabPluginFile to MeshLabPlugin, EditPluginFactory to EditPlugin

This commit is contained in:
alemuntoni 2021-03-15 15:30:30 +01:00
parent abd16451db
commit f805172f4f
34 changed files with 119 additions and 118 deletions

View File

@ -24,7 +24,7 @@ set(HEADERS
plugins/containers/iomesh_plugin_container.h
plugins/containers/ioraster_plugin_container.h
plugins/containers/render_plugin_container.h
plugins/interfaces/meshlab_plugin_file.h
plugins/interfaces/meshlab_plugin.h
plugins/interfaces/meshlab_plugin_logger.h
plugins/interfaces/decorate_plugin.h
plugins/interfaces/edit_plugin.h

View File

@ -43,7 +43,7 @@ HEADERS += \
plugins/containers/iomesh_plugin_container.h \
plugins/containers/ioraster_plugin_container.h \
plugins/containers/render_plugin_container.h \
plugins/interfaces/meshlab_plugin_file.h \
plugins/interfaces/meshlab_plugin.h \
plugins/interfaces/meshlab_plugin_logger.h \
plugins/interfaces/decorate_plugin.h \
plugins/interfaces/edit_plugin.h \

View File

@ -32,12 +32,12 @@ void EditPluginContainer::clear()
editPlugins.clear();
}
void EditPluginContainer::pushEditPlugin(EditPluginFactory* iEditFactory)
void EditPluginContainer::pushEditPlugin(EditPlugin* iEditFactory)
{
editPlugins.push_back(iEditFactory);
}
void EditPluginContainer::eraseEditPlugin(EditPluginFactory* iEditFactory)
void EditPluginContainer::eraseEditPlugin(EditPlugin* iEditFactory)
{
editPlugins.erase(std::find(editPlugins.begin(), editPlugins.end(), iEditFactory));
}
@ -47,14 +47,14 @@ EditPluginContainer::EditPluginFactoryRangeIterator EditPluginContainer::editPlu
return EditPluginFactoryRangeIterator(this, iterateAlsoDisabledPlugins);
}
ConstPluginIterator<EditPluginFactory> EditPluginContainer::EditPluginFactoryRangeIterator::begin()
ConstPluginIterator<EditPlugin> EditPluginContainer::EditPluginFactoryRangeIterator::begin()
{
return ConstPluginIterator<EditPluginFactory>(pm->editPlugins, pm->editPlugins.begin(), b);
return ConstPluginIterator<EditPlugin>(pm->editPlugins, pm->editPlugins.begin(), b);
}
ConstPluginIterator<EditPluginFactory> EditPluginContainer::EditPluginFactoryRangeIterator::end()
ConstPluginIterator<EditPlugin> EditPluginContainer::EditPluginFactoryRangeIterator::end()
{
return ConstPluginIterator<EditPluginFactory>(pm->editPlugins, pm->editPlugins.end(), b);
return ConstPluginIterator<EditPlugin>(pm->editPlugins, pm->editPlugins.end(), b);
}
EditPluginContainer::EditPluginFactoryRangeIterator::EditPluginFactoryRangeIterator(

View File

@ -41,20 +41,20 @@ public:
EditPluginContainer();
void clear();
void pushEditPlugin(EditPluginFactory* iEditFactory);
void eraseEditPlugin(EditPluginFactory* iEditFactory);
void pushEditPlugin(EditPlugin* iEditFactory);
void eraseEditPlugin(EditPlugin* iEditFactory);
EditPluginFactoryRangeIterator editPluginIterator(bool iterateAlsoDisabledPlugins = false) const;
private:
std::vector<EditPluginFactory*> editPlugins;
std::vector<EditPlugin*> editPlugins;
};
class EditPluginContainer::EditPluginFactoryRangeIterator
{
friend class EditPluginContainer;
public:
ConstPluginIterator<EditPluginFactory> begin();
ConstPluginIterator<EditPluginFactory> end();
ConstPluginIterator<EditPlugin> begin();
ConstPluginIterator<EditPlugin> end();
private:
EditPluginFactoryRangeIterator(const EditPluginContainer* pm, bool iterateAlsoDisabledPlugins = false);
const EditPluginContainer* pm;

View File

@ -43,7 +43,7 @@ QAction* DecoratePlugin::action(QString name) const
return 0;
}
MeshLabPluginFile::ActionIDType DecoratePlugin::ID(const QAction* a) const
MeshLabPlugin::ActionIDType DecoratePlugin::ID(const QAction* a) const
{
QString aa=a->text();
foreach(ActionIDType tt, types())
@ -57,7 +57,7 @@ MeshLabPluginFile::ActionIDType DecoratePlugin::ID(const QAction* a) const
return -1;
}
MeshLabPluginFile::ActionIDType DecoratePlugin::ID(QString name) const
MeshLabPlugin::ActionIDType DecoratePlugin::ID(QString name) const
{
QString n = name;
foreach(ActionIDType tt, types())

View File

@ -25,7 +25,7 @@
#define MESHLAB_DECORATE_PLUGIN_H
#include "meshlab_plugin_logger.h"
#include "meshlab_plugin_file.h"
#include "meshlab_plugin.h"
class GLArea;
@ -53,7 +53,7 @@ class GLArea;
* - display of specific tagging
**/
class DecoratePlugin : virtual public MeshLabPluginFile, public MeshLabPluginLogger
class DecoratePlugin : virtual public MeshLabPlugin, public MeshLabPluginLogger
{
public:

View File

@ -27,7 +27,7 @@
#include <QTabletEvent>
#include "meshlab_plugin_logger.h"
#include "meshlab_plugin_file.h"
#include "meshlab_plugin.h"
#include "../../ml_document/mesh_document.h"
@ -94,19 +94,19 @@ public:
/**
* @brief The EditPluginFactory class is used to generate an action for each
* starting of an editing filter.
* @brief The EditPlugin class is used to generate an action for each
* starting of an editing tool.
*
* This is needed because editing filters have a internal state, so if you want
* This is needed because editing tools have a internal state, so if you want
* to have an editing tool for two different documents you have to instance
* two objects. This class is used by the framework to generate an independent
* EditPlugin for each document.
* EditTool for each document.
*/
class EditPluginFactory : public MeshLabPluginFile
class EditPlugin : public MeshLabPlugin
{
public:
EditPluginFactory() {}
virtual ~EditPluginFactory() {}
EditPlugin() {}
virtual ~EditPlugin() {}
//gets a list of actions available from this plugin
virtual std::list<QAction *> actions() const {return actionList;};
@ -121,8 +121,8 @@ protected:
std::list<QAction*> actionList;
};
#define EDIT_PLUGIN_FACTORY_IID "vcg.meshlab.EditPluginFactory/1.0"
Q_DECLARE_INTERFACE(EditPluginFactory, EDIT_PLUGIN_FACTORY_IID)
#define EDIT_PLUGIN_IID "vcg.meshlab.EditPlugin/1.0"
Q_DECLARE_INTERFACE(EditPlugin, EDIT_PLUGIN_IID)
#endif // MESHLAB_EDIT_PLUGIN_H

View File

@ -47,7 +47,7 @@ bool FilterPlugin::isFilterApplicable(const QAction* act, const MeshModel& m, QS
return MissingItems.isEmpty();
}
MeshLabPluginFile::ActionIDType FilterPlugin::ID(const QAction* a) const
MeshLabPlugin::ActionIDType FilterPlugin::ID(const QAction* a) const
{
QString aa=a->text();
for(ActionIDType tt : qAsConst(typeList))

View File

@ -25,7 +25,7 @@
#define MESHLAB_FILTER_PLUGIN_H
#include "meshlab_plugin_logger.h"
#include "meshlab_plugin_file.h"
#include "meshlab_plugin.h"
#include "../../ml_document/mesh_document.h"
//declaring types to be used as QVariants
@ -40,7 +40,7 @@ Q_DECLARE_METATYPE(Eigen::VectorXd)
/**
* @brief The FilterPlugin class provide the interface of the filter plugins.
*/
class FilterPlugin : virtual public MeshLabPluginFile, virtual public MeshLabPluginLogger
class FilterPlugin : virtual public MeshLabPlugin, virtual public MeshLabPluginLogger
{
public:
/**

View File

@ -27,13 +27,13 @@
#include <wrap/callback.h>
#include "meshlab_plugin_logger.h"
#include "meshlab_plugin_file.h"
#include "meshlab_plugin.h"
#include "../../utilities/file_format.h"
/**
* @brief The IOMeshPlugin is the base class for all the single mesh loading plugins.
*/
class IOMeshPlugin : virtual public MeshLabPluginFile, virtual public MeshLabPluginLogger
class IOMeshPlugin : virtual public MeshLabPlugin, virtual public MeshLabPluginLogger
{
public:
IOMeshPlugin() : MeshLabPluginLogger() { }

View File

@ -25,11 +25,11 @@
#define MESHLAB_IORASTER_PLUGIN_H
#include "meshlab_plugin_logger.h"
#include "meshlab_plugin_file.h"
#include "meshlab_plugin.h"
#include "../../utilities/file_format.h"
#include "../../ml_document/raster_model.h"
class IORasterPlugin : virtual public MeshLabPluginFile, virtual public MeshLabPluginLogger
class IORasterPlugin : virtual public MeshLabPlugin, virtual public MeshLabPluginLogger
{
public:
IORasterPlugin() : MeshLabPluginLogger() {}

View File

@ -21,8 +21,8 @@
* *
****************************************************************************/
#ifndef MESHLAB_PLUGIN_FILE_H
#define MESHLAB_PLUGIN_FILE_H
#ifndef MESHLAB_PLUGIN_H
#define MESHLAB_PLUGIN_H
#include <string>
#include <QFileInfo>
@ -44,13 +44,13 @@
* Moreover ID are UNSAFE (different plugin can have same id) so they should be
* used only INTERNALLY.
*/
class MeshLabPluginFile
class MeshLabPlugin
{
public:
friend class PluginManager;
MeshLabPluginFile() : enabled(true) {};
virtual ~MeshLabPluginFile() {}
MeshLabPlugin() : enabled(true) {};
virtual ~MeshLabPlugin() {}
/**
* @brief the type used to identify plugin actions;
@ -101,4 +101,4 @@ private:
private:
#define MESHLAB_PLUGIN_NAME_EXPORTER(x)
#endif // MESHLAB_PLUGIN_FILE_H
#endif // MESHLAB_PLUGIN_H

View File

@ -26,19 +26,19 @@
#include <QAction>
#include "meshlab_plugin_file.h"
#include "meshlab_plugin.h"
#include "../../GLLogStream.h"
#include "../../parameters/rich_parameter_list.h"
#include "../../globals.h"
/**
* @brief The PluginLogger provides some common log functionalities that are
* used by meshlab.
* @brief The MeshLabPluginLogger provides some common log functionalities that are
* used by MeshLab.
*
* Each MeshLab abstract plugin class inherit from this class in order to make
* Each MeshLab abstract plugin class inherits from this class in order to make
* available log member functions to plugins.
* The only exception is the EditPlugin class, since it is not the Edit plugin
* that should be able to log, but the EditTool class (The EditPlugin class is a
* that should be able to log, but the EditTool class (the EditPlugin class is a
* "container" of EditTools).
*/
class MeshLabPluginLogger

View File

@ -25,7 +25,7 @@
#define MESHLAB_RENDER_PLUGIN_H
#include "meshlab_plugin_logger.h"
#include "meshlab_plugin_file.h"
#include "meshlab_plugin.h"
#include "../../ml_shared_data_context/ml_scene_gl_shared_data_context.h"
/**
@ -50,7 +50,7 @@
class GLArea;
class RenderPlugin : virtual public MeshLabPluginFile, virtual public MeshLabPluginLogger
class RenderPlugin : virtual public MeshLabPlugin, virtual public MeshLabPluginLogger
{
public:
RenderPlugin() :MeshLabPluginLogger() {}

View File

@ -30,7 +30,7 @@
#include "interfaces/ioraster_plugin.h"
#include "interfaces/render_plugin.h"
MeshLabPluginType::MeshLabPluginType(const MeshLabPluginFile* fpi) : type(0)
MeshLabPluginType::MeshLabPluginType(const MeshLabPlugin* fpi) : type(0)
{
//Decorate
const DecoratePlugin *iDecorator = dynamic_cast<const DecoratePlugin *>(fpi);
@ -38,7 +38,7 @@ MeshLabPluginType::MeshLabPluginType(const MeshLabPluginFile* fpi) : type(0)
type |= DECORATE;
}
//EditFactory
const EditPluginFactory* efp = dynamic_cast<const EditPluginFactory *>(fpi);
const EditPlugin* efp = dynamic_cast<const EditPlugin *>(fpi);
if (efp) { //EditFactory Plugin
type |= EDIT;
}

View File

@ -26,12 +26,12 @@
class QString;
class MeshLabPluginFile;
class MeshLabPlugin;
class MeshLabPluginType
{
public:
MeshLabPluginType(const MeshLabPluginFile* fpi);
MeshLabPluginType(const MeshLabPlugin* fpi);
bool isValid() const;
bool isDecoratePlugin() const;

View File

@ -80,7 +80,7 @@ void PluginManager::checkPlugin(const QString& filename)
throw MLException(fin.fileName() + " does not seem to be a Qt Plugin.\n\n" + loader.errorString());
}
MeshLabPluginFile* ifp = dynamic_cast<MeshLabPluginFile *>(plugin);
MeshLabPlugin* ifp = dynamic_cast<MeshLabPlugin *>(plugin);
if (!ifp){
throw MLException(fin.fileName() + " is not a MeshLab plugin.");
}
@ -195,14 +195,14 @@ void PluginManager::loadPlugin(const QString& fileName)
//load the plugin depending on the type (can be more than one type!)
QPluginLoader* loader = new QPluginLoader(fin.absoluteFilePath());
QObject *plugin = loader->instance();
MeshLabPluginFile* ifp = dynamic_cast<MeshLabPluginFile *>(plugin);
MeshLabPlugin* ifp = dynamic_cast<MeshLabPlugin *>(plugin);
MeshLabPluginType type(ifp);
if (type.isDecoratePlugin()){
decoratePlugins.pushDecoratePlugin(qobject_cast<DecoratePlugin *>(plugin));
}
if (type.isEditPlugin()){
editPlugins.pushEditPlugin(qobject_cast<EditPluginFactory *>(plugin));
editPlugins.pushEditPlugin(qobject_cast<EditPlugin *>(plugin));
}
if (type.isFilterPlugin()){
filterPlugins.pushFilterPlugin(qobject_cast<FilterPlugin *>(plugin));
@ -225,7 +225,7 @@ void PluginManager::loadPlugin(const QString& fileName)
pluginFiles.insert(fin.absoluteFilePath());
}
void PluginManager::unloadPlugin(MeshLabPluginFile* ifp)
void PluginManager::unloadPlugin(MeshLabPlugin* ifp)
{
auto it = std::find(allPlugins.begin(), allPlugins.end(), ifp);
if (it != allPlugins.end()){
@ -235,7 +235,7 @@ void PluginManager::unloadPlugin(MeshLabPluginFile* ifp)
decoratePlugins.eraseDecoratePlugin(dynamic_cast<DecoratePlugin *>(ifp));
}
if (type.isEditPlugin()){
editPlugins.eraseEditPlugin(dynamic_cast<EditPluginFactory *>(ifp));
editPlugins.eraseEditPlugin(dynamic_cast<EditPlugin *>(ifp));
}
if (type.isFilterPlugin()){
filterPlugins.eraseFilterPlugin(dynamic_cast<FilterPlugin *>(ifp));
@ -257,7 +257,7 @@ void PluginManager::unloadPlugin(MeshLabPluginFile* ifp)
}
}
void PluginManager::enablePlugin(MeshLabPluginFile* ifp)
void PluginManager::enablePlugin(MeshLabPlugin* ifp)
{
auto it = std::find(allPlugins.begin(), allPlugins.end(), ifp);
if (it != allPlugins.end() && !ifp->isEnabled()){
@ -266,7 +266,7 @@ void PluginManager::enablePlugin(MeshLabPluginFile* ifp)
}
}
void PluginManager::disablePlugin(MeshLabPluginFile* ifp)
void PluginManager::disablePlugin(MeshLabPlugin* ifp)
{
auto it = std::find(allPlugins.begin(), allPlugins.end(), ifp);
if (it != allPlugins.end() && ifp->isEnabled()){
@ -356,7 +356,7 @@ QStringList PluginManager::inputRasterFormatListDialog() const
return inputFormatListDialog(ioRasterPluginIterator());
}
MeshLabPluginFile* PluginManager::operator[](unsigned int i) const
MeshLabPlugin* PluginManager::operator[](unsigned int i) const
{
return allPlugins[i];
}
@ -462,14 +462,14 @@ QStringList PluginManager::outputFormatListDialog(RangeIterator iterator)
return inputRasterFormatsDialogStringList;
}
ConstPluginIterator<MeshLabPluginFile> PluginManager::PluginRangeIterator::begin()
ConstPluginIterator<MeshLabPlugin> PluginManager::PluginRangeIterator::begin()
{
return ConstPluginIterator<MeshLabPluginFile>(pm->allPlugins, pm->allPlugins.begin(), b);
return ConstPluginIterator<MeshLabPlugin>(pm->allPlugins, pm->allPlugins.begin(), b);
}
ConstPluginIterator<MeshLabPluginFile> PluginManager::PluginRangeIterator::end()
ConstPluginIterator<MeshLabPlugin> PluginManager::PluginRangeIterator::end()
{
return ConstPluginIterator<MeshLabPluginFile>(pm->allPlugins, pm->allPlugins.end(), b);
return ConstPluginIterator<MeshLabPlugin>(pm->allPlugins, pm->allPlugins.end(), b);
}
PluginManager::PluginRangeIterator::PluginRangeIterator(const PluginManager* pm, bool iterateAlsoDisabledPlugins) :

View File

@ -51,10 +51,10 @@ public:
void loadPlugins();
void loadPlugins(QDir pluginsDirectory);
void loadPlugin(const QString& filename);
void unloadPlugin(MeshLabPluginFile* ifp);
void unloadPlugin(MeshLabPlugin* ifp);
void enablePlugin(MeshLabPluginFile* ifp);
void disablePlugin(MeshLabPluginFile* ifp);
void enablePlugin(MeshLabPlugin* ifp);
void disablePlugin(MeshLabPlugin* ifp);
unsigned int size() const;
int numberIOPlugins() const;
@ -76,7 +76,7 @@ public:
QStringList outputMeshFormatListDialog() const;
QStringList inputRasterFormatListDialog() const;
MeshLabPluginFile* operator [](unsigned int i) const;
MeshLabPlugin* operator [](unsigned int i) const;
/** Member functions for range iterators **/
PluginRangeIterator pluginIterator(bool iterateAlsoDisabledPlugins = false) const;
@ -89,7 +89,7 @@ public:
private:
//all plugins
std::vector<MeshLabPluginFile*> allPlugins;
std::vector<MeshLabPlugin*> allPlugins;
std::vector<QPluginLoader*> allPluginLoaders;
std::set<QString> pluginFiles; //used to check if a plugin file has been already loaded
@ -115,8 +115,8 @@ class PluginManager::PluginRangeIterator
{
friend class PluginManager;
public:
ConstPluginIterator<MeshLabPluginFile> begin();
ConstPluginIterator<MeshLabPluginFile> end();
ConstPluginIterator<MeshLabPlugin> begin();
ConstPluginIterator<MeshLabPlugin> end();
private:
PluginRangeIterator(const PluginManager* pm, bool iterateAlsoDisabledPlugins = false);
const PluginManager* pm;

View File

@ -69,7 +69,7 @@ void PluginInfoDialog::chechBoxStateChanged(int state)
QCheckBox* cb = (QCheckBox*)QObject::sender();
int nPlug = cb->property("np").toInt();
PluginManager& pm = meshlab::pluginManagerInstance();
MeshLabPluginFile* fpi = pm[nPlug];
MeshLabPlugin* fpi = pm[nPlug];
if (state == Qt::Checked){
pm.enablePlugin(fpi);
}
@ -87,7 +87,7 @@ void PluginInfoDialog::uninstallPluginPushButtonClicked()
QPushButton* pb = (QPushButton*)QObject::sender();
int nPlug = pb->property("np").toInt();
PluginManager& pm = meshlab::pluginManagerInstance();
MeshLabPluginFile* fpi = pm[nPlug];
MeshLabPlugin* fpi = pm[nPlug];
QFileInfo fdel = fpi->pluginFileInfo();
pm.unloadPlugin(fpi);
bool res = QFile::remove(fdel.absoluteFilePath());
@ -159,7 +159,7 @@ void PluginInfoDialog::populateTreeWidget()
}
else {
int nPlug = 0;
for (MeshLabPluginFile* fp : pm.pluginIterator(true)){
for (MeshLabPlugin* fp : pm.pluginIterator(true)){
MeshLabPluginType type(fp);
QString pluginType = type.pluginTypeString();
QStringList tmplist;
@ -169,7 +169,7 @@ void PluginInfoDialog::populateTreeWidget()
tmplist.push_back(a->text());
}
if (type.isEditPlugin()){
EditPluginFactory* epi = dynamic_cast<EditPluginFactory*>(fp);
EditPlugin* epi = dynamic_cast<EditPlugin*>(fp);
for(QAction *a: epi->actions())
tmplist.push_back(a->text());
}
@ -215,7 +215,7 @@ void PluginInfoDialog::populateTreeWidget()
}
}
void PluginInfoDialog::addItems(const MeshLabPluginFile* fpi, int nPlug, const QString& pluginType, const QStringList& features)
void PluginInfoDialog::addItems(const MeshLabPlugin* fpi, int nPlug, const QString& pluginType, const QStringList& features)
{
QTreeWidgetItem *pluginItem = new QTreeWidgetItem(ui->treeWidget);
pluginItem->setText(PLUGINS, fpi->pluginName());

View File

@ -32,7 +32,7 @@ class PluginInfoDialog;
}
class QTreeWidgetItem;
class MeshLabPluginFile;
class MeshLabPlugin;
class PluginInfoDialog : public QDialog
{
@ -52,7 +52,7 @@ private:
enum PluginDialogColumn{PLUGINS = 0, ENABLED, TYPE, VENDOR, FILE, UNINSTALL};
void populateTreeWidget();
void addItems(const MeshLabPluginFile* fpi, int nPlug, const QString& pluginType, const QStringList &features);
void addItems(const MeshLabPlugin* fpi, int nPlug, const QString& pluginType, const QStringList &features);
Ui::PluginInfoDialog *ui;
QIcon interfaceIcon;

View File

@ -88,7 +88,7 @@ MainWindow::MainWindow():
//disable previously disabled plugins
QStringList disabledPlugins = settings.value("DisabledPlugins").value<QStringList>();
for (MeshLabPluginFile* fp : PM.pluginIterator(true)){
for (MeshLabPlugin* fp : PM.pluginIterator(true)){
if (disabledPlugins.contains(fp->pluginName()))
PM.disablePlugin(fp);
}
@ -508,7 +508,7 @@ void MainWindow::createToolBars()
editToolBar = addToolBar(tr("Edit"));
editToolBar->addAction(suspendEditModeAct);
for(EditPluginFactory *iEditFactory: PM.editPluginFactoryIterator()) {
for(EditPlugin *iEditFactory: PM.editPluginFactoryIterator()) {
for(QAction* editAction: iEditFactory->actions()){
if (!editAction->icon().isNull()) {
editToolBar->addAction(editAction);
@ -881,7 +881,7 @@ void MainWindow::fillEditMenu()
{
clearMenu(editMenu);
editMenu->addAction(suspendEditModeAct);
for(EditPluginFactory *iEditFactory: PM.editPluginFactoryIterator())
for(EditPlugin *iEditFactory: PM.editPluginFactoryIterator())
{
for(QAction* editAction: iEditFactory->actions())
{
@ -921,7 +921,7 @@ void MainWindow::updateAllPluginsActions()
editToolBar->clear();
editToolBar->addAction(suspendEditModeAct);
for(EditPluginFactory *iEditFactory: PM.editPluginFactoryIterator()) {
for(EditPlugin *iEditFactory: PM.editPluginFactoryIterator()) {
for(QAction* editAction: iEditFactory->actions()){
if (!editAction->icon().isNull()) {
editToolBar->addAction(editAction);

View File

@ -395,7 +395,7 @@ void MainWindow::updateMenus()
// you exit from editing mode by pressing again the editing button
// When you are in a editing mode all the other editing are disabled.
for (EditPluginFactory* ep : PM.editPluginFactoryIterator())
for (EditPlugin* ep : PM.editPluginFactoryIterator())
for (QAction* a : ep->actions()) {
a->setChecked(false);
a->setEnabled(GLA()->getCurrentEditAction() == nullptr);
@ -432,7 +432,7 @@ void MainWindow::updateMenus()
} // if active
else
{
for (EditPluginFactory* ep : PM.editPluginFactoryIterator()) {
for (EditPlugin* ep : PM.editPluginFactoryIterator()) {
for (QAction* a : ep->actions()) {
a->setEnabled(false);
}
@ -1406,7 +1406,7 @@ void MainWindow::applyEditMode()
//if this GLArea does not have an instance of this action's MeshEdit tool then give it one
if(!GLA()->editorExistsForAction(action))
{
EditPluginFactory *iEditFactory = qobject_cast<EditPluginFactory *>(action->parent());
EditPlugin *iEditFactory = qobject_cast<EditPlugin *>(action->parent());
EditTool *iEdit = iEditFactory->getEditTool(action);
GLA()->addMeshEditor(action, iEdit);
}
@ -2750,7 +2750,7 @@ void MainWindow::aboutPlugins()
updateAllPluginsActions();
QSettings settings;
QStringList disabledPlugins;
for (MeshLabPluginFile* pf : PM.pluginIterator(true)){
for (MeshLabPlugin* pf : PM.pluginIterator(true)){
if (!pf->isEnabled()){
disabledPlugins.append(pf->pluginName());
}

View File

@ -28,11 +28,11 @@
#include <QObject>
#include <common/plugins/interfaces/edit_plugin.h>
class EditAlignFactory : public QObject, public EditPluginFactory
class EditAlignFactory : public QObject, public EditPlugin
{
Q_OBJECT
MESHLAB_PLUGIN_IID_EXPORTER(EDIT_PLUGIN_FACTORY_IID)
Q_INTERFACES(EditPluginFactory)
MESHLAB_PLUGIN_IID_EXPORTER(EDIT_PLUGIN_IID)
Q_INTERFACES(EditPlugin)
public:
EditAlignFactory();

View File

@ -28,11 +28,11 @@
#include <QObject>
#include <common/plugins/interfaces/edit_plugin.h>
class EditManipulatorsFactory : public QObject, public EditPluginFactory
class EditManipulatorsFactory : public QObject, public EditPlugin
{
Q_OBJECT
MESHLAB_PLUGIN_IID_EXPORTER(EDIT_PLUGIN_FACTORY_IID)
Q_INTERFACES(EditPluginFactory)
MESHLAB_PLUGIN_IID_EXPORTER(EDIT_PLUGIN_IID)
Q_INTERFACES(EditPlugin)
public:
EditManipulatorsFactory();

View File

@ -28,11 +28,11 @@
#include <QObject>
#include <common/plugins/interfaces/edit_plugin.h>
class EditMeasureFactory : public QObject, public EditPluginFactory
class EditMeasureFactory : public QObject, public EditPlugin
{
Q_OBJECT
MESHLAB_PLUGIN_IID_EXPORTER(EDIT_PLUGIN_FACTORY_IID)
Q_INTERFACES(EditPluginFactory)
MESHLAB_PLUGIN_IID_EXPORTER(EDIT_PLUGIN_IID)
Q_INTERFACES(EditPlugin)
public:
EditMeasureFactory();

View File

@ -27,11 +27,11 @@
#include <QObject>
#include <common/plugins/interfaces/edit_plugin.h>
class EditMutualCorrsFactory : public QObject, public EditPluginFactory
class EditMutualCorrsFactory : public QObject, public EditPlugin
{
Q_OBJECT
MESHLAB_PLUGIN_IID_EXPORTER(EDIT_PLUGIN_FACTORY_IID)
Q_INTERFACES(EditPluginFactory)
MESHLAB_PLUGIN_IID_EXPORTER(EDIT_PLUGIN_IID)
Q_INTERFACES(EditPlugin)
public:
EditMutualCorrsFactory();

View File

@ -28,11 +28,11 @@
#include <common/plugins/interfaces/edit_plugin.h>
class EditPaintFactory : public QObject, public EditPluginFactory
class EditPaintFactory : public QObject, public EditPlugin
{
Q_OBJECT
MESHLAB_PLUGIN_IID_EXPORTER(EDIT_PLUGIN_FACTORY_IID)
Q_INTERFACES(EditPluginFactory)
MESHLAB_PLUGIN_IID_EXPORTER(EDIT_PLUGIN_IID)
Q_INTERFACES(EditPlugin)
public:
EditPaintFactory();

View File

@ -28,11 +28,11 @@
#include <QObject>
#include <common/plugins/interfaces/edit_plugin.h>
class EditPickPointsFactory : public QObject, public EditPluginFactory
class EditPickPointsFactory : public QObject, public EditPlugin
{
Q_OBJECT
MESHLAB_PLUGIN_IID_EXPORTER(EDIT_PLUGIN_FACTORY_IID)
Q_INTERFACES(EditPluginFactory)
MESHLAB_PLUGIN_IID_EXPORTER(EDIT_PLUGIN_IID)
Q_INTERFACES(EditPlugin)
public:
EditPickPointsFactory();

View File

@ -28,11 +28,11 @@
#include <QObject>
#include <common/plugins/interfaces/edit_plugin.h>
class PointEditFactory : public QObject, public EditPluginFactory
class PointEditFactory : public QObject, public EditPlugin
{
Q_OBJECT
MESHLAB_PLUGIN_IID_EXPORTER(EDIT_PLUGIN_FACTORY_IID)
Q_INTERFACES(EditPluginFactory)
MESHLAB_PLUGIN_IID_EXPORTER(EDIT_PLUGIN_IID)
Q_INTERFACES(EditPlugin)
public:
PointEditFactory();

View File

@ -28,11 +28,11 @@
#include <QObject>
#include <common/plugins/interfaces/edit_plugin.h>
class QualityMapperFactory : public QObject, public EditPluginFactory
class QualityMapperFactory : public QObject, public EditPlugin
{
Q_OBJECT
MESHLAB_PLUGIN_IID_EXPORTER(EDIT_PLUGIN_FACTORY_IID)
Q_INTERFACES(EditPluginFactory)
MESHLAB_PLUGIN_IID_EXPORTER(EDIT_PLUGIN_IID)
Q_INTERFACES(EditPlugin)
public:
QualityMapperFactory();

View File

@ -27,11 +27,11 @@
#include <QObject>
#include <common/plugins/interfaces/edit_plugin.h>
class EditReferencingFactory : public QObject, public EditPluginFactory
class EditReferencingFactory : public QObject, public EditPlugin
{
Q_OBJECT
MESHLAB_PLUGIN_IID_EXPORTER(EDIT_PLUGIN_FACTORY_IID)
Q_INTERFACES(EditPluginFactory)
MESHLAB_PLUGIN_IID_EXPORTER(EDIT_PLUGIN_IID)
Q_INTERFACES(EditPlugin)
public:
EditReferencingFactory();

View File

@ -28,11 +28,11 @@
#include <QObject>
#include <common/plugins/interfaces/edit_plugin.h>
class SampleEditFactory : public QObject, public EditPluginFactory
class SampleEditFactory : public QObject, public EditPlugin
{
Q_OBJECT
MESHLAB_PLUGIN_IID_EXPORTER(EDIT_PLUGIN_FACTORY_IID)
Q_INTERFACES(EditPluginFactory)
MESHLAB_PLUGIN_IID_EXPORTER(EDIT_PLUGIN_IID)
Q_INTERFACES(EditPlugin)
public:
SampleEditFactory();

View File

@ -27,11 +27,11 @@
#include <common/plugins/interfaces/edit_plugin.h>
class EditSelectFactory : public QObject, public EditPluginFactory
class EditSelectFactory : public QObject, public EditPlugin
{
Q_OBJECT
MESHLAB_PLUGIN_IID_EXPORTER(EDIT_PLUGIN_FACTORY_IID)
Q_INTERFACES(EditPluginFactory)
MESHLAB_PLUGIN_IID_EXPORTER(EDIT_PLUGIN_IID)
Q_INTERFACES(EditPlugin)
public:
EditSelectFactory();

View File

@ -37,6 +37,7 @@
#include <clocale>
#include <QDir>
#include <QGLFormat>
#include <QFileInfo>
#include <QElapsedTimer>