X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fgui%2FQuitHandler.java;fp=src%2Fjalview%2Fgui%2FQuitHandler.java;h=f9110eb9c62e3c75116fe625edd0705efe9736a4;hb=9b943e6d79fd92f78a61916a6f6eb047ba0a9755;hp=ae12e7d273ab6f376afcb43214693d8d3d2eaa05;hpb=b865b46f6f34e82f5d10fccfe646f00b8ae2e7a1;p=jalview.git diff --git a/src/jalview/gui/QuitHandler.java b/src/jalview/gui/QuitHandler.java index ae12e7d..f9110eb 100644 --- a/src/jalview/gui/QuitHandler.java +++ b/src/jalview/gui/QuitHandler.java @@ -166,6 +166,46 @@ public class QuitHandler } got = gotQuitResponse(); + + // check for external viewer frames + if (got != QResponse.CANCEL_QUIT) + { + int count = Desktop.instance.structureViewersStillRunningCount(); + if (count > 0) + { + String prompt = MessageManager + .formatMessage(count == 1 ? "label.confirm_quit_viewer" + : "label.confirm_quit_viewers"); + String title = MessageManager.getString( + count == 1 ? "label.close_viewer" : "label.close_viewers"); + String cancelQuitText = MessageManager + .getString("action.cancel_quit"); + String[] buttonsText = { MessageManager.getString("action.yes"), + MessageManager.getString("action.no"), cancelQuitText }; + + int confirmResponse = JvOptionPane.showOptionDialog( + Desktop.instance, prompt, title, + JvOptionPane.YES_NO_CANCEL_OPTION, + JvOptionPane.WARNING_MESSAGE, null, buttonsText, + cancelQuit); + + if (confirmResponse == JvOptionPane.CANCEL_OPTION) + { + // Cancel Quit + QuitHandler.setResponse(QResponse.CANCEL_QUIT); + } + else + { + // Close viewers/Leave viewers open + StructureViewerBase + .setQuitClose(confirmResponse == JvOptionPane.YES_OPTION); + } + } + + } + + got = gotQuitResponse(); + boolean wait = false; if (got == QResponse.CANCEL_QUIT) {