#pragma once #include "common.hpp" #include namespace ZShell::config { class Performance : public settings::ObjectNode { CONFIG_NODE(Performance, settings::ObjectNode) CONFIG_PROPERTY(bool, enabled, true) CONFIG_PROPERTY(bool, showBattery, false) CONFIG_PROPERTY(bool, showCpu, true) CONFIG_PROPERTY(bool, showGpu, true) CONFIG_PROPERTY(bool, showMemory, true) CONFIG_PROPERTY(bool, showNetwork, true) CONFIG_PROPERTY(bool, showStorage, true) CONFIG_PROPERTY(bool, showVram, true) }; class DashboardSizes : public settings::ObjectNode { CONFIG_NODE(DashboardSizes, settings::ObjectNode) CONFIG_PROPERTY(int, dateTimeWidth, 110) CONFIG_PROPERTY(int, infoIconSize, 25) CONFIG_PROPERTY(int, infoWidth, 200) CONFIG_PROPERTY(int, mediaCoverArtSize, 150) CONFIG_PROPERTY(int, mediaProgressSweep, 180) CONFIG_PROPERTY(int, mediaProgressThickness, 8) CONFIG_PROPERTY(int, mediaVisualizerSize, 200) CONFIG_PROPERTY(int, mediaWidth, 200) CONFIG_PROPERTY(int, resourceProgessThickness, 10) CONFIG_PROPERTY(int, resourceSize, 200) CONFIG_PROPERTY(int, tabIndicatorHeight, 3) CONFIG_PROPERTY(int, tabIndicatorSpacing, 5) CONFIG_PROPERTY(int, weatherWidth, 250) }; class ProcessColumnEntry : public settings::ObjectNode { CONFIG_NODE(ProcessColumnEntry, settings::ObjectNode) CONFIG_PROPERTY(QString, id, {}) CONFIG_PROPERTY(double, width, 0) }; CONFIG_LIST_TYPE(ProcessColumnEntry, ProcessColumnList) class Dashboard : public settings::ObjectNode { CONFIG_NODE(Dashboard, settings::ObjectNode) CONFIG_PROPERTY(bool, enabled, true) CONFIG_PROPERTY(bool, showOnHover, true) CONFIG_PROPERTY(int, dragThreshold, 50) CONFIG_PROPERTY(int, mediaUpdateInterval, 2000) CONFIG_SUBOBJECT(Performance, performance) CONFIG_PROPERTY(int, resourceUpdateInterval, 1000) CONFIG_SUBOBJECT(DashboardSizes, sizes) CONFIG_LIST( ProcessColumnList, processColumns, DEFAULT_ARG({ settings::vmap({{"id", "command"}}), settings::vmap({{"id", "pid"}}), settings::vmap({{"id", "cpuUsage"}}), settings::vmap({{"id", "memoryUsage"}}), })) }; } // namespace ZShell::config