mirror of https://github.com/python/cpython
Issue #11896: Save on Close failed despite selecting "Yes" in dialog.
Backport 70055:35ed0efd7dd3
This commit is contained in:
parent
ee46a7bf9c
commit
d82a8876f0
|
@ -320,17 +320,20 @@ class IOBinding:
|
||||||
return "yes"
|
return "yes"
|
||||||
message = "Do you want to save %s before closing?" % (
|
message = "Do you want to save %s before closing?" % (
|
||||||
self.filename or "this untitled document")
|
self.filename or "this untitled document")
|
||||||
m = tkMessageBox.Message(
|
confirm = tkMessageBox.askyesnocancel(
|
||||||
title="Save On Close",
|
title="Save On Close",
|
||||||
message=message,
|
message=message,
|
||||||
icon=tkMessageBox.QUESTION,
|
default=tkMessageBox.YES,
|
||||||
type=tkMessageBox.YESNOCANCEL,
|
master=self.text)
|
||||||
master=self.text)
|
if confirm:
|
||||||
reply = m.show()
|
reply = "yes"
|
||||||
if reply == "yes":
|
|
||||||
self.save(None)
|
self.save(None)
|
||||||
if not self.get_saved():
|
if not self.get_saved():
|
||||||
reply = "cancel"
|
reply = "cancel"
|
||||||
|
elif confirm is None:
|
||||||
|
reply = "cancel"
|
||||||
|
else:
|
||||||
|
reply = "no"
|
||||||
self.text.focus_set()
|
self.text.focus_set()
|
||||||
return reply
|
return reply
|
||||||
|
|
||||||
|
@ -339,7 +342,7 @@ class IOBinding:
|
||||||
self.save_as(event)
|
self.save_as(event)
|
||||||
else:
|
else:
|
||||||
if self.writefile(self.filename):
|
if self.writefile(self.filename):
|
||||||
self.set_saved(1)
|
self.set_saved(True)
|
||||||
try:
|
try:
|
||||||
self.editwin.store_file_breaks()
|
self.editwin.store_file_breaks()
|
||||||
except AttributeError: # may be a PyShell
|
except AttributeError: # may be a PyShell
|
||||||
|
@ -465,15 +468,12 @@ class IOBinding:
|
||||||
self.text.insert("end-1c", "\n")
|
self.text.insert("end-1c", "\n")
|
||||||
|
|
||||||
def print_window(self, event):
|
def print_window(self, event):
|
||||||
m = tkMessageBox.Message(
|
confirm = tkMessageBox.askokcancel(
|
||||||
title="Print",
|
title="Print",
|
||||||
message="Print to Default Printer",
|
message="Print to Default Printer",
|
||||||
icon=tkMessageBox.QUESTION,
|
default=tkMessageBox.OK,
|
||||||
type=tkMessageBox.OKCANCEL,
|
master=self.text)
|
||||||
default=tkMessageBox.OK,
|
if not confirm:
|
||||||
master=self.text)
|
|
||||||
reply = m.show()
|
|
||||||
if reply != tkMessageBox.OK:
|
|
||||||
self.text.focus_set()
|
self.text.focus_set()
|
||||||
return "break"
|
return "break"
|
||||||
tempfilename = None
|
tempfilename = None
|
||||||
|
@ -488,8 +488,8 @@ class IOBinding:
|
||||||
if not self.writefile(tempfilename):
|
if not self.writefile(tempfilename):
|
||||||
os.unlink(tempfilename)
|
os.unlink(tempfilename)
|
||||||
return "break"
|
return "break"
|
||||||
platform=os.name
|
platform = os.name
|
||||||
printPlatform=1
|
printPlatform = True
|
||||||
if platform == 'posix': #posix platform
|
if platform == 'posix': #posix platform
|
||||||
command = idleConf.GetOption('main','General',
|
command = idleConf.GetOption('main','General',
|
||||||
'print-command-posix')
|
'print-command-posix')
|
||||||
|
@ -497,7 +497,7 @@ class IOBinding:
|
||||||
elif platform == 'nt': #win32 platform
|
elif platform == 'nt': #win32 platform
|
||||||
command = idleConf.GetOption('main','General','print-command-win')
|
command = idleConf.GetOption('main','General','print-command-win')
|
||||||
else: #no printing for this platform
|
else: #no printing for this platform
|
||||||
printPlatform=0
|
printPlatform = False
|
||||||
if printPlatform: #we can try to print for this platform
|
if printPlatform: #we can try to print for this platform
|
||||||
command = command % filename
|
command = command % filename
|
||||||
pipe = os.popen(command, "r")
|
pipe = os.popen(command, "r")
|
||||||
|
@ -511,7 +511,7 @@ class IOBinding:
|
||||||
output = "Printing command: %s\n" % repr(command) + output
|
output = "Printing command: %s\n" % repr(command) + output
|
||||||
tkMessageBox.showerror("Print status", output, master=self.text)
|
tkMessageBox.showerror("Print status", output, master=self.text)
|
||||||
else: #no printing for this platform
|
else: #no printing for this platform
|
||||||
message="Printing is not enabled for this platform: %s" % platform
|
message = "Printing is not enabled for this platform: %s" % platform
|
||||||
tkMessageBox.showinfo("Print status", message, master=self.text)
|
tkMessageBox.showinfo("Print status", message, master=self.text)
|
||||||
if tempfilename:
|
if tempfilename:
|
||||||
os.unlink(tempfilename)
|
os.unlink(tempfilename)
|
||||||
|
|
|
@ -3,8 +3,12 @@ What's New in IDLE 2.7.2?
|
||||||
|
|
||||||
*Release date: XX-XX-XXXX*
|
*Release date: XX-XX-XXXX*
|
||||||
|
|
||||||
|
|
||||||
|
- Issue #11896: Save on Close failed despite selecting "Yes" in dialog.
|
||||||
|
|
||||||
- <Home> toggle failing on Tk 8.5, causing IDLE exits and strange selection
|
- <Home> toggle failing on Tk 8.5, causing IDLE exits and strange selection
|
||||||
behavior. Issue 4676. Improve selection extension behaviour.
|
behavior. Issue 4676. Improve selection extension behaviour.
|
||||||
|
|
||||||
- <Home> toggle non-functional when NumLock set on Windows. Issue 3851.
|
- <Home> toggle non-functional when NumLock set on Windows. Issue 3851.
|
||||||
|
|
||||||
|
|
||||||
|
@ -31,7 +35,7 @@ What's New in IDLE 2.7?
|
||||||
|
|
||||||
- Tk 8.5 Text widget requires 'wordprocessor' tabstyle attr to handle
|
- Tk 8.5 Text widget requires 'wordprocessor' tabstyle attr to handle
|
||||||
mixed space/tab properly. Issue 5129, patch by Guilherme Polo.
|
mixed space/tab properly. Issue 5129, patch by Guilherme Polo.
|
||||||
|
|
||||||
- Issue #3549: On MacOS the preferences menu was not present
|
- Issue #3549: On MacOS the preferences menu was not present
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -184,9 +184,9 @@ class ScriptBinding:
|
||||||
if autosave and filename:
|
if autosave and filename:
|
||||||
self.editwin.io.save(None)
|
self.editwin.io.save(None)
|
||||||
else:
|
else:
|
||||||
reply = self.ask_save_dialog()
|
confirm = self.ask_save_dialog()
|
||||||
self.editwin.text.focus_set()
|
self.editwin.text.focus_set()
|
||||||
if reply == "ok":
|
if confirm:
|
||||||
self.editwin.io.save(None)
|
self.editwin.io.save(None)
|
||||||
filename = self.editwin.io.filename
|
filename = self.editwin.io.filename
|
||||||
else:
|
else:
|
||||||
|
@ -195,13 +195,11 @@ class ScriptBinding:
|
||||||
|
|
||||||
def ask_save_dialog(self):
|
def ask_save_dialog(self):
|
||||||
msg = "Source Must Be Saved\n" + 5*' ' + "OK to Save?"
|
msg = "Source Must Be Saved\n" + 5*' ' + "OK to Save?"
|
||||||
mb = tkMessageBox.Message(title="Save Before Run or Check",
|
confirm = tkMessageBox.askokcancel(title="Save Before Run or Check",
|
||||||
message=msg,
|
message=msg,
|
||||||
icon=tkMessageBox.QUESTION,
|
default=tkMessageBox.OK,
|
||||||
type=tkMessageBox.OKCANCEL,
|
master=self.editwin.text)
|
||||||
default=tkMessageBox.OK,
|
return confirm
|
||||||
master=self.editwin.text)
|
|
||||||
return mb.show()
|
|
||||||
|
|
||||||
def errorbox(self, title, message):
|
def errorbox(self, title, message):
|
||||||
# XXX This should really be a function of EditorWindow...
|
# XXX This should really be a function of EditorWindow...
|
||||||
|
|
Loading…
Reference in New Issue