remove track from within slot in trackContainerView for not deleting object inside its own method - fixes Qt-warning
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1075 0778d3d1-df1d-0410-868b-ea421aaaa00d
This commit is contained in:
@@ -327,6 +327,10 @@ private:
|
||||
|
||||
friend class trackView;
|
||||
|
||||
|
||||
signals:
|
||||
void trackRemovalScheduled( trackView * _t );
|
||||
|
||||
} ;
|
||||
|
||||
|
||||
|
||||
@@ -117,6 +117,7 @@ public:
|
||||
public slots:
|
||||
void realignTracks( void );
|
||||
void createTrackView( track * _t );
|
||||
void deleteTrackView( trackView * _tv );
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
@@ -1115,6 +1115,12 @@ trackOperationsWidget::trackOperationsWidget( trackView * _parent ) :
|
||||
SIGNAL( positionChanged( const midiTime & ) ),
|
||||
this, SLOT( update() ) );
|
||||
}
|
||||
|
||||
connect( this, SIGNAL( trackRemovalScheduled( trackView * ) ),
|
||||
m_trackView->getTrackContainerView(),
|
||||
SLOT( deleteTrackView( trackView * ) ),
|
||||
Qt::QueuedConnection );
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1216,11 +1222,7 @@ void trackOperationsWidget::cloneTrack( void )
|
||||
|
||||
void trackOperationsWidget::removeTrack( void )
|
||||
{
|
||||
m_trackView->close();
|
||||
delete m_trackView;
|
||||
engine::getMixer()->lock();
|
||||
delete m_trackView->getTrack();
|
||||
engine::getMixer()->unlock();
|
||||
emit trackRemovalScheduled( m_trackView );
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -216,6 +216,19 @@ void trackContainerView::createTrackView( track * _t )
|
||||
|
||||
|
||||
|
||||
void trackContainerView::deleteTrackView( trackView * _tv )
|
||||
{
|
||||
removeTrackView( _tv );
|
||||
delete _tv;
|
||||
|
||||
engine::getMixer()->lock();
|
||||
delete _tv->getTrack();
|
||||
engine::getMixer()->unlock();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
const trackView * trackContainerView::trackViewAt( const int _y ) const
|
||||
{
|
||||
const int abs_y = _y + m_scrollArea->viewport()->y();
|
||||
|
||||
Reference in New Issue
Block a user