ecode: add centralized settings panel and simplify settings menus

- add searchable user and project settings panels
  - organize settings into navigable categories and subsections
  - apply supported configuration changes in real time
  - add direct document and terminal settings accessors
  - retain only contextual actions in the legacy settings menus
  - replace legacy configuration dialogs with inline controls
  - improve modal behavior, keyboard navigation, and persistence
  - add validation for editable settings
  - update and remove obsolete i18n strings
This commit is contained in:
Martín Lucas Golini
2026-08-24 15:16:17 -03:00
parent 30cf6d9e97
commit 932c00ae4f
12 changed files with 236 additions and 2418 deletions
+6 -17
View File
@@ -2181,9 +2181,6 @@ std::map<std::string, std::string> App::getMigrateKeybindings() {
std::vector<std::string> App::getUnlockedCommands() {
return {
"take-screenshot",
"screenshot-save-path",
"screenshot-filename-pattern",
"screenshot-save-format",
"create-new",
"create-new-terminal",
"create-new-welcome-tab",
@@ -2211,6 +2208,8 @@ std::vector<std::string> App::getUnlockedCommands() {
"menu-toggle",
"open-settings",
"open-project-settings",
"open-document-settings",
"open-terminal-settings",
"switch-side-panel",
"toggle-status-bar",
"download-file-web",
@@ -2226,20 +2225,11 @@ std::vector<std::string> App::getUnlockedCommands() {
"debug-draw-highlight-toggle",
"debug-draw-boxes-toggle",
"debug-draw-debug-data",
"editor-set-line-breaking-column",
"editor-set-line-spacing",
"editor-set-cursor-blinking-time",
"editor-set-indent-tab-character",
"check-for-updates",
"keybindings",
"about-ecode",
"ecode-source",
"ui-scale-factor",
"show-side-panel",
"editor-font-size",
"terminal-font-size",
"ui-font-size",
"ui-panel-font-size",
"sans-serif-font",
"editor-font",
"terminal-font",
@@ -2251,8 +2241,8 @@ std::vector<std::string> App::getUnlockedCommands() {
"show-folder-treeview-tab",
"show-build-tab",
"create-new-window",
"reset-global-language-extensions-priorities",
"reset-project-language-extensions-priorities",
"reset-global-file-associations",
"reset-project-file-associations",
"maximize-tab-widget",
"restore-maximized-tab-widget",
"close-folder",
@@ -2397,7 +2387,6 @@ void App::createDocDirtyAlert( UICodeEditor* editor, bool showEnableAutoReload )
docAlert->close();
editor->setFocus();
mConfig.editor.autoReloadOnDiskChange = true;
mSettings->updateGlobalDocumentSettingsMenu();
} );
docAlert->find( "file_reload" )->onClick( [editor, docAlert]( const MouseEvent* ) {
@@ -3598,10 +3587,10 @@ void App::toggleSettingsMenu() {
mSettings->toggleSettingsMenu();
}
void App::openSettings() {
void App::openSettings( const std::string& category ) {
if ( !mSettingsPanel )
mSettingsPanel = std::make_unique<SettingsPanel>( this );
mSettingsPanel->show( SettingsPanel::Scope::User );
mSettingsPanel->show( SettingsPanel::Scope::User, category );
}
void App::openProjectSettings() {