cleaner plugin management by plugin manager

This commit is contained in:
alemuntoni 2021-01-27 16:29:12 +01:00
parent 0e5d261b40
commit 493573d934
5 changed files with 11 additions and 22 deletions

View File

@ -109,8 +109,8 @@ RichParameterList& meshlab::defaultGlobalParameterList()
return globalRPS;
}
PluginManager& meshlab::pluginManagerInstance(bool verbose)
PluginManager& meshlab::pluginManagerInstance()
{
static PluginManager pm(defaultGlobalParameterList(), verbose);
static PluginManager pm;
return pm;
}

View File

@ -35,7 +35,7 @@ QString defaultPluginPath();
QString defaultShadersPath();
RichParameterList& defaultGlobalParameterList();
PluginManager& pluginManagerInstance(bool verbose = true);
PluginManager& pluginManagerInstance();
}

View File

@ -58,16 +58,6 @@ PluginManager::PluginManager()
{
}
PluginManager::PluginManager(RichParameterList& defaultGlobal, bool verbose)
{
loadPlugins(defaultGlobal, verbose);
}
PluginManager::PluginManager(RichParameterList& defaultGlobal, const QDir& pluginsDirectory, bool verbose)
{
loadPlugins(defaultGlobal, pluginsDirectory, verbose);
}
PluginManager::~PluginManager()
{
ioMeshPlugins.clear();
@ -85,12 +75,12 @@ PluginManager::~PluginManager()
void PluginManager::loadPlugins(RichParameterList& defaultGlobal, bool verbose)
void PluginManager::loadPlugins(bool verbose)
{
loadPlugins(defaultGlobal, QDir(meshlab::defaultPluginPath()), verbose);
loadPlugins(QDir(meshlab::defaultPluginPath()), verbose);
}
void PluginManager::loadPlugins(RichParameterList& defaultGlobal, const QDir& pluginsDirectory, bool verbose)
void PluginManager::loadPlugins(const QDir& pluginsDirectory, bool verbose)
{
pluginsDir = pluginsDirectory;
// without adding the correct library path in the mac the loading of jpg (done via qt plugins) fails
@ -171,7 +161,7 @@ void PluginManager::loadPlugins(RichParameterList& defaultGlobal, const QDir& pl
decoratePlugins.push_back(iDecorator);
for(QAction *decoratorAction : iDecorator->actions())
{
iDecorator->initGlobalParameterList(decoratorAction, defaultGlobal);
iDecorator->initGlobalParameterList(decoratorAction, meshlab::defaultGlobalParameterList());
}
}

View File

@ -42,12 +42,10 @@ class PluginManager
{
public:
PluginManager();
PluginManager(RichParameterList& defaultGlobal, bool verbose = false);
PluginManager(RichParameterList& defaultGlobal, const QDir& pluginsDirectory, bool verbose = false);
~PluginManager();
void loadPlugins(RichParameterList& defaultGlobal, bool verbose = false);
void loadPlugins(RichParameterList& defaultGlobal, const QDir& pluginsDirectory, bool verbose = false);
void loadPlugins(bool verbose = false);
void loadPlugins(const QDir& pluginsDirectory, bool verbose = false);
QString pluginsCode() const;
unsigned int size() const;

View File

@ -63,6 +63,7 @@ MainWindow::MainWindow():
layerDialog->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
layerDialog->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Minimum);
addDockWidget(Qt::RightDockWidgetArea, layerDialog);
PM.loadPlugins();
//setCentralWidget(workspace);