From 6823ef59c23970e59969623f8e450f060a0e587c Mon Sep 17 00:00:00 2001 From: Javier Serrano Polo Date: Fri, 14 Jul 2006 20:12:18 +0000 Subject: [PATCH] - automation pattern can be initialized without track - slots moved to public git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@231 0778d3d1-df1d-0410-868b-ea421aaaa00d --- include/automation_pattern.h | 7 ++--- src/tracks/automation_pattern.cpp | 49 +++++++++++++++++++++---------- 2 files changed, 37 insertions(+), 19 deletions(-) diff --git a/include/automation_pattern.h b/include/automation_pattern.h index d0db10f57..359ee7552 100644 --- a/include/automation_pattern.h +++ b/include/automation_pattern.h @@ -40,7 +40,8 @@ class automationPattern : public QObject, public journallingObject public: typedef QMap timeMap; - automationPattern( track * _channel_track, levelObject * _object ); + automationPattern( track * _track, levelObject * _object ); + automationPattern( engine * _engine, levelObject * _object ); automationPattern( const automationPattern & _pat_to_copy ); virtual ~automationPattern(); @@ -52,8 +53,6 @@ public: void FASTCALL removeValue( const midiTime & _time ); - void clearValues( void ); - inline timeMap & getTimeMap( void ) { return( m_time_map ); @@ -101,7 +100,7 @@ public: } -protected slots: +public slots: void openInAutomationEditor( void ); void clear( void ); diff --git a/src/tracks/automation_pattern.cpp b/src/tracks/automation_pattern.cpp index a3c76e9e2..7a339efff 100644 --- a/src/tracks/automation_pattern.cpp +++ b/src/tracks/automation_pattern.cpp @@ -46,7 +46,7 @@ -automationPattern::automationPattern ( track * _track, levelObject * _object ) : +automationPattern::automationPattern( track * _track, levelObject * _object ) : journallingObject( _track->eng() ), m_track( _track ), m_object( _object ), @@ -58,6 +58,19 @@ automationPattern::automationPattern ( track * _track, levelObject * _object ) : +automationPattern::automationPattern( engine * _engine, + levelObject * _object ) : + journallingObject( _engine ), + m_track( NULL ), + m_object( _object ), + m_update_first( TRUE ) +{ + init(); +} + + + + automationPattern::automationPattern( const automationPattern & _pat_to_copy ) : journallingObject( _pat_to_copy.m_track->eng() ), m_track( _pat_to_copy.m_track ), @@ -78,7 +91,10 @@ automationPattern::automationPattern( const automationPattern & _pat_to_copy ) : automationPattern::~automationPattern() { - m_track->removeAutomationPattern( this ); + if( m_track ) + { + m_track->removeAutomationPattern( this ); + } if( eng()->getAutomationEditor()->currentPattern() == this ) { @@ -93,7 +109,10 @@ automationPattern::~automationPattern() void automationPattern::init( void ) { - m_track->addAutomationPattern( this ); + if( m_track ) + { + m_track->addAutomationPattern( this ); + } } @@ -144,7 +163,7 @@ void automationPattern::removeValue( const midiTime & _time ) -void automationPattern::clearValues( void ) +void automationPattern::clear( void ) { m_time_map.clear(); if( eng()->getAutomationEditor()->currentPattern() == this ) @@ -187,7 +206,7 @@ void automationPattern::saveSettings( QDomDocument & _doc, QDomElement & _this ) void automationPattern::loadSettings( const QDomElement & _this ) { - clearValues(); + clear(); for( QDomNode node = _this.firstChild(); !node.isNull(); node = node.nextSibling() ) @@ -216,18 +235,18 @@ void automationPattern::openInAutomationEditor( void ) -void automationPattern::clear( void ) -{ - clearValues(); -} - - - - const QString automationPattern::name( void ) { - return( m_track->name() + " - " + dynamic_cast( m_object ) - ->accessibleName() ); + QString widget_name = dynamic_cast( m_object ) + ->accessibleName(); + if( m_track ) + { + return( m_track->name() + " - " + widget_name ); + } + else + { + return( widget_name ); + } }