[config-ui-tiny] refresh widget cache after preset selection
This commit is contained in:
parent
fbbb2fb166
commit
ce3a9126b5
|
@ -39,7 +39,7 @@ public class TinyConfigScreen extends Screen {
|
|||
}
|
||||
private final Screen parent;
|
||||
private final ConfigCategory config;
|
||||
public final List<WidgetState<?>> widgets;
|
||||
public final List<WidgetState<?>> widgets; // Filled in from TinyConfigTab
|
||||
private final Placeholder<EntryListWidget> placeholder;
|
||||
private final TabManager tabManager = new TabManager(a -> selectTab(((TinyConfigTabWrapper)a).getTab()), a -> {});
|
||||
private List<TinyConfigTab> tabs;
|
||||
|
@ -107,7 +107,7 @@ public class TinyConfigScreen extends Screen {
|
|||
|
||||
if (tabs.size() == 1 && !config.getPresets().isEmpty()) {
|
||||
this.addDrawableChild(ButtonWidget.builder(Text.translatable("libjf-config-v1.presets"),
|
||||
button -> Objects.requireNonNull(client).setScreen(new PresetsScreen(this, config)))
|
||||
button -> Objects.requireNonNull(client).setScreen(new PresetsScreen(this, config, this::afterSelectPreset)))
|
||||
.dimensions(4, 6, 80, 20)
|
||||
.build());
|
||||
}
|
||||
|
@ -120,6 +120,12 @@ public class TinyConfigScreen extends Screen {
|
|||
reload = true;
|
||||
}
|
||||
|
||||
public void afterSelectPreset() {
|
||||
for (WidgetState<?> widget : widgets) {
|
||||
widget.updateCache();
|
||||
}
|
||||
}
|
||||
|
||||
private void selectTab(TinyConfigTab tab) {
|
||||
placeholder.setChild(tab.getList());
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ public class TinyConfigTab implements Tab {
|
|||
} else {
|
||||
if (!config.getPresets().isEmpty()) {
|
||||
this.list.addReference(Text.translatable("libjf-config-v1.presets"),
|
||||
() -> new PresetsScreen(screen, config));
|
||||
() -> new PresetsScreen(screen, config, screen::afterSelectPreset));
|
||||
}
|
||||
}
|
||||
for (WidgetState<?> info : widgets) {
|
||||
|
|
|
@ -16,12 +16,14 @@ import java.util.Objects;
|
|||
public class PresetsScreen extends Screen {
|
||||
private final Screen parent;
|
||||
private final ConfigCategory config;
|
||||
private final Runnable afterSelect;
|
||||
private PresetListWidget list;
|
||||
|
||||
public PresetsScreen(Screen parent, ConfigCategory config) {
|
||||
public PresetsScreen(Screen parent, ConfigCategory config, Runnable afterSelect) {
|
||||
super(Text.translatable("libjf-config-v1.presets"));
|
||||
this.parent = parent;
|
||||
this.config = config;
|
||||
this.afterSelect = afterSelect;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -34,6 +36,7 @@ public class PresetsScreen extends Screen {
|
|||
LibJf.LOGGER.info("Preset selected: " + entry.getKey());
|
||||
entry.getValue().run();
|
||||
config.fix();
|
||||
afterSelect.run();
|
||||
Objects.requireNonNull(client).setScreen(parent);
|
||||
})
|
||||
.dimensions(width / 2 - 100, 0, 200, 20)
|
||||
|
|
Loading…
Reference in New Issue