Reload overlay settings on plugin change
When plugin is loaded/unloaded, reload all overlay settings as they might've changed. Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
This commit is contained in:
@@ -228,6 +228,7 @@ public class RuneLite
|
||||
// Register event listeners
|
||||
eventBus.register(clientUI);
|
||||
eventBus.register(overlayRenderer);
|
||||
eventBus.register(overlayManager);
|
||||
eventBus.register(drawManager);
|
||||
eventBus.register(menuManager);
|
||||
eventBus.register(chatMessageManager);
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
package net.runelite.client.ui.overlay;
|
||||
|
||||
import com.google.common.annotations.VisibleForTesting;
|
||||
import com.google.common.eventbus.Subscribe;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Point;
|
||||
import java.util.ArrayList;
|
||||
@@ -41,6 +42,7 @@ import lombok.Getter;
|
||||
import net.runelite.client.config.ConfigGroup;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.config.RuneLiteConfig;
|
||||
import net.runelite.client.events.PluginChanged;
|
||||
|
||||
/**
|
||||
* Manages state of all game overlays
|
||||
@@ -90,6 +92,13 @@ public class OverlayManager
|
||||
this.configManager = configManager;
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onPluginChanged(final PluginChanged event)
|
||||
{
|
||||
overlays.forEach(this::loadOverlay);
|
||||
rebuildOverlayLayers();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets all of the overlays on a layer
|
||||
*
|
||||
@@ -116,12 +125,7 @@ public class OverlayManager
|
||||
|
||||
// Add is always true
|
||||
overlays.add(overlay);
|
||||
final Point location = loadOverlayLocation(overlay);
|
||||
overlay.setPreferredLocation(location);
|
||||
final Dimension size = loadOverlaySize(overlay);
|
||||
overlay.setPreferredSize(size);
|
||||
final OverlayPosition position = loadOverlayPosition(overlay);
|
||||
overlay.setPreferredPosition(position);
|
||||
loadOverlay(overlay);
|
||||
rebuildOverlayLayers();
|
||||
return true;
|
||||
}
|
||||
@@ -226,6 +230,16 @@ public class OverlayManager
|
||||
overlayLayers.forEach((layer, value) -> overlayLayers.put(layer, Collections.unmodifiableList(value)));
|
||||
}
|
||||
|
||||
private void loadOverlay(final Overlay overlay)
|
||||
{
|
||||
final Point location = loadOverlayLocation(overlay);
|
||||
overlay.setPreferredLocation(location);
|
||||
final Dimension size = loadOverlaySize(overlay);
|
||||
overlay.setPreferredSize(size);
|
||||
final OverlayPosition position = loadOverlayPosition(overlay);
|
||||
overlay.setPreferredPosition(position);
|
||||
}
|
||||
|
||||
private void saveOverlayLocation(final Overlay overlay)
|
||||
{
|
||||
final String key = overlay.getName() + OVERLAY_CONFIG_PREFERRED_LOCATION;
|
||||
|
||||
Reference in New Issue
Block a user