diff --git a/app/render/subtitleparams.cpp b/app/render/subtitleparams.cpp index ceaa06f82..b0bc7c534 100644 --- a/app/render/subtitleparams.cpp +++ b/app/render/subtitleparams.cpp @@ -43,60 +43,67 @@ QString SubtitleParams::GenerateASSHeader() static const int kAssBorderStyle = 1; static const int kAssAlignment = 2; - static const QString kFormatHeader = QStringLiteral( - "[Script Info]\r\n" - "; Script generated by %1 %2\r\n" - "ScriptType: v4.00+\r\n" - "PlayResX: %3\r\n" - "PlayResY: %4\r\n" - "ScaledBorderAndShadow: yes\r\n" - "\r\n" + QString ass_code; - /* ASSv4 header */ - "[V4+ Styles]\r\n" - "Format: Name, " - "Fontname, Fontsize, " - "PrimaryColour, SecondaryColour, OutlineColour, BackColour, " - "Bold, Italic, Underline, StrikeOut, " - "ScaleX, ScaleY, " - "Spacing, Angle, " - "BorderStyle, Outline, Shadow, " - "Alignment, MarginL, MarginR, MarginV, " - "Encoding\r\n" + // Header info + ass_code.append(QStringLiteral("[Script Info]\r\n")); + ass_code.append(QStringLiteral("; Script generated by %1 %2\r\n").arg(QCoreApplication::applicationName(), QCoreApplication::applicationVersion())); + ass_code.append(QStringLiteral("ScriptType: v4.00+\r\n")); + ass_code.append(QStringLiteral("PlayResX: %1\r\n").arg(QString::number(kAssDefaultPlayResX))); + ass_code.append(QStringLiteral("PlayResY: %1\r\n").arg(QString::number(kAssDefaultPlayResY))); + ass_code.append(QStringLiteral("ScaledBorderAndShadow: yes\r\n")); + ass_code.append(QStringLiteral("\r\n")); - "Style: " - "Default," /* Name */ - "%5,%6," /* Font{name,size} */ - "&H%7,&H%8,&H%9,&H%10," /* {Primary,Secondary,Outline,Back}Colour */ - "%11,%12,%13,%14," /* Bold, Italic, Underline, StrikeOut */ - "100,100," /* Scale{X,Y} */ - "0,0," /* Spacing, Angle */ - "%15,1,0," /* BorderStyle, Outline, Shadow */ - "%16,10,10,10," /* Alignment, Margin[LRV] */ - "0\r\n" /* Encoding */ + // ASSv4 header + ass_code.append(QStringLiteral("[V4+ Styles]\r\n")); + ass_code.append(QStringLiteral("Format: Name, ")); + ass_code.append(QStringLiteral("Fontname, Fontsize, ")); + ass_code.append(QStringLiteral("PrimaryColour, SecondaryColour, OutlineColour, BackColour, ")); + ass_code.append(QStringLiteral("Bold, Italic, Underline, StrikeOut, ")); + ass_code.append(QStringLiteral("ScaleX, ScaleY, ")); + ass_code.append(QStringLiteral("Spacing, Angle, ")); + ass_code.append(QStringLiteral("BorderStyle, Outline, Shadow, ")); + ass_code.append(QStringLiteral("Alignment, MarginL, MarginR, MarginV, ")); + ass_code.append(QStringLiteral("Encoding\r\n")); + ass_code.append(QStringLiteral("Style: ")); - "\r\n" - "[Events]\r\n" - "Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text\r\n" - ); + // Name + ass_code.append(QStringLiteral("Default,")); - return kFormatHeader.arg(QCoreApplication::applicationName(), - QCoreApplication::applicationVersion(), - QString::number(kAssDefaultPlayResX), - QString::number(kAssDefaultPlayResY), - kAssDefaultFont, - QString::number(kAssDefaultFontSize), - QString::number(kAssDefaultPrimaryColor, 16), - QString::number(kAssDefaultSecondaryColor, 16), - QString::number(kAssDefaultOutlineColor, 16), - QString::number(kAssDefaultBackColor, 16), - QString::number(kAssBold), - QString::number(kAssItalic), - QString::number(kAssUnderline), - QString::number(kAssStrike), - QString::number(kAssBorderStyle), - QString::number(kAssAlignment) - ); + // Font{name,size} + ass_code.append(QStringLiteral("%1,%2,").arg(kAssDefaultFont, QString::number(kAssDefaultFontSize))); + + // {Primary,Secondary,Outline,Back}Colour + ass_code.append(QStringLiteral("&H%1,&H%2,&H%3,&H%4,").arg(QString::number(kAssDefaultPrimaryColor, 16), + QString::number(kAssDefaultSecondaryColor, 16), + QString::number(kAssDefaultOutlineColor, 16), + QString::number(kAssDefaultBackColor, 16))); + + // Bold, Italic, Underline, StrikeOut + ass_code.append(QStringLiteral("%1,%2,%3,%4,").arg(QString::number(kAssBold), + QString::number(kAssItalic), + QString::number(kAssUnderline), + QString::number(kAssStrike))); + + // Scale{X,Y} + ass_code.append(QStringLiteral("100,100,")); + + // Spacing, Angle + ass_code.append(QStringLiteral("0,0,")); + + // BorderStyle, Outline, Shadow + ass_code.append(QStringLiteral("%1,1,0,").arg(QString::number(kAssBorderStyle))); + + // Alignment, Margin[LRV] + ass_code.append(QStringLiteral("%1,10,10,10,").arg(QString::number(kAssAlignment))); + + // Encoding + ass_code.append(QStringLiteral("0\r\n")); + ass_code.append(QStringLiteral("\r\n")); + ass_code.append(QStringLiteral("[Events]\r\n")); + ass_code.append(QStringLiteral("Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text\r\n")); + + return ass_code; } }