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
+