fix: ensure singletons exist when evaluating attached props
This commit is contained in:
parent
4f2b90147e
commit
324acb492a
2 changed files with 14 additions and 2 deletions
|
|
@ -140,7 +140,8 @@ void Config::connectScope() {
|
|||
const Type* Config::name() const { \
|
||||
if (m_scope && m_scope->config()) \
|
||||
return m_scope->config()->name(); \
|
||||
return GlobalConfig::instance()->name(); \
|
||||
auto* global = GlobalConfig::instance(); \
|
||||
return global ? global->name() : nullptr; \
|
||||
}
|
||||
|
||||
CONFIG_ATTACHED_GETTER(AppearanceConfig, appearance)
|
||||
|
|
@ -164,6 +165,11 @@ CONFIG_ATTACHED_GETTER(UserPaths, paths)
|
|||
#undef CONFIG_ATTACHED_GETTER
|
||||
|
||||
Config* Config::qmlAttachedProperties(QObject* object) {
|
||||
// Ensure GlobalConfig singleton is created before any attached property access
|
||||
if (!GlobalConfig::instance()) {
|
||||
if (auto* engine = qmlEngine(object))
|
||||
engine->singletonInstance<GlobalConfig*>("Caelestia.Config", "GlobalConfig");
|
||||
}
|
||||
return new Config(ConfigScope::find(object), object);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -99,7 +99,8 @@ void Tokens::connectScope() {
|
|||
const Type* Tokens::name() const { \
|
||||
if (m_scope && m_scope->tokens()) \
|
||||
return m_scope->tokens()->name(); \
|
||||
return TokenConfig::instance()->name(); \
|
||||
auto* global = TokenConfig::instance(); \
|
||||
return global ? global->name() : nullptr; \
|
||||
}
|
||||
|
||||
TOKENS_ATTACHED_GETTER(AppearanceTokens, appearance)
|
||||
|
|
@ -118,6 +119,11 @@ TOKENS_ATTACHED_GETTER(ControlCenterTokens, controlCenter)
|
|||
#undef TOKENS_ATTACHED_GETTER
|
||||
|
||||
Tokens* Tokens::qmlAttachedProperties(QObject* object) {
|
||||
// Ensure TokenConfig singleton is created before any attached property access
|
||||
if (!TokenConfig::instance()) {
|
||||
if (auto* engine = qmlEngine(object))
|
||||
engine->singletonInstance<TokenConfig*>("Caelestia.Config", "TokenConfig");
|
||||
}
|
||||
return new Tokens(ConfigScope::find(object), object);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue