Issue #25173: Replace 'master' with 'parent' in tkinter.messagebox calls.

This associates the message box with the widget and is better for Mac OSX.
Patch by Mark Roseman.
This commit is contained in:
Terry Jan Reedy 2015-09-25 22:22:55 -04:00
parent cbe16aefb8
commit 3be2e54adc
5 changed files with 20 additions and 20 deletions

View File

@ -217,7 +217,7 @@ class IOBinding:
f.seek(0)
bytes = f.read()
except OSError as msg:
tkMessageBox.showerror("I/O Error", str(msg), master=self.text)
tkMessageBox.showerror("I/O Error", str(msg), parent=self.text)
return False
chars, converted = self._decode(two_lines, bytes)
if chars is None:
@ -266,7 +266,7 @@ class IOBinding:
title="Error loading the file",
message="The encoding '%s' is not known to this Python "\
"installation. The file may not display correctly" % name,
master = self.text)
parent = self.text)
enc = None
except UnicodeDecodeError:
return None, False
@ -321,7 +321,7 @@ class IOBinding:
title="Save On Close",
message=message,
default=tkMessageBox.YES,
master=self.text)
parent=self.text)
if confirm:
reply = "yes"
self.save(None)
@ -381,7 +381,7 @@ class IOBinding:
return True
except OSError as msg:
tkMessageBox.showerror("I/O Error", str(msg),
master=self.text)
parent=self.text)
return False
def encode(self, chars):
@ -418,7 +418,7 @@ class IOBinding:
tkMessageBox.showerror(
"I/O Error",
"%s.\nSaving as UTF-8" % failed,
master = self.text)
parent = self.text)
# Fallback: save as UTF-8, with BOM - ignoring the incorrect
# declared encoding
return BOM_UTF8 + chars.encode("utf-8")
@ -433,7 +433,7 @@ class IOBinding:
title="Print",
message="Print to Default Printer",
default=tkMessageBox.OK,
master=self.text)
parent=self.text)
if not confirm:
self.text.focus_set()
return "break"
@ -470,10 +470,10 @@ class IOBinding:
status + output
if output:
output = "Printing command: %s\n" % repr(command) + output
tkMessageBox.showerror("Print status", output, master=self.text)
tkMessageBox.showerror("Print status", output, parent=self.text)
else: #no printing for this platform
message = "Printing is not enabled for this platform: %s" % platform
tkMessageBox.showinfo("Print status", message, master=self.text)
tkMessageBox.showinfo("Print status", message, parent=self.text)
if tempfilename:
os.unlink(tempfilename)
return "break"
@ -492,7 +492,7 @@ class IOBinding:
def askopenfile(self):
dir, base = self.defaultfilename("open")
if not self.opendialog:
self.opendialog = tkFileDialog.Open(master=self.text,
self.opendialog = tkFileDialog.Open(parent=self.text,
filetypes=self.filetypes)
filename = self.opendialog.show(initialdir=dir, initialfile=base)
return filename
@ -513,7 +513,7 @@ class IOBinding:
dir, base = self.defaultfilename("save")
if not self.savedialog:
self.savedialog = tkFileDialog.SaveAs(
master=self.text,
parent=self.text,
filetypes=self.filetypes,
defaultextension=self.defaultextension)
filename = self.savedialog.show(initialdir=dir, initialfile=base)

View File

@ -91,7 +91,7 @@ class OutputWindow(EditorWindow):
"No special line",
"The line you point at doesn't look like "
"a valid file name followed by a line number.",
master=self.text)
parent=self.text)
return
filename, lineno = result
edit = self.flist.open(filename)

View File

@ -774,7 +774,7 @@ class ModifiedInterpreter(InteractiveInterpreter):
"Exit?",
"Do you want to exit altogether?",
default="yes",
master=self.tkconsole.text):
parent=self.tkconsole.text):
raise
else:
self.showtraceback()
@ -812,7 +812,7 @@ class ModifiedInterpreter(InteractiveInterpreter):
"Run IDLE with the -n command line switch to start without a "
"subprocess and refer to Help/IDLE Help 'Running without a "
"subprocess' for further details.",
master=self.tkconsole.text)
parent=self.tkconsole.text)
def display_no_subprocess_error(self):
tkMessageBox.showerror(
@ -820,14 +820,14 @@ class ModifiedInterpreter(InteractiveInterpreter):
"IDLE's subprocess didn't make connection. Either IDLE can't "
"start a subprocess or personal firewall software is blocking "
"the connection.",
master=self.tkconsole.text)
parent=self.tkconsole.text)
def display_executing_dialog(self):
tkMessageBox.showerror(
"Already executing",
"The Python Shell window is already executing a command; "
"please wait until it is finished.",
master=self.tkconsole.text)
parent=self.tkconsole.text)
class PyShell(OutputWindow):
@ -931,7 +931,7 @@ class PyShell(OutputWindow):
if self.executing:
tkMessageBox.showerror("Don't debug now",
"You can only toggle the debugger when idle",
master=self.text)
parent=self.text)
self.set_debugger_indicator()
return "break"
else:
@ -1239,7 +1239,7 @@ class PyShell(OutputWindow):
tkMessageBox.showerror("No stack trace",
"There is no stack trace yet.\n"
"(sys.last_traceback is not defined)",
master=self.text)
parent=self.text)
return
from idlelib.StackViewer import StackBrowser
StackBrowser(self.root, self.flist)

View File

@ -197,10 +197,10 @@ class ScriptBinding:
confirm = tkMessageBox.askokcancel(title="Save Before Run or Check",
message=msg,
default=tkMessageBox.OK,
master=self.editwin.text)
parent=self.editwin.text)
return confirm
def errorbox(self, title, message):
# XXX This should really be a function of EditorWindow...
tkMessageBox.showerror(title, message, master=self.editwin.text)
tkMessageBox.showerror(title, message, parent=self.editwin.text)
self.editwin.text.focus_set()

View File

@ -174,7 +174,7 @@ def show_socket_error(err, address):
tkMessageBox.showerror("IDLE Subprocess Error", msg, parent=root)
else:
tkMessageBox.showerror("IDLE Subprocess Error",
"Socket Error: %s" % err.args[1])
"Socket Error: %s" % err.args[1], parent=root)
root.destroy()
def print_exception():