2006-12-19 Alex Roitman <shura@gramps-project.org>
* src/PluginUtils/_Plugins.py: Emit signal on rebuild, rebuild open plugin dialogs on rebuild. * src/ViewManager.py: Use signal to rebuild plugin menus. * src/DisplayState.py (DisplayState.__signals__): Register signal to indicate plugin reloading. svn: r7827
This commit is contained in:
parent
dbd63fb6e1
commit
7f7c4335e2
@ -1,3 +1,10 @@
|
|||||||
|
2006-12-19 Alex Roitman <shura@gramps-project.org>
|
||||||
|
* src/PluginUtils/_Plugins.py: Emit signal on rebuild, rebuild
|
||||||
|
open plugin dialogs on rebuild.
|
||||||
|
* src/ViewManager.py: Use signal to rebuild plugin menus.
|
||||||
|
* src/DisplayState.py (DisplayState.__signals__): Register signal
|
||||||
|
to indicate plugin reloading.
|
||||||
|
|
||||||
2006-12-19 Don Allingham <don@gramps-project.org>
|
2006-12-19 Don Allingham <don@gramps-project.org>
|
||||||
* src/ViewManager.py (ViewManager.post_load_newdb): make sure to enable
|
* src/ViewManager.py (ViewManager.post_load_newdb): make sure to enable
|
||||||
the readonly menu items
|
the readonly menu items
|
||||||
|
@ -254,6 +254,7 @@ class DisplayState(GrampsDb.GrampsDBCallback):
|
|||||||
__signals__ = {
|
__signals__ = {
|
||||||
'filters-changed' : (str,),
|
'filters-changed' : (str,),
|
||||||
'nameformat-changed' : None,
|
'nameformat-changed' : None,
|
||||||
|
'plugins-reloaded' : (list,list),
|
||||||
}
|
}
|
||||||
|
|
||||||
def __init__(self, window, status, progress, warnbtn, uimanager):
|
def __init__(self, window, status, progress, warnbtn, uimanager):
|
||||||
|
@ -195,6 +195,7 @@ class PluginDialog(ManagedWindow.ManagedWindow):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
ilist = []
|
ilist = []
|
||||||
|
self.store.clear()
|
||||||
|
|
||||||
# build the tree items and group together based on the category name
|
# build the tree items and group together based on the category name
|
||||||
item_hash = {}
|
item_hash = {}
|
||||||
@ -265,6 +266,10 @@ class ReportPlugins(PluginDialog):
|
|||||||
_("Select a report from those available on the left."),
|
_("Select a report from those available on the left."),
|
||||||
_("_Generate"), _("Generate selected report"),
|
_("_Generate"), _("Generate selected report"),
|
||||||
REPORTS)
|
REPORTS)
|
||||||
|
uistate.connect('plugins-reloaded',self.rebuild_reports)
|
||||||
|
|
||||||
|
def rebuild_reports(self,tool_list,report_list):
|
||||||
|
self.build_plugin_tree(report_list,standalone_categories)
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
@ -275,6 +280,9 @@ class ToolPlugins(PluginDialog):
|
|||||||
"""Displays the dialog box that allows the user to select the tool
|
"""Displays the dialog box that allows the user to select the tool
|
||||||
that is desired."""
|
that is desired."""
|
||||||
|
|
||||||
|
__signals__ = {
|
||||||
|
'plugins-reloaded' : (list,list),
|
||||||
|
}
|
||||||
def __init__(self,dbstate,uistate,track):
|
def __init__(self,dbstate,uistate,track):
|
||||||
"""Display the dialog box, and build up the list of available
|
"""Display the dialog box, and build up the list of available
|
||||||
reports. This is used to build the selection tree on the left
|
reports. This is used to build the selection tree on the left
|
||||||
@ -292,6 +300,11 @@ class ToolPlugins(PluginDialog):
|
|||||||
_("_Run"),
|
_("_Run"),
|
||||||
_("Run selected tool"),
|
_("Run selected tool"),
|
||||||
TOOLS)
|
TOOLS)
|
||||||
|
|
||||||
|
uistate.connect('plugins-reloaded',self.rebuild_tools)
|
||||||
|
|
||||||
|
def rebuild_tools(self,tool_list,report_list):
|
||||||
|
self.build_plugin_tree(tool_list,_Tool.tool_categories)
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
@ -300,12 +313,11 @@ class ToolPlugins(PluginDialog):
|
|||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
class Reload(_Tool.Tool):
|
class Reload(_Tool.Tool):
|
||||||
def __init__(self, dbstate, uistate, options_class, name, callback=None):
|
def __init__(self, dbstate, uistate, options_class, name, callback=None):
|
||||||
_Tool.Tool.__init__(self,dbstate,options_class,name)
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Treated as a callback, causes all plugins to get reloaded.
|
Treated as a callback, causes all plugins to get reloaded.
|
||||||
This is useful when writing and debugging a plugin.
|
This is useful when writing and debugging a plugin.
|
||||||
"""
|
"""
|
||||||
|
_Tool.Tool.__init__(self,dbstate,options_class,name)
|
||||||
|
|
||||||
pymod = re.compile(r"^(.*)\.py$")
|
pymod = re.compile(r"^(.*)\.py$")
|
||||||
|
|
||||||
@ -396,6 +408,8 @@ class Reload(_Tool.Tool):
|
|||||||
# Re-generate tool and report menus
|
# Re-generate tool and report menus
|
||||||
# FIXME: This needs to be fixed!
|
# FIXME: This needs to be fixed!
|
||||||
# build_plugin_menus(rebuild=True)
|
# build_plugin_menus(rebuild=True)
|
||||||
|
uistate.emit('plugins-reloaded',
|
||||||
|
(_PluginMgr.tool_list,_PluginMgr.report_list))
|
||||||
|
|
||||||
class ReloadOptions(_Tool.ToolOptions):
|
class ReloadOptions(_Tool.ToolOptions):
|
||||||
"""
|
"""
|
||||||
|
@ -422,8 +422,10 @@ class ViewManager:
|
|||||||
self.actiongroup.set_visible(False)
|
self.actiongroup.set_visible(False)
|
||||||
self.readonlygroup.set_visible(False)
|
self.readonlygroup.set_visible(False)
|
||||||
self.fileactions.set_sensitive(False)
|
self.fileactions.set_sensitive(False)
|
||||||
self.build_tools_menu()
|
self.build_tools_menu(tool_list)
|
||||||
self.build_report_menu()
|
self.build_report_menu(report_list)
|
||||||
|
self.uistate.connect('plugins-reloaded',
|
||||||
|
self.rebuild_report_and_tool_menus)
|
||||||
self.fileactions.set_sensitive(True)
|
self.fileactions.set_sensitive(True)
|
||||||
self.uistate.widget.set_sensitive(True)
|
self.uistate.widget.set_sensitive(True)
|
||||||
Config.client.notify_add("/apps/gramps/interface/statusbar",
|
Config.client.notify_add("/apps/gramps/interface/statusbar",
|
||||||
@ -1018,23 +1020,27 @@ class ViewManager:
|
|||||||
import Exporter
|
import Exporter
|
||||||
Exporter.Exporter(self.state, self.uistate)
|
Exporter.Exporter(self.state, self.uistate)
|
||||||
|
|
||||||
def build_tools_menu(self):
|
def rebuild_report_and_tool_menus(self,tool_list,report_list):
|
||||||
|
self.build_tools_menu(tool_list)
|
||||||
|
self.build_report_menu(report_list)
|
||||||
|
|
||||||
|
def build_tools_menu(self,tool_list):
|
||||||
self.toolactions = gtk.ActionGroup('ToolWindow')
|
self.toolactions = gtk.ActionGroup('ToolWindow')
|
||||||
(ui, actions) = self.build_plugin_menu('ToolsMenu',
|
(ui, actions) = self.build_plugin_menu('ToolsMenu',
|
||||||
tool_list,
|
tool_list,
|
||||||
Tool.tool_categories,
|
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(ui)
|
||||||
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()
|
||||||
|
|
||||||
def build_report_menu(self):
|
def build_report_menu(self,report_list):
|
||||||
self.reportactions = gtk.ActionGroup('ReportWindow')
|
self.reportactions = gtk.ActionGroup('ReportWindow')
|
||||||
(ui, actions) = self.build_plugin_menu('ReportsMenu',
|
(ui, actions) = self.build_plugin_menu('ReportsMenu',
|
||||||
report_list,
|
report_list,
|
||||||
standalone_categories,
|
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(ui)
|
||||||
self.uimanager.insert_action_group(self.reportactions, 1)
|
self.uimanager.insert_action_group(self.reportactions, 1)
|
||||||
|
Loading…
Reference in New Issue
Block a user