Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Don't give clips a hidden default name (Fix #5528) #5621

Merged
merged 9 commits into from
Sep 21, 2020
2 changes: 1 addition & 1 deletion include/AutomationPattern.h
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ public slots:
ProgressionTypes m_progressionType;

bool m_dragging;

bool m_isRecording;
float m_lastRecordedValue;

Expand Down
2 changes: 1 addition & 1 deletion include/DataFile.h
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ class LMMS_EXPORT DataFile : public QDomDocument
void upgrade_1_1_91();
void upgrade_1_2_0_rc3();
void upgrade_1_3_0();
void upgrade_noHiddenClipNames();
PhysSong marked this conversation as resolved.
Show resolved Hide resolved

// List of all upgrade methods
static const std::vector<UpgradeMethod> UPGRADE_METHODS;
Expand Down Expand Up @@ -141,4 +142,3 @@ class LMMS_EXPORT DataFile : public QDomDocument


#endif

39 changes: 33 additions & 6 deletions src/core/DataFile.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ const std::vector<DataFile::UpgradeMethod> DataFile::UPGRADE_METHODS = {
&DataFile::upgrade_0_4_0_beta1 , &DataFile::upgrade_0_4_0_rc2,
&DataFile::upgrade_1_0_99 , &DataFile::upgrade_1_1_0,
&DataFile::upgrade_1_1_91 , &DataFile::upgrade_1_2_0_rc3,
&DataFile::upgrade_1_3_0
&DataFile::upgrade_1_3_0 , &DataFile::upgrade_noHiddenClipNames
};

// Vector of all versions that have upgrade routines.
Expand Down Expand Up @@ -1355,6 +1355,35 @@ void DataFile::upgrade_1_3_0()
}
}

void DataFile::upgrade_noHiddenClipNames()
{
QDomNodeList tracks = elementsByTagName("track");

auto clearDefaultNames = [](QDomNodeList clips, QString trackName)
{
for (int j = 0; !clips.item(j).isNull(); ++j)
Spekular marked this conversation as resolved.
Show resolved Hide resolved
{
QDomElement clip = clips.item(j).toElement();
QString clipName = clip.attribute("name", "");
if (clipName == trackName){ clip.setAttribute("name", ""); }
Spekular marked this conversation as resolved.
Show resolved Hide resolved
}
};

for (int i = 0; !tracks.item(i).isNull(); ++i)
{
QDomElement track = tracks.item(i).toElement();
QString trackName = track.attribute("name", "");

QDomNodeList instClips = elementsByTagName("pattern");
QDomNodeList autoClips = elementsByTagName("automationpattern");
QDomNodeList bbClips = elementsByTagName("bbtco");
Spekular marked this conversation as resolved.
Show resolved Hide resolved

clearDefaultNames(instClips, trackName);
clearDefaultNames(autoClips, trackName);
clearDefaultNames(bbClips, trackName);
}
}


void DataFile::upgrade()
{
Expand Down Expand Up @@ -1476,11 +1505,9 @@ void DataFile::loadData( const QByteArray & _data, const QString & _sourceFile )
}

// the upgrade needs to happen after the warning as it updates the project version.
if( createdWith.setCompareType( ProjectVersion::Build )
< openedWith )
{
upgrade();
}
if( createdWith.setCompareType( ProjectVersion::All ) <
openedWith.setCompareType( ProjectVersion::All ) )
Spekular marked this conversation as resolved.
Show resolved Hide resolved
{ upgrade(); }
}
}

Expand Down
7 changes: 0 additions & 7 deletions src/core/Track.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1865,13 +1865,6 @@ bool TrackContentWidget::pasteSelection( MidiTime tcoPos, const QMimeData * md,
{
tco->selectViewOnCreate( true );
}

//check tco name, if the same as source track name dont copy
QString sourceTrackName = outerTCOElement.attributeNode( "trackName" ).value();
if( tco->name() == sourceTrackName )
{
tco->setName( "" );
}
}

AutomationPattern::resolveAllIDs();
Expand Down
31 changes: 14 additions & 17 deletions src/tracks/BBTrack.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ void BBTCO::saveSettings( QDomDocument & doc, QDomElement & element )
element.setAttribute( "len", length() );
element.setAttribute( "muted", isMuted() );
element.setAttribute( "color", color() );

if( m_useStyleColor )
{
element.setAttribute( "usestyle", 1 );
Expand Down Expand Up @@ -106,10 +106,10 @@ void BBTCO::loadSettings( const QDomElement & element )
{
setColor( QColor( element.attribute( "color" ).toUInt() ) );
}

if( element.hasAttribute( "usestyle" ) )
{
if( element.attribute( "usestyle" ).toUInt() == 1 )
if( element.attribute( "usestyle" ).toUInt() == 1 )
{
m_useStyleColor = true;
}
Expand Down Expand Up @@ -212,12 +212,12 @@ void BBTCOView::paintEvent( QPaintEvent * )
QLinearGradient lingrad( 0, 0, 0, height() );
QColor c;
bool muted = m_bbTCO->getTrack()->isMuted() || m_bbTCO->isMuted();

// state: selected, muted, default, user selected
c = isSelected() ? selectedColor() : ( muted ? mutedBackgroundColor()
: ( m_bbTCO->m_useStyleColor ? painter.background().color()
c = isSelected() ? selectedColor() : ( muted ? mutedBackgroundColor()
: ( m_bbTCO->m_useStyleColor ? painter.background().color()
: m_bbTCO->colorObj() ) );
Spekular marked this conversation as resolved.
Show resolved Hide resolved

lingrad.setColorAt( 0, c.lighter( 130 ) );
lingrad.setColorAt( 1, c.lighter( 70 ) );

Expand All @@ -232,7 +232,7 @@ void BBTCOView::paintEvent( QPaintEvent * )
{
p.fillRect( rect(), c );
}

// bar lines
const int lineSize = 3;
p.setPen( c.darker( 200 ) );
Expand All @@ -256,12 +256,12 @@ void BBTCOView::paintEvent( QPaintEvent * )
// inner border
p.setPen( c.lighter( 130 ) );
p.drawRect( 1, 1, rect().right() - TCO_BORDER_WIDTH,
rect().bottom() - TCO_BORDER_WIDTH );
rect().bottom() - TCO_BORDER_WIDTH );

// outer border
p.setPen( c.darker( 300 ) );
p.drawRect( 0, 0, rect().right(), rect().bottom() );

// draw the 'muted' pixmap only if the pattern was manualy muted
if( m_bbTCO->isMuted() )
{
Expand All @@ -270,11 +270,11 @@ void BBTCOView::paintEvent( QPaintEvent * )
p.drawPixmap( spacing, height() - ( size + spacing ),
embed::getIconPixmap( "muted", size, size ) );
}

p.end();

painter.drawPixmap( 0, 0, m_paintPixmap );

}


Expand All @@ -290,10 +290,7 @@ void BBTCOView::openInBBEditor()



void BBTCOView::resetName()
{
m_bbTCO->setName( m_bbTCO->getTrack()->name() );
}
void BBTCOView::resetName() { m_bbTCO->setName(""); }



Expand Down
13 changes: 1 addition & 12 deletions src/tracks/InstrumentTrack.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ InstrumentTrack::~InstrumentTrack()
autoAssignMidiDevice(false);
s_autoAssignedTrack = NULL;
}

// kill all running notes and the iph
silenceAllNotes( true );

Expand Down Expand Up @@ -530,17 +530,6 @@ void InstrumentTrack::deleteNotePluginData( NotePlayHandle* n )

void InstrumentTrack::setName( const QString & _new_name )
{
// when changing name of track, also change name of those patterns,
// which have the same name as the instrument-track
for( int i = 0; i < numOfTCOs(); ++i )
{
Pattern* p = dynamic_cast<Pattern*>( getTCO( i ) );
if( ( p != NULL && p->name() == name() ) || p->name() == "" )
{
p->setName( _new_name );
}
}

Track::setName( _new_name );
m_midiPort.setName( name() );
m_audioPort.setName( name() );
Expand Down
10 changes: 3 additions & 7 deletions src/tracks/Pattern.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@ Pattern::Pattern( InstrumentTrack * _instrument_track ) :
m_patternType( BeatPattern ),
m_steps( MidiTime::stepsPerBar() )
{
setName( _instrument_track->name() );
if( _instrument_track->trackContainer()
== Engine::getBBTrackContainer() )
{
Expand Down Expand Up @@ -647,10 +646,7 @@ void PatternView::setGhostInPianoRoll()



void PatternView::resetName()
{
m_pat->setName( m_pat->m_instrumentTrack->name() );
}
void PatternView::resetName() { m_pat->setName(""); }



Expand Down Expand Up @@ -885,8 +881,8 @@ void PatternView::paintEvent( QPaintEvent * )

// Check whether we will paint a text box and compute its potential height
// This is needed so we can paint the notes underneath it.
bool const isDefaultName = m_pat->name() == m_pat->instrumentTrack()->name();
bool const drawTextBox = !beatPattern && !isDefaultName;
bool const drawName = !m_pat->name().isEmpty();
bool const drawTextBox = !beatPattern && drawName;

// TODO Warning! This might cause problems if TrackContentObjectView::paintTextLabel changes
int textBoxHeight = 0;
Expand Down