diff --git a/jadx-gui/src/main/java/jadx/gui/ui/tab/TabComponent.java b/jadx-gui/src/main/java/jadx/gui/ui/tab/TabComponent.java index 55eda883f..59a1d98e2 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/tab/TabComponent.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/tab/TabComponent.java @@ -282,6 +282,18 @@ public class TabComponent extends JPanel { // We don't use TabsController here because tabs position is // specific to TabbedPane List contentPanels = tabbedPane.getTabs(); + int currentIndex = contentPanels.indexOf(contentPanel); + if (currentIndex > 0) { // Add item only if there are tabs on the left (index > 0) + JMenuItem closeAllLeft = new JMenuItem(NLS.str("tabs.closeAllLeft")); + closeAllLeft.addActionListener(e -> { + // Iterate in reverse order from the index before the current tab to the beginning + for (int i = currentIndex - 1; i >= 0; i--) { + ContentPanel panelToClose = contentPanels.get(i); + tabsController.closeTab(panelToClose.getNode(), true); + } + }); + menu.add(closeAllLeft); + } if (contentPanel != ListUtils.last(contentPanels)) { JMenuItem closeAllRight = new JMenuItem(NLS.str("tabs.closeAllRight")); closeAllRight.addActionListener(e -> { 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 9264e954c..6cf93e15a 100644 --- a/jadx-gui/src/main/resources/i18n/Messages_de_DE.properties +++ b/jadx-gui/src/main/resources/i18n/Messages_de_DE.properties @@ -107,6 +107,7 @@ tabs.unbookmark_all=Alle Lesezeichen entfernen tabs.pin=Anheften tabs.closeAll=Alles schließen tabs.closeAllRight=Alles rechts schließen +#tabs.closeAllLeft=Close All Left 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 481a29f0f..c7dc0ad9e 100644 --- a/jadx-gui/src/main/resources/i18n/Messages_en_US.properties +++ b/jadx-gui/src/main/resources/i18n/Messages_en_US.properties @@ -107,6 +107,7 @@ tabs.unbookmark_all=Unbookmark All tabs.pin=Pin tabs.closeAll=Close All tabs.closeAllRight=Close All Right +tabs.closeAllLeft=Close All Left 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 6b12d4b22..79180d2fe 100644 --- a/jadx-gui/src/main/resources/i18n/Messages_es_ES.properties +++ b/jadx-gui/src/main/resources/i18n/Messages_es_ES.properties @@ -107,6 +107,7 @@ tabs.closeOthers=Cerrar otros #tabs.pin=Pin tabs.closeAll=Cerrar todo tabs.closeAllRight=Cierra todo a la derecha +#tabs.closeAllLeft=Close All Left #tabs.code=Code #tabs.smali=Smali diff --git a/jadx-gui/src/main/resources/i18n/Messages_id_ID.properties b/jadx-gui/src/main/resources/i18n/Messages_id_ID.properties index ebdcc0111..4c18e4250 100644 --- a/jadx-gui/src/main/resources/i18n/Messages_id_ID.properties +++ b/jadx-gui/src/main/resources/i18n/Messages_id_ID.properties @@ -107,6 +107,7 @@ tabs.closeOthers=Tutup yang Lain #tabs.pin=Pin tabs.closeAll=Tutup Semua tabs.closeAllRight=Tutup Semua yang Kanan +#tabs.closeAllLeft=Close All Left tabs.code=Kode tabs.smali=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 24cf19cf1..d49df1c72 100644 --- a/jadx-gui/src/main/resources/i18n/Messages_ko_KR.properties +++ b/jadx-gui/src/main/resources/i18n/Messages_ko_KR.properties @@ -107,6 +107,7 @@ tabs.closeOthers=이 탭을 제외하고 닫기 #tabs.pin=Pin tabs.closeAll=모두 닫기 tabs.closeAllRight=오른쪽의 모든 것을 닫으십시오 +#tabs.closeAllLeft=Close All Left 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 d877e1b2f..f1b54520c 100644 --- a/jadx-gui/src/main/resources/i18n/Messages_pt_BR.properties +++ b/jadx-gui/src/main/resources/i18n/Messages_pt_BR.properties @@ -107,6 +107,7 @@ tabs.closeOthers=Fechar outros #tabs.pin=Pin tabs.closeAll=Fechar todos tabs.closeAllRight=Feche tudo à direita +#tabs.closeAllLeft=Close All Left 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 03513d967..fd764acd5 100644 --- a/jadx-gui/src/main/resources/i18n/Messages_ru_RU.properties +++ b/jadx-gui/src/main/resources/i18n/Messages_ru_RU.properties @@ -107,6 +107,7 @@ tabs.closeOthers=Закрыть другие #tabs.pin=Pin tabs.closeAll=Закрыть все tabs.closeAllRight=Закройте все справа +#tabs.closeAllLeft=Close All Left 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 7168dac19..058080497 100644 --- a/jadx-gui/src/main/resources/i18n/Messages_zh_CN.properties +++ b/jadx-gui/src/main/resources/i18n/Messages_zh_CN.properties @@ -107,6 +107,7 @@ tabs.unbookmark_all=取消所有收藏 tabs.pin=固定 tabs.closeAll=关闭全部 tabs.closeAllRight=关闭右边的所有 +#tabs.closeAllLeft=Close All Left 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 2c09a927c..ecae95936 100644 --- a/jadx-gui/src/main/resources/i18n/Messages_zh_TW.properties +++ b/jadx-gui/src/main/resources/i18n/Messages_zh_TW.properties @@ -107,6 +107,7 @@ tabs.unbookmark_all=全部移除書籤 tabs.pin=釘選 tabs.closeAll=關閉全部 tabs.closeAllRight=關閉右邊的所有 +#tabs.closeAllLeft=Close All Left tabs.code=程式碼 tabs.smali=Smali