mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-08-03 10:34:14 +02:00
Write font descriptions in the stable Qt 5 10/11-field format
QFont::toString() is not stable across Qt versions: Qt 6.11 switched to a 19-field format carrying OpenType weights, which QFont::fromString() of Qt 5.x and Qt <= 6.10 rejects, leaving a broken font. Projects saved by a Qt 6.11+ build were therefore unreadable by older builds. Add QETUtils::fontToString() composing the legacy 10/11-field description (weight mapped back to the legacy scale with the same closest-match table Qt uses when parsing) and use it at every site that stores a font description in a project, element, table config or settings file. Every Qt version from 5.15 through 6.12-beta parses this form correctly, so files stay readable by every QET build in circulation. See issue #553.
This commit is contained in:
@@ -221,12 +221,12 @@ void AddTableDialog::saveConfig()
|
||||
header_object.insert("margins", QETUtils::marginsToString(this->headerMargins()));
|
||||
auto me = QMetaEnum::fromType<Qt::Alignment>();
|
||||
header_object.insert("alignment", me.valueToKey(int(this->headerAlignment())));
|
||||
header_object.insert("font", this->headerFont().toString());
|
||||
header_object.insert("font", QETUtils::fontToString(this->headerFont()));
|
||||
|
||||
QJsonObject table_object;
|
||||
table_object.insert("margins", QETUtils::marginsToString(this->tableMargins()));
|
||||
table_object.insert("alignment", me.valueToKey(int(this->tableAlignment())));
|
||||
table_object.insert("font", this->tableFont().toString());
|
||||
table_object.insert("font", QETUtils::fontToString(this->tableFont()));
|
||||
|
||||
QJsonObject config_object;
|
||||
config_object.insert("header", header_object);
|
||||
|
||||
Reference in New Issue
Block a user