2018-09-18 11:53:19 +02:00
|
|
|
|
#include "UserConfiguration.h"
|
|
|
|
|
|
#include <QFont>
|
2026-10-22 19:17:46 +02:00
|
|
|
|
#include <QFontDatabase>
|
|
|
|
|
|
#include <QFontInfo>
|
2018-09-18 11:53:19 +02:00
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
{
|
2026-10-22 19:17:46 +02:00
|
|
|
|
QString family = m_settings.value("fonts/code/family").toString();
|
|
|
|
|
|
QFont font = QFontDatabase::systemFont(QFontDatabase::FixedFont);
|
|
|
|
|
|
font.setStyleHint(QFont::Monospace);
|
2018-09-18 11:53:19 +02:00
|
|
|
|
font.setFixedPitch(true);
|
2026-10-22 19:17:46 +02:00
|
|
|
|
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);
|
2018-09-18 11:53:19 +02:00
|
|
|
|
return font;
|
|
|
|
|
|
}
|
2018-09-18 20:24:54 +02:00
|
|
|
|
|