本文整理汇总了C++中XmlWriter::stag方法的典型用法代码示例。如果您正苦于以下问题:C++ XmlWriter::stag方法的具体用法?C++ XmlWriter::stag怎么用?C++ XmlWriter::stag使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XmlWriter
的用法示例。
在下文中一共展示了XmlWriter::stag方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: write
void PageFormat::write(XmlWriter& xml) const
{
xml.stag("page-layout");
// convert inch to 1/10 spatium units
// 20 - font design size in point
// SPATIUM = 20/4
// qreal t = 10 * PPI / (20 / 4);
qreal t = 2 * PPI;
xml.tag("page-height", _size.height() * t);
xml.tag("page-width", _size.width() * t);
const char* type = "both";
if (_twosided) {
type = "even";
xml.stag(QString("page-margins type=\"%1\"").arg(type));
xml.tag("left-margin", evenLeftMargin() * t);
xml.tag("right-margin", evenRightMargin() * t);
xml.tag("top-margin", evenTopMargin() * t);
xml.tag("bottom-margin", evenBottomMargin() * t);
xml.etag();
type = "odd";
}
xml.stag(QString("page-margins type=\"%1\"").arg(type));
xml.tag("left-margin", oddLeftMargin() * t);
xml.tag("right-margin", oddRightMargin() * t);
xml.tag("top-margin", oddTopMargin() * t);
xml.tag("bottom-margin", oddBottomMargin() * t);
xml.etag();
xml.etag();
}
示例2: write
void Ambitus::write(XmlWriter& xml) const
{
xml.stag(this);
xml.tag(Pid::HEAD_GROUP, int(_noteHeadGroup), int(NOTEHEADGROUP_DEFAULT));
xml.tag(Pid::HEAD_TYPE, int(_noteHeadType), int(NOTEHEADTYPE_DEFAULT));
xml.tag(Pid::MIRROR_HEAD,int(_dir), int(DIR_DEFAULT));
xml.tag("hasLine", _hasLine, true);
xml.tag(Pid::LINE_WIDTH, _lineWidth, LINEWIDTH_DEFAULT);
xml.tag("topPitch", _topPitch);
xml.tag("topTpc", _topTpc);
xml.tag("bottomPitch",_bottomPitch);
xml.tag("bottomTpc", _bottomTpc);
if (_topAccid.accidentalType() != AccidentalType::NONE) {
xml.stag("topAccidental");
_topAccid.write(xml);
xml.etag();
}
if (_bottomAccid.accidentalType() != AccidentalType::NONE) {
xml.stag("bottomAccidental");
_bottomAccid.write(xml);
xml.etag();
}
Element::writeProperties(xml);
xml.etag();
}
示例3: write
void StaffTextBase::write(XmlWriter& xml) const
{
if (!xml.canWrite(this))
return;
xml.stag(name());
for (ChannelActions s : _channelActions) {
int channel = s.channel;
for (QString name : s.midiActionNames)
xml.tagE(QString("MidiAction channel=\"%1\" name=\"%2\"").arg(channel).arg(name));
}
for (int voice = 0; voice < VOICES; ++voice) {
if (!_channelNames[voice].isEmpty())
xml.tagE(QString("channelSwitch voice=\"%1\" name=\"%2\"").arg(voice).arg(_channelNames[voice]));
}
if (_setAeolusStops) {
for (int i = 0; i < 4; ++i)
xml.tag(QString("aeolus group=\"%1\"").arg(i), aeolusStops[i]);
}
if (swing()) {
QString swingUnit;
if (swingParameters()->swingUnit == MScore::division / 2)
swingUnit = TDuration(TDuration::DurationType::V_EIGHTH).name();
else if (swingParameters()->swingUnit == MScore::division / 4)
swingUnit = TDuration(TDuration::DurationType::V_16TH).name();
else
swingUnit = TDuration(TDuration::DurationType::V_ZERO).name();
int swingRatio = swingParameters()->swingRatio;
xml.tagE(QString("swing unit=\"%1\" ratio= \"%2\"").arg(swingUnit).arg(swingRatio));
}
TextBase::writeProperties(xml);
xml.etag();
}
示例4: write
void TBox::write(XmlWriter& xml) const
{
xml.stag(this);
Box::writeProperties(xml);
_text->write(xml);
xml.etag();
}
示例5: write
void InstrumentChange::write(XmlWriter& xml) const
{
xml.stag(this);
_instrument->write(xml, part());
TextBase::writeProperties(xml);
xml.etag();
}
示例6: write
void Bend::write(XmlWriter& xml) const
{
xml.stag("Bend");
foreach(const PitchValue& v, _points) {
xml.tagE(QString("point time=\"%1\" pitch=\"%2\" vibrato=\"%3\"")
.arg(v.time).arg(v.pitch).arg(v.vibrato));
}
示例7: write
void Marker::write(XmlWriter& xml) const
{
xml.stag(name());
Text::writeProperties(xml);
xml.tag("label", _label);
xml.etag();
}
示例8: write
void Spacer::write(XmlWriter& xml) const
{
xml.stag(name());
xml.tag("subtype", int(_spacerType));
Element::writeProperties(xml);
xml.tag("space", _gap / spatium());
xml.etag();
}
示例9: write
void Stem::write(XmlWriter& xml) const
{
xml.stag("Stem");
Element::writeProperties(xml);
if (_userLen != 0.0)
xml.tag("userLen", _userLen / spatium());
xml.etag();
}
示例10: write
void TextLineBase::write(XmlWriter& xml) const
{
if (!xml.canWrite(this))
return;
xml.stag(QString("%1 id=\"%2\"").arg(name()).arg(xml.spannerId(this)));
writeProperties(xml);
xml.etag();
}
示例11: write
void StaffText::write(XmlWriter& xml) const
{
if (!xml.canWrite(this))
return;
xml.stag("StaffText");
writeProperties(xml);
xml.etag();
}
示例12: write
void Image::write(XmlWriter& xml) const
{
// attempt to convert the _linkPath to a path relative to the score
//
// TODO : on Save As, score()->fileInfo() still contains the old path and fname
// if the Save As path is different, image relative path will be wrong!
//
QString relativeFilePath= QString();
if (!_linkPath.isEmpty() && _linkIsValid) {
QFileInfo fi(_linkPath);
// score()->fileInfo()->canonicalPath() would be better
// but we are saving under a temp file name and the 'final' file
// might not exist yet, so canonicalFilePath() may return only "/"
// OTOH, the score 'final' file name is practically always canonical, at this point
QString scorePath = score()->masterScore()->fileInfo()->absolutePath();
QString imgFPath = fi.canonicalFilePath();
// if imgFPath is in (or below) the directory of scorePath
if (imgFPath.startsWith(scorePath, Qt::CaseSensitive)) {
// relative img path is the part exceeding scorePath
imgFPath.remove(0, scorePath.size());
if(imgFPath.startsWith('/'))
imgFPath.remove(0, 1);
relativeFilePath = imgFPath;
}
// try 1 level up
else {
// reduce scorePath by one path level
fi.setFile(scorePath);
scorePath = fi.path();
// if imgFPath is in (or below) the directory up the score directory
if (imgFPath.startsWith(scorePath, Qt::CaseSensitive)) {
// relative img path is the part exceeding new scorePath plus "../"
imgFPath.remove(0, scorePath.size());
if (!imgFPath.startsWith('/'))
imgFPath.prepend('/');
imgFPath.prepend("..");
relativeFilePath = imgFPath;
}
}
}
// if no match, use full _linkPath
if (relativeFilePath.isEmpty())
relativeFilePath = _linkPath;
xml.stag(this);
BSymbol::writeProperties(xml);
// keep old "path" tag, for backward compatibility and because it is used elsewhere
// (for instance by Box:read(), Measure:read(), Note:read(), ...)
xml.tag("path", _storeItem ? _storeItem->hashName() : relativeFilePath);
xml.tag("linkPath", relativeFilePath);
writeProperty(xml, Pid::AUTOSCALE);
writeProperty(xml, Pid::SIZE);
writeProperty(xml, Pid::LOCK_ASPECT_RATIO);
writeProperty(xml, Pid::SIZE_IS_SPATIUM);
xml.etag();
}
示例13: write
void TempoText::write(XmlWriter& xml) const
{
xml.stag(name());
xml.tag("tempo", _tempo);
if (_followText)
xml.tag("followText", _followText);
TextBase::writeProperties(xml);
xml.etag();
}
示例14: write
void FSymbol::write(XmlWriter& xml) const
{
xml.stag(this);
xml.tag("font", _font.family());
xml.tag("fontsize", _font.pointSizeF());
xml.tag("code", _code);
BSymbol::writeProperties(xml);
xml.etag();
}
示例15: write
void Tremolo::write(XmlWriter& xml) const
{
if (!xml.canWrite(this))
return;
xml.stag(name());
xml.tag("subtype", tremoloTypeName());
Element::writeProperties(xml);
xml.etag();
}