C++ / fmt (pull_request) Failing after 5s
C++ / build (pull_request) Failing after 10s
C++ / clang-tidy (pull_request) Failing after 11s
JS/TS / fmt (pull_request) Successful in 9s
JS/TS / lint (pull_request) Successful in 10s
Python / static (pull_request) Successful in 34s
Rust / build (pull_request) Successful in 59s
Python / verify (pull_request) Successful in 1m48s
Rust / fmt (pull_request) Successful in 47s
Rust / clippy (pull_request) Successful in 1m6s
55 lines
2.1 KiB
C++
55 lines
2.1 KiB
C++
#pragma once
|
|
|
|
#include <qloggingcategory.h>
|
|
#include <qstring.h>
|
|
|
|
#include "settings/macros.hpp"
|
|
#include "settings/objectnode.hpp"
|
|
|
|
#define CONFIG_NODE_NO_CTOR SETTINGS_NODE_NO_CTOR
|
|
#define CONFIG_NODE SETTINGS_NODE
|
|
#define CONFIG_PROPERTY SETTINGS_PROPERTY
|
|
#define CONFIG_GLOBAL_PROPERTY SETTINGS_GLOBAL_PROPERTY
|
|
|
|
#define CONFIG_ENUM_PROPERTY(Type, name, defaultVal) \
|
|
CONFIG_PROPERTY(ZShell::config::Type::Enum, name, defaultVal)
|
|
#define CONFIG_GLOBAL_ENUM_PROPERTY(Type, name, defaultVal) \
|
|
CONFIG_GLOBAL_PROPERTY(ZShell::config::Type::Enum, name, defaultVal)
|
|
|
|
#define CONFIG_SUBOBJECT(Type, name) \
|
|
SETTINGS_SUBOBJECT(ZShell::config::Type, name)
|
|
#define CONFIG_GLOBAL_SUBOBJECT(Type, name) \
|
|
SETTINGS_GLOBAL_SUBOBJECT(ZShell::config::Type, name)
|
|
|
|
#define CONFIG_LIST_TYPE SETTINGS_LIST_TYPE
|
|
#define CONFIG_LIST(Type, name, defaultVal, ...) \
|
|
SETTINGS_LIST( \
|
|
ZShell::config::Type, name, DEFAULT_ARG(defaultVal), __VA_ARGS__)
|
|
#define CONFIG_GLOBAL_LIST(Type, name, defaultVal, ...) \
|
|
SETTINGS_GLOBAL_LIST( \
|
|
ZShell::config::Type, name, DEFAULT_ARG(defaultVal), __VA_ARGS__)
|
|
|
|
namespace ZShell::config {
|
|
|
|
Q_DECLARE_LOGGING_CATEGORY(lcConfig)
|
|
|
|
QString configDir();
|
|
QString monitorConfigDir();
|
|
|
|
class ListEntry : public settings::ObjectNode {
|
|
CONFIG_NODE(ListEntry, settings::ObjectNode)
|
|
|
|
CONFIG_PROPERTY(QString, id, {})
|
|
CONFIG_PROPERTY(bool, enabled, true)
|
|
};
|
|
CONFIG_LIST_TYPE(ListEntry, EntryList)
|
|
|
|
} // namespace ZShell::config
|
|
|
|
// Shorthand for declaring an ID'd entry (bar entries/status icons, quick toggles, etc)
|
|
#define LIST_ENTRY(id, enabled) \
|
|
settings::vmap({ \
|
|
{QStringLiteral("id"), QStringLiteral(#id)}, \
|
|
{QStringLiteral("enabled"), enabled}, \
|
|
})
|