JAL-1988 JAL-3772 Quit confirmation dialog boxes with saving files check and wait
[jalview.git] / src / jalview / jbgui / GDesktop.java
index 459835d..7b4f477 100755 (executable)
@@ -32,7 +32,9 @@ import javax.swing.JMenuItem;
 
 import jalview.api.AlignmentViewPanel;
 import jalview.bin.Cache;
+import jalview.gui.Desktop;
 import jalview.io.FileFormatException;
+import jalview.jbgui.QuitHandler.QResponse;
 import jalview.util.MessageManager;
 import jalview.util.Platform;
 
@@ -213,7 +215,14 @@ public class GDesktop extends JFrame
       @Override
       public void actionPerformed(ActionEvent e)
       {
-        quit();
+        QResponse qresponse = Desktop.instance != null
+                ? Desktop.instance.desktopQuit()
+                : QResponse.QUIT;
+        if (qresponse == QResponse.CANCEL_QUIT)
+        {
+          jalview.bin.Console
+                  .debug("GDesktop: Quit action cancelled by user");
+        }
       }
     });
     aboutMenuItem.setText(MessageManager.getString("label.about"));
@@ -401,7 +410,10 @@ public class GDesktop extends JFrame
     FileMenu.add(saveAsState);
     FileMenu.add(loadState);
     FileMenu.addSeparator();
-    FileMenu.add(quit);
+    if (!APQHandlers.setQuit)
+    {
+      FileMenu.add(quit);
+    }
     if (!APQHandlers.setAbout)
     {
       HelpMenu.add(aboutMenuItem);