Mercurial > cgi-bin > hgweb.cgi > JpegWasher
diff src/name/blackcap/exifwasher/WashDialog.kt @ 18:841f711c40bd
Add new dialogs, and make NO the default for dangerous YES answers.
author | David Barts <n5jrn@me.com> |
---|---|
date | Sat, 11 Apr 2020 15:01:23 -0700 |
parents | e52fd1a575de |
children | 39b977021ea1 |
line wrap: on
line diff
--- a/src/name/blackcap/exifwasher/WashDialog.kt Sat Apr 11 13:38:26 2020 -0700 +++ b/src/name/blackcap/exifwasher/WashDialog.kt Sat Apr 11 15:01:23 2020 -0700 @@ -4,6 +4,7 @@ package name.blackcap.exifwasher import java.awt.Color +import java.awt.Component import java.awt.Dimension import java.awt.event.ActionEvent import java.awt.event.ActionListener @@ -72,9 +73,32 @@ private lateinit var washing: File + /* a yes/no dialog in which NO is the default */ + private fun noYesDialog(parent: Component, message: String, title: String): Int { + val options = arrayOf<String>("No", "Yes") + val status = JOptionPane.showOptionDialog(parent, message, title, + JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, + null, options, options[0]) + return if (status == 1) JOptionPane.YES_OPTION else JOptionPane.NO_OPTION + } + /* initiates the washing of the Exif data */ fun wash(dirty: File) { title = "Washing: ${dirty.name}" + + /* warn (and allow user to back out) if not a JPEG */ + val lcext = splitext(dirty.name).second.toLowerCase() + if (lcext != ".jpg" && lcext != ".jpeg") { + val answer = noYesDialog(Application.mainFrame, + "File ${dirty.name} does not appear to be a JPEG image.\n"+ + "Washing non-JPEG images may damage them. Proceed anyway?", + "Non-JPEG file detected") + if (answer != JOptionPane.YES_OPTION) { + close() + return + } + } + selectAll.setSelected(false) washing = dirty useWaitCursor() @@ -155,11 +179,9 @@ /* warn (and allow user to back out) if overwriting */ if (newFile.exists()) { - val answer = JOptionPane.showConfirmDialog(Application.mainFrame, + val answer = noYesDialog(Application.mainFrame, "File ${newFile.name} already exists. Overwrite?", - "Confirm overwriting file", - JOptionPane.YES_NO_OPTION, - JOptionPane.WARNING_MESSAGE) + "Confirm overwriting file") if (answer != JOptionPane.YES_OPTION) { close() return