mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-08-03 18:44:13 +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:
@@ -21,6 +21,7 @@
|
||||
#include "../../qeticons.h"
|
||||
#include "ui_generalconfigurationpage.h"
|
||||
#include "../../utils/qetsettings.h"
|
||||
#include "../../utils/qetutils.h"
|
||||
#include "../../qetmessagebox.h"
|
||||
#include <QFileDialog>
|
||||
#include <QFontDialog>
|
||||
@@ -459,7 +460,7 @@ void GeneralConfigurationPage::on_m_dyn_text_font_pb_clicked()
|
||||
QFont font = QFontDialog::getFont(&ok, curFont, this);
|
||||
if (ok)
|
||||
{
|
||||
settings.setValue("diagrameditor/dynamic_text_font", font.toString());
|
||||
settings.setValue("diagrameditor/dynamic_text_font", QETUtils::fontToString(font));
|
||||
QString fontInfos = font.family() + " " +
|
||||
QString::number(font.pointSize()) + " (" +
|
||||
font.styleName() + ")";
|
||||
@@ -563,7 +564,7 @@ void GeneralConfigurationPage::on_m_indi_text_font_pb_clicked()
|
||||
QFont font = QFontDialog::getFont(&ok, curFont, this);
|
||||
if (ok)
|
||||
{
|
||||
settings.setValue("diagrameditor/independent_text_font", font.toString());
|
||||
settings.setValue("diagrameditor/independent_text_font", QETUtils::fontToString(font));
|
||||
QString fontInfos = font.family() + " " +
|
||||
QString::number(font.pointSize()) + " (" +
|
||||
font.styleName() + ")";
|
||||
|
||||
Reference in New Issue
Block a user