Commit graph

5 commits

Author SHA1 Message Date
57b36798b9 add plugin settings, per-tile refresh, settings menu, touch-friendly UI
- Plugin settings infrastructure in PluginManager with config/plugin_settings.cfg
  storage, manifest [settings] sections, CRUD API, plugin_setting_changed signal
- Per-tile refresh intervals: 100ms base tick, per-tile update_interval_ms
  metadata, dynamic tween durations clamped to refresh window
- Settings menu (PopupPanel) with General/Plugins/About tabs, plugin
  activation toggles, per-plugin settings cog buttons
- Plugin settings popup (PopupPanel) with dynamic UI from setting definitions
  (SpinBox/CheckBox/LineEdit), auto-save on change
- Modal behavior: exclusive = true on settings windows
- Touch-friendly sizing: enlarged close buttons, cog buttons, controls, spacing
- Red corner close button redesign with rounded corners, hover/pressed states
- Split system_monitor into local_system_monitor (CPU, Memory) and test plugins
- Plugin activation/deactivation with layout preservation
2026-05-21 12:47:25 -04:00
12b45b2685 fix: resolve runtime errors and shadowed variable warnings
- use custom_minimum_size instead of minimum_size on Button (Godot 4.6 API)
- reduce module_resized signal to 3 args to match _save_layout signature
- rename testing_tile refresh param data -> _data (unused)
- rename name -> layout_name in save_layout/switch_layout (shadows Node.name)
2026-05-21 09:28:47 -04:00
96c4d39946 add long-press gesture for touch-friendly preset popup
- replace instant drag-on-press with 500ms long-press timer
- cancel long-press on early release or movement past 10px threshold
- preserve double-click for mouse users (backward compatible)
- resize edge detection still instant (no long-press)
- cancel long-press on mouse_exit and grid rebuild
- fix: ConfigFile reserved word 'default' removed from config
2026-05-21 08:58:04 -04:00
825598f1a9 fix: remove class_name from autoload singletons
PluginManager and LayoutManager had class_name declarations
that shadowed their autoload registrations in project.godot.
2026-05-21 08:43:57 -04:00
f43676e46c add plugin system with plugin/layout managers
- plugin_manager: scans res://plugins/*/plugin.cfg, loads tile definitions
- plugin_tile: new base class for plugin tiles, extends ModuleBase
- layout_manager: save/restore tile grid positions per named layout
- migrate existing cpu/memory/testing tiles into system_monitor plugin
- add module_resized signal to DashboardGrid for auto-save
- dashboard reads from PluginManager + LayoutManager instead of hardcoded paths
- project.godot registers PluginManager and LayoutManager autoloads
- AGENTS.md updated with new structure and conventions
2026-05-21 08:39:15 -04:00