diff --git a/libmscore/measure.cpp b/libmscore/measure.cpp index 2b0663afe0..dd7384b24b 100644 --- a/libmscore/measure.cpp +++ b/libmscore/measure.cpp @@ -999,6 +999,12 @@ void Measure::add(Element* el) score()->staff(track/VOICES)->setUpdateKeymap(true); } } + + // insert segment at specific position + if (seg->next()) { + _segments.insert(seg, seg->next()); + break; + } int t = seg->tick(); Segment::SegmentType st = seg->segmentType(); Segment* s; diff --git a/libmscore/undo.cpp b/libmscore/undo.cpp index 4b59141511..fa465fa235 100644 --- a/libmscore/undo.cpp +++ b/libmscore/undo.cpp @@ -457,23 +457,23 @@ void Score::undoChangeClef(Staff* ostaff, Segment* seg, ClefType st) st, clefTable[st].staffGroup, staff->staffType()->group()); continue; } - Measure* measure = score->tick2measure(seg->tick()); + int tick = seg->tick(); + Measure* measure = score->tick2measure(tick); if (!measure) { - qDebug("measure for tick %d not found!", seg->tick()); + qDebug("measure for tick %d not found!", tick); continue; } // move clef to last segment of prev measure? // TODO: section break? Segment* segment = seg; - int tick = seg->tick(); if (firstSeg && measure->prevMeasure() && !(measure->prevMeasure()->repeatFlags() & RepeatEnd) ) { measure = measure->prevMeasure(); segment = measure->findSegment(seg->segmentType(), tick); - if(!segment && (seg->segmentType() != Segment::SegClef)) + if (!segment && (seg->segmentType() != Segment::SegClef)) segment = measure->findSegment(Segment::SegClef, tick); } diff --git a/mscore/musescore.cpp b/mscore/musescore.cpp index 0f36037489..ed2e916695 100644 --- a/mscore/musescore.cpp +++ b/mscore/musescore.cpp @@ -3827,7 +3827,6 @@ void MuseScore::cmd(QAction* a) void MuseScore::endCmd() { - bool enableInput = false; if (cs) { if (cv->noteEntryMode()) cs->moveCursor(); @@ -3860,7 +3859,6 @@ void MuseScore::endCmd() if (e == 0 && cs->inputState().noteEntryMode) e = cs->inputState().cr(); - enableInput = e && (e->type() == Element::NOTE || e->isChordRest()); cs->end(); } else { diff --git a/mtest/CMakeLists.txt b/mtest/CMakeLists.txt index 47e2dc757d..34109a49ef 100644 --- a/mtest/CMakeLists.txt +++ b/mtest/CMakeLists.txt @@ -11,7 +11,7 @@ # the file LICENSE.GPL #============================================================================= -set(CMAKE_VERBOSE_MAKEFILE ON) +# set(CMAKE_VERBOSE_MAKEFILE ON) enable_testing() include_directories( diff --git a/mtest/libmscore/CMakeLists.txt b/mtest/libmscore/CMakeLists.txt index b506a7008d..5e81fd0cfd 100644 --- a/mtest/libmscore/CMakeLists.txt +++ b/mtest/libmscore/CMakeLists.txt @@ -14,7 +14,7 @@ subdirs( hairpin note compat link measure beam split join splitstaff timesig layout element midi dynamic plugins copypaste tuplet - repeat concertpitch keysig + repeat concertpitch keysig clef ) # midi - does not work diff --git a/mtest/libmscore/clef/CMakeLists.txt b/mtest/libmscore/clef/CMakeLists.txt new file mode 100644 index 0000000000..87fa317871 --- /dev/null +++ b/mtest/libmscore/clef/CMakeLists.txt @@ -0,0 +1,16 @@ +#============================================================================= +# MuseScore +# Music Composition & Notation +# +# Copyright (C) 2011 Werner Schweer +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 +# as published by the Free Software Foundation and appearing in +# the file LICENSE.GPL +#============================================================================= + +set(TARGET tst_clef) + +include(${PROJECT_SOURCE_DIR}/mtest/cmake.inc) + diff --git a/mtest/libmscore/clef/clef-1-ref.mscx b/mtest/libmscore/clef/clef-1-ref.mscx new file mode 100644 index 0000000000..5dc3eb7acd --- /dev/null +++ b/mtest/libmscore/clef/clef-1-ref.mscx @@ -0,0 +1,235 @@ + + + + + 0 + 480 + + 1 + 1 + 1 + 0 + + + + + + + + + + + + + 0 + + 2 + + + 0 + + 0 + 1.00169 + + Piano + + Piano + 21 + 108 + 21 + 108 + + 100 + 70 + + + 100 + 40 + + + 100 + 100 + + + 120 + 100 + + + + + + + + + + G + G + + + 3 + 4 + 1 + + + F + F + + + quarter + + 48 + 14 + + + + quarter + + 50 + 16 + + + + quarter + + 52 + 18 + + + + + + quarter + + 52 + 18 + + + + half + + + + + measure + + + + + + measure + + + + + + measure + + + + + + measure + + + + + + measure + + + + + + + + F + F + + + 3 + 4 + 1 + + + G + G + + + quarter + + 72 + 14 + + + + quarter + + 74 + 16 + + + + quarter + + 76 + 18 + + + + + + measure + + + + + + measure + + + + + + measure + + + + + + measure + + + + + + measure + + + + + + measure + + + + + + diff --git a/mtest/libmscore/clef/clef-1.mscx b/mtest/libmscore/clef/clef-1.mscx new file mode 100644 index 0000000000..088b76de49 --- /dev/null +++ b/mtest/libmscore/clef/clef-1.mscx @@ -0,0 +1,244 @@ + + + 2.0.0 + Unknown + + + 0 + + + 480 + + 1 + 1 + 1 + 0 + + 2013-06-05 + + + X11 + + + + + + + + + + + + 0 + + 2 + + + 0 + + 0 + 1.00169 + + Piano + + Piano + 21 + 108 + 21 + 108 + + 100 + 70 + + + 100 + 40 + + + 100 + 100 + + + 120 + 100 + + + + Fluid + + + + + + + G + G + + + 3 + 4 + 1 + + + F + F + + + quarter + + 48 + 14 + + + + quarter + + 50 + 16 + + + + quarter + + 52 + 18 + + + + + + quarter + + 52 + 18 + + + + half + + + + + measure + + + + + + measure + + + + + + measure + + + + + + measure + + + + + + measure + + + + + + + + F + F + + + 3 + 4 + 1 + + + G + G + + + quarter + + 72 + 14 + + + + quarter + + 74 + 16 + + + + quarter + + 76 + 18 + + + + + + measure + + + + + + measure + + + + + + measure + + + + + + measure + + + + + + measure + + + + + + measure + + + + + + diff --git a/mtest/libmscore/clef/tst_clef.cpp b/mtest/libmscore/clef/tst_clef.cpp new file mode 100644 index 0000000000..c07b3c9aaa --- /dev/null +++ b/mtest/libmscore/clef/tst_clef.cpp @@ -0,0 +1,59 @@ +//============================================================================= +// MuseScore +// Music Composition & Notation +// +// Copyright (C) 2012 Werner Schweer +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License version 2 +// as published by the Free Software Foundation and appearing in +// the file LICENCE.GPL +//============================================================================= + +#include +#include "mtest/testutils.h" +#include "libmscore/score.h" +#include "libmscore/measure.h" +#include "libmscore/undo.h" + +#define DIR QString("libmscore/clef/") + +using namespace Ms; + +//--------------------------------------------------------- +// TestClef +//--------------------------------------------------------- + +class TestClef : public QObject, public MTest + { + Q_OBJECT + + private slots: + void initTestCase(); + void clef1(); + }; + +//--------------------------------------------------------- +// initTestCase +//--------------------------------------------------------- + +void TestClef::initTestCase() + { + initMTest(); + } + +//--------------------------------------------------------- +// clef1 +// two clefs at tick position zero +//--------------------------------------------------------- + +void TestClef::clef1() + { + Score* score = readScore(DIR + "clef-1.mscx"); + QVERIFY(saveCompareScore(score, "clef-1.mscx", DIR + "clef-1-ref.mscx")); + delete score; + } + +QTEST_MAIN(TestClef) +#include "tst_clef.moc" + diff --git a/mtest/libmscore/clef/updateReference b/mtest/libmscore/clef/updateReference new file mode 100755 index 0000000000..4b92aff246 --- /dev/null +++ b/mtest/libmscore/clef/updateReference @@ -0,0 +1,4 @@ +#!/bin/bash + +cp ../../../build.debug/mtest/libmscore/clef/clef-1.mscx clef-1-ref.mscx +