lance: Handle unspecified size or weight in setFont command
We have test cases that call setFont without a specified weight, in which case we would end up parsing an empty string into a number, giving a weight of 0. This weight would in turn result in the thinnest font on the system, which presumably was not the intent. We now use default sizes and weights (similar to the default QFont constructor arguments) if we're missing those arguments to setFont. Pick-to: 6.2 6.3 5.15 Change-Id: I5a96f08cfa1b9e4f1de5edee6bf69ddd46f0ce92 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
This commit is contained in:
parent
5578b47092
commit
496bf5a946
@ -2144,19 +2144,27 @@ void PaintCommands::command_setFont(QRegularExpressionMatch re)
|
||||
{
|
||||
QStringList caps = re.capturedTexts();
|
||||
QString family = caps.at(1);
|
||||
int size = convertToInt(caps.at(2));
|
||||
|
||||
int weight = translateEnum(fontWeightTable, re.captured(3).toLower(), 5);
|
||||
if (weight != -1) {
|
||||
switch (weight) {
|
||||
case 0: weight = QFont::Light; break;
|
||||
case 1: weight = QFont::Normal; break;
|
||||
case 2: weight = QFont::DemiBold; break;
|
||||
case 3: weight = QFont::Bold; break;
|
||||
case 4: weight = QFont::Black; break;
|
||||
}
|
||||
} else {
|
||||
weight = convertToInt(re.captured(3));
|
||||
int size = -1; // Default
|
||||
QString sizeArg = caps.at(2);
|
||||
if (!sizeArg.isEmpty())
|
||||
size = convertToInt(caps.at(2));
|
||||
|
||||
int weight = -1; // Default
|
||||
QString weightArg = caps.at(3);
|
||||
if (!weightArg.isEmpty()) {
|
||||
weight = translateEnum(fontWeightTable, weightArg.toLower(), 5);
|
||||
if (weight != -1) {
|
||||
switch (weight) {
|
||||
case 0: weight = QFont::Light; break;
|
||||
case 1: weight = QFont::Normal; break;
|
||||
case 2: weight = QFont::DemiBold; break;
|
||||
case 3: weight = QFont::Bold; break;
|
||||
case 4: weight = QFont::Black; break;
|
||||
}
|
||||
} else {
|
||||
weight = convertToInt(weightArg);
|
||||
}
|
||||
}
|
||||
|
||||
bool italic = caps.at(4).toLower() == "true" || caps.at(4).toLower() == "italic";
|
||||
|
Loading…
Reference in New Issue
Block a user