No extra bar with beat note near end
This commit is contained in:
@@ -125,6 +125,7 @@ private:
|
||||
void upgrade_1_0_99();
|
||||
void upgrade_1_1_0();
|
||||
void upgrade_1_1_91();
|
||||
void upgrade_1_2_0_rc3();
|
||||
|
||||
void upgrade();
|
||||
|
||||
|
||||
@@ -901,6 +901,32 @@ void DataFile::upgrade_1_1_91()
|
||||
}
|
||||
|
||||
|
||||
void DataFile::upgrade_1_2_0_rc3()
|
||||
{
|
||||
// Upgrade from earlier bbtrack beat note behaviour of adding
|
||||
// steps if a note is placed after the last step.
|
||||
QDomNodeList list = elementsByTagName( "bbtrack" );
|
||||
for( int i = 0; !list.item( i ).isNull(); ++i )
|
||||
{
|
||||
list = elementsByTagName( "pattern" );
|
||||
for( int i = 0; !list.item( i ).isNull(); ++i )
|
||||
{
|
||||
int patternLength, steps;
|
||||
QDomElement el = list.item( i ).toElement();
|
||||
for( int i = 0; !list.item( i ).isNull(); ++i )
|
||||
{
|
||||
if( el.attribute( "len" ) != "" )
|
||||
{
|
||||
patternLength = el.attribute( "len" ).toInt();
|
||||
steps = patternLength / 12;
|
||||
el.setAttribute( "steps", steps );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void DataFile::upgrade()
|
||||
{
|
||||
ProjectVersion version =
|
||||
@@ -977,6 +1003,10 @@ void DataFile::upgrade()
|
||||
{
|
||||
upgrade_1_1_91();
|
||||
}
|
||||
if( version < "1.2.0-rc3" )
|
||||
{
|
||||
upgrade_1_2_0_rc3();
|
||||
}
|
||||
|
||||
// update document meta data
|
||||
documentElement().setAttribute( "version", LDF_VERSION_STRING );
|
||||
|
||||
@@ -196,21 +196,22 @@ MidiTime Pattern::beatPatternLength() const
|
||||
if( ( *it )->length() < 0 )
|
||||
{
|
||||
max_length = qMax<tick_t>( max_length,
|
||||
( *it )->pos() +
|
||||
MidiTime::ticksPerTact() /
|
||||
MidiTime::stepsPerTact() );
|
||||
( *it )->pos() + 1 );
|
||||
}
|
||||
}
|
||||
|
||||
if( m_steps != MidiTime::stepsPerTact() )
|
||||
{
|
||||
max_length = m_steps * MidiTime::ticksPerTact() /
|
||||
MidiTime::stepsPerTact() ;
|
||||
MidiTime::stepsPerTact();
|
||||
}
|
||||
|
||||
return MidiTime( max_length ).nextFullTact() * MidiTime::ticksPerTact();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Note * Pattern::addNote( const Note & _new_note, const bool _quant_pos )
|
||||
{
|
||||
Note * new_note = new Note( _new_note );
|
||||
|
||||
Reference in New Issue
Block a user