2012-05-26 14:26:10 +02:00
|
|
|
//=============================================================================
|
|
|
|
// MuseScore
|
|
|
|
// Music Composition & Notation
|
|
|
|
//
|
|
|
|
// Copyright (C) 2002-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 LICENCE.GPL
|
|
|
|
//=============================================================================
|
|
|
|
|
|
|
|
#include "repeat.h"
|
|
|
|
#include "sym.h"
|
|
|
|
#include "score.h"
|
|
|
|
#include "system.h"
|
|
|
|
#include "measure.h"
|
|
|
|
#include "mscore.h"
|
|
|
|
|
2013-05-13 18:49:17 +02:00
|
|
|
namespace Ms {
|
|
|
|
|
2012-05-26 14:26:10 +02:00
|
|
|
//---------------------------------------------------------
|
|
|
|
// RepeatMeasure
|
|
|
|
//---------------------------------------------------------
|
|
|
|
|
|
|
|
RepeatMeasure::RepeatMeasure(Score* score)
|
|
|
|
: Rest(score)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
//---------------------------------------------------------
|
|
|
|
// draw
|
|
|
|
//---------------------------------------------------------
|
|
|
|
|
|
|
|
void RepeatMeasure::draw(QPainter* painter) const
|
|
|
|
{
|
|
|
|
painter->setBrush(QBrush(curColor()));
|
|
|
|
painter->setPen(Qt::NoPen);
|
|
|
|
painter->drawPath(path);
|
|
|
|
}
|
|
|
|
|
|
|
|
//---------------------------------------------------------
|
|
|
|
// layout
|
|
|
|
//---------------------------------------------------------
|
|
|
|
|
|
|
|
void RepeatMeasure::layout()
|
|
|
|
{
|
2016-12-06 09:35:52 +01:00
|
|
|
for (Element* e : el())
|
2015-04-07 18:30:37 +02:00
|
|
|
e->layout();
|
|
|
|
|
2019-05-27 06:36:37 +02:00
|
|
|
rxpos() = 0.0;
|
2012-05-26 14:26:10 +02:00
|
|
|
qreal sp = spatium();
|
|
|
|
|
|
|
|
qreal y = sp;
|
2013-09-04 10:49:33 +02:00
|
|
|
qreal w = sp * 2.4;
|
2012-05-26 14:26:10 +02:00
|
|
|
qreal h = sp * 2.0;
|
2013-09-04 10:49:33 +02:00
|
|
|
qreal lw = sp * .50; // line width
|
|
|
|
qreal r = sp * .20; // dot radius
|
2012-05-26 14:26:10 +02:00
|
|
|
|
2014-10-16 18:51:14 +02:00
|
|
|
path = QPainterPath();
|
2012-05-26 14:26:10 +02:00
|
|
|
|
|
|
|
path.moveTo(w - lw, y);
|
|
|
|
path.lineTo(w, y);
|
|
|
|
path.lineTo(lw, h+y);
|
|
|
|
path.lineTo(0.0, h+y);
|
|
|
|
path.closeSubpath();
|
|
|
|
path.addEllipse(QRectF(w * .25 - r, y+h * .25 - r, r * 2.0, r * 2.0 ));
|
|
|
|
path.addEllipse(QRectF(w * .75 - r, y+h * .75 - r, r * 2.0, r * 2.0 ));
|
|
|
|
|
|
|
|
setbbox(path.boundingRect());
|
2016-01-04 14:48:58 +01:00
|
|
|
// _space.setRw(width());
|
2012-05-26 14:26:10 +02:00
|
|
|
}
|
|
|
|
|
2013-02-25 11:17:08 +01:00
|
|
|
//---------------------------------------------------------
|
2019-01-30 15:13:54 +01:00
|
|
|
// ticks
|
2013-02-25 11:17:08 +01:00
|
|
|
//---------------------------------------------------------
|
|
|
|
|
2019-01-30 15:13:54 +01:00
|
|
|
Fraction RepeatMeasure::ticks() const
|
2013-02-25 11:17:08 +01:00
|
|
|
{
|
|
|
|
if (measure())
|
2015-06-09 22:25:02 +02:00
|
|
|
return measure()->stretchedLen(staff());
|
2013-02-25 11:17:08 +01:00
|
|
|
return Fraction(0, 1);
|
|
|
|
}
|
2013-05-13 18:49:17 +02:00
|
|
|
|
2014-07-10 14:13:37 +02:00
|
|
|
//---------------------------------------------------------
|
|
|
|
// accessibleInfo
|
|
|
|
//---------------------------------------------------------
|
|
|
|
|
2016-02-04 17:06:32 +01:00
|
|
|
QString RepeatMeasure::accessibleInfo() const
|
2014-07-10 14:13:37 +02:00
|
|
|
{
|
|
|
|
return Element::accessibleInfo();
|
|
|
|
}
|
|
|
|
|
2013-05-13 18:49:17 +02:00
|
|
|
}
|
|
|
|
|