From 974f5631353a0abd70f1d24098fc741487d79f7c Mon Sep 17 00:00:00 2001
From: IllianiCBT
Date: Fri, 13 Dec 2024 14:44:44 -0600
Subject: [PATCH] Restored confirmation dialog for starting a new campaign
Introduced a NewCampaignConfirmationDialog to prompt users before starting a new campaign, enhancing user decision control. Updated relevant GUI logic in CampaignGUI and added corresponding copyright updates for 2024.
---
MekHQ/src/mekhq/gui/CampaignGUI.java | 5 ++++
.../gui/dialog/CampaignOptionsDialog.java | 2 +-
.../mekhq/gui/dialog/DataLoadingDialog.java | 2 +-
.../dialog/NewCampaignConfirmationDialog.java | 30 +++++++++++++++++++
.../mekhq/gui/panels/StartupScreenPanel.java | 3 +-
5 files changed, 38 insertions(+), 4 deletions(-)
create mode 100644 MekHQ/src/mekhq/gui/dialog/NewCampaignConfirmationDialog.java
diff --git a/MekHQ/src/mekhq/gui/CampaignGUI.java b/MekHQ/src/mekhq/gui/CampaignGUI.java
index 433b6949c4..34994eea03 100644
--- a/MekHQ/src/mekhq/gui/CampaignGUI.java
+++ b/MekHQ/src/mekhq/gui/CampaignGUI.java
@@ -1061,6 +1061,11 @@ private void initMenu() {
*
*/
private void handleInAppNewCampaign() {
+ int decision = new NewCampaignConfirmationDialog().YesNoOption();
+ if (decision != JOptionPane.YES_OPTION) {
+ return;
+ }
+
// Prompt the user to save
int savePrompt = JOptionPane.showConfirmDialog(null,
resourceMap.getString("savePrompt.text"),
diff --git a/MekHQ/src/mekhq/gui/dialog/CampaignOptionsDialog.java b/MekHQ/src/mekhq/gui/dialog/CampaignOptionsDialog.java
index 3782401fcd..9d1b6f38fd 100644
--- a/MekHQ/src/mekhq/gui/dialog/CampaignOptionsDialog.java
+++ b/MekHQ/src/mekhq/gui/dialog/CampaignOptionsDialog.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2009-2022 - The MegaMek Team. All Rights Reserved.
+ * Copyright (c) 2009-2024 - The MegaMek Team. All Rights Reserved.
*
* This file is part of MekHQ.
*
diff --git a/MekHQ/src/mekhq/gui/dialog/DataLoadingDialog.java b/MekHQ/src/mekhq/gui/dialog/DataLoadingDialog.java
index c8e845bdc9..76dac67f78 100644
--- a/MekHQ/src/mekhq/gui/dialog/DataLoadingDialog.java
+++ b/MekHQ/src/mekhq/gui/dialog/DataLoadingDialog.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2009-2022 - The MegaMek Team. All Rights Reserved.
+ * Copyright (c) 2009-2024 - The MegaMek Team. All Rights Reserved.
*
* This file is part of MekHQ.
*
diff --git a/MekHQ/src/mekhq/gui/dialog/NewCampaignConfirmationDialog.java b/MekHQ/src/mekhq/gui/dialog/NewCampaignConfirmationDialog.java
new file mode 100644
index 0000000000..6321611047
--- /dev/null
+++ b/MekHQ/src/mekhq/gui/dialog/NewCampaignConfirmationDialog.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2021-2024 - The MegaMek Team. All Rights Reserved.
+ *
+ * This file is part of MekHQ.
+ *
+ * MekHQ is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * MekHQ is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with MekHQ. If not, see .
+ */
+package mekhq.gui.dialog;
+
+import javax.swing.*;
+
+public class NewCampaignConfirmationDialog {
+ public int YesNoOption() {
+ return JOptionPane.showConfirmDialog(null,
+ "Are you sure you want to start a new campaign?",
+ "Start New Campaign?",
+ JOptionPane.YES_NO_OPTION);
+ }
+}
diff --git a/MekHQ/src/mekhq/gui/panels/StartupScreenPanel.java b/MekHQ/src/mekhq/gui/panels/StartupScreenPanel.java
index 5911731a39..bbc710e4e7 100644
--- a/MekHQ/src/mekhq/gui/panels/StartupScreenPanel.java
+++ b/MekHQ/src/mekhq/gui/panels/StartupScreenPanel.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2022 - The MegaMek Team. All Rights Reserved.
+ * Copyright (c) 2022-2024 - The MegaMek Team. All Rights Reserved.
*
* This file is part of MekHQ.
*
@@ -45,7 +45,6 @@
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FilenameFilter;
-import java.util.Arrays;
import java.util.List;
public class StartupScreenPanel extends AbstractMHQPanel {