pgLab/pglab/UserConfiguration.cpp
2026-10-22 19:17:46 +02:00

34 lines
913 B
C++

#include "UserConfiguration.h"
#include <QFont>
#include <QFontDatabase>
#include <QFontInfo>
UserConfiguration* UserConfiguration::instance()
{
static UserConfiguration config; // in C++ 11 static ensures thread safe initialization at first call of function
return &config;
}
UserConfiguration::UserConfiguration()
: m_settings(nullptr)
{
}
QFont UserConfiguration::codeFont() const
{
QString family = m_settings.value("fonts/code/family").toString();
QFont font = QFontDatabase::systemFont(QFontDatabase::FixedFont);
font.setStyleHint(QFont::Monospace);
font.setFixedPitch(true);
if (!family.isEmpty())
font.setFamily(family);
else if (!QFontInfo(font).fixedPitch())
font.setFamilies({ "Source Code Pro", "Consolas", "Courier New", "monospace" });
bool ok = false;
int size = m_settings.value("fonts/code/size").toInt(&ok);
if (ok && size > 0)
font.setPointSize(size);
return font;
}