fixed loading presets when dragging them onto existing instrument-track-window (finally closes #2025902)

git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1459 0778d3d1-df1d-0410-868b-ea421aaaa00d
This commit is contained in:
Tobias Doerffel
2008-08-22 13:35:30 +00:00
parent 06ade7d4c9
commit c89172a6fe
4 changed files with 25 additions and 14 deletions

View File

@@ -1,5 +1,11 @@
2008-08-22 Tobias Doerffel <tobydox/at/users/dot/sourceforge/dot/net>
* include/instrument_track.h:
* src/gui/file_browser.cpp:
* src/tracks/instrument_track.cpp:
fixed loading presets when dragging them onto existing
instrument-track-window (finally closes #2025902)
* src/gui/piano_roll.cpp:
fixed moving selected notes (closes #2039248, #2039254, #2043463)

View File

@@ -50,6 +50,7 @@ class instrumentTrackWindow;
class instrumentMidiIOView;
class lcdSpinBox;
class midiPortMenu;
class multimediaProject;
class notePlayHandle;
class pluginView;
class presetPreviewPlayHandle;
@@ -153,6 +154,9 @@ public:
virtual QString displayName( void ) const;
// simple helper for removing midiport-XML-node when loading presets
static void removeMidiPortNode( multimediaProject & _mmp );
signals:
void instrumentChanged( void );

View File

@@ -48,15 +48,6 @@
#include "text_float.h"
static inline void removeMidiPortNode( multimediaProject & _mmp )
{
QDomNodeList n = _mmp.elementsByTagName( "midiport" );
n.item( 0 ).parentNode().removeChild( n.item( 0 ) );
}
fileBrowser::fileBrowser( const QString & _directories, const QString & _filter,
const QString & _title, const QPixmap & _pm,
QWidget * _parent ) :
@@ -243,7 +234,7 @@ void listView::activateListItem( QTreeWidgetItem * _item, int _column )
{
// presets are per default opened in bb-editor
multimediaProject mmp( f->fullName() );
removeMidiPortNode( mmp );
instrumentTrack::removeMidiPortNode( mmp );
engine::getMixer()->lock();
instrumentTrack * it = dynamic_cast<instrumentTrack *>(
@@ -309,7 +300,7 @@ void listView::sendToActiveInstrumentTrack( void )
{
multimediaProject mmp(
m_contextMenuItem->fullName() );
removeMidiPortNode( mmp );
instrumentTrack::removeMidiPortNode( mmp );
itw->model()->setSimpleSerializing();
itw->model()->loadSettings(
mmp.content().toElement() );
@@ -347,7 +338,7 @@ void listView::openInNewInstrumentTrack( trackContainer * _tc )
else if( m_contextMenuItem->type() == fileItem::PresetFile )
{
multimediaProject mmp( m_contextMenuItem->fullName() );
removeMidiPortNode( mmp );
instrumentTrack::removeMidiPortNode( mmp );
track * t = track::create( track::InstrumentTrack, _tc );
instrumentTrack * it = dynamic_cast<instrumentTrack *>( t );
if( it != NULL )

View File

@@ -442,6 +442,15 @@ QString instrumentTrack::displayName( void ) const
void instrumentTrack::removeMidiPortNode( multimediaProject & _mmp )
{
QDomNodeList n = _mmp.elementsByTagName( "midiport" );
n.item( 0 ).parentNode().removeChild( n.item( 0 ) );
}
bool instrumentTrack::play( const midiTime & _start,
const fpp_t _frames,
const f_cnt_t _offset,
@@ -1349,8 +1358,9 @@ void instrumentTrackWindow::dropEvent( QDropEvent * _de )
else if( type == "presetfile" )
{
multimediaProject mmp( value );
m_track->loadTrackSpecificSettings( mmp.content().firstChild().
toElement() );
instrumentTrack::removeMidiPortNode( mmp );
m_track->setSimpleSerializing();
m_track->loadSettings( mmp.content().toElement() );
engine::getSong()->setModified();
_de->accept();
}