diff --git a/po/POTFILES.in b/po/POTFILES.in index f007d5197..7eb4369cf 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -192,6 +192,20 @@ src/gui/pluginmanager.py src/gui/utils.py src/gui/viewmanager.py +# guie/selectors - the GUI selectors package +src/gui/selectors/baseselector.py +src/gui/selectors/selectevent.py +src/gui/selectors/selectfamily.py +src/gui/selectors/selectnote.py +src/gui/selectors/selectobject.py +src/gui/selectors/selectperson.py +src/gui/selectors/selectplace.py +src/gui/selectors/selectrepository.py +src/gui/selectors/selectsource.py +src/gui/selectors/selectorexceptions.py +src/gui/selectors/selectorfactory.py +src/gui/selectors/__init__.py + # gui/views - the GUI views package src/gui/views/__init__.py src/gui/views/listview.py @@ -354,20 +368,6 @@ src/Mime/_GnomeMime.py src/Mime/__init__.py src/Mime/_PythonMime.py -# Selectors package -src/Selectors/_BaseSelector.py -src/Selectors/_SelectEvent.py -src/Selectors/_SelectFamily.py -src/Selectors/_SelectNote.py -src/Selectors/_SelectObject.py -src/Selectors/_SelectPerson.py -src/Selectors/_SelectPlace.py -src/Selectors/_SelectRepository.py -src/Selectors/_SelectSource.py -src/Selectors/_SelectorExceptions.py -src/Selectors/_SelectorFactory.py -src/Selectors/__init__.py - # plugins directory src/plugins/BookReport.py src/plugins/bookreport.gpr.py diff --git a/src/DisplayTabs/_EventEmbedList.py b/src/DisplayTabs/_EventEmbedList.py index fb68c03c4..94c3fbc3b 100644 --- a/src/DisplayTabs/_EventEmbedList.py +++ b/src/DisplayTabs/_EventEmbedList.py @@ -40,6 +40,7 @@ from DdTargets import DdTargets from _GroupEmbeddedList import GroupEmbeddedList from _EventRefModel import EventRefModel from gui.dbguielement import DbGUIElement +from gui.selectors import SelectorFactory #------------------------------------------------------------------------- # @@ -215,8 +216,7 @@ class EventEmbedList(DbGUIElement, GroupEmbeddedList): "reference, you need to close the event.") def share_button_clicked(self, obj): - from Selectors import selector_factory - SelectEvent = selector_factory('Event') + SelectEvent = SelectorFactory('Event') sel = SelectEvent(self.dbstate, self.uistate, self.track) event = sel.run() diff --git a/src/DisplayTabs/_GalleryTab.py b/src/DisplayTabs/_GalleryTab.py index dcf106110..ca6032398 100644 --- a/src/DisplayTabs/_GalleryTab.py +++ b/src/DisplayTabs/_GalleryTab.py @@ -47,6 +47,7 @@ import gobject #------------------------------------------------------------------------- from gui.utils import open_file_with_default_application from gui.dbguielement import DbGUIElement +from gui.selectors import SelectorFactory import gen.lib import Utils import ThumbNails @@ -287,8 +288,7 @@ class GalleryTab(ButtonTab, DbGUIElement): This function should be overridden by the derived class. """ - from Selectors import selector_factory - SelectObject = selector_factory('MediaObject') + SelectObject = SelectorFactory('MediaObject') sel = SelectObject(self.dbstate, self.uistate, self.track) src = sel.run() diff --git a/src/DisplayTabs/_NoteTab.py b/src/DisplayTabs/_NoteTab.py index 2a7af9fbf..060b30c15 100644 --- a/src/DisplayTabs/_NoteTab.py +++ b/src/DisplayTabs/_NoteTab.py @@ -41,6 +41,7 @@ from gettext import gettext as _ import Errors import gen.lib from gui.dbguielement import DbGUIElement +from gui.selectors import SelectorFactory from _NoteModel import NoteModel from _EmbeddedList import EmbeddedList from DdTargets import DdTargets @@ -166,8 +167,7 @@ class NoteTab(EmbeddedList, DbGUIElement): pass def share_button_clicked(self, obj): - from Selectors import selector_factory - SelectNote = selector_factory('Note') + SelectNote = SelectorFactory('Note') sel = SelectNote(self.dbstate,self.uistate,self.track) note = sel.run() diff --git a/src/DisplayTabs/_RepoEmbedList.py b/src/DisplayTabs/_RepoEmbedList.py index d153f9ad3..1828a5731 100644 --- a/src/DisplayTabs/_RepoEmbedList.py +++ b/src/DisplayTabs/_RepoEmbedList.py @@ -34,6 +34,7 @@ from gettext import gettext as _ #------------------------------------------------------------------------- import gen.lib from gui.dbguielement import DbGUIElement +from gui.selectors import SelectorFactory import Errors from DdTargets import DdTargets from _RepoRefModel import RepoRefModel @@ -122,8 +123,7 @@ class RepoEmbedList(EmbeddedList, DbGUIElement): pass def share_button_clicked(self, obj): - from Selectors import selector_factory - SelectRepository = selector_factory('Repository') + SelectRepository = SelectorFactory('Repository') sel = SelectRepository( self.dbstate, diff --git a/src/DisplayTabs/_SourceEmbedList.py b/src/DisplayTabs/_SourceEmbedList.py index 2dd1e5d21..ae8267339 100644 --- a/src/DisplayTabs/_SourceEmbedList.py +++ b/src/DisplayTabs/_SourceEmbedList.py @@ -34,6 +34,7 @@ from gettext import gettext as _ #------------------------------------------------------------------------- import gen.lib from gui.dbguielement import DbGUIElement +from gui.selectors import SelectorFactory import Errors from DdTargets import DdTargets from _SourceRefModel import SourceRefModel @@ -114,8 +115,7 @@ class SourceEmbedList(EmbeddedList, DbGUIElement): pass def share_button_clicked(self, obj): - from Selectors import selector_factory - SelectSource = selector_factory('Source') + SelectSource = SelectorFactory('Source') sel = SelectSource(self.dbstate,self.uistate,self.track) src = sel.run() diff --git a/src/Editors/ObjectEntries.py b/src/Editors/ObjectEntries.py index 413f8b254..483475c83 100644 --- a/src/Editors/ObjectEntries.py +++ b/src/Editors/ObjectEntries.py @@ -48,11 +48,15 @@ from gen.lib import (Place, MediaObject, Note) from Editors._EditPlace import EditPlace from Editors._EditMedia import EditMedia from Editors._EditNote import EditNote -from Selectors import selector_factory +from gui.selectors import SelectorFactory from DdTargets import DdTargets from Errors import WindowActiveError -from Selectors import selector_factory +#------------------------------------------------------------------------- +# +# ObjEntry +# +#------------------------------------------------------------------------- class ObjEntry(object): """ Handles the selection of a existing or new Object. Supports Drag and Drop @@ -285,7 +289,7 @@ class PlaceEntry(ObjEntry): pass def call_selector(self): - cls = selector_factory('Place') + cls = SelectorFactory('Place') return cls(self.dbstate, self.uistate, self.track) # FIXME isn't used anywhere @@ -336,7 +340,7 @@ class MediaEntry(ObjEntry): pass def call_selector(self): - cls = selector_factory('MediaObject') + cls = SelectorFactory('MediaObject') return cls(self.dbstate, self.uistate, self.track) # FIXME isn't used anywhere @@ -404,5 +408,5 @@ class NoteEntry(ObjEntry): pass def call_selector(self): - cls = selector_factory('Note') + cls = SelectorFactory('Note') return cls(self.dbstate, self.uistate, self.track) diff --git a/src/Editors/_EditFamily.py b/src/Editors/_EditFamily.py index 16254be7e..23e9382e4 100644 --- a/src/Editors/_EditFamily.py +++ b/src/Editors/_EditFamily.py @@ -72,8 +72,8 @@ from gen.plug import CATEGORY_QR_FAMILY from QuestionDialog import (ErrorDialog, RunDatabaseRepair, WarningDialog, MessageHideDialog) -from Selectors import selector_factory -SelectPerson = selector_factory('Person') +from gui.selectors import SelectorFactory +SelectPerson = SelectorFactory('Person') _RETURN = gdk.keyval_from_name("Return") _KP_ENTER = gdk.keyval_from_name("KP_Enter") diff --git a/src/Editors/_EditLdsOrd.py b/src/Editors/_EditLdsOrd.py index b767df660..37a18c4fc 100644 --- a/src/Editors/_EditLdsOrd.py +++ b/src/Editors/_EditLdsOrd.py @@ -44,8 +44,6 @@ import gtk # gramps modules # #------------------------------------------------------------------------- -import const -import config import gen.lib from BasicUtils import name_displayer import LdsUtils @@ -55,6 +53,7 @@ from ObjectEntries import PlaceEntry from DisplayTabs import SourceEmbedList,NoteTab from gui.widgets import (PrivacyButton, MonitoredDate, MonitoredMenu, MonitoredStrMenu) +from gui.selectors import SelectorFactory _DATA_MAP = { gen.lib.LdsOrd.BAPTISM : [ @@ -252,8 +251,7 @@ class EditLdsOrd(EditSecondary): self.top.get_object('vbox').pack_start(notebook,True) def select_parents_clicked(self, obj): - from Selectors import selector_factory - SelectFamily = selector_factory('Family') + SelectFamily = SelectorFactory('Family') dialog = SelectFamily(self.dbstate,self.uistate,self.track) family = dialog.run() diff --git a/src/Editors/_EditPersonRef.py b/src/Editors/_EditPersonRef.py index d39fbaf48..6c8354de8 100644 --- a/src/Editors/_EditPersonRef.py +++ b/src/Editors/_EditPersonRef.py @@ -45,12 +45,11 @@ import gtk # gramps modules # #------------------------------------------------------------------------- -import const -import config from BasicUtils import name_displayer from _EditSecondary import EditSecondary from gen.lib import NoteType from gui.widgets import MonitoredEntry, PrivacyButton +from gui.selectors import SelectorFactory from DisplayTabs import SourceEmbedList, NoteTab from glade import Glade @@ -125,8 +124,7 @@ class EditPersonRef(EditSecondary): self.close() def _select_person(self, obj): - from Selectors import selector_factory - SelectPerson = selector_factory('Person') + SelectPerson = SelectorFactory('Person') sel = SelectPerson(self.dbstate, self.uistate, self.track) person = sel.run() diff --git a/src/FilterEditor/_EditRule.py b/src/FilterEditor/_EditRule.py index e1a734083..a64c66425 100644 --- a/src/FilterEditor/_EditRule.py +++ b/src/FilterEditor/_EditRule.py @@ -59,7 +59,7 @@ import const import gen.lib from Filters import Rules import AutoComp -from Selectors import selector_factory +from gui.selectors import SelectorFactory from BasicUtils import name_displayer as _nd import Utils import ManagedWindow @@ -271,7 +271,7 @@ class MyID(gtk.HBox): def button_press(self, obj): obj_class = self.namespace - selector = selector_factory(obj_class) + selector = SelectorFactory(obj_class) inst = selector(self.dbstate, self.uistate, self.track) val = inst.run() if val is None: diff --git a/src/PluginUtils/_GuiOptions.py b/src/PluginUtils/_GuiOptions.py index e95f5d56b..93fef14ff 100644 --- a/src/PluginUtils/_GuiOptions.py +++ b/src/PluginUtils/_GuiOptions.py @@ -53,7 +53,7 @@ from gui.pluginmanager import GuiPluginManager from gui import widgets import ManagedWindow from QuestionDialog import OptionDialog -from Selectors import selector_factory +from gui.selectors import SelectorFactory from BasicUtils import name_displayer as _nd from Filters import GenericFilter, Rules import gen @@ -466,7 +466,7 @@ class GuiPersonOption(gtk.HBox): gid = active_person.get_gramps_id() rfilter.add_rule(Rules.Person.HasIdOf([gid])) - select_class = selector_factory('Person') + select_class = SelectorFactory('Person') sel = select_class(self.__dbstate, self.__uistate, self.__track, title=_('Select a person for the report'), filter=rfilter ) @@ -588,7 +588,7 @@ class GuiFamilyOption(gtk.HBox): gid = family.get_gramps_id() rfilter.add_rule(Rules.Family.HasIdOf([gid])) - select_class = selector_factory('Family') + select_class = SelectorFactory('Family') sel = select_class(self.__dbstate, self.__uistate, self.__track, filter=rfilter ) family = sel.run() @@ -677,7 +677,7 @@ class GuiNoteOption(gtk.HBox): """ Handle the button to choose a different note. """ - select_class = selector_factory('Note') + select_class = SelectorFactory('Note') sel = select_class(self.__dbstate, self.__uistate, self.__track) note = sel.run() self.__update_note(note) @@ -759,7 +759,7 @@ class GuiMediaOption(gtk.HBox): """ Handle the button to choose a different note. """ - select_class = selector_factory('MediaObject') + select_class = SelectorFactory('MediaObject') sel = select_class(self.__dbstate, self.__uistate, self.__track) media = sel.run() self.__update_media(media) @@ -878,7 +878,7 @@ class GuiPersonListOption(gtk.HBox): skip_list.add(person.get_handle()) i = self.__model.iter_next(i) - select_class = selector_factory('Person') + select_class = SelectorFactory('Person') sel = select_class(self.__dbstate, self.__uistate, self.__track, skip=skip_list) person = sel.run() @@ -1018,7 +1018,7 @@ class GuiPlaceListOption(gtk.HBox): skip_list.add(place.get_handle()) i = self.__model.iter_next(i) - select_class = selector_factory('Place') + select_class = SelectorFactory('Place') sel = select_class(self.__dbstate, self.__uistate, self.__track, skip=skip_list) place = sel.run() diff --git a/src/gui/Makefile.am b/src/gui/Makefile.am index becb51485..2a995ff06 100644 --- a/src/gui/Makefile.am +++ b/src/gui/Makefile.am @@ -4,6 +4,7 @@ # If not using GNU make, then list all .py files individually SUBDIRS = \ + selectors \ views \ widgets diff --git a/src/Selectors/Makefile.am b/src/gui/selectors/Makefile.am similarity index 51% rename from src/Selectors/Makefile.am rename to src/gui/selectors/Makefile.am index df178b4e9..ef318b790 100644 --- a/src/Selectors/Makefile.am +++ b/src/gui/selectors/Makefile.am @@ -3,29 +3,29 @@ # but that is not necessarily portable. # If not using GNU make, then list all .py files individually -pkgdatadir = $(datadir)/@PACKAGE@/Selectors +pkgdatadir = $(datadir)/@PACKAGE@/gui/selectors pkgdata_PYTHON = \ __init__.py \ - _BaseSelector.py \ - _SelectEvent.py \ - _SelectFamily.py \ - _SelectNote.py \ - _SelectObject.py \ - _SelectPerson.py \ - _SelectRepository.py \ - _SelectSource.py \ - _SelectPlace.py \ - _SelectorExceptions.py \ - _SelectorFactory.py + baseselector.py \ + selectevent.py \ + selectfamily.py \ + selectnote.py \ + selectobject.py \ + selectperson.py \ + selectrepository.py \ + selectsource.py \ + selectplace.py \ + selectorexceptions.py \ + selectorfactory.py -pkgpyexecdir = @pkgpyexecdir@/Selectors -pkgpythondir = @pkgpythondir@/Selectors +pkgpyexecdir = @pkgpyexecdir@/gui/selectors +pkgpythondir = @pkgpythondir@/gui/selectors # Clean up all the byte-compiled files MOSTLYCLEANFILES = *pyc *pyo -GRAMPS_PY_MODPATH = "../" +GRAMPS_PY_MODPATH = "../../" pycheck: (export PYTHONPATH=$(GRAMPS_PY_MODPATH); \ diff --git a/src/Selectors/__init__.py b/src/gui/selectors/__init__.py similarity index 94% rename from src/Selectors/__init__.py rename to src/gui/selectors/__init__.py index 5199e15a6..6e590a4ad 100644 --- a/src/Selectors/__init__.py +++ b/src/gui/selectors/__init__.py @@ -20,5 +20,5 @@ # $Id$ -from _SelectorFactory import selector_factory +from selectorfactory import SelectorFactory diff --git a/src/Selectors/_BaseSelector.py b/src/gui/selectors/baseselector.py similarity index 99% rename from src/Selectors/_BaseSelector.py rename to src/gui/selectors/baseselector.py index 5e836d89a..c069a3b16 100644 --- a/src/Selectors/_BaseSelector.py +++ b/src/gui/selectors/baseselector.py @@ -34,7 +34,6 @@ import pango # gramps modules # #------------------------------------------------------------------------- -import const import ManagedWindow from Filters import SearchBar from glade import Glade diff --git a/src/Selectors/_SelectEvent.py b/src/gui/selectors/selectevent.py similarity index 97% rename from src/Selectors/_SelectEvent.py rename to src/gui/selectors/selectevent.py index 43c5d0827..10ad07125 100644 --- a/src/Selectors/_SelectEvent.py +++ b/src/gui/selectors/selectevent.py @@ -34,8 +34,7 @@ from gettext import gettext as _ # #------------------------------------------------------------------------- from gui.views.treemodels import EventModel -from _BaseSelector import BaseSelector -import config +from baseselector import BaseSelector #------------------------------------------------------------------------- # diff --git a/src/Selectors/_SelectFamily.py b/src/gui/selectors/selectfamily.py similarity index 97% rename from src/Selectors/_SelectFamily.py rename to src/gui/selectors/selectfamily.py index 3926a2c7a..d1f32ce39 100644 --- a/src/Selectors/_SelectFamily.py +++ b/src/gui/selectors/selectfamily.py @@ -34,8 +34,7 @@ from gettext import gettext as _ # #------------------------------------------------------------------------- from gui.views.treemodels import FamilyModel -from _BaseSelector import BaseSelector -import config +from baseselector import BaseSelector #------------------------------------------------------------------------- # diff --git a/src/Selectors/_SelectNote.py b/src/gui/selectors/selectnote.py similarity index 97% rename from src/Selectors/_SelectNote.py rename to src/gui/selectors/selectnote.py index 7228eec55..df930dcc1 100644 --- a/src/Selectors/_SelectNote.py +++ b/src/gui/selectors/selectnote.py @@ -37,8 +37,7 @@ from gettext import gettext as _ # #------------------------------------------------------------------------- from gui.views.treemodels import NoteModel -from _BaseSelector import BaseSelector -import config +from baseselector import BaseSelector #------------------------------------------------------------------------- # diff --git a/src/Selectors/_SelectObject.py b/src/gui/selectors/selectobject.py similarity index 98% rename from src/Selectors/_SelectObject.py rename to src/gui/selectors/selectobject.py index ba5389a79..bc89fb3fc 100644 --- a/src/Selectors/_SelectObject.py +++ b/src/gui/selectors/selectobject.py @@ -48,8 +48,7 @@ import const from Utils import media_path_full import ThumbNails from gui.views.treemodels import MediaModel -from _BaseSelector import BaseSelector -import config +from baseselector import BaseSelector #------------------------------------------------------------------------- # diff --git a/src/Selectors/_SelectorExceptions.py b/src/gui/selectors/selectorexceptions.py similarity index 100% rename from src/Selectors/_SelectorExceptions.py rename to src/gui/selectors/selectorexceptions.py diff --git a/src/Selectors/_SelectorFactory.py b/src/gui/selectors/selectorfactory.py similarity index 76% rename from src/Selectors/_SelectorFactory.py rename to src/gui/selectors/selectorfactory.py index c11c3e99a..9c3f21d27 100644 --- a/src/Selectors/_SelectorFactory.py +++ b/src/gui/selectors/selectorfactory.py @@ -20,32 +20,32 @@ # $Id$ -from _SelectorExceptions import SelectorException +from selectorexceptions import SelectorException -def selector_factory(classname): +def SelectorFactory(classname): if classname == 'Person': - from _SelectPerson import SelectPerson + from selectperson import SelectPerson cls = SelectPerson elif classname == 'Family': - from _SelectFamily import SelectFamily + from selectfamily import SelectFamily cls = SelectFamily elif classname == 'Event': - from _SelectEvent import SelectEvent + from selectevent import SelectEvent cls = SelectEvent elif classname == 'Place': - from _SelectPlace import SelectPlace + from selectplace import SelectPlace cls = SelectPlace elif classname == 'Source': - from _SelectSource import SelectSource + from selectsource import SelectSource cls = SelectSource elif classname == 'MediaObject': - from _SelectObject import SelectObject + from selectobject import SelectObject cls = SelectObject elif classname == 'Repository': - from _SelectRepository import SelectRepository + from selectrepository import SelectRepository cls = SelectRepository elif classname == 'Note': - from _SelectNote import SelectNote + from selectnote import SelectNote cls = SelectNote else: raise SelectorException("Attempt to create unknown " diff --git a/src/Selectors/_SelectPerson.py b/src/gui/selectors/selectperson.py similarity index 98% rename from src/Selectors/_SelectPerson.py rename to src/gui/selectors/selectperson.py index 670361685..615b5a719 100644 --- a/src/Selectors/_SelectPerson.py +++ b/src/gui/selectors/selectperson.py @@ -35,8 +35,7 @@ import gtk # #------------------------------------------------------------------------- from gui.views.treemodels import PeopleModel -from _BaseSelector import BaseSelector -import config +from baseselector import BaseSelector #------------------------------------------------------------------------- # diff --git a/src/Selectors/_SelectPlace.py b/src/gui/selectors/selectplace.py similarity index 97% rename from src/Selectors/_SelectPlace.py rename to src/gui/selectors/selectplace.py index 1b4a04e3e..7ce4b6f53 100644 --- a/src/Selectors/_SelectPlace.py +++ b/src/gui/selectors/selectplace.py @@ -34,8 +34,7 @@ from gettext import gettext as _ # #------------------------------------------------------------------------- from gui.views.treemodels import PlaceModel -from _BaseSelector import BaseSelector -import config +from baseselector import BaseSelector #------------------------------------------------------------------------- # diff --git a/src/Selectors/_SelectRepository.py b/src/gui/selectors/selectrepository.py similarity index 97% rename from src/Selectors/_SelectRepository.py rename to src/gui/selectors/selectrepository.py index 92be30e82..2e71d6f22 100644 --- a/src/Selectors/_SelectRepository.py +++ b/src/gui/selectors/selectrepository.py @@ -34,8 +34,7 @@ from gettext import gettext as _ # #------------------------------------------------------------------------- from gui.views.treemodels import RepositoryModel -from _BaseSelector import BaseSelector -import config +from baseselector import BaseSelector #------------------------------------------------------------------------- # diff --git a/src/Selectors/_SelectSource.py b/src/gui/selectors/selectsource.py similarity index 97% rename from src/Selectors/_SelectSource.py rename to src/gui/selectors/selectsource.py index 8983c2825..dbb123aea 100644 --- a/src/Selectors/_SelectSource.py +++ b/src/gui/selectors/selectsource.py @@ -34,8 +34,7 @@ from gettext import gettext as _ # #------------------------------------------------------------------------- from gui.views.treemodels import SourceModel -from _BaseSelector import BaseSelector -import config +from baseselector import BaseSelector #------------------------------------------------------------------------- # diff --git a/src/plugins/view/relview.py b/src/plugins/view/relview.py index f9cf46de6..2c13af993 100644 --- a/src/plugins/view/relview.py +++ b/src/plugins/view/relview.py @@ -54,6 +54,7 @@ import DateHandler import ThumbNails import config from gui import widgets +from gui.selectors import SelectorFactory import Errors import gen.utils import Bookmarks @@ -1482,9 +1483,8 @@ class RelationshipView(NavigationView): self.dbstate.db.transaction_commit(trans, _("Add Child to Family")) def sel_child_to_fam(self, obj, event, handle, surname=None): - from Selectors import selector_factory if button_activated(event, _LEFT_BUTTON): - SelectPerson = selector_factory('Person') + SelectPerson = SelectorFactory('Person') family = self.dbstate.db.get_family_from_handle(handle) # it only makes sense to skip those who are already in the family skip_list = [family.get_father_handle(), \ @@ -1500,8 +1500,7 @@ class RelationshipView(NavigationView): def select_family(self, obj, event, handle): if button_activated(event, _LEFT_BUTTON): - from Selectors import selector_factory - SelectFamily = selector_factory('Family') + SelectFamily = SelectorFactory('Family') phandle = self.dbstate.get_active_person().handle person = self.dbstate.db.get_person_from_handle(phandle) @@ -1520,8 +1519,7 @@ class RelationshipView(NavigationView): child) def select_parents(self, obj): - from Selectors import selector_factory - SelectFamily = selector_factory('Family') + SelectFamily = SelectorFactory('Family') phandle = self.dbstate.get_active_person().handle person = self.dbstate.db.get_person_from_handle(phandle)