feat: warn on per monitor confs being accessed without scope
This commit is contained in:
parent
0432c4708e
commit
5cef79d5e0
2 changed files with 21 additions and 23 deletions
|
|
@ -26,6 +26,9 @@ void Config::connectScope() {
|
|||
const Type* Config::name() const { \
|
||||
if (m_scope && m_scope->config()) \
|
||||
return m_scope->config()->name(); \
|
||||
if (parent()) \
|
||||
qCWarning(lcConfig, "Config.%s accessed without a ConfigScope ancestor on %s", #name, \
|
||||
parent()->metaObject()->className()); \
|
||||
return GlobalConfig::instance()->name(); \
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -9,9 +9,12 @@ namespace caelestia::config {
|
|||
|
||||
namespace {
|
||||
|
||||
const AppearanceConfig* resolveAppearance(ConfigScope* scope) {
|
||||
const AppearanceConfig* resolveAppearance(ConfigScope* scope, const char* prop, QObject* parent) {
|
||||
if (scope && scope->config())
|
||||
return scope->config()->appearance();
|
||||
if (parent)
|
||||
qCWarning(lcConfig, "Tokens.%s accessed without a ConfigScope ancestor on %s", prop,
|
||||
parent->metaObject()->className());
|
||||
return GlobalConfig::instance()->appearance();
|
||||
}
|
||||
|
||||
|
|
@ -36,34 +39,26 @@ void Tokens::bindAnim() {
|
|||
m_anim->bindCurves(TokenConfig::instance()->appearance()->curves());
|
||||
}
|
||||
|
||||
const AppearanceRounding* Tokens::rounding() const {
|
||||
auto* a = resolveAppearance(m_scope);
|
||||
return a ? a->rounding() : nullptr;
|
||||
}
|
||||
#define TOKENS_ATTACHED_GETTER(Type, name) \
|
||||
const Type* Tokens::name() const { \
|
||||
auto* a = resolveAppearance(m_scope, #name, parent()); \
|
||||
return a ? a->name() : nullptr; \
|
||||
}
|
||||
|
||||
const AppearanceSpacing* Tokens::spacing() const {
|
||||
auto* a = resolveAppearance(m_scope);
|
||||
return a ? a->spacing() : nullptr;
|
||||
}
|
||||
TOKENS_ATTACHED_GETTER(AppearanceRounding, rounding)
|
||||
TOKENS_ATTACHED_GETTER(AppearanceSpacing, spacing)
|
||||
TOKENS_ATTACHED_GETTER(AppearancePadding, padding)
|
||||
TOKENS_ATTACHED_GETTER(AppearanceFont, font)
|
||||
TOKENS_ATTACHED_GETTER(AppearanceTransparency, transparency)
|
||||
|
||||
const AppearancePadding* Tokens::padding() const {
|
||||
auto* a = resolveAppearance(m_scope);
|
||||
return a ? a->padding() : nullptr;
|
||||
}
|
||||
|
||||
const AppearanceFont* Tokens::font() const {
|
||||
auto* a = resolveAppearance(m_scope);
|
||||
return a ? a->font() : nullptr;
|
||||
}
|
||||
|
||||
const AppearanceTransparency* Tokens::transparency() const {
|
||||
auto* a = resolveAppearance(m_scope);
|
||||
return a ? a->transparency() : nullptr;
|
||||
}
|
||||
#undef TOKENS_ATTACHED_GETTER
|
||||
|
||||
const SizeTokens* Tokens::sizes() const {
|
||||
if (m_scope && m_scope->tokens())
|
||||
return m_scope->tokens()->sizes();
|
||||
if (parent())
|
||||
qCWarning(lcConfig, "Tokens.sizes accessed without a ConfigScope ancestor on %s",
|
||||
parent()->metaObject()->className());
|
||||
return TokenConfig::instance()->sizes();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue