From c6642c1bd2f36477e02690b23275a4ceec6a1d6c Mon Sep 17 00:00:00 2001 From: Martino Facchin Date: Thu, 27 Oct 2016 11:54:12 +0200 Subject: [PATCH] Reorder tabs when a new file is inserted/renamed Fixes #5402 --- app/src/processing/app/Editor.java | 18 ++++++++++++++++++ app/src/processing/app/EditorHeader.java | 1 + 2 files changed, 19 insertions(+) diff --git a/app/src/processing/app/Editor.java b/app/src/processing/app/Editor.java index a5f5dddf9..f2fe40b7e 100644 --- a/app/src/processing/app/Editor.java +++ b/app/src/processing/app/Editor.java @@ -1691,6 +1691,24 @@ public class Editor extends JFrame implements RunnerListener { selectTab(0); } + private static final Comparator CODE_DOCS_COMPARATOR = new Comparator() { + @Override + public int compare(EditorTab x, EditorTab y) { + if (x.getSketchFile().isPrimary() && !y.getSketchFile().isPrimary()) + return -1; + if (y.getSketchFile().isPrimary() && !x.getSketchFile().isPrimary()) + return 1; + return x.getSketchFile().getFileName().compareTo(y.getSketchFile().getFileName()); + } + }; + + /** + * Reorders tabs as per current sketch's files order + */ + public void reorderTabs() { + Collections.sort(tabs, CODE_DOCS_COMPARATOR); + } + /** * Add a new tab. * diff --git a/app/src/processing/app/EditorHeader.java b/app/src/processing/app/EditorHeader.java index 42d6769f8..83353559c 100644 --- a/app/src/processing/app/EditorHeader.java +++ b/app/src/processing/app/EditorHeader.java @@ -323,6 +323,7 @@ public class EditorHeader extends JComponent { if (sketch != null) { menu.addSeparator(); + editor.reorderTabs(); int i = 0; for (EditorTab tab : editor.getTabs()) { SketchFile file = tab.getSketchFile();