2013-02-25 14:56:34 +01:00
|
|
|
//=============================================================================
|
|
|
|
// MuseScore
|
|
|
|
// Music Composition & Notation
|
|
|
|
//
|
|
|
|
// Copyright (C) 2002-2013 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
|
|
|
|
//=============================================================================
|
|
|
|
|
|
|
|
#ifndef __JUMP_H__
|
|
|
|
#define __JUMP_H__
|
|
|
|
|
|
|
|
#include "text.h"
|
|
|
|
|
2013-05-13 18:49:17 +02:00
|
|
|
namespace Ms {
|
|
|
|
|
2013-02-25 14:56:34 +01:00
|
|
|
//---------------------------------------------------------
|
|
|
|
// @@ Jump
|
2014-05-16 13:44:32 +02:00
|
|
|
/// Jump label
|
2013-02-25 14:56:34 +01:00
|
|
|
//
|
2015-04-24 00:55:46 +02:00
|
|
|
// @P continueAt string
|
|
|
|
// @P jumpTo string
|
|
|
|
// not used?
|
|
|
|
// jumpType enum (Jump.DC, .DC_AL_FINE, .DC_AL_CODA, .DS_AL_CODA, .DS_AL_FINE, .DS, USER) (read only)
|
|
|
|
// @P playUntil string
|
2013-02-25 14:56:34 +01:00
|
|
|
//---------------------------------------------------------
|
|
|
|
|
2017-12-27 11:51:00 +01:00
|
|
|
class Jump final : public TextBase {
|
2013-02-25 14:56:34 +01:00
|
|
|
QString _jumpTo;
|
|
|
|
QString _playUntil;
|
|
|
|
QString _continueAt;
|
2016-10-13 15:51:56 +02:00
|
|
|
bool _playRepeats;
|
2013-02-25 14:56:34 +01:00
|
|
|
|
|
|
|
public:
|
2014-06-26 08:18:17 +02:00
|
|
|
enum class Type : char {
|
|
|
|
DC,
|
|
|
|
DC_AL_FINE,
|
|
|
|
DC_AL_CODA,
|
|
|
|
DS_AL_CODA,
|
|
|
|
DS_AL_FINE,
|
|
|
|
DS,
|
|
|
|
USER
|
|
|
|
};
|
|
|
|
|
2013-02-25 14:56:34 +01:00
|
|
|
Jump(Score*);
|
|
|
|
|
2014-06-26 08:18:17 +02:00
|
|
|
void setJumpType(Type t);
|
|
|
|
Type jumpType() const;
|
2014-07-10 14:13:37 +02:00
|
|
|
QString jumpTypeUserName() const;
|
2013-02-25 14:56:34 +01:00
|
|
|
|
2017-02-10 15:13:23 +01:00
|
|
|
virtual Jump* clone() const override { return new Jump(*this); }
|
|
|
|
virtual ElementType type() const override { return ElementType::JUMP; }
|
2013-02-25 14:56:34 +01:00
|
|
|
|
2017-02-10 15:13:23 +01:00
|
|
|
Measure* measure() const { return toMeasure(parent()); }
|
2014-08-05 20:40:43 +02:00
|
|
|
|
2015-01-19 12:37:17 +01:00
|
|
|
virtual void read(XmlReader&) override;
|
2016-11-19 11:51:21 +01:00
|
|
|
virtual void write(XmlWriter& xml) const override;
|
2013-02-25 14:56:34 +01:00
|
|
|
|
2017-02-10 15:13:23 +01:00
|
|
|
virtual void layout() override;
|
|
|
|
|
|
|
|
QString jumpTo() const { return _jumpTo; }
|
|
|
|
QString playUntil() const { return _playUntil; }
|
|
|
|
QString continueAt() const { return _continueAt; }
|
|
|
|
void setJumpTo(const QString& s) { _jumpTo = s; }
|
|
|
|
void setPlayUntil(const QString& s) { _playUntil = s; }
|
|
|
|
void setContinueAt(const QString& s) { _continueAt = s; }
|
2013-02-25 14:56:34 +01:00
|
|
|
void undoSetJumpTo(const QString& s);
|
|
|
|
void undoSetPlayUntil(const QString& s);
|
|
|
|
void undoSetContinueAt(const QString& s);
|
2017-02-10 15:13:23 +01:00
|
|
|
bool playRepeats() const { return _playRepeats; }
|
|
|
|
void setPlayRepeats(bool val) { _playRepeats = val; }
|
2013-02-25 14:56:34 +01:00
|
|
|
|
2018-03-27 15:36:00 +02:00
|
|
|
virtual QVariant getProperty(Pid propertyId) const override;
|
|
|
|
virtual bool setProperty(Pid propertyId, const QVariant&) override;
|
|
|
|
virtual QVariant propertyDefault(Pid) const override;
|
2014-07-10 14:13:37 +02:00
|
|
|
|
2017-05-12 20:16:02 +02:00
|
|
|
Element* nextSegmentElement() override;
|
|
|
|
Element* prevSegmentElement() override;
|
2016-02-04 17:06:32 +01:00
|
|
|
virtual QString accessibleInfo() const override;
|
2014-07-10 14:13:37 +02:00
|
|
|
};
|
|
|
|
|
2017-02-10 15:13:23 +01:00
|
|
|
//---------------------------------------------------------
|
|
|
|
// JumpTypeTable
|
|
|
|
//---------------------------------------------------------
|
2014-07-10 14:13:37 +02:00
|
|
|
|
|
|
|
struct JumpTypeTable {
|
|
|
|
Jump::Type type;
|
|
|
|
const char* text;
|
|
|
|
const char* jumpTo;
|
|
|
|
const char* playUntil;
|
|
|
|
const char* continueAt;
|
|
|
|
QString userText;
|
2013-02-25 14:56:34 +01:00
|
|
|
};
|
|
|
|
|
2014-07-10 14:13:37 +02:00
|
|
|
extern const JumpTypeTable jumpTypeTable[];
|
|
|
|
int jumpTypeTableSize();
|
|
|
|
|
2013-05-13 18:49:17 +02:00
|
|
|
} // namespace Ms
|
|
|
|
|
2014-06-26 08:18:17 +02:00
|
|
|
Q_DECLARE_METATYPE(Ms::Jump::Type);
|
2013-02-25 14:56:34 +01:00
|
|
|
|
|
|
|
#endif
|
|
|
|
|