#include "UserConfiguration.h" #include #include #include 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; }