From 3e7b9e169f48174f093560d4f9e15ed17fdb1ded Mon Sep 17 00:00:00 2001 From: johannfrias <30681899+johannfrias@users.noreply.github.com> Date: Wed, 24 Jun 2020 00:04:15 -0400 Subject: [PATCH] banktags: Save last opened tab when opening worn items (#11660) Co-authored-by: Ron Young --- .../net/runelite/api/widgets/WidgetID.java | 2 + .../net/runelite/api/widgets/WidgetInfo.java | 2 + .../plugins/banktags/tabs/TabInterface.java | 75 +++++++++++++------ 3 files changed, 56 insertions(+), 23 deletions(-) diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java index 7f31f41813..3dc8a98bf6 100644 --- a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java +++ b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java @@ -252,6 +252,7 @@ public class WidgetID static final int BANK_CONTAINER = 1; static final int INVENTORY_ITEM_CONTAINER = 3; static final int BANK_TITLE_BAR = 3; + static final int TUTORIAL_BUTTON = 4; static final int ITEM_COUNT_TOP = 5; static final int ITEM_COUNT_BAR = 6; static final int ITEM_COUNT_BOTTOM = 7; @@ -264,6 +265,7 @@ public class WidgetID static final int INCINERATOR = 45; static final int INCINERATOR_CONFIRM = 46; static final int EQUIPMENT_CONTENT_CONTAINER = 68; + static final int SETTINGS_BUTTON = 108; static final int EQUIPMENT_BUTTON = 109; } diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java index f9534c96f1..e8b389b897 100644 --- a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java +++ b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java @@ -147,6 +147,8 @@ public enum WidgetInfo BANK_ITEM_COUNT_BAR(WidgetID.BANK_GROUP_ID, WidgetID.Bank.ITEM_COUNT_BAR), BANK_ITEM_COUNT_BOTTOM(WidgetID.BANK_GROUP_ID, WidgetID.Bank.ITEM_COUNT_BOTTOM), BANK_PIN_CONTAINER(WidgetID.BANK_PIN_GROUP_ID, WidgetID.BankPin.CONTAINER), + BANK_SETTINGS_BUTTON(WidgetID.BANK_GROUP_ID, WidgetID.Bank.SETTINGS_BUTTON), + BANK_TUTORIAL_BUTTON(WidgetID.BANK_GROUP_ID, WidgetID.Bank.TUTORIAL_BUTTON), GRAND_EXCHANGE_WINDOW_CONTAINER(WidgetID.GRAND_EXCHANGE_GROUP_ID, WidgetID.GrandExchange.WINDOW_CONTAINER), GRAND_EXCHANGE_OFFER_CONTAINER(WidgetID.GRAND_EXCHANGE_GROUP_ID, WidgetID.GrandExchange.OFFER_CONTAINER), diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabInterface.java b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabInterface.java index 329a539d93..a9c930258f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabInterface.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabInterface.java @@ -116,6 +116,11 @@ public class TabInterface private static final String TAB_MENU_KEY = "tagtabs"; private static final String TAB_MENU = TAG_SEARCH + TAB_MENU_KEY; private static final String OPEN_TAB_MENU = "View tag tabs"; + private static final String SHOW_WORN = "Show worn items"; + private static final String SHOW_SETTINGS = "Show menu"; + private static final String HIDE_WORN = "Hide worn items"; + private static final String HIDE_SETTINGS = "Hide menu"; + private static final String SHOW_TUTORIAL = "Show tutorial"; private static final int TAB_HEIGHT = 40; private static final int TAB_WIDTH = 39; private static final int BUTTON_HEIGHT = 20; @@ -497,29 +502,13 @@ public class TabInterface waitSearchTick = false; rememberedSearch = ""; - // If bank window was just hidden, update last active tab position - if (currentTabIndex != config.position()) - { - config.position(currentTabIndex); - } - - // Do the same for last active tab - if (config.rememberTab()) - { - if (activeTab == null && !Strings.isNullOrEmpty(config.tab())) - { - config.tab(""); - } - else if (activeTab != null && !activeTab.getTag().equals(config.tab())) - { - config.tab(activeTab.getTag()); - } - } - else if (!Strings.isNullOrEmpty(config.tab())) - { - config.tab(""); - } + saveTab(); + return; + } + // Don't continue ticking if equipment menu or bank menu is open + if (parent.isSelfHidden()) + { return; } @@ -578,6 +567,32 @@ public class TabInterface scrollTab(0); } + private void saveTab() + { + // If bank window was just hidden, update last active tab position + if (currentTabIndex != config.position()) + { + config.position(currentTabIndex); + } + + // Do the same for last active tab + if (config.rememberTab()) + { + if (activeTab == null && !Strings.isNullOrEmpty(config.tab())) + { + config.tab(""); + } + else if (activeTab != null && !activeTab.getTag().equals(config.tab())) + { + config.tab(activeTab.getTag()); + } + } + else if (!Strings.isNullOrEmpty(config.tab())) + { + config.tab(""); + } + } + private void setTabMenuVisible(boolean visible) { for (TagTab t : tabManager.getTabs()) @@ -753,6 +768,20 @@ public class TabInterface { handleDeposit(event, event.getWidgetId() == WidgetInfo.BANK_DEPOSIT_INVENTORY.getId()); } + else if (activeTab != null && ((event.getWidgetId() == WidgetInfo.BANK_EQUIPMENT_BUTTON.getId() && event.getMenuOption().equals(SHOW_WORN)) + || (event.getWidgetId() == WidgetInfo.BANK_SETTINGS_BUTTON.getId() && event.getMenuOption().equals(SHOW_SETTINGS)) + || (event.getWidgetId() == WidgetInfo.BANK_TUTORIAL_BUTTON.getId() && event.getMenuOption().equals(SHOW_TUTORIAL)))) + { + saveTab(); + rememberedSearch = TAG_SEARCH + activeTab.getTag(); + } + else if (!Strings.isNullOrEmpty(rememberedSearch) && ((event.getWidgetId() == WidgetInfo.BANK_EQUIPMENT_BUTTON.getId() && event.getMenuOption().equals(HIDE_WORN)) + || (event.getWidgetId() == WidgetInfo.BANK_SETTINGS_BUTTON.getId() && event.getMenuOption().equals(HIDE_SETTINGS)))) + { + bankSearch.reset(true); + bankSearch.search(InputType.NONE, rememberedSearch, true); + rememberedSearch = ""; + } } public void updateTabIfActive(final Collection tags) @@ -830,7 +859,7 @@ public class TabInterface { return; } - + if (client.getVar(Varbits.BANK_REARRANGE_MODE) == 0) { tabManager.swap(source.getName(), dest.getName());