MuseScore/libmscore/excerpt.h
Joachim Schmitz 6373ac3dfe copy #include <QMultiMap> to all.h
but continue to use it directly in excerpt.h (but before the 'internal'
headers) and use it directly in xm.h and changeMap.h too, which so far
don't seem to include them directly nor indirectly
2020-02-15 12:51:50 +01:00

78 lines
2.3 KiB
C++

//=============================================================================
// 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__
#include <QMultiMap>
#include "fraction.h"
namespace Ms {
class MasterScore;
class Score;
class Part;
class Measure;
class XmlWriter;
class Staff;
class XmlReader;
//---------------------------------------------------------
// @@ Excerpt
//---------------------------------------------------------
class Excerpt : public QObject {
MasterScore* _oscore;
Score* _partScore { 0 };
QString _title;
QList<Part*> _parts;
QMultiMap<int, int> _tracks;
public:
Excerpt(MasterScore* s = 0) { _oscore = s; }
Excerpt(const Excerpt& ex, bool copyPartScore = true);
~Excerpt();
QList<Part*>& parts() { return _parts; }
void setParts(const QList<Part*>& p) { _parts = p; }
QMultiMap<int, int>& tracks() { return _tracks; }
void setTracks(const QMultiMap<int, int>& 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<Excerpt*> createAllExcerpt(MasterScore* score);
static QString createName(const QString& partName, QList<Excerpt*>&);
static void createExcerpt(Excerpt*);
static void cloneStaves(Score* oscore, Score* score, const QList<int>& map, QMultiMap<int, int>& allTracks);
static void cloneStaff(Staff* ostaff, Staff* nstaff);
static void cloneStaff2(Staff* ostaff, Staff* nstaff, const Fraction& stick, const Fraction& etick);
};
} // namespace Ms
#endif