fix: suppress warnings before component is complete
This commit is contained in:
parent
8c8d196e20
commit
9de094b5ed
4 changed files with 31 additions and 7 deletions
|
|
@ -2,6 +2,8 @@
|
||||||
#include "config.hpp"
|
#include "config.hpp"
|
||||||
#include "monitorconfigmanager.hpp"
|
#include "monitorconfigmanager.hpp"
|
||||||
|
|
||||||
|
#include <qquickitem.h>
|
||||||
|
|
||||||
namespace caelestia::config {
|
namespace caelestia::config {
|
||||||
|
|
||||||
Config::Config(QObject* parent)
|
Config::Config(QObject* parent)
|
||||||
|
|
@ -9,6 +11,12 @@ Config::Config(QObject* parent)
|
||||||
initialize();
|
initialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Config::classBegin() {}
|
||||||
|
|
||||||
|
void Config::componentComplete() {
|
||||||
|
m_complete = true;
|
||||||
|
}
|
||||||
|
|
||||||
QString Config::screen() const {
|
QString Config::screen() const {
|
||||||
return m_screen;
|
return m_screen;
|
||||||
}
|
}
|
||||||
|
|
@ -49,7 +57,7 @@ void Config::attachedParentChange(
|
||||||
const Type* Config::name() const { \
|
const Type* Config::name() const { \
|
||||||
if (m_config) \
|
if (m_config) \
|
||||||
return m_config->name(); \
|
return m_config->name(); \
|
||||||
if (parent()) \
|
if (m_complete && parent()) /* Suppress warnings before component is complete */ \
|
||||||
qCWarning(lcConfig, "Config.%s accessed without a screen set on %s", #name, \
|
qCWarning(lcConfig, "Config.%s accessed without a screen set on %s", #name, \
|
||||||
parent()->metaObject()->className()); \
|
parent()->metaObject()->className()); \
|
||||||
return GlobalConfig::instance()->name(); \
|
return GlobalConfig::instance()->name(); \
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,9 @@
|
||||||
|
|
||||||
namespace caelestia::config {
|
namespace caelestia::config {
|
||||||
|
|
||||||
class Config : public QQuickAttachedPropertyPropagator {
|
class Config : public QQuickAttachedPropertyPropagator, public QQmlParserStatus {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
Q_INTERFACES(QQmlParserStatus)
|
||||||
QML_ELEMENT
|
QML_ELEMENT
|
||||||
QML_UNCREATABLE("")
|
QML_UNCREATABLE("")
|
||||||
QML_ATTACHED(Config)
|
QML_ATTACHED(Config)
|
||||||
|
|
@ -67,8 +68,12 @@ protected:
|
||||||
QQuickAttachedPropertyPropagator* newParent, QQuickAttachedPropertyPropagator* oldParent) override;
|
QQuickAttachedPropertyPropagator* newParent, QQuickAttachedPropertyPropagator* oldParent) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
void classBegin() override;
|
||||||
|
void componentComplete() override;
|
||||||
|
|
||||||
void propagateScreen();
|
void propagateScreen();
|
||||||
|
|
||||||
|
bool m_complete = false;
|
||||||
QString m_screen;
|
QString m_screen;
|
||||||
GlobalConfig* m_config = nullptr;
|
GlobalConfig* m_config = nullptr;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -8,10 +8,10 @@ namespace caelestia::config {
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
const AppearanceConfig* resolveAppearance(GlobalConfig* config, const char* prop, QObject* parent) {
|
const AppearanceConfig* resolveAppearance(GlobalConfig* config, bool complete, const char* prop, QObject* parent) {
|
||||||
if (config)
|
if (config)
|
||||||
return config->appearance();
|
return config->appearance();
|
||||||
if (parent)
|
if (complete && parent)
|
||||||
qCWarning(lcConfig, "Tokens.%s accessed without a screen set on %s", prop, parent->metaObject()->className());
|
qCWarning(lcConfig, "Tokens.%s accessed without a screen set on %s", prop, parent->metaObject()->className());
|
||||||
return GlobalConfig::instance()->appearance();
|
return GlobalConfig::instance()->appearance();
|
||||||
}
|
}
|
||||||
|
|
@ -25,6 +25,12 @@ Tokens::Tokens(QObject* parent)
|
||||||
initialize();
|
initialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Tokens::classBegin() {}
|
||||||
|
|
||||||
|
void Tokens::componentComplete() {
|
||||||
|
m_complete = true;
|
||||||
|
}
|
||||||
|
|
||||||
QString Tokens::screen() const {
|
QString Tokens::screen() const {
|
||||||
return m_screen;
|
return m_screen;
|
||||||
}
|
}
|
||||||
|
|
@ -71,7 +77,7 @@ void Tokens::bindAnim() {
|
||||||
|
|
||||||
#define TOKENS_ATTACHED_GETTER(Type, name) \
|
#define TOKENS_ATTACHED_GETTER(Type, name) \
|
||||||
const Type* Tokens::name() const { \
|
const Type* Tokens::name() const { \
|
||||||
auto* a = resolveAppearance(m_config, #name, parent()); \
|
auto* a = resolveAppearance(m_config, m_complete, #name, parent()); \
|
||||||
return a ? a->name() : nullptr; \
|
return a ? a->name() : nullptr; \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -89,7 +95,7 @@ const AppearanceTransparency* Tokens::transparency() const {
|
||||||
const SizeTokens* Tokens::sizes() const {
|
const SizeTokens* Tokens::sizes() const {
|
||||||
if (m_tokens)
|
if (m_tokens)
|
||||||
return m_tokens->sizes();
|
return m_tokens->sizes();
|
||||||
if (parent())
|
if (m_complete && parent())
|
||||||
qCWarning(lcConfig, "Tokens.sizes accessed without a screen set on %s", parent()->metaObject()->className());
|
qCWarning(lcConfig, "Tokens.sizes accessed without a screen set on %s", parent()->metaObject()->className());
|
||||||
return TokenConfig::instance()->sizes();
|
return TokenConfig::instance()->sizes();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,8 +9,9 @@
|
||||||
|
|
||||||
namespace caelestia::config {
|
namespace caelestia::config {
|
||||||
|
|
||||||
class Tokens : public QQuickAttachedPropertyPropagator {
|
class Tokens : public QQuickAttachedPropertyPropagator, public QQmlParserStatus {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
Q_INTERFACES(QQmlParserStatus)
|
||||||
QML_ELEMENT
|
QML_ELEMENT
|
||||||
QML_UNCREATABLE("")
|
QML_UNCREATABLE("")
|
||||||
QML_ATTACHED(Tokens)
|
QML_ATTACHED(Tokens)
|
||||||
|
|
@ -51,9 +52,13 @@ protected:
|
||||||
QQuickAttachedPropertyPropagator* newParent, QQuickAttachedPropertyPropagator* oldParent) override;
|
QQuickAttachedPropertyPropagator* newParent, QQuickAttachedPropertyPropagator* oldParent) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
void classBegin() override;
|
||||||
|
void componentComplete() override;
|
||||||
|
|
||||||
void propagateScreen();
|
void propagateScreen();
|
||||||
void bindAnim();
|
void bindAnim();
|
||||||
|
|
||||||
|
bool m_complete = false;
|
||||||
QString m_screen;
|
QString m_screen;
|
||||||
GlobalConfig* m_config = nullptr;
|
GlobalConfig* m_config = nullptr;
|
||||||
TokenConfig* m_tokens = nullptr;
|
TokenConfig* m_tokens = nullptr;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue