ecode: add centralized settings panel

- add user and project settings windows with searchable tree navigation
  - centralize setting definitions with reusable bool, choice, text, numeric, and action controls
  - apply supported configuration changes reactively
  - add inline validation and editable choices for complex value types
  - disable project document options while inheriting global settings
  - migrate font, theme, language, renderer, screenshot, and terminal settings
  - improve keyboard navigation and modal shortcut isolation
  - make configuration dialogs modal
  - persist settings when the panel closes
  - add responsive dark and light theme styling
  - update translations for new settings labels and descriptions
  - add regression coverage for modal keybinding propagation
This commit is contained in:
Martín Lucas Golini
2026-08-24 13:07:43 -03:00
parent 288aa931fe
commit 30cf6d9e97
11 changed files with 528 additions and 183 deletions
+5 -4
View File
@@ -148,6 +148,7 @@ Diese Operation kann nicht rückgängig gemacht werden!</string>
<string name="configure_ellipsis">Verwalten...</string>
<string name="configure_ignore_files_ellipsis">Ignorierte Dateien verwalten...</string>
<string name="configure_terminal_scrollback">Konsolenverlaufslänge ändern</string>
<string name="terminal_scrollback">Terminal-Verlauf</string>
<string name="configure_terminal_shell">Konsolen-Shell wählen</string>
<string name="configured_debugger">Gewählter Debugger</string>
<string name="configured_formatter">Gewählter Formatter</string>
@@ -1024,10 +1025,10 @@ Verwendet strftime-Formatbezeichner. Die Dateierweiterung richtet sich nach dem
<string name="ui_panel_font_size_desc">Schriftgröße der Seitenbereiche festlegen.</string>
<string name="editor_font_size_desc">Standardschriftgröße des Code-Editors festlegen.</string>
<string name="terminal_font_size_desc">Standardschriftgröße des Terminals festlegen.</string>
<string name="ui_scale_factor_desc">Gesamte Benutzeroberfläche skalieren.</string>
<string name="line_spacing_desc">Zusätzlichen vertikalen Abstand zwischen Editorzeilen festlegen.</string>
<string name="cursor_blinking_time_desc">Blinkintervall des Textcursors festlegen.</string>
<string name="folds_refresh_freq_desc">Häufigkeit der Neuberechnung von Faltungsbereichen festlegen.</string>
<string name="ui_scale_factor_desc">Gesamte Benutzeroberfläche von 1 bis 6 skalieren. Neustart erforderlich.</string>
<string name="line_spacing_desc">Zusätzlichen vertikalen Abstand zwischen Editorzeilen festlegen. Zum Deaktivieren 0 einstellen.</string>
<string name="cursor_blinking_time_desc">Blinkintervall des Textcursors festlegen. Zum Deaktivieren 0 einstellen.</string>
<string name="folds_refresh_freq_desc">Häufigkeit der Neuberechnung von Faltungsbereichen festlegen (mindestens 1 Sekunde).</string>
<string name="screenshot_save_path_desc">Speicherort für Bildschirmfotos auswählen.</string>
<string name="screenshot_filename_pattern_desc">Zeitstempel-Dateinamensmuster für Bildschirmfotos konfigurieren.</string>
<string name="screenshot_save_format_desc">Bildformat für Bildschirmfotos auswählen.</string>
+5 -4
View File
@@ -132,6 +132,7 @@ This operation cannot be reverted!</string>
<string name="configure_ellipsis">Configure...</string>
<string name="configure_ignore_files_ellipsis">Configure Ignore Files...</string>
<string name="configure_terminal_scrollback">Configure Terminal Scrollback</string>
<string name="terminal_scrollback">Terminal Scrollback</string>
<string name="configure_terminal_shell">Configure Terminal Shell</string>
<string name="configured_debugger">Configured debugger</string>
<string name="configured_formatter">Configured formatter</string>
@@ -1008,10 +1009,10 @@ Uses strftime format specifiers. The file extension follows the selected screens
<string name="ui_panel_font_size_desc">Set the font size used by side panels.</string>
<string name="editor_font_size_desc">Set the default code editor font size.</string>
<string name="terminal_font_size_desc">Set the default integrated terminal font size.</string>
<string name="ui_scale_factor_desc">Scale the complete user interface.</string>
<string name="line_spacing_desc">Set additional vertical spacing between editor lines.</string>
<string name="cursor_blinking_time_desc">Set the text cursor blink interval.</string>
<string name="folds_refresh_freq_desc">Set how frequently code folding ranges are recalculated.</string>
<string name="ui_scale_factor_desc">Scale the complete user interface from 1 to 6. Restart required.</string>
<string name="line_spacing_desc">Set additional vertical spacing between editor lines. Set 0 to disable.</string>
<string name="cursor_blinking_time_desc">Set the text cursor blink interval. Set 0 to disable.</string>
<string name="folds_refresh_freq_desc">Set how frequently code folding ranges are recalculated (minimum 1 second).</string>
<string name="screenshot_save_path_desc">Choose where screenshots are saved.</string>
<string name="screenshot_filename_pattern_desc">Configure the timestamp-based screenshot filename pattern.</string>
<string name="screenshot_save_format_desc">Choose the image format for screenshots.</string>
+5 -4
View File
@@ -133,6 +133,7 @@ Cette opération est irréversible !</string>
<string name="configure_ellipsis">Configurer...</string>
<string name="configure_ignore_files_ellipsis">Configurer les fichiers ignorés...</string>
<string name="configure_terminal_scrollback">Configurer le défilement de l'historique du terminal</string>
<string name="terminal_scrollback">Historique du terminal</string>
<string name="configure_terminal_shell">Configurer l'interpréteur de commandes du terminal</string>
<string name="configured_debugger">Débogueur configuré</string>
<string name="configured_formatter">Formatteur configuré</string>
@@ -1003,10 +1004,10 @@ Utilise les spécificateurs de format strftime. L’extension du fichier corresp
<string name="ui_panel_font_size_desc">Set the font size used by side panels.</string>
<string name="editor_font_size_desc">Set the default code editor font size.</string>
<string name="terminal_font_size_desc">Set the default integrated terminal font size.</string>
<string name="ui_scale_factor_desc">Scale the complete user interface.</string>
<string name="line_spacing_desc">Set additional vertical spacing between editor lines.</string>
<string name="cursor_blinking_time_desc">Set the text cursor blink interval.</string>
<string name="folds_refresh_freq_desc">Set how frequently code folding ranges are recalculated.</string>
<string name="ui_scale_factor_desc">Mettre l’interface à l’échelle de 1 à 6. Redémarrage requis.</string>
<string name="line_spacing_desc">Définir l’espace vertical supplémentaire entre les lignes. Utiliser 0 pour désactiver.</string>
<string name="cursor_blinking_time_desc">Définir l’intervalle de clignotement du curseur. Utiliser 0 pour désactiver.</string>
<string name="folds_refresh_freq_desc">Définir la fréquence de recalcul des zones de pliage du code (minimum 1 seconde).</string>
<string name="screenshot_save_path_desc">Choose where screenshots are saved.</string>
<string name="screenshot_filename_pattern_desc">Configure the timestamp-based screenshot filename pattern.</string>
<string name="screenshot_save_format_desc">Choose the image format for screenshots.</string>
+5 -4
View File
@@ -110,6 +110,7 @@
<string name="configure_default_shell">配置默认终端</string>
<string name="configure_ignore_files_ellipsis">设置忽略的文件...</string>
<string name="configure_terminal_scrollback">Configure Terminal Scrollback</string>
<string name="terminal_scrollback">终端回滚行数</string>
<string name="configure_terminal_shell">设置终端程序</string>
<string name="confirm_build_delete">你确定要删除构建设置吗?</string>
<string name="confirm_close_folder">确定要关闭此文件夹吗?
@@ -782,10 +783,10 @@ file in the directory tree.</string>
<string name="ui_panel_font_size_desc">Set the font size used by side panels.</string>
<string name="editor_font_size_desc">Set the default code editor font size.</string>
<string name="terminal_font_size_desc">Set the default integrated terminal font size.</string>
<string name="ui_scale_factor_desc">Scale the complete user interface.</string>
<string name="line_spacing_desc">Set additional vertical spacing between editor lines.</string>
<string name="cursor_blinking_time_desc">Set the text cursor blink interval.</string>
<string name="folds_refresh_freq_desc">Set how frequently code folding ranges are recalculated.</string>
<string name="ui_scale_factor_desc">将整个用户界面缩放为 1 到 6。需要重新启动。</string>
<string name="line_spacing_desc">设置编辑器行之间的额外垂直间距。设置为 0 可禁用。</string>
<string name="cursor_blinking_time_desc">设置文本光标闪烁间隔。设置为 0 可禁用。</string>
<string name="folds_refresh_freq_desc">设置重新计算代码折叠区域的频率(最少 1 秒)。</string>
<string name="screenshot_save_path_desc">Choose where screenshots are saved.</string>
<string name="screenshot_filename_pattern_desc">Configure the timestamp-based screenshot filename pattern.</string>
<string name="screenshot_save_format_desc">Choose the image format for screenshots.</string>