Something went wrong. Try again.
The agentic engineering control plane for the posthuman future
Something went wrong. Try again.
3.7 kB · 167 lines
C++
at main
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168#include "SettingsController.h"
#include <QKeyCombination>#include <QKeySequence>
SettingsController::SettingsController(QObject* parent) : QObject(parent) {}
void SettingsController::setDraftFamily(const QString& family){ if (m_draftFamily == family) { return; } m_draftFamily = family; emit draftFamilyChanged();}
void SettingsController::setDraftSize(qreal size){ if (m_draftSize == size) { return; } m_draftSize = size; emit draftSizeChanged();}
void SettingsController::setDraftWeight(int weight){ if (m_draftWeight == weight) { return; } m_draftWeight = weight; emit draftWeightChanged();}
void SettingsController::setRestartDraft(const QVariantList& draft){ if (m_restartDraft == draft) { return; } m_restartDraft = draft; emit restartDraftChanged();}
XenoSettings* SettingsController::settings() const { return effectiveSettings(); }
void SettingsController::setSettings(XenoSettings* settings){ if (m_settings == settings) { return; } m_settings = settings; emit settingsChanged();}
FontCatalog* SettingsController::catalog() const{ if (m_catalog) { return m_catalog; } return AppModel::instance()->fontCatalog();}
void SettingsController::setCatalog(FontCatalog* catalog){ if (m_catalog == catalog) { return; } m_catalog = catalog; emit catalogChanged();}
XenoSettings* SettingsController::effectiveSettings() const{ if (m_settings) { return m_settings; } return AppModel::instance()->settings();}
void SettingsController::seed(const QString& family, qreal size, int weight){ setDraftFamily(family); setDraftSize(size > 0 ? size : 9); setDraftWeight(weight > 0 ? weight : 400);}
void SettingsController::seedFromSettings(){ XenoSettings* s = effectiveSettings(); if (!s) { return; } seed(s->fontFamily(), s->fontSize(), s->fontWeight());}
void SettingsController::commitFont(){ XenoSettings* s = effectiveSettings(); if (!s) { return; } s->setFontFamily(m_draftFamily); s->setFontSize(m_draftSize); s->setFontWeight(m_draftWeight);}
void SettingsController::commitRestart(){ XenoSettings* s = effectiveSettings(); if (!s) { return; } QVariantList matches; matches.reserve(m_restartDraft.size()); for (const QVariant& entry : m_restartDraft) { const QVariantMap e = entry.toMap(); matches.append(QVariantMap { { "kind", e.value("kind").toString() == "path" ? QStringLiteral("path") : QStringLiteral("name") }, { "value", e.value("value").toString() }, }); } s->setProcessRestartMatches(matches);}
void SettingsController::addRestartEntry(const QString& kind, const QString& value){ if (value.isEmpty()) { return; } m_restartDraft.append( QVariantMap { { "kind", kind == "path" ? QStringLiteral("path") : QStringLiteral("name") }, { "value", value } }); emit restartDraftChanged();}
void SettingsController::removeRestartEntry(int index){ if (index < 0 || index >= m_restartDraft.size()) { return; } m_restartDraft.removeAt(index); emit restartDraftChanged();}
QString SettingsController::sequenceFromKey(int key, int modifiers){ if (key == Qt::Key_unknown || key == 0) { return {}; } // Modifier-only presses cannot start a sequence. switch (key) { case Qt::Key_Shift: case Qt::Key_Control: case Qt::Key_Alt: case Qt::Key_Meta: case Qt::Key_AltGr: case Qt::Key_CapsLock: case Qt::Key_NumLock: case Qt::Key_ScrollLock: return {}; default: break; } return QKeySequence(QKeyCombination::fromCombined(modifiers | key)) .toString(QKeySequence::PortableText);}