Make use of new ResourceAction class

Replaced deprecated (duplicate) code for loading various kind of files
with ResourceAction-based code.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
This commit is contained in:
Tobias Doerffel
2009-06-29 12:53:33 +02:00
parent 7821dd210e
commit a4a6c14af0
3 changed files with 35 additions and 91 deletions

View File

@@ -25,6 +25,7 @@
#include <QtCore/QFileInfo>
#include "ResourceAction.h"
#include "ResourcePreviewer.h"
#include "ResourceFileMapper.h"
#include "ResourceItem.h"
@@ -87,11 +88,7 @@ void ResourcePreviewer::preview( ResourceItem * _item )
m_previewTrack->loadTrackSpecificSettings(
m_defaultSettings.content().
firstChild().toElement() );
// fetch data, load into multimedia project and
// load it as preset
m_previewTrack->loadTrackSpecificSettings(
multimediaProject( _item->fetchData() ).
content().firstChild().toElement() );
ResourceAction( _item ).loadPreset( m_previewTrack );
m_previewTrack->getMidiPort()->setMode(
midiPort::Disabled );
break;
@@ -104,22 +101,7 @@ void ResourcePreviewer::preview( ResourceItem * _item )
m_previewTrack->loadTrackSpecificSettings(
m_defaultSettings.content().
firstChild().toElement() );
// if neccessary, load according instrument for the
// file to be previewed
instrument * i = m_previewTrack->getInstrument();
const QString ext = QFileInfo( _item->name() ).
suffix().toLower();
if( i == NULL ||
!i->getDescriptor()->supportsFileType( ext ) )
{
i = m_previewTrack->loadInstrument(
engine::pluginFileHandling()[ext] );
}
if( i != NULL )
{
ResourceFileMapper mapper( _item );
i->loadFile( mapper.fileName() );
}
ResourceAction( _item ).loadByPlugin( m_previewTrack );
break;
}
default:

View File

@@ -30,6 +30,7 @@
#include <QtGui/QScrollBar>
#include <QtGui/QWheelEvent>
#include "ResourceAction.h"
#include "ResourceDB.h"
#include "ResourceItem.h"
#include "ResourceFileMapper.h"
@@ -40,7 +41,6 @@
#include "bb_track.h"
#include "main_window.h"
#include "debug.h"
#include "file_browser.h"
#include "import_filter.h"
#include "instrument.h"
#include "instrument_track.h"
@@ -383,7 +383,6 @@ void trackContainerView::dropEvent( QDropEvent * _de )
QString type = stringPairDrag::decodeKey( _de );
QString value = stringPairDrag::decodeValue( _de );
engine::getMixer()->lock();
/* begin{obsolete code} - remove together with fileBrowser */
if( type == "instrument" )
{
instrumentTrack * it = dynamic_cast<instrumentTrack *>(
@@ -393,33 +392,6 @@ void trackContainerView::dropEvent( QDropEvent * _de )
//it->toggledInstrumentTrackButton( true );
_de->accept();
}
else if( type == "samplefile" || type == "pluginpresetfile" )
{
instrumentTrack * it = dynamic_cast<instrumentTrack *>(
track::create( track::InstrumentTrack,
m_tc ) );
instrument * i = it->loadInstrument(
engine::pluginFileHandling()[fileItem::extension(
value )]);
i->loadFile( value );
//it->toggledInstrumentTrackButton( true );
_de->accept();
}
else if( type == "presetfile" )
{
multimediaProject mmp( value );
instrumentTrack * it = dynamic_cast<instrumentTrack *>(
track::create( track::InstrumentTrack,
m_tc ) );
it->loadSettings( mmp.content().toElement() );
//it->toggledInstrumentTrackButton( true );
_de->accept();
}
else if( type == "importedproject" )
{
importFilter::import( value, m_tc );
_de->accept();
}
else if( type.left( 6 ) == "track_" )
{
multimediaProject mmp( value.toUtf8() );
@@ -436,39 +408,26 @@ void trackContainerView::dropEvent( QDropEvent * _de )
itemByHash( value );
if( item )
{
ResourceAction action( item );
switch( item->type() )
{
case ResourceItem::TypePreset:
{
instrumentTrack * it = dynamic_cast<instrumentTrack *>(
action.loadPreset(
dynamic_cast<instrumentTrack *>(
track::create( track::InstrumentTrack,
m_tc ) );
// fetch data, load into multimedia project and
// load it as preset
it->loadTrackSpecificSettings(
multimediaProject( item->fetchData() ).
content().firstChild().toElement() );
m_tc ) ) );
break;
}
case ResourceItem::TypeSample:
case ResourceItem::TypeSoundFont:
{
instrumentTrack * it = dynamic_cast<instrumentTrack *>(
action.loadByPlugin(
dynamic_cast<instrumentTrack *>(
track::create( track::InstrumentTrack,
m_tc ) );
const QString ext = QFileInfo( item->name() ).
suffix().toLower();
instrument * i = it->loadInstrument(
engine::pluginFileHandling()[ext] );
if( i != NULL )
{
ResourceFileMapper mapper( item );
i->loadFile( mapper.fileName() );
}
m_tc ) ) );
break;
case ResourceItem::TypeForeignProject:
action.importProject( m_tc );
break;
}
}
}
}

View File

@@ -39,6 +39,10 @@
#include <QtGui/QMdiSubWindow>
#include <QtGui/QPainter>
#include "ResourceAction.h"
#include "ResourceDB.h"
#include "UnifiedResourceProvider.h"
#include "instrument_track.h"
#include "audio_port.h"
#include "automation_pattern.h"
@@ -49,7 +53,6 @@
#include "effect_rack_view.h"
#include "embed.h"
#include "engine.h"
#include "file_browser.h"
#include "fx_mixer.h"
#include "fx_mixer_view.h"
#include "instrument_sound_shaping.h"
@@ -1495,26 +1498,26 @@ void instrumentTrackWindow::dropEvent( QDropEvent * _de )
engine::getSong()->setModified();
_de->accept();
}
else if( type == "presetfile" )
else if( type == ResourceItem::mimeKey() )
{
multimediaProject mmp( value );
instrumentTrack::removeMidiPortNode( mmp );
m_track->setSimpleSerializing();
m_track->loadSettings( mmp.content().toElement() );
engine::getSong()->setModified();
_de->accept();
}
else if( type == "pluginpresetfile" )
{
const QString ext = fileItem::extension( value );
instrument * i = m_track->getInstrument();
if( !i->getDescriptor()->supportsFileType( ext ) )
const ResourceItem * item =
engine::resourceProvider()->database()->
itemByHash( value );
if( !item )
{
i = m_track->loadInstrument(
engine::pluginFileHandling()[ext] );
return;
}
ResourceAction action( item );
if( action.loadByPlugin( m_track ) )
{
_de->accept();
}
else if( item->type() == ResourceItem::TypePreset &&
action.loadPreset( m_track ) )
{
engine::getSong()->setModified();
_de->accept();
}
i->loadFile( value );
_de->accept();
}
}