Commit dc1e7098 authored by Kurt B. Kaiser's avatar Kurt B. Kaiser

1. Prevent Undo before IOmark in PyShell.PyShell

2. Consolidate Undo code in EditorWindow.EditorWindow
3. Remove Formatting and Run menus from PyShell
parent 0c08864f
...@@ -151,10 +151,8 @@ class EditorWindow: ...@@ -151,10 +151,8 @@ class EditorWindow:
text.bind("<<open-path-browser>>", self.open_path_browser) text.bind("<<open-path-browser>>", self.open_path_browser)
self.set_status_bar() self.set_status_bar()
vbar['command'] = text.yview vbar['command'] = text.yview
vbar.pack(side=RIGHT, fill=Y) vbar.pack(side=RIGHT, fill=Y)
text['yscrollcommand'] = vbar.set text['yscrollcommand'] = vbar.set
fontWeight='normal' fontWeight='normal'
if idleConf.GetOption('main','EditorWindow','font-bold',type='bool'): if idleConf.GetOption('main','EditorWindow','font-bold',type='bool'):
...@@ -168,30 +166,34 @@ class EditorWindow: ...@@ -168,30 +166,34 @@ class EditorWindow:
self.per = per = self.Percolator(text) self.per = per = self.Percolator(text)
if self.ispythonsource(filename): if self.ispythonsource(filename):
self.color = color = self.ColorDelegator(); per.insertfilter(color) self.color = color = self.ColorDelegator()
per.insertfilter(color)
##print "Initial colorizer" ##print "Initial colorizer"
else: else:
##print "No initial colorizer" ##print "No initial colorizer"
self.color = None 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) self.io = io = self.IOBinding(self)
io.set_filename_change_hook(self.filename_change_hook)
#create the Recent Files submenu #create the Recent Files submenu
self.menuRecentFiles=Menu(self.menubar) self.menuRecentFiles=Menu(self.menubar)
self.menudict['file'].insert_cascade(3,label='Recent Files', self.menudict['file'].insert_cascade(3,label='Recent Files',
underline=0,menu=self.menuRecentFiles) underline=0,menu=self.menuRecentFiles)
self.UpdateRecentFilesList() 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 filename:
if os.path.exists(filename): if os.path.exists(filename):
io.loadfile(filename) io.loadfile(filename)
else: else:
io.set_filename(filename) io.set_filename(filename)
self.saved_change_hook() self.saved_change_hook()
self.load_extensions() self.load_extensions()
......
...@@ -450,9 +450,15 @@ class PyShell(OutputWindow): ...@@ -450,9 +450,15 @@ class PyShell(OutputWindow):
ColorDelegator = ModifiedColorDelegator ColorDelegator = ModifiedColorDelegator
UndoDelegator = ModifiedUndoDelegator UndoDelegator = ModifiedUndoDelegator
# Override menu bar specs # Override menus: Run and Format not desired in shell; add Debug
menu_specs = PyShellEditorWindow.menu_specs[:] menu_specs = [
menu_specs.insert(len(menu_specs)-3, ("debug", "_Debug")) ("file", "_File"),
("edit", "_Edit"),
("debug", "_Debug"),
("settings", "_Settings"),
("windows", "_Windows"),
("help", "_Help"),
]
# New classes # New classes
from IdleHistory import History from IdleHistory import History
...@@ -825,6 +831,7 @@ class PyShell(OutputWindow): ...@@ -825,6 +831,7 @@ class PyShell(OutputWindow):
self.console.write(s) self.console.write(s)
self.text.mark_set("insert", "end-1c") self.text.mark_set("insert", "end-1c")
self.set_line_and_column() self.set_line_and_column()
self.io.reset_undo()
def resetoutput(self): def resetoutput(self):
source = self.text.get("iomark", "end-1c") source = self.text.get("iomark", "end-1c")
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment