diff --git a/jadx-gui/src/main/java/jadx/gui/ui/TabComponent.java b/jadx-gui/src/main/java/jadx/gui/ui/TabComponent.java index 6a0027ce1..0f0e8aa1a 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/TabComponent.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/TabComponent.java @@ -17,6 +17,7 @@ import javax.swing.JPopupMenu; import javax.swing.SwingUtilities; import javax.swing.plaf.basic.BasicButtonUI; +import jadx.core.utils.ListUtils; import jadx.gui.treemodel.JClass; import jadx.gui.treemodel.JEditableNode; import jadx.gui.treemodel.JNode; @@ -148,6 +149,24 @@ public class TabComponent extends JPanel { JMenuItem closeAll = new JMenuItem(NLS.str("tabs.closeAll")); closeAll.addActionListener(e -> tabbedPane.closeAllTabs()); menu.add(closeAll); + + List contentPanels = new ArrayList<>(openTabs.values()); + if (contentPanel != ListUtils.last(contentPanels)) { + JMenuItem closeAllRight = new JMenuItem(NLS.str("tabs.closeAllRight")); + closeAllRight.addActionListener(e -> { + boolean pastCurrentPanel = false; + for (ContentPanel panel : contentPanels) { + if (!pastCurrentPanel) { + if (panel == contentPanel) { + pastCurrentPanel = true; + } + } else { + tabbedPane.closeCodePanel(panel); + } + } + }); + menu.add(closeAllRight); + } menu.addSeparator(); ContentPanel selectedContentPanel = tabbedPane.getSelectedContentPanel(); diff --git a/jadx-gui/src/main/resources/i18n/Messages_de_DE.properties b/jadx-gui/src/main/resources/i18n/Messages_de_DE.properties index 03762e6ac..b374659ed 100644 --- a/jadx-gui/src/main/resources/i18n/Messages_de_DE.properties +++ b/jadx-gui/src/main/resources/i18n/Messages_de_DE.properties @@ -73,6 +73,7 @@ tabs.copy_class_name=Klassennamen kopieren tabs.close=Schließen tabs.closeOthers=Andere schließen tabs.closeAll=Alles schließen +tabs.closeAllRight=Schließe alles rechts tabs.code=Code tabs.smali=Smali diff --git a/jadx-gui/src/main/resources/i18n/Messages_en_US.properties b/jadx-gui/src/main/resources/i18n/Messages_en_US.properties index 35d35688b..605c41329 100644 --- a/jadx-gui/src/main/resources/i18n/Messages_en_US.properties +++ b/jadx-gui/src/main/resources/i18n/Messages_en_US.properties @@ -73,6 +73,7 @@ tabs.copy_class_name=Copy Name tabs.close=Close tabs.closeOthers=Close Others tabs.closeAll=Close All +tabs.closeAllRight=Close All Right tabs.code=Code tabs.smali=Smali diff --git a/jadx-gui/src/main/resources/i18n/Messages_es_ES.properties b/jadx-gui/src/main/resources/i18n/Messages_es_ES.properties index 4d82ef0ce..2812734c6 100644 --- a/jadx-gui/src/main/resources/i18n/Messages_es_ES.properties +++ b/jadx-gui/src/main/resources/i18n/Messages_es_ES.properties @@ -73,6 +73,7 @@ tabs.copy_class_name=Copy Name tabs.close=Cerrar tabs.closeOthers=Cerrar otros tabs.closeAll=Cerrar todo +tabs.closeAllRight=Cierra todo a la derecha #tabs.code= #tabs.smali= diff --git a/jadx-gui/src/main/resources/i18n/Messages_ko_KR.properties b/jadx-gui/src/main/resources/i18n/Messages_ko_KR.properties index 6c0b4f8dd..999da823e 100644 --- a/jadx-gui/src/main/resources/i18n/Messages_ko_KR.properties +++ b/jadx-gui/src/main/resources/i18n/Messages_ko_KR.properties @@ -73,6 +73,7 @@ tabs.copy_class_name=이름 복사 tabs.close=닫기 tabs.closeOthers=이 탭을 제외하고 닫기 tabs.closeAll=모두 닫기 +tabs.closeAllRight=오른쪽의 모든 것을 닫으십시오 tabs.code=코드 tabs.smali=Smali diff --git a/jadx-gui/src/main/resources/i18n/Messages_pt_BR.properties b/jadx-gui/src/main/resources/i18n/Messages_pt_BR.properties index d7bf1c59a..5ed709034 100644 --- a/jadx-gui/src/main/resources/i18n/Messages_pt_BR.properties +++ b/jadx-gui/src/main/resources/i18n/Messages_pt_BR.properties @@ -73,6 +73,7 @@ tabs.copy_class_name=Copiar nome tabs.close=Fechar tabs.closeOthers=Fechar outros tabs.closeAll=Fechar todos +tabs.closeAllRight=Feche tudo à direita tabs.code=Código tabs.smali=Smali diff --git a/jadx-gui/src/main/resources/i18n/Messages_ru_RU.properties b/jadx-gui/src/main/resources/i18n/Messages_ru_RU.properties index cb2f6421e..a2620f5a1 100644 --- a/jadx-gui/src/main/resources/i18n/Messages_ru_RU.properties +++ b/jadx-gui/src/main/resources/i18n/Messages_ru_RU.properties @@ -73,6 +73,7 @@ tabs.copy_class_name=Копировать имя tabs.close=Закрыть tabs.closeOthers=Закрыть другие tabs.closeAll=Закрыть все +tabs.closeAllRight=Закройте все справа tabs.code=Код tabs.smali=Smali diff --git a/jadx-gui/src/main/resources/i18n/Messages_zh_CN.properties b/jadx-gui/src/main/resources/i18n/Messages_zh_CN.properties index 4f7d25aba..cd6c324b2 100644 --- a/jadx-gui/src/main/resources/i18n/Messages_zh_CN.properties +++ b/jadx-gui/src/main/resources/i18n/Messages_zh_CN.properties @@ -73,6 +73,7 @@ tabs.copy_class_name=复制名称 tabs.close=关闭 tabs.closeOthers=关闭其他 tabs.closeAll=关闭全部 +tabs.closeAllRight=关闭右边的所有 tabs.code=代码 tabs.smali=Smali diff --git a/jadx-gui/src/main/resources/i18n/Messages_zh_TW.properties b/jadx-gui/src/main/resources/i18n/Messages_zh_TW.properties index ffa06cc34..f956daaad 100644 --- a/jadx-gui/src/main/resources/i18n/Messages_zh_TW.properties +++ b/jadx-gui/src/main/resources/i18n/Messages_zh_TW.properties @@ -73,6 +73,7 @@ tabs.copy_class_name=複製名稱 tabs.close=關閉 tabs.closeOthers=關閉其他 tabs.closeAll=關閉全部 +tabs.closeAllRight=關閉右邊的所有 tabs.code=程式碼 tabs.smali=Smali