Thread: [PythonReports-checkins] PythonReports/PythonReports design.py, 1.16, 1.17
Brought to you by:
a1s
From: alexander s. <a1...@us...> - 2006-12-08 15:29:09
|
Update of /cvsroot/pythonreports/PythonReports/PythonReports In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17151 Modified Files: design.py Log Message: invalidate .current_node when new file is loaded; ditto, when selected node is being deleted; fix node deletion when parent node had a hidden child elements (e.g. box sub-element); when last child is deleted, remove open/close indicator; fix Insert key handler: obtain current insertion menu Index: design.py =================================================================== RCS file: /cvsroot/pythonreports/PythonReports/PythonReports/design.py,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** design.py 7 Dec 2006 19:48:09 -0000 1.16 --- design.py 8 Dec 2006 15:29:07 -0000 1.17 *************** *** 5,8 **** --- 5,14 ---- """PythonReports Template Designer""" """History (most recent first): + 08-dec-2006 [als] invalidate .current_node when new file is loaded; + ditto, when selected node is being deleted; + fix node deletion when parent node had a hidden + child elements (e.g. box sub-element); + when last child is deleted, remove open/close indicator; + fix Insert key handler: obtain current insertion menu 07-dec-2006 [als] CodeSelection: always have an empty value in the list; edit data block contents *************** *** 477,483 **** def __init__(self, master=None, cnf={}, **kw): # pylint: disable-msg=W0102 PropertyEntry.__init__(self, master, cnf, **kw) - # XXX on windows, these checkbuttons get white background - self.widget["background"] = self.winfo_toplevel().color_panel # checkbuttons have no .select_range method --- 483,492 ---- def __init__(self, master=None, cnf={}, **kw): # pylint: disable-msg=W0102 + # When TreeNodeData instantiates PropertyEditors, + # it passes background color suitable for text entries. + # This does not look good with check boxes, so remove + # background color if it is set in the options. + kw.pop("background", None) PropertyEntry.__init__(self, master, cnf, **kw) # checkbuttons have no .select_range method *************** *** 569,574 **** Frame.__init__(self, master, cnf, **kw) _toplevel = self.winfo_toplevel() ! self["background"] = _toplevel.color_panel ! self._ = self.winfo_toplevel()._ self.data = data # layout --- 578,582 ---- Frame.__init__(self, master, cnf, **kw) _toplevel = self.winfo_toplevel() ! self._ = self.gettext = _toplevel.gettext self.data = data # layout *************** *** 604,608 **** if not self.isBinary(): # the text widget adds one line feed, ! # but i'd like to trim all trailing space self.data.contents = self.text.get("1.0", "end").rstrip() --- 612,616 ---- if not self.isBinary(): # the text widget adds one line feed, ! # but i want to trim all trailing space, even manually entered self.data.contents = self.text.get("1.0", "end").rstrip() *************** *** 616,620 **** else: _text.pack_configure(side=LEFT, fill=X) ! if self.data.contents != _text.get("1.0", "end"): _text.delete("1.0", "end") _text.insert("1.0", self.data.contents or "") --- 624,628 ---- else: _text.pack_configure(side=LEFT, fill=X) ! if self.data.contents != _text.get("1.0", "end").rstrip(): _text.delete("1.0", "end") _text.insert("1.0", self.data.contents or "") *************** *** 622,626 **** _text.mark_set("sel_first", "1.0") _text.mark_set("sel_last", "end") ! # disable save button if data is empty self.btn_save["state"] = ("disabled", "normal")[not _binary_data or bool(self.data.contents)] --- 630,634 ---- _text.mark_set("sel_first", "1.0") _text.mark_set("sel_last", "end") ! # disable save button if data is empty and cannot be entered (binary) self.btn_save["state"] = ("disabled", "normal")[not _binary_data or bool(self.data.contents)] *************** *** 778,782 **** # if this is data element, make a structure for contents editing if self.tag == "data": ! self.data = PropertyData(node=self, contents=Data.get_data(self.element), filename="", filepath="") --- 786,790 ---- # if this is data element, make a structure for contents editing if self.tag == "data": ! self.data = Structure(node=self, contents=Data.get_data(self.element), filename="", filepath="") *************** *** 872,876 **** if self.data: hlist.add("data") ! _win = DataBlockEditor(self.data, hlist, background=_window_color) hlist.item_create("data", 1, itemtype=WINDOW, window=_win, style=self.PROP_VALUE_STYLE) --- 880,884 ---- if self.data: hlist.add("data") ! _win = DataBlockEditor(self.data, hlist) hlist.item_create("data", 1, itemtype=WINDOW, window=_win, style=self.PROP_VALUE_STYLE) *************** *** 1401,1407 **** def OnTreeInsert(self, event): """Insert key pressed in the tree - pop up insert element menu""" ! _menu = self.insert_menus[self.getNodeData(self.current_node).tag] if _menu: ! _menu.tk_popup(*self._get_popup_position()) def OnPropListResize(self, event=0): --- 1409,1415 ---- def OnTreeInsert(self, event): """Insert key pressed in the tree - pop up insert element menu""" ! _menu = self.report_menu.entrycget(0, "menu") if _menu: ! self.nametowidget(_menu).tk_popup(*self._get_popup_position()) def OnPropListResize(self, event=0): *************** *** 1475,1480 **** --- 1483,1491 ---- # cannot delete return + if path == self.current_node: + self.current_node = None _parent = _data.parent _index = _parent.index(_data) + _element_index = _parent.element.getchildren().index(_data.element) _hlist = self.tree.hlist if _data.tag == "group": *************** *** 1491,1495 **** _replace.parent = _parent _parent[_index] = _replace ! _parent.element[_index] = _replace.element _hlist.delete_entry(path) _replace.addToTree(self.tree) --- 1502,1506 ---- _replace.parent = _parent _parent[_index] = _replace ! _parent.element[_element_index] = _replace.element _hlist.delete_entry(path) _replace.addToTree(self.tree) *************** *** 1498,1502 **** else: _hlist.delete_entry(path) ! del _parent[_index], _parent.element[_index] if _index < len(_parent): _select = _parent[_index] --- 1509,1513 ---- else: _hlist.delete_entry(path) ! del _parent[_index], _parent.element[_element_index] if _index < len(_parent): _select = _parent[_index] *************** *** 1505,1508 **** --- 1516,1521 ---- else: _select = _parent + # deleted last child - remove open/close indicator + self.tree.setmode(_parent.path, "none") self.select(_select.path) *************** *** 1628,1631 **** --- 1641,1645 ---- self.filename = None self.updateTitle() + self.current_node = None self.loadTreeContents() |