From d146d5aed894fbd12adf6a9b70d64f08750aaee3 Mon Sep 17 00:00:00 2001 From: Willem Date: Mon, 3 Feb 2025 23:48:59 +0100 Subject: [PATCH] Add close all windows on exit and fixed remove row from mm doc app --- .../gdxapp4d/app/mmdoc/MMDocDeskApp.java | 12 +++++++++++- .../vrgem4/screen/AbstractScreenDesktop.java | 1 + .../gdxapp4d/vrgem4/screen/ScreenDesktop1.java | 1 - .../gdxapp4d/vrgem4/view/DeskAppController.java | 8 ++++++++ .../gdxapp4d/vrgem4/view/DeskTopScreenMenu.java | 8 ++++---- 5 files changed, 24 insertions(+), 6 deletions(-) diff --git a/gdxapp4d-app-mmdoc/src/main/java/love/distributedrebirth/gdxapp4d/app/mmdoc/MMDocDeskApp.java b/gdxapp4d-app-mmdoc/src/main/java/love/distributedrebirth/gdxapp4d/app/mmdoc/MMDocDeskApp.java index 1bc5b390..d1763767 100644 --- a/gdxapp4d-app-mmdoc/src/main/java/love/distributedrebirth/gdxapp4d/app/mmdoc/MMDocDeskApp.java +++ b/gdxapp4d-app-mmdoc/src/main/java/love/distributedrebirth/gdxapp4d/app/mmdoc/MMDocDeskApp.java @@ -69,6 +69,12 @@ public class MMDocDeskApp extends AbstractDeskApp implements DeskAppRenderer { docManager.loadDrivers(); } + @Override + public void exit() { + docManager.getDataStore().clearAndCloseAllSafe(); + } + + @Override public void create() { getContours().setTitle("MMDoc"); getContours().registrateContour(DeskAppContourSection.MAIN, this); @@ -79,7 +85,7 @@ public class MMDocDeskApp extends AbstractDeskApp implements DeskAppRenderer { dbPass.set("pass"); docTarget.set("target/mm-doc"); } - + @Override public void render() { ImGui.inputText("docTarget", docTarget); @@ -134,8 +140,10 @@ public class MMDocDeskApp extends AbstractDeskApp implements DeskAppRenderer { ImGui.tableSetupColumn("Remove"); ImGui.tableHeadersRow(); + int i=1; String removeId = null; for (Entry data:docManager.getDataStore().entrySet()) { + ImGui.pushID(i); ImGui.tableNextRow(); ImGui.tableNextColumn(); ImGui.text(data.getKey()); @@ -147,6 +155,8 @@ public class MMDocDeskApp extends AbstractDeskApp implements DeskAppRenderer { if (ImGui.smallButton("Remove")) { removeId = data.getKey(); } + ImGui.popID(); + i++; } ImGui.endTable(); diff --git a/gdxapp4d-vrgem4/src/main/java/love/distributedrebirth/gdxapp4d/vrgem4/screen/AbstractScreenDesktop.java b/gdxapp4d-vrgem4/src/main/java/love/distributedrebirth/gdxapp4d/vrgem4/screen/AbstractScreenDesktop.java index caf73e91..abf119c4 100644 --- a/gdxapp4d-vrgem4/src/main/java/love/distributedrebirth/gdxapp4d/vrgem4/screen/AbstractScreenDesktop.java +++ b/gdxapp4d-vrgem4/src/main/java/love/distributedrebirth/gdxapp4d/vrgem4/screen/AbstractScreenDesktop.java @@ -150,6 +150,7 @@ public abstract class AbstractScreenDesktop extends ScreenAdapter implements Des batch.dispose(); font.dispose(); modelBatch.dispose(); + deskAppScreen.dispose(); disposeDesktop(); } diff --git a/gdxapp4d-vrgem4/src/main/java/love/distributedrebirth/gdxapp4d/vrgem4/screen/ScreenDesktop1.java b/gdxapp4d-vrgem4/src/main/java/love/distributedrebirth/gdxapp4d/vrgem4/screen/ScreenDesktop1.java index 348018d0..f44d03fc 100644 --- a/gdxapp4d-vrgem4/src/main/java/love/distributedrebirth/gdxapp4d/vrgem4/screen/ScreenDesktop1.java +++ b/gdxapp4d-vrgem4/src/main/java/love/distributedrebirth/gdxapp4d/vrgem4/screen/ScreenDesktop1.java @@ -66,7 +66,6 @@ public class ScreenDesktop1 extends AbstractScreenDesktop { public ScreenDesktop1(SystemGdxBootArgs bootArgs, SystemGdxTerminal terminal, VrGem4DeskAppService deskAppService) { super("Desktop1", bootArgs, terminal, deskAppService); - } protected void createModel(ModelBuilder modelBuilder, Array modelInstances) { diff --git a/gdxapp4d-vrgem4/src/main/java/love/distributedrebirth/gdxapp4d/vrgem4/view/DeskAppController.java b/gdxapp4d-vrgem4/src/main/java/love/distributedrebirth/gdxapp4d/vrgem4/view/DeskAppController.java index ae245687..ba153e2c 100644 --- a/gdxapp4d-vrgem4/src/main/java/love/distributedrebirth/gdxapp4d/vrgem4/view/DeskAppController.java +++ b/gdxapp4d-vrgem4/src/main/java/love/distributedrebirth/gdxapp4d/vrgem4/view/DeskAppController.java @@ -105,4 +105,12 @@ public class DeskAppController { protected void renderBackground() { } + + public final void dispose() { + for (DeskApp app : deskApps) { + app.exit(); + } + deskApps.clear(); + currentDeskApp = null; + } } diff --git a/gdxapp4d-vrgem4/src/main/java/love/distributedrebirth/gdxapp4d/vrgem4/view/DeskTopScreenMenu.java b/gdxapp4d-vrgem4/src/main/java/love/distributedrebirth/gdxapp4d/vrgem4/view/DeskTopScreenMenu.java index 56a4eb9b..33a18e1f 100644 --- a/gdxapp4d-vrgem4/src/main/java/love/distributedrebirth/gdxapp4d/vrgem4/view/DeskTopScreenMenu.java +++ b/gdxapp4d-vrgem4/src/main/java/love/distributedrebirth/gdxapp4d/vrgem4/view/DeskTopScreenMenu.java @@ -57,9 +57,9 @@ import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAu @DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") public class DeskTopScreenMenu { - private SystemGdxBootArgs bootArgs; - private SystemGdxTerminal terminal; - private VrGem4DeskAppService deskAppService; + private final SystemGdxBootArgs bootArgs; + private final SystemGdxTerminal terminal; + private final VrGem4DeskAppService deskAppService; private ImBoolean fileMinimizeSelected = new ImBoolean(false); private ImBoolean fileCloseSelected = new ImBoolean(false); private ImBoolean tosSelfSelected = new ImBoolean(false); @@ -70,7 +70,7 @@ public class DeskTopScreenMenu { this.terminal = terminal; this.deskAppService = deskAppService; } - + public void renderMenu(DeskTopScreen appScreen) { DeskApp deskApp = appScreen.getDeskAppController().getCurrentDeskApp();