2007-09-16 Don Allingham <don@gramps-project.org>

* src/DataViews/_EventView.py: connect column editor
	* src/ViewManager.py: pylint
	* src/Editors/_EditLdsOrd.py: pylint
	* src/DisplayTabs/_LdsModel.py: pylint
	* src/DisplayState.py: pylint
	* src/GrampsDbUtils/_GedcomParse.py: pylint
	* src/ListModel.py: pylint
	* src/LdsUtils.py: pylint
	* src/PageView.py: fix column editor



svn: r8982
This commit is contained in:
Don Allingham 2007-09-16 18:45:57 +00:00
parent fe5b0aa03d
commit 623c6f81de
10 changed files with 153 additions and 99 deletions

View File

@ -1,3 +1,14 @@
2007-09-16 Don Allingham <don@gramps-project.org>
* src/DataViews/_EventView.py: connect column editor
* src/ViewManager.py: pylint
* src/Editors/_EditLdsOrd.py: pylint
* src/DisplayTabs/_LdsModel.py: pylint
* src/DisplayState.py: pylint
* src/GrampsDbUtils/_GedcomParse.py: pylint
* src/ListModel.py: pylint
* src/LdsUtils.py: pylint
* src/PageView.py: fix column editor
2007-09-16 Benny Malengier <benny.malengier@gramps-project.org> 2007-09-16 Benny Malengier <benny.malengier@gramps-project.org>
* src/DisplayModels/_BaseModel.py: Add comments * src/DisplayModels/_BaseModel.py: Add comments
* src/DisplayModels/_NoteModel.py: Only show unattached notes in note view * src/DisplayModels/_NoteModel.py: Only show unattached notes in note view

View File

@ -169,6 +169,8 @@ class EventView(PageView.ListView):
PageView.ListView.define_actions(self) PageView.ListView.define_actions(self)
self._add_action('FilterEdit', None, _('Event Filter Editor'), self._add_action('FilterEdit', None, _('Event Filter Editor'),
callback=self.filter_editor,) callback=self.filter_editor,)
self._add_action('_Column Editor', None, _('_Column Editor'),
callback=self._column_editor,)
def get_handle_from_gramps_id(self, gid): def get_handle_from_gramps_id(self, gid):
obj = self.dbstate.db.get_event_from_gramps_id(gid) obj = self.dbstate.db.get_event_from_gramps_id(gid)

View File

@ -8,7 +8,7 @@
# the Free Software Foundation; either version 2 of the License, or # the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version. # (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. # GNU General Public License for more details.
@ -64,35 +64,37 @@ DISABLED = -1
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
class History(GrampsDb.GrampsDBCallback): class History(GrampsDb.GrampsDBCallback):
""" History manages the objects of a certain type that have been viewed, """ History manages the objects of a certain type that have been viewed,
with ability to go back, or forward. with ability to go back, or forward.
When accessing an object, it should be pushed on the History. When accessing an object, it should be pushed on the History.
""" """
__signals__ = { __signals__ = {
'changed' : (list, ), 'changed' : (list, ),
'menu-changed' : (list, ), 'menu-changed' : (list, ),
} }
def __init__(self): def __init__(self):
GrampsDb.GrampsDBCallback.__init__(self) GrampsDb.GrampsDBCallback.__init__(self)
self.history = [] self.clear()
self.mhistory = []
self.index = -1
self.lock = False
def clear(self): def clear(self):
"""
Cleares the history, resetting the values back to their defaults
"""
self.history = [] self.history = []
self.mhistory = [] self.mhistory = []
self.index = -1 self.index = -1
self.lock = False self.lock = False
def remove(self, person_handle, old_id=None): def remove(self, handle, old_id=None):
"""Removes a person from the history list""" """
Removes a handle from the history list
"""
if old_id: if old_id:
del_id = old_id del_id = old_id
else: else:
del_id = person_handle del_id = handle
history_count = self.history.count(del_id) history_count = self.history.count(del_id)
for c in range(history_count): for c in range(history_count):
@ -105,38 +107,48 @@ class History(GrampsDb.GrampsDBCallback):
self.emit('changed', (self.history, )) self.emit('changed', (self.history, ))
self.emit('menu-changed', (self.mhistory, )) self.emit('menu-changed', (self.mhistory, ))
def push(self, person_handle): def push(self, handle):
"""
Pushes the handle on the history stack
"""
self.prune() self.prune()
if len(self.history) == 0 or person_handle != self.history[-1]: if len(self.history) == 0 or handle != self.history[-1]:
self.history.append(person_handle) self.history.append(handle)
if person_handle in self.mhistory: if handle in self.mhistory:
self.mhistory.remove(person_handle) self.mhistory.remove(handle)
self.mhistory.append(person_handle) self.mhistory.append(handle)
self.index += 1 self.index += 1
self.emit('menu-changed', (self.mhistory, )) self.emit('menu-changed', (self.mhistory, ))
self.emit('changed', (self.history, )) self.emit('changed', (self.history, ))
def forward(self, step=1): def forward(self, step=1):
"""
Moves forward in the history list
"""
self.index += step self.index += step
person_handle = self.history[self.index] handle = self.history[self.index]
if person_handle not in self.mhistory: if handle not in self.mhistory:
self.mhistory.append(person_handle) self.mhistory.append(handle)
self.emit('menu-changed', (self.mhistory, )) self.emit('menu-changed', (self.mhistory, ))
return str(self.history[self.index]) return str(self.history[self.index])
def back(self, step=1): def back(self, step=1):
"""
Moves backward in the history list
"""
self.index -= step self.index -= step
try: try:
person_handle = self.history[self.index] handle = self.history[self.index]
if person_handle not in self.mhistory: if handle not in self.mhistory:
self.mhistory.append(person_handle) self.mhistory.append(handle)
self.emit('menu-changed', (self.mhistory, )) self.emit('menu-changed', (self.mhistory, ))
return str(self.history[self.index]) return str(self.history[self.index])
except IndexError: except IndexError:
return u"" return u""
def present(self): def present(self):
'''return the person handle that is now active in the history '''
return the person handle that is now active in the history
''' '''
try : try :
if self.history : if self.history :
@ -147,12 +159,21 @@ class History(GrampsDb.GrampsDBCallback):
return u"" return u""
def at_end(self): def at_end(self):
"""
returns True if we are at the end of the history list
"""
return self.index+1 == len(self.history) return self.index+1 == len(self.history)
def at_front(self): def at_front(self):
"""
returns True if we are at the front of the history list
"""
return self.index <= 0 return self.index <= 0
def prune(self): def prune(self):
"""
Truncates the history list at the current object.
"""
if not self.at_end(): if not self.at_end():
self.history = self.history[0:self.index+1] self.history = self.history[0:self.index+1]
@ -206,7 +227,7 @@ class RecentDocsMenu:
filename = os.path.basename(item.get_path()) filename = os.path.basename(item.get_path())
action_id = "RecentMenu%d" % count action_id = "RecentMenu%d" % count
buf.write('<menuitem action="%s"/>' % action_id) buf.write('<menuitem action="%s"/>' % action_id)
actions.append((action_id, None, title, None, None, actions.append((action_id, None, title, None, None,
make_callback(item, self.load))) make_callback(item, self.load)))
mitem = gtk.MenuItem(title) mitem = gtk.MenuItem(title)
mitem.connect('activate', make_callback(item, self.load)) mitem.connect('activate', make_callback(item, self.load))
@ -272,10 +293,10 @@ class WarnHandler(RotateHandler):
class DisplayState(GrampsDb.GrampsDBCallback): class DisplayState(GrampsDb.GrampsDBCallback):
__signals__ = { __signals__ = {
'filters-changed' : (str, ), 'filters-changed' : (str, ),
'filter-name-changed' : (str,unicode,unicode), 'filter-name-changed' : (str, unicode, unicode),
'nameformat-changed' : None, 'nameformat-changed' : None,
'plugins-reloaded' : (list, list), 'plugins-reloaded' : (list, list),
} }
def __init__(self, window, status, progress, warnbtn, uimanager, def __init__(self, window, status, progress, warnbtn, uimanager,
@ -302,7 +323,7 @@ class DisplayState(GrampsDb.GrampsDBCallback):
self.rhandler.setLevel(logging.WARNING) self.rhandler.setLevel(logging.WARNING)
self.log = logging.getLogger() self.log = logging.getLogger()
self.log.addHandler(self.rhandler) self.log.addHandler(self.rhandler)
# This call has been moved one level up, # This call has been moved one level up,
# but this connection is still made! # but this connection is still made!
# self.dbstate.connect('database-changed', self.db_changed) # self.dbstate.connect('database-changed', self.db_changed)
@ -320,7 +341,7 @@ class DisplayState(GrampsDb.GrampsDBCallback):
pname = name_displayer.display(default_person) pname = name_displayer.display(default_person)
(name, plist) = self.relationship.get_relationship( (name, plist) = self.relationship.get_relationship(
dbstate.db,default_person,active) dbstate.db, default_person, active)
if name: if name:
if plist == None: if plist == None:
@ -330,7 +351,7 @@ class DisplayState(GrampsDb.GrampsDBCallback):
else: else:
return u"" return u""
def clear_history(self,handle=None): def clear_history(self, handle=None):
'''Clear the history. If handle is given, then the history is '''Clear the history. If handle is given, then the history is
immediately initialized with a first entry immediately initialized with a first entry
(you'd eg want active person you view there as History contains the (you'd eg want active person you view there as History contains the
@ -403,13 +424,3 @@ class DisplayState(GrampsDb.GrampsDBCallback):
self.status.push(self.status_id, text) self.status.push(self.status_id, text)
while gtk.events_pending(): while gtk.events_pending():
gtk.main_iteration() gtk.main_iteration()
if __name__ == "__main__":
import GrampsWidgets
rhandler = WarnHandler(capacity=400, button=GrampsWidgets.WarnButton())
_LOG = logging.getLogger()
_LOG.setLevel(logging.WARN)
_LOG.addHandler(rhandler)

View File

@ -60,7 +60,7 @@ class LdsModel(gtk.ListStore):
lds_ord.type2str(), lds_ord.type2str(),
DateHandler.get_date(lds_ord), DateHandler.get_date(lds_ord),
lds_ord.status2str(), lds_ord.status2str(),
LdsUtils.Temples.name(lds_ord.get_temple()), LdsUtils.TEMPLES.name(lds_ord.get_temple()),
self.column_place(lds_ord), self.column_place(lds_ord),
lds_ord, lds_ord,
]) ])

View File

@ -206,7 +206,7 @@ class EditLdsOrd(EditSecondary):
self.top.get_widget('temple'), self.top.get_widget('temple'),
self.obj.set_temple, self.obj.set_temple,
self.obj.get_temple, self.obj.get_temple,
LdsUtils.Temples.name_code_data(), LdsUtils.TEMPLES.name_code_data(),
self.db.readonly) self.db.readonly)
self.status_menu = MonitoredMenu( self.status_menu = MonitoredMenu(
@ -387,7 +387,7 @@ class EditFamilyLdsOrd(EditSecondary):
self.top.get_widget('temple'), self.top.get_widget('temple'),
self.obj.set_temple, self.obj.set_temple,
self.obj.get_temple, self.obj.get_temple,
LdsUtils.Temples.name_code_data(), LdsUtils.TEMPLES.name_code_data(),
self.db.readonly) self.db.readonly)
self.status_menu = MonitoredMenu( self.status_menu = MonitoredMenu(

View File

@ -4392,10 +4392,10 @@ class GedcomParser(UpdateCallback):
def __extract_temple(self, line): def __extract_temple(self, line):
def get_code(code): def get_code(code):
if LdsUtils.Temples.is_valid_code(code): if LdsUtils.TEMPLES.is_valid_code(code):
return code return code
elif LdsUtils.Temples.is_valid_name(code): elif LdsUtils.TEMPLES.is_valid_name(code):
return LdsUtils.Temples.code(code) return LdsUtils.TEMPLES.code(code)
code = get_code(line.data) code = get_code(line.data)
if code: if code:

View File

@ -120,5 +120,5 @@ class LdsTemples:
""" """
self.__tlist.append(data) self.__tlist.append(data)
Temples = LdsTemples() TEMPLES = LdsTemples()

View File

@ -50,6 +50,9 @@ NOSORT = -1
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
class ListModel: class ListModel:
"""
Simple model for lists in smaller dialogs (not DataViews).
"""
def __init__(self, tree, dlist, select_func=None, event_func=None, def __init__(self, tree, dlist, select_func=None, event_func=None,
mode=gtk.SELECTION_SINGLE): mode=gtk.SELECTION_SINGLE):
@ -240,6 +243,9 @@ class ListModel:
return -1 return -1
def get_selected_objects(self): def get_selected_objects(self):
"""
Returns the list of selected objects in the list
"""
if self.count == 0: if self.count == 0:
return [] return []
elif self.mode == gtk.SELECTION_SINGLE: elif self.mode == gtk.SELECTION_SINGLE:
@ -250,44 +256,72 @@ class ListModel:
return [] return []
else: else:
mlist = [] mlist = []
self.selection.selected_foreach(self.blist, mlist) self.selection.selected_foreach(self.__build_select_list, mlist)
return mlist return mlist
def get_icon(self): def get_icon(self):
"""
Returns an icond to be used for Drag and drop.
"""
if self.mode == gtk.SELECTION_SINGLE: if self.mode == gtk.SELECTION_SINGLE:
store, node = self.selection.get_selected() store, node = self.selection.get_selected()
path = self.model.get_path(node) path = self.model.get_path(node)
else: else:
mlist = [] mlist = []
self.selection.selected_foreach(self.blist, mlist) self.selection.selected_foreach(self.__build_select_list, mlist)
path = self.model.get_path(mlist[0]) path = self.model.get_path(mlist[0])
return self.tree.create_row_drag_icon(path) return self.tree.create_row_drag_icon(path)
def blist(self, store, path, node, dlist): def __build_select_list(self, store, path, node, dlist):
"""
GTK callback function for waliking a select list
"""
dlist.append(self.model.get_value(node, self.data_index)) dlist.append(self.model.get_value(node, self.data_index))
def clear(self): def clear(self):
"""
Clears all data in the list
"""
self.count = 0 self.count = 0
self.model.clear() self.model.clear()
def remove(self, node): def remove(self, node):
"""
Removes the item from the model
"""
self.model.remove(node) self.model.remove(node)
self.count -= 1 self.count -= 1
def get_row(self, node): def get_row(self, node):
"""
Returns the row associated with the selected node
"""
row = self.model.get_path(node) row = self.model.get_path(node)
return row[0] return row[0]
def select_row(self, row): def select_row(self, row):
"""
Selects the item based on path
"""
self.selection.select_path((row)) self.selection.select_path((row))
def select_iter(self, node): def select_iter(self, node):
"""
Selects the item based on iter
"""
self.selection.select_iter(node) self.selection.select_iter(node)
def get_object(self, node): def get_object(self, node):
"""
Returns the object associated with the node. This is controlled
by extracting the data from the associated data index
"""
return self.model.get_value(node, self.data_index) return self.model.get_value(node, self.data_index)
def insert(self, position, data, info=None, select=0): def insert(self, position, data, info=None, select=0):
"""
Inserts the item at the specified position in the model.
"""
self.count += 1 self.count += 1
node = self.model.insert(position) node = self.model.insert(position)
col = 0 col = 0
@ -302,9 +336,15 @@ class ListModel:
return node return node
def get_data(self, node, cols): def get_data(self, node, cols):
"""
Returns a list of data from the model associated with the node
"""
return [ self.model.get_value(node, c) for c in cols ] return [ self.model.get_value(node, c) for c in cols ]
def add(self, data, info=None, select=0): def add(self, data, info=None, select=0):
"""
Adds the data to the model at the end of the model
"""
self.count += 1 self.count += 1
node = self.model.append() node = self.model.append()
col = 0 col = 0
@ -320,6 +360,10 @@ class ListModel:
return node return node
def set(self, node, data, info=None, select=0): def set(self, node, data, info=None, select=0):
"""
Changes the data associated with the specific node. It does not
add any data, just alters an existing row.
"""
col = 0 col = 0
for obj in data: for obj in data:
self.model.set_value(node, col, obj) self.model.set_value(node, col, obj)
@ -331,24 +375,6 @@ class ListModel:
self.sel_iter = node self.sel_iter = node
return node return node
def add_and_select(self, data, info=None):
self.count += 1
node = self.model.append()
col = 0
for obj in data:
self.model.set_value(node, col, obj)
col += 1
if info:
self.idmap[str(info)] = node
self.model.set_value(node, col, info)
self.selection.select_iter(node)
def center_selected(self):
model, node = self.selection.get_selected()
if node:
path = model.get_path(node)
self.tree.scroll_to_cell(path, None, True, 0.5, 0.5)
def __button_press(self, obj, event): def __button_press(self, obj, event):
""" """
Called when a button press is executed Called when a button press is executed
@ -359,6 +385,9 @@ class ListModel:
return False return False
def find(self, info): def find(self, info):
"""
Selects the item associated with the pass information.
"""
if info in self.idmap.keys(): if info in self.idmap.keys():
node = self.idmap[str(info)] node = self.idmap[str(info)]
self.selection.select_iter(node) self.selection.select_iter(node)

View File

@ -921,8 +921,6 @@ class ListView(BookMarkView):
self.ADD_MSG, self.add), self.ADD_MSG, self.add),
('Remove', gtk.STOCK_REMOVE, _("_Remove"), "<control>Delete", ('Remove', gtk.STOCK_REMOVE, _("_Remove"), "<control>Delete",
self.DEL_MSG, self.remove), self.DEL_MSG, self.remove),
('ColumnEdit', gtk.STOCK_PROPERTIES, _('_Column Editor'),
None, None, self._column_editor),
('ExportTab', None, _('Export view'), None, None, self.export), ('ExportTab', None, _('Export view'), None, None, self.export),
]) ])
@ -941,7 +939,7 @@ class ListView(BookMarkView):
Causes the View to display a column editor. This should be overridden Causes the View to display a column editor. This should be overridden
by any class that provides columns (such as a list based view) by any class that provides columns (such as a list based view)
""" """
return raise NotImplemented
def _button_press(self, obj, event): def _button_press(self, obj, event):
from QuickReports import create_quickreport_menu from QuickReports import create_quickreport_menu

View File

@ -218,14 +218,23 @@ class ViewManager:
""" """
def __init__(self, state): def __init__(self, state):
self.page_is_changing = False self.page_is_changing = False
self.state = state self.state = state
self.active_page = None self.active_page = None
self.views = [] self.views = []
self.pages = [] self.pages = []
self.button_handlers = []
self.buttons = []
self.merge_ids = []
self.tips = gtk.Tooltips() self.tips = gtk.Tooltips()
self._key = None self._key = None
self.file_loaded = False self.file_loaded = False
self.show_sidebar = Config.get(Config.VIEW)
self.show_toolbar = Config.get(Config.TOOLBAR_ON)
self.show_filter = Config.get(Config.FILTER)
self.__build_main_window() self.__build_main_window()
self.__connect_signals() self.__connect_signals()
self.__do_load_plugins() self.__do_load_plugins()
@ -248,16 +257,10 @@ class ViewManager:
hbox = gtk.HBox() hbox = gtk.HBox()
self.ebox = gtk.EventBox() self.ebox = gtk.EventBox()
self.bbox = gtk.VBox() self.bbox = gtk.VBox()
self.buttons = []
self.button_handlers = []
self.ebox.add(self.bbox) self.ebox.add(self.bbox)
hbox.pack_start(self.ebox, False) hbox.pack_start(self.ebox, False)
hbox.show_all() hbox.show_all()
self.show_sidebar = Config.get(Config.VIEW)
self.show_toolbar = Config.get(Config.TOOLBAR_ON)
self.show_filter = Config.get(Config.FILTER)
self.notebook = gtk.Notebook() self.notebook = gtk.Notebook()
self.notebook.set_show_tabs(False) self.notebook.set_show_tabs(False)
self.notebook.show() self.notebook.show()
@ -296,7 +299,7 @@ class ViewManager:
self._navigation_type[PageView.NAVIGATION_PERSON] = (self.person_nav, self._navigation_type[PageView.NAVIGATION_PERSON] = (self.person_nav,
None) None)
self.recent_manager = DisplayState.RecentDocsMenu( self.recent_manager = DisplayState.RecentDocsMenu(
self.uistate, self.state, self.read_recent_file) self.uistate, self.state, self.__read_recent_file)
self.recent_manager.build() self.recent_manager.build()
self.db_loader = DbLoader(self.state, self.uistate) self.db_loader = DbLoader(self.state, self.uistate)
@ -413,7 +416,7 @@ class ViewManager:
self._readonly_action_list = [ self._readonly_action_list = [
('SaveAs', gtk.STOCK_SAVE_AS, _('_Save As'), "<control><shift>s", ('SaveAs', gtk.STOCK_SAVE_AS, _('_Save As'), "<control><shift>s",
None, self.save_as_activate), None, self.__save_as_activate),
('Export', 'gramps-export', _('_Export'), "<control>e", None, ('Export', 'gramps-export', _('_Export'), "<control>e", None,
self.export_data), self.export_data),
('Abandon', gtk.STOCK_REVERT_TO_SAVED, ('Abandon', gtk.STOCK_REVERT_TO_SAVED,
@ -453,7 +456,6 @@ class ViewManager:
('Tools', 'gramps-tools', _('_Tools'), None, ('Tools', 'gramps-tools', _('_Tools'), None,
_("Open the tools dialog"), self.tools_clicked), _("Open the tools dialog"), self.tools_clicked),
('EditMenu', None, _('_Edit')), ('EditMenu', None, _('_Edit')),
('ColumnEdit', gtk.STOCK_PROPERTIES, _('_Column Editor')),
('BookMenu', None, _('_Bookmarks')), ('BookMenu', None, _('_Bookmarks')),
('ToolsMenu', None, _('_Tools')), ('ToolsMenu', None, _('_Tools')),
] ]
@ -496,7 +498,7 @@ class ViewManager:
name = action.get_name() name = action.get_name()
try: try:
self.active_page.call_function(name) self.active_page.call_function(name)
except: except Exception:
self.uistate.push_message(self.state, self.uistate.push_message(self.state,
_("Key %s is not bound") % name) _("Key %s is not bound") % name)
@ -674,7 +676,6 @@ class ViewManager:
""" """
Builds the UIManager, and the associated action groups Builds the UIManager, and the associated action groups
""" """
self.merge_ids = []
self.uimanager = gtk.UIManager() self.uimanager = gtk.UIManager()
accelgroup = self.uimanager.get_accel_group() accelgroup = self.uimanager.get_accel_group()
@ -1032,7 +1033,7 @@ class ViewManager:
self.read_file(filename, 'x-directory/normal') self.read_file(filename, 'x-directory/normal')
try: try:
os.chdir(os.path.dirname(filename)) os.chdir(os.path.dirname(filename))
except: except (IOError, OSError):
pass pass
self.__post_load_newdb(filename, 'x-directory/normal', title) self.__post_load_newdb(filename, 'x-directory/normal', title)
@ -1089,7 +1090,7 @@ class ViewManager:
self.state.db.set_save_path(filename) self.state.db.set_save_path(filename)
try: try:
os.chdir(os.path.dirname(filename)) os.chdir(os.path.dirname(filename))
except: except (OSError, IOError):
print "could not change directory" print "could not change directory"
except Errors.DbError, msg: except Errors.DbError, msg:
QuestionDialog.DBErrorDialog(str(msg.value)) QuestionDialog.DBErrorDialog(str(msg.value))
@ -1099,7 +1100,7 @@ class ViewManager:
return True return True
def save_as_activate(self, obj): def __save_as_activate(self, obj):
""" """
Called when the SaveAs button is clicked Called when the SaveAs button is clicked
""" """
@ -1107,7 +1108,7 @@ class ViewManager:
(filename, filetype) = self.db_loader.save_as() (filename, filetype) = self.db_loader.save_as()
self.__post_load_newdb(filename, filetype) self.__post_load_newdb(filename, filetype)
def read_recent_file(self, filename): def __read_recent_file(self, filename):
""" """
Called when the recent file is loaded Called when the recent file is loaded
""" """
@ -1136,17 +1137,19 @@ class ViewManager:
self.uistate.clear_history(None) self.uistate.clear_history(None)
self.uistate.progress.hide() self.uistate.progress.hide()
self.state.db.undo_callback = self.change_undo_label self.state.db.undo_callback = self.__change_undo_label
self.state.db.redo_callback = self.change_redo_label self.state.db.redo_callback = self.__change_redo_label
self.change_undo_label(None) self.__change_undo_label(None)
self.change_redo_label(None) self.__change_redo_label(None)
self.state.db.undo_history_callback = self.undo_history_update self.state.db.undo_history_callback = self.undo_history_update
self.undo_history_close() self.undo_history_close()
self.uistate.window.window.set_cursor(None) self.uistate.window.window.set_cursor(None)
def __post_load_newdb(self, filename, filetype, title=None): def __post_load_newdb(self, filename, filetype, title=None):
"""
Called after a new database is loaded.
"""
if not filename: if not filename:
return return
@ -1206,7 +1209,7 @@ class ViewManager:
# Call common __post_load # Call common __post_load
self.__post_load() self.__post_load()
def change_undo_label(self, label): def __change_undo_label(self, label):
""" """
Changes the UNDO label Changes the UNDO label
""" """
@ -1222,7 +1225,7 @@ class ViewManager:
self.undoactions.set_sensitive(False) self.undoactions.set_sensitive(False)
self.uimanager.insert_action_group(self.undoactions, 1) self.uimanager.insert_action_group(self.undoactions, 1)
def change_redo_label(self, label): def __change_redo_label(self, label):
""" """
Changes the REDO label Changes the REDO label
""" """
@ -1371,11 +1374,11 @@ class ViewManager:
Builds a new tools menu Builds a new tools menu
""" """
self.toolactions = gtk.ActionGroup('ToolWindow') self.toolactions = gtk.ActionGroup('ToolWindow')
(ui, actions) = self.build_plugin_menu( (uidef, actions) = self.build_plugin_menu(
'ToolsMenu', tool_menu_list, Tool.tool_categories, 'ToolsMenu', tool_menu_list, Tool.tool_categories,
make_tool_callback) make_tool_callback)
self.toolactions.add_actions(actions) self.toolactions.add_actions(actions)
self.uistate.uimanager.add_ui_from_string(ui) self.uistate.uimanager.add_ui_from_string(uidef)
self.uimanager.insert_action_group(self.toolactions, 1) self.uimanager.insert_action_group(self.toolactions, 1)
self.uistate.uimanager.ensure_update() self.uistate.uimanager.ensure_update()
@ -1384,11 +1387,11 @@ class ViewManager:
Builds a new reports menu Builds a new reports menu
""" """
self.reportactions = gtk.ActionGroup('ReportWindow') self.reportactions = gtk.ActionGroup('ReportWindow')
(ui, actions) = self.build_plugin_menu( (uidef, actions) = self.build_plugin_menu(
'ReportsMenu', report_menu_list, ReportBase.standalone_categories, 'ReportsMenu', report_menu_list, ReportBase.standalone_categories,
make_report_callback) make_report_callback)
self.reportactions.add_actions(actions) self.reportactions.add_actions(actions)
self.uistate.uimanager.add_ui_from_string(ui) self.uistate.uimanager.add_ui_from_string(uidef)
self.uimanager.insert_action_group(self.reportactions, 1) self.uimanager.insert_action_group(self.reportactions, 1)
self.uistate.uimanager.ensure_update() self.uistate.uimanager.ensure_update()