Plugin: typedef DescriptorList + more const improvements

Instead of writing QVector<Plugin::Descriptor> everywhere, mit up
iterators etc. centrally define Plugin::DescriptorList and use it
everywhere.

Additionally made pointers to Plugin::Descriptor and
Plugin::Descriptor::SubPluginFeatures::Key const in various places
so we can use ConstIterator everywhere when iterating through
Plugin::DescriptorList.
This commit is contained in:
Tobias Doerffel
2009-08-26 01:44:12 +02:00
parent 1c76c77d22
commit 2287eca802
12 changed files with 34 additions and 41 deletions

View File

@@ -52,7 +52,7 @@ ImportFilter::~ImportFilter()
void ImportFilter::import( const QString & _file_to_import,
trackContainer * _tc )
{
QVector<Descriptor> d;
DescriptorList d;
Plugin::getDescriptorsOfAvailPlugins( d );
bool successful = false;
@@ -63,8 +63,8 @@ void ImportFilter::import( const QString & _file_to_import,
const bool j = engine::projectJournal()->isJournalling();
engine::projectJournal()->setJournalling( false );
for( QVector<Plugin::Descriptor>::Iterator it = d.begin();
it != d.end(); ++it )
for( Plugin::DescriptorList::ConstIterator it = d.begin();
it != d.end(); ++it )
{
if( it->type == Plugin::ImportFilter )
{

View File

@@ -131,7 +131,7 @@ Plugin * Plugin::instantiate( const QString & _plugin_name, Model * _parent,
void Plugin::getDescriptorsOfAvailPlugins( QVector<Descriptor> & _plugin_descs )
void Plugin::getDescriptorsOfAvailPlugins( DescriptorList & _plugin_descs )
{
QDir directory( configManager::inst()->pluginDir() );
#ifdef LMMS_BUILD_WIN32

View File

@@ -119,11 +119,11 @@ case ResourceItem::TypePluginSpecificResource:
}
// iterate through all plugins
QVector<Plugin::Descriptor> descriptors;
Plugin::DescriptorList descriptors;
Plugin::getDescriptorsOfAvailPlugins( descriptors );
for( QVector<Plugin::Descriptor>::iterator it = descriptors.begin();
it != descriptors.end(); ++it )
for( Plugin::DescriptorList::ConstIterator it = descriptors.begin();
it != descriptors.end(); ++it )
{
if( it->supportsFileType( ext ) )
{

View File

@@ -213,9 +213,9 @@ void engine::updateFramesPerTick()
void engine::initPluginFileHandling()
{
QVector<Plugin::Descriptor> pluginDescriptors;
Plugin::DescriptorList pluginDescriptors;
Plugin::getDescriptorsOfAvailPlugins( pluginDescriptors );
for( QVector<Plugin::Descriptor>::Iterator it = pluginDescriptors.begin();
for( Plugin::DescriptorList::ConstIterator it = pluginDescriptors.begin();
it != pluginDescriptors.end(); ++it )
{
if( it->type == Plugin::Instrument )

View File

@@ -44,7 +44,7 @@ EffectSelectDialog::EffectSelectDialog( QWidget * _parent ) :
// query effects
Plugin::getDescriptorsOfAvailPlugins( m_pluginDescriptors );
for( QVector<Plugin::Descriptor>::Iterator it = m_pluginDescriptors.begin();
for( Plugin::DescriptorList::ConstIterator it = m_pluginDescriptors.begin();
it != m_pluginDescriptors.end(); ++it )
{
if( it->type != Plugin::Effect )

View File

@@ -268,9 +268,9 @@ void MainWindow::finalize()
m_toolsMenu = new QMenu( this );
QVector<Plugin::Descriptor> pluginDescriptors;
Plugin::DescriptorList pluginDescriptors;
Plugin::getDescriptorsOfAvailPlugins( pluginDescriptors );
for( QVector<Plugin::Descriptor>::iterator it = pluginDescriptors.begin();
for( Plugin::DescriptorList::ConstIterator it = pluginDescriptors.begin();
it != pluginDescriptors.end(); ++it )
{
if( it->type == Plugin::Tool )

View File

@@ -1,8 +1,8 @@
/*
* plugin_browser.cpp - implementation of the plugin-browser
*
* Copyright (c) 2005-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* Copyright (c) 2005-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -22,13 +22,11 @@
*
*/
#include <QtGui/QLabel>
#include <QtGui/QPainter>
#include <QtGui/QCursor>
#include <QtGui/QMouseEvent>
#include "plugin_browser.h"
#include "embed.h"
#include "debug.h"
@@ -64,14 +62,12 @@ pluginBrowser::pluginBrowser( QWidget * _parent ) :
Plugin::getDescriptorsOfAvailPlugins( m_pluginDescriptors );
for( QVector<Plugin::Descriptor>::iterator it =
m_pluginDescriptors.begin();
it != m_pluginDescriptors.end(); ++it )
for( Plugin::DescriptorList::ConstIterator it = m_pluginDescriptors.begin();
it != m_pluginDescriptors.end(); ++it )
{
if( it->type == Plugin::Instrument )
{
pluginDescWidget * p = new pluginDescWidget( *it,
m_view );
pluginDescWidget * p = new pluginDescWidget( *it, m_view );
p->show();
view_layout->addWidget( p );
}