Move cloned tracks under the original
This commit is contained in:
@@ -441,7 +441,7 @@ public:
|
||||
static Track * create( TrackTypes tt, TrackContainer * tc );
|
||||
static Track * create( const QDomElement & element,
|
||||
TrackContainer * tc );
|
||||
void clone();
|
||||
Track * clone();
|
||||
|
||||
|
||||
// pure virtual functions
|
||||
|
||||
@@ -103,6 +103,11 @@ public:
|
||||
return m_tc;
|
||||
}
|
||||
|
||||
const QList<TrackView *> & trackViews() const
|
||||
{
|
||||
return( m_trackViews );
|
||||
}
|
||||
|
||||
void moveTrackView( TrackView * trackView, int indexTo );
|
||||
void moveTrackViewUp( TrackView * trackView );
|
||||
void moveTrackViewDown( TrackView * trackView );
|
||||
@@ -122,7 +127,7 @@ public:
|
||||
|
||||
public slots:
|
||||
void realignTracks();
|
||||
void createTrackView( Track * _t );
|
||||
TrackView * createTrackView( Track * _t );
|
||||
void deleteTrackView( TrackView * _tv );
|
||||
|
||||
virtual void dropEvent( QDropEvent * _de );
|
||||
@@ -142,11 +147,6 @@ public slots:
|
||||
protected:
|
||||
static const int DEFAULT_PIXELS_PER_TACT = 16;
|
||||
|
||||
const QList<TrackView *> & trackViews() const
|
||||
{
|
||||
return( m_trackViews );
|
||||
}
|
||||
|
||||
virtual void mousePressEvent( QMouseEvent * _me );
|
||||
virtual void mouseMoveEvent( QMouseEvent * _me );
|
||||
virtual void mouseReleaseEvent( QMouseEvent * _me );
|
||||
|
||||
@@ -1688,13 +1688,18 @@ void TrackOperationsWidget::paintEvent( QPaintEvent * pe )
|
||||
|
||||
|
||||
|
||||
|
||||
/*! \brief Clone this track
|
||||
*
|
||||
*/
|
||||
void TrackOperationsWidget::cloneTrack()
|
||||
{
|
||||
m_trackView->getTrack()->clone();
|
||||
TrackContainerView *tcView = m_trackView->trackContainerView();
|
||||
|
||||
Track *newTrack = m_trackView->getTrack()->clone();
|
||||
TrackView *newTrackView = tcView->createTrackView( newTrack );
|
||||
|
||||
int index = tcView->trackViews().indexOf( m_trackView );
|
||||
tcView->moveTrackView( newTrackView, index + 1 );
|
||||
}
|
||||
|
||||
|
||||
@@ -1904,12 +1909,12 @@ Track * Track::create( const QDomElement & element, TrackContainer * tc )
|
||||
/*! \brief Clone a track from this track
|
||||
*
|
||||
*/
|
||||
void Track::clone()
|
||||
Track * Track::clone()
|
||||
{
|
||||
QDomDocument doc;
|
||||
QDomElement parent = doc.createElement( "clone" );
|
||||
saveState( doc, parent );
|
||||
create( parent.firstChild().toElement(), m_trackContainer );
|
||||
return create( parent.firstChild().toElement(), m_trackContainer );
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -222,11 +222,18 @@ void TrackContainerView::realignTracks()
|
||||
|
||||
|
||||
|
||||
void TrackContainerView::createTrackView( Track * _t )
|
||||
TrackView * TrackContainerView::createTrackView( Track * _t )
|
||||
{
|
||||
//m_tc->addJournalCheckPoint();
|
||||
|
||||
_t->createView( this );
|
||||
// Avoid duplicating track views
|
||||
for( trackViewList::iterator it = m_trackViews.begin();
|
||||
it != m_trackViews.end(); ++it )
|
||||
{
|
||||
if ( ( *it )->getTrack() == _t ) { return ( *it ); }
|
||||
}
|
||||
|
||||
return _t->createView( this );
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user