mirror of
https://github.com/lucaspalomodevelop/meshlab.git
synced 2026-03-20 11:26:11 +00:00
filterPlugins iterator on plugin manager
This commit is contained in:
parent
ea28dc90e5
commit
3fc6b76fa3
@ -214,7 +214,7 @@ unsigned int PluginManager::size() const
|
||||
}
|
||||
|
||||
// Search among all the decorator plugins the one that contains a decoration with the given name
|
||||
DecoratePluginInterface *PluginManager::getDecoratorInterfaceByName(const QString& name)
|
||||
DecoratePluginInterface *PluginManager::getDecoratePlugin(const QString& name)
|
||||
{
|
||||
foreach(DecoratePluginInterface *tt, this->meshDecoratePlugins())
|
||||
{
|
||||
@ -230,6 +230,11 @@ PluginManager::PluginRangeIterator PluginManager::pluginIterator()
|
||||
return PluginRangeIterator(this);
|
||||
}
|
||||
|
||||
PluginManager::FilterPluginRangeIterator PluginManager::filterPluginIterator()
|
||||
{
|
||||
return FilterPluginRangeIterator(this);
|
||||
}
|
||||
|
||||
void PluginManager::fillKnownIOFormats()
|
||||
{
|
||||
QString allKnownFormatsFilter = QObject::tr("All known formats (");
|
||||
|
||||
@ -52,12 +52,8 @@ public:
|
||||
|
||||
int numberIOPlugins() const;
|
||||
unsigned int size() const;
|
||||
inline QVector<FilterPluginInterface*>& meshFilterPlugins() {return filterPlugins;}
|
||||
inline QVector<RenderPluginInterface*>& meshRenderPlugins() {return renderPlugins;}
|
||||
inline QVector<DecoratePluginInterface*>& meshDecoratePlugins() {return decoratePlugins;}
|
||||
inline QVector<EditPluginInterfaceFactory*>& meshEditFactoryPlugins() {return editPlugins;}
|
||||
|
||||
DecoratePluginInterface* getDecoratorInterfaceByName(const QString& name);
|
||||
DecoratePluginInterface* getDecoratePlugin(const QString& name);
|
||||
|
||||
class PluginRangeIterator
|
||||
{
|
||||
@ -69,10 +65,28 @@ public:
|
||||
PluginRangeIterator(PluginManager* pm) : pm(pm) {}
|
||||
PluginManager* pm;
|
||||
};
|
||||
|
||||
class FilterPluginRangeIterator
|
||||
{
|
||||
friend class PluginManager;
|
||||
public:
|
||||
QVector<FilterPluginInterface*>::iterator begin() {return pm->filterPlugins.begin();}
|
||||
QVector<FilterPluginInterface*>::iterator end() {return pm->filterPlugins.end();}
|
||||
private:
|
||||
FilterPluginRangeIterator(PluginManager* pm) : pm(pm) {}
|
||||
PluginManager* pm;
|
||||
};
|
||||
|
||||
PluginRangeIterator pluginIterator();
|
||||
FilterPluginRangeIterator filterPluginIterator();
|
||||
|
||||
static QString osIndependentPluginName(const QString& plname);
|
||||
|
||||
/** Old declarations, to be deleted */
|
||||
|
||||
inline QVector<RenderPluginInterface*>& meshRenderPlugins() {return renderPlugins;}
|
||||
inline QVector<DecoratePluginInterface*>& meshDecoratePlugins() {return decoratePlugins;}
|
||||
inline QVector<EditPluginInterfaceFactory*>& meshEditFactoryPlugins() {return editPlugins;}
|
||||
|
||||
QMap<QString, QAction*> actionFilterMap;
|
||||
QMap<QString, FilterPluginInterface*> stringFilterMap;
|
||||
@ -83,8 +97,6 @@ public:
|
||||
QStringList inpRasterFilters;
|
||||
QStringList outFilters;
|
||||
|
||||
|
||||
QVector<FilterPluginInterface*> filterPlugins;
|
||||
QVector<RenderPluginInterface*> renderPlugins;
|
||||
QVector<DecoratePluginInterface*> decoratePlugins;
|
||||
QVector<EditPluginInterfaceFactory*> editPlugins;
|
||||
@ -98,6 +110,7 @@ private:
|
||||
QVector<PluginInterface *> ownerPlug;
|
||||
QVector<IOMeshPluginInterface*> ioMeshPlugins;
|
||||
QVector<IORasterPluginInterface*> ioRasterPlugins;
|
||||
QVector<FilterPluginInterface*> filterPlugins;
|
||||
QDir pluginsDir;
|
||||
|
||||
void fillKnownIOFormats();
|
||||
|
||||
@ -1403,7 +1403,7 @@ void GLArea::toggleDecorator(QString name)
|
||||
void GLArea::updateDecorator(QString name, bool toggle, bool stateToSet)
|
||||
{
|
||||
makeCurrent();
|
||||
DecoratePluginInterface *iDecorateTemp = this->mw()->PM.getDecoratorInterfaceByName(name);
|
||||
DecoratePluginInterface *iDecorateTemp = this->mw()->PM.getDecoratePlugin(name);
|
||||
if (!iDecorateTemp) {
|
||||
this->Logf(GLLogStream::SYSTEM,"Could not get Decorate interface %s", qUtf8Printable(name));
|
||||
this->Log(GLLogStream::SYSTEM,"Known decorate interfaces:");
|
||||
|
||||
@ -238,6 +238,7 @@ private slots:
|
||||
void wrapSetActiveSubWindow(QWidget* window);
|
||||
void switchCurrentContainer(QMdiSubWindow *);
|
||||
|
||||
void updateFilterToolBar();
|
||||
void updateGPUMemBar(int,int,int,int);
|
||||
|
||||
void updateLog();
|
||||
|
||||
@ -497,15 +497,7 @@ void MainWindow::createToolBars()
|
||||
filterToolBar = addToolBar(tr("Filter"));
|
||||
filterToolBar->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred);
|
||||
|
||||
for(FilterPluginInterface *iFilter: PM.meshFilterPlugins()) {
|
||||
for(QAction* filterAction: iFilter->actions()) {
|
||||
if (!filterAction->icon().isNull()) {
|
||||
// tooltip = iFilter->filterInfo(filterAction) + "<br>" + getDecoratedFileName(filterAction->data().toString());
|
||||
if (filterAction->priority() != QAction::LowPriority)
|
||||
filterToolBar->addAction(filterAction);
|
||||
} //else qDebug() << "action was null";
|
||||
}
|
||||
}
|
||||
updateFilterToolBar();
|
||||
|
||||
QWidget *spacerWidget = new QWidget();
|
||||
spacerWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
|
||||
@ -830,8 +822,7 @@ void MainWindow::fillRenderMenu()
|
||||
qaNone->setCheckable(false);
|
||||
shadersMenu->addAction(qaNone);
|
||||
connect(qaNone, SIGNAL(triggered()), this, SLOT(applyRenderMode()));
|
||||
foreach(RenderPluginInterface *iRender, PM.meshRenderPlugins())
|
||||
{
|
||||
for(RenderPluginInterface *iRender: PM.meshRenderPlugins()) {
|
||||
addToMenu(iRender->actions(), shadersMenu, SLOT(applyRenderMode()));
|
||||
}
|
||||
}
|
||||
|
||||
@ -1926,6 +1926,21 @@ void MainWindow::documentUpdateRequested()
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::updateFilterToolBar()
|
||||
{
|
||||
filterToolBar->clear();
|
||||
|
||||
for(FilterPluginInterface *iFilter: PM.filterPluginIterator()) {
|
||||
for(QAction* filterAction: iFilter->actions()) {
|
||||
if (!filterAction->icon().isNull()) {
|
||||
// tooltip = iFilter->filterInfo(filterAction) + "<br>" + getDecoratedFileName(filterAction->data().toString());
|
||||
if (filterAction->priority() != QAction::LowPriority)
|
||||
filterToolBar->addAction(filterAction);
|
||||
} //else qDebug() << "action was null";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::updateGPUMemBar(int nv_allmem, int nv_currentallocated, int ati_free_tex, int ati_free_vbo)
|
||||
{
|
||||
#ifdef Q_OS_WIN
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user