mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
1. Prevent Undo before IOmark in PyShell.PyShell
2. Consolidate Undo code in EditorWindow.EditorWindow 3. Remove Formatting and Run menus from PyShell
This commit is contained in:
parent
0c08864fbb
commit
dc1e70987f
2 changed files with 22 additions and 13 deletions
|
@ -151,10 +151,8 @@ class EditorWindow:
|
|||
text.bind("<<open-path-browser>>", self.open_path_browser)
|
||||
|
||||
self.set_status_bar()
|
||||
|
||||
vbar['command'] = text.yview
|
||||
vbar.pack(side=RIGHT, fill=Y)
|
||||
|
||||
text['yscrollcommand'] = vbar.set
|
||||
fontWeight='normal'
|
||||
if idleConf.GetOption('main','EditorWindow','font-bold',type='bool'):
|
||||
|
@ -168,30 +166,34 @@ class EditorWindow:
|
|||
|
||||
self.per = per = self.Percolator(text)
|
||||
if self.ispythonsource(filename):
|
||||
self.color = color = self.ColorDelegator(); per.insertfilter(color)
|
||||
self.color = color = self.ColorDelegator()
|
||||
per.insertfilter(color)
|
||||
##print "Initial colorizer"
|
||||
else:
|
||||
##print "No initial colorizer"
|
||||
self.color = None
|
||||
self.undo = undo = self.UndoDelegator(); per.insertfilter(undo)
|
||||
|
||||
self.undo = undo = self.UndoDelegator()
|
||||
per.insertfilter(undo)
|
||||
text.undo_block_start = undo.undo_block_start
|
||||
text.undo_block_stop = undo.undo_block_stop
|
||||
undo.set_saved_change_hook(self.saved_change_hook)
|
||||
|
||||
# IOBinding implements file I/O and printing functionality
|
||||
self.io = io = self.IOBinding(self)
|
||||
io.set_filename_change_hook(self.filename_change_hook)
|
||||
|
||||
#create the Recent Files submenu
|
||||
self.menuRecentFiles=Menu(self.menubar)
|
||||
self.menudict['file'].insert_cascade(3,label='Recent Files',
|
||||
underline=0,menu=self.menuRecentFiles)
|
||||
self.UpdateRecentFilesList()
|
||||
|
||||
text.undo_block_start = undo.undo_block_start
|
||||
text.undo_block_stop = undo.undo_block_stop
|
||||
undo.set_saved_change_hook(self.saved_change_hook)
|
||||
io.set_filename_change_hook(self.filename_change_hook)
|
||||
|
||||
if filename:
|
||||
if os.path.exists(filename):
|
||||
io.loadfile(filename)
|
||||
else:
|
||||
io.set_filename(filename)
|
||||
|
||||
self.saved_change_hook()
|
||||
|
||||
self.load_extensions()
|
||||
|
|
|
@ -450,9 +450,15 @@ class PyShell(OutputWindow):
|
|||
ColorDelegator = ModifiedColorDelegator
|
||||
UndoDelegator = ModifiedUndoDelegator
|
||||
|
||||
# Override menu bar specs
|
||||
menu_specs = PyShellEditorWindow.menu_specs[:]
|
||||
menu_specs.insert(len(menu_specs)-3, ("debug", "_Debug"))
|
||||
# Override menus: Run and Format not desired in shell; add Debug
|
||||
menu_specs = [
|
||||
("file", "_File"),
|
||||
("edit", "_Edit"),
|
||||
("debug", "_Debug"),
|
||||
("settings", "_Settings"),
|
||||
("windows", "_Windows"),
|
||||
("help", "_Help"),
|
||||
]
|
||||
|
||||
# New classes
|
||||
from IdleHistory import History
|
||||
|
@ -825,6 +831,7 @@ class PyShell(OutputWindow):
|
|||
self.console.write(s)
|
||||
self.text.mark_set("insert", "end-1c")
|
||||
self.set_line_and_column()
|
||||
self.io.reset_undo()
|
||||
|
||||
def resetoutput(self):
|
||||
source = self.text.get("iomark", "end-1c")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue