Index: ../src-rep/src/lib/aqua-common/com/common/options/OptionsText.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>windows-1252 =================================================================== --- ../src-rep/src/lib/aqua-common/com/common/options/OptionsText.java (revision 55960) +++ ../src-rep/src/lib/aqua-common/com/common/options/OptionsText.java (revision ) @@ -191,6 +191,9 @@ public static final String dsc_fileencoding = TXT.get("DatastudioOption.txt.General.General.filencoding.d", "Specifies the default encoding to use for new editors. Also specifies the default encoding to use for existing files if the content does not contain BOM characters and UTF characters, and the encoding is not explicitly defined in the content, such as an XML file."); public static final String val_editorundolimit = TXT.get("DatastudioOption.txt.General.General.editorundolimit", "Editor Undo Limit"); public static final String dsc_editorundolimit = TXT.get("DatastudioOption.txt.General.General.editorundolimit.d", "Specifies the undo limit for editors."); + public static final String val_recentfilelimit = TXT.get("DatastudioOption.txt.General.General.recentfilelimit", "Latest recent open files count"); + public static final String dsc_recentfilelimit = TXT.get("DatastudioOption.txt.General.General.recentfilelimit.d", "Specifies the number of recently opened files to remember. Caution, reducing the number in the list will permanently remove file names from the list."); + // GENERAL -->> QueryWindows public static final String title_General_QueryWindows = TXT.get("DatastudioOption.txt.General.QueryWindows", "Query Windows"); Index: ../src-rep/src/lib/aqua-common/com/common/ui/frame/RecentFilesOption.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>windows-1252 =================================================================== --- ../src-rep/src/lib/aqua-common/com/common/ui/frame/RecentFilesOption.java (revision 55960) +++ ../src-rep/src/lib/aqua-common/com/common/ui/frame/RecentFilesOption.java (revision ) @@ -24,6 +24,8 @@ import com.aquafold.library.common.utils.AQStringUtils; import com.common.options.COptionSystem; +import com.common.options.OptionSettings; +import com.common.options.OptionSettingsDefaults; // the list is stored in standard properties file under one key, as one value @@ -45,7 +47,7 @@ public RecentFilesOption(String property) { - this(10, property); + this(OptionSettings.getPropertyInt(OptionSettings.RECENT_FILES_LIMIT, OptionSettingsDefaults.RECENT_FILES_LIMIT), property); } @@ -105,11 +107,17 @@ public void save() { if (list != null) { StringBuilder sb = new StringBuilder(); + int i = 0; for (String s : list) { + // Only save number configured in the list + if (i == max) { + break; + } if (sb.length() > 0) { sb.append(DIVIDER); } sb.append(s); + ++i; } COptionSystem.set(property, sb.toString()); Index: ../src-rep/src/lib/aqua-common/com/common/options/OptionSettingsDefaults.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>windows-1252 =================================================================== --- ../src-rep/src/lib/aqua-common/com/common/options/OptionSettingsDefaults.java (revision 55960) +++ ../src-rep/src/lib/aqua-common/com/common/options/OptionSettingsDefaults.java (revision ) @@ -84,6 +84,7 @@ public static final boolean SHELL_HISTORY = true; public static final ComboBoxProperty FILE_ENCODING = new ComboBoxProperty(CharsetToolkit.UTF8_CHARSET.displayName(), CharsetToolkit.UTF8_CHARSET.name()); public static final int EDITOR_UNDO_LIMIT = 100; + public static final int RECENT_FILES_LIMIT = 10; // General Workspace public static final boolean WORKSPACE_SAVE_FILES_ON_EXIT_WITHOUT_PROMPT = CommonDocument.WORKSPACE_SAVE_FILES_ON_EXIT_WITHOUT_PROMPT_DEFAULT; Index: ../src-rep/src/lib/aqua-common/com/common/ui/frame/RecentFilesMenu.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>windows-1252 =================================================================== --- ../src-rep/src/lib/aqua-common/com/common/ui/frame/RecentFilesMenu.java (revision 55960) +++ ../src-rep/src/lib/aqua-common/com/common/ui/frame/RecentFilesMenu.java (revision ) @@ -68,8 +68,9 @@ // called by the superclass constructor? if (option != null) { ArrayList a = option.list(); - if (a.size() > 0) { - for (int i = 0; i < a.size(); i++) { + int size = option.getMaxCount() < a.size() ? option.getMaxCount() : a.size(); + if (size > 0) { + for (int i = 0; i < size; i++) { final String s = a.get(i); final File file = new File(RecentFilesOption.retrieveFilename(s)); Index: ../src-rep/src/lib/aqua-common/com/common/options/OptionSettings.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>windows-1252 =================================================================== --- ../src-rep/src/lib/aqua-common/com/common/options/OptionSettings.java (revision 55960) +++ ../src-rep/src/lib/aqua-common/com/common/options/OptionSettings.java (revision ) @@ -88,6 +88,7 @@ public static final String VISUAL_EDITING_FLOATING_WINDOWS = "visualedit.floating.windows"; public static final String FILE_ENCODING = "general.fileencoding"; public static final String EDITOR_UNDO_LIMIT = "general.editorundolimit"; + public static final String RECENT_FILES_LIMIT = "general.recentfileslimit"; // debugger public static final String DEBUGGER_PROMPT_FOR_HOST = "debugger.prompt.for.host"; Index: ../src-rep/src/lib/aqua-datastudio-components/com/aquafold/datastudio/options18/PlatGeneralSettings.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>windows-1252 =================================================================== --- ../src-rep/src/lib/aqua-datastudio-components/com/aquafold/datastudio/options18/PlatGeneralSettings.java (revision 55960) +++ ../src-rep/src/lib/aqua-datastudio-components/com/aquafold/datastudio/options18/PlatGeneralSettings.java (revision ) @@ -184,6 +184,12 @@ editorUndoLimit.setMax(1000); editorUndoLimit.setRestartRequired(true); properties.add(editorUndoLimit); + + AQIntOptionEditor recentfilesLimit = AQOptionsEditorFactory.getIntOptionEditor(OptionsText.val_recentfilelimit, OptionSettings.RECENT_FILES_LIMIT, OptionSettingsDefaults.RECENT_FILES_LIMIT, OptionsText.dsc_recentfilelimit, null); + recentfilesLimit.setMin(1); + recentfilesLimit.setMax(25); + recentfilesLimit.setRestartRequired(true); + properties.add(recentfilesLimit); } return properties; }