//============================================================================= // MuseScore // Music Composition & Notation // // Copyright (C) 2008-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 //============================================================================= #ifndef __EXCERPT_H__ #define __EXCERPT_H__ namespace Ms { class MasterScore; class Score; class Part; class Measure; class XmlWriter; class Staff; class XmlReader; //--------------------------------------------------------- // @@ Excerpt // @P partScore Score the score object for this part // @P title string the title of this part //--------------------------------------------------------- #include class Excerpt : public QObject { Q_GADGET Q_PROPERTY(Ms::Score* partScore READ partScore) Q_PROPERTY(QString title READ title) MasterScore* _oscore; Score* _partScore { 0 }; QString _title; QList _parts; QMultiMap _tracks; public: Excerpt(MasterScore* s = 0) { _oscore = s; } QList& parts() { return _parts; } void setParts(const QList& p) { _parts = p; } QMultiMap& tracks() { return _tracks; } void setTracks(const QMultiMap& t) { _tracks = t; } MasterScore* oscore() const { return _oscore; } Score* partScore() const { return _partScore; } void setPartScore(Score* s); void read(XmlReader&); bool operator!=(const Excerpt&) const; bool operator==(const Excerpt&) const; QString title() const { return _title; } void setTitle(const QString& s) { _title = s; } static QList createAllExcerpt(MasterScore* score); static QString createName(const QString& partName, QList); static void createExcerpt(Excerpt*); static void cloneStaves(Score* oscore, Score* score, const QList& map, QMultiMap& allTracks); static void cloneStaff(Staff* ostaff, Staff* nstaff); static void cloneStaff2(Staff* ostaff, Staff* nstaff, int stick, int etick); }; } // namespace Ms #endif