57 lines
1.8 KiB
Diff
57 lines
1.8 KiB
Diff
54a55
|
|
> from gramps.gui.editors.displaytabs.grampstab import GrampsTab
|
|
127a129,153
|
|
>
|
|
> def _create_plugin_tab(self, plugin):
|
|
> from gramps.gui.pluginmanager import GuiPluginManager
|
|
> pmgr = GuiPluginManager.get_instance()
|
|
> mod = pmgr.load_plugin(plugin)
|
|
> if not mod is None:
|
|
>
|
|
> done = False
|
|
> tab_views = plugin.tabviews
|
|
> if tab_views is None:
|
|
> done = True
|
|
> else:
|
|
> for tab_view in tab_views:
|
|
> if tab_view == 'EditPrimary' or tab_view == type(self).__name__:
|
|
> done = True
|
|
> break
|
|
>
|
|
> if done:
|
|
>
|
|
> tab_class = getattr(mod, plugin.tabclass)
|
|
> tab = tab_class(self.dbstate, self.uistate, self.track)
|
|
>
|
|
> return tab
|
|
>
|
|
> return None
|
|
129a156,168
|
|
> # load custom tabs from EDITORTAB plugins
|
|
> from gramps.gui.pluginmanager import PluginRegister
|
|
> plugs = PluginRegister.get_instance().editortab_plugins()
|
|
> for plug in plugs:
|
|
> print("found plugin " + plug.name)
|
|
> tab = self._create_plugin_tab(plug)
|
|
> if tab is not None:
|
|
> tab.obj = self.obj
|
|
> if hasattr(tab, 'load'):
|
|
> tab.load()
|
|
>
|
|
> self._add_tab(notebook, tab)
|
|
>
|
|
172a212,218
|
|
>
|
|
> def _ok_button_click(self, widget):
|
|
> for tab in self.__tabs:
|
|
> if hasattr(tab, 'save'):
|
|
> tab.save()
|
|
>
|
|
> self.ok_button_callback(widget)
|
|
176c222,224
|
|
< button.connect('clicked', function)
|
|
---
|
|
> self.ok_button_callback = function
|
|
>
|
|
> button.connect('clicked', self._ok_button_click)
|