MuseScore/libmscore/fingering.cpp
2014-05-26 18:18:01 +02:00

78 lines
2 KiB
C++

//=============================================================================
// MuseScore
// Music Composition & Notation
//
// Copyright (C) 2010-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 "fingering.h"
#include "score.h"
#include "undo.h"
#include "xml.h"
namespace Ms {
//---------------------------------------------------------
// Fingering
//---------------------------------------------------------
Fingering::Fingering(Score* s)
: Text(s)
{
setTextStyleType(TEXT_STYLE_FINGERING);
setFlag(ElementFlag::HAS_TAG, true);
}
//---------------------------------------------------------
// layout
//---------------------------------------------------------
void Fingering::layout()
{
Text::layout();
setPos(QPointF());
}
//---------------------------------------------------------
// write
//---------------------------------------------------------
void Fingering::write(Xml& xml) const
{
xml.stag(name());
Text::writeProperties(xml);
xml.etag();
}
//---------------------------------------------------------
// read
//---------------------------------------------------------
void Fingering::read(XmlReader& e)
{
while (e.readNextStartElement()) {
if (!Text::readProperties(e))
e.unknown();
}
}
//---------------------------------------------------------
// reset
//---------------------------------------------------------
void Fingering::reset()
{
QPointF o(userOff());
score()->layoutFingering(this);
QPointF no(userOff());
setUserOff(o);
score()->undoChangeProperty(this, P_ID::USER_OFF, no);
}
}