mirror of
https://github.com/python/cpython.git
synced 2026-07-27 20:33:48 -04:00
gh-65339: Save IDLE Shell and Output windows as text by default (#152742)
Their content is not Python source, so the Save As dialog now lists text files first and defaults to a ".txt" extension.
This commit is contained in:
@@ -41,6 +41,13 @@ class OutputWindowTest(unittest.TestCase):
|
||||
self.assertFalse(w.ispythonsource('test.txt'))
|
||||
self.assertFalse(w.ispythonsource(__file__))
|
||||
|
||||
def test_save_defaults_to_text(self):
|
||||
# gh-65339: output is saved as text, not Python source.
|
||||
io = self.window.io
|
||||
self.assertEqual(io.defaultextension, '.txt')
|
||||
# Text files are offered before Python files.
|
||||
self.assertEqual(io.filetypes[0][0], 'Text files')
|
||||
|
||||
def test_window_title(self):
|
||||
self.assertEqual(self.window.top.title(), 'Output' + ' (%s)' % platform.python_version())
|
||||
|
||||
|
||||
@@ -384,7 +384,16 @@ class IOBinding:
|
||||
("All files", "*"),
|
||||
)
|
||||
|
||||
# Output windows (Shell, Output) are not Python source, so they list
|
||||
# text files first and default to ".txt" (gh-65339).
|
||||
text_filetypes = (
|
||||
("Text files", "*.txt", "TEXT"),
|
||||
("Python files", py_extensions, "TEXT"),
|
||||
("All files", "*"),
|
||||
)
|
||||
|
||||
defaultextension = '.py' if sys.platform == 'darwin' else ''
|
||||
text_defaultextension = '.txt'
|
||||
|
||||
def askopenfile(self):
|
||||
dir, base = self.defaultfilename("open")
|
||||
|
||||
@@ -78,6 +78,10 @@ class OutputWindow(EditorWindow):
|
||||
def __init__(self, *args):
|
||||
EditorWindow.__init__(self, *args)
|
||||
self.text.bind("<<goto-file-line>>", self.goto_file_line)
|
||||
# Output is not Python source, so save it as text by default
|
||||
# (gh-65339).
|
||||
self.io.filetypes = self.io.text_filetypes
|
||||
self.io.defaultextension = self.io.text_defaultextension
|
||||
|
||||
# Customize EditorWindow
|
||||
def ispythonsource(self, filename):
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
Saving the IDLE Shell or an Output window now defaults to a ``.txt``
|
||||
extension and lists text files before Python files, since their content is
|
||||
not Python source.
|
||||
Reference in New Issue
Block a user