subtitles: rewrite to support older versions of qt
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user