Replace "Title" with "Enclosed By" in place sidebar filter
This commit is contained in:
parent
741d192f1f
commit
563f8e263d
@ -3,7 +3,7 @@
|
||||
#
|
||||
# Copyright (C) 2002-2006 Donald N. Allingham
|
||||
# Copyright (C) 2008 Gary Burton
|
||||
# Copyright (C) 2010 Nick Hall
|
||||
# Copyright (C) 2010,2015 Nick Hall
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -45,7 +45,7 @@ from gramps.gen.lib import Place, PlaceType
|
||||
from .. import build_filter_model
|
||||
from . import SidebarFilter
|
||||
from gramps.gen.filters import GenericFilterFactory, rules
|
||||
from gramps.gen.filters.rules.place import (RegExpIdOf, HasData, HasTitle,
|
||||
from gramps.gen.filters.rules.place import (RegExpIdOf, HasData, IsEnclosedBy,
|
||||
HasTag, HasNoteRegexp,
|
||||
MatchesFilter)
|
||||
|
||||
@ -61,7 +61,6 @@ class PlaceSidebarFilter(SidebarFilter):
|
||||
self.clicked_func = clicked
|
||||
|
||||
self.filter_id = widgets.BasicEntry()
|
||||
self.filter_title = widgets.BasicEntry()
|
||||
self.filter_name = widgets.BasicEntry()
|
||||
self.filter_place = Place()
|
||||
self.filter_place.set_type((PlaceType.CUSTOM, ''))
|
||||
@ -72,6 +71,7 @@ class PlaceSidebarFilter(SidebarFilter):
|
||||
self.filter_place.set_type,
|
||||
self.filter_place.get_type)
|
||||
self.filter_code = widgets.BasicEntry()
|
||||
self.filter_enclosed = widgets.PlaceEntry(dbstate, uistate, [])
|
||||
self.filter_note = widgets.BasicEntry()
|
||||
|
||||
self.filter_regex = Gtk.CheckButton(label=_('Use regular expressions'))
|
||||
@ -95,10 +95,10 @@ class PlaceSidebarFilter(SidebarFilter):
|
||||
self.tag.add_attribute(cell, 'text', 0)
|
||||
|
||||
self.add_text_entry(_('ID'), self.filter_id)
|
||||
self.add_text_entry(_('Title'), self.filter_title)
|
||||
self.add_text_entry(_('Name'), self.filter_name)
|
||||
self.add_entry(_('Type'), self.ptype)
|
||||
self.add_text_entry(_('Code'), self.filter_code)
|
||||
self.add_text_entry(_('Enclosed By'), self.filter_enclosed)
|
||||
self.add_text_entry(_('Note'), self.filter_note)
|
||||
self.add_entry(_('Tag'), self.tag)
|
||||
self.add_filter_entry(_('Custom filter'), self.generic)
|
||||
@ -106,9 +106,9 @@ class PlaceSidebarFilter(SidebarFilter):
|
||||
|
||||
def clear(self, obj):
|
||||
self.filter_id.set_text('')
|
||||
self.filter_title.set_text('')
|
||||
self.filter_name.set_text('')
|
||||
self.filter_code.set_text('')
|
||||
self.filter_enclosed.set_text('')
|
||||
self.filter_note.set_text('')
|
||||
self.ptype.get_child().set_text('')
|
||||
self.tag.set_active(0)
|
||||
@ -116,16 +116,16 @@ class PlaceSidebarFilter(SidebarFilter):
|
||||
|
||||
def get_filter(self):
|
||||
gid = str(self.filter_id.get_text()).strip()
|
||||
title = str(self.filter_title.get_text()).strip()
|
||||
name = str(self.filter_name.get_text()).strip()
|
||||
ptype = self.filter_place.get_type().xml_str()
|
||||
code = str(self.filter_code.get_text()).strip()
|
||||
enclosed = str(self.filter_enclosed.get_text()).strip()
|
||||
note = str(self.filter_note.get_text()).strip()
|
||||
regex = self.filter_regex.get_active()
|
||||
tag = self.tag.get_active() > 0
|
||||
gen = self.generic.get_active() > 0
|
||||
|
||||
empty = not (gid or title or name or ptype or code or note or regex
|
||||
empty = not (gid or name or ptype or code or enclosed or note or regex
|
||||
or tag or gen)
|
||||
if empty:
|
||||
generic_filter = None
|
||||
@ -135,8 +135,8 @@ class PlaceSidebarFilter(SidebarFilter):
|
||||
rule = RegExpIdOf([gid], use_regex=regex)
|
||||
generic_filter.add_rule(rule)
|
||||
|
||||
if title:
|
||||
rule = HasTitle([title], use_regex=regex)
|
||||
if enclosed:
|
||||
rule = IsEnclosedBy([enclosed])
|
||||
generic_filter.add_rule(rule)
|
||||
|
||||
rule = HasData([name, ptype, code], use_regex=regex)
|
||||
|
@ -28,6 +28,7 @@ from .expandcollapsearrow import *
|
||||
from .labels import *
|
||||
from .linkbox import *
|
||||
from .photo import *
|
||||
from .placeentry import *
|
||||
from .monitoredwidgets import *
|
||||
from .selectionwidget import SelectionWidget, Region
|
||||
from .shortlistcomboentry import *
|
||||
|
80
gramps/gui/widgets/placeentry.py
Normal file
80
gramps/gui/widgets/placeentry.py
Normal file
@ -0,0 +1,80 @@
|
||||
#
|
||||
# Gramps - a GTK+/GNOME based genealogy program
|
||||
#
|
||||
# Copyright (C) 2015 Nick Hall
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
|
||||
__all__ = ["PlaceEntry"]
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Standard python modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
import logging
|
||||
_LOG = logging.getLogger(".widgets.placeentry")
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# GTK/Gnome modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
from gi.repository import Gtk
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Gramps modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
from ..selectors import SelectorFactory
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# PlaceEntry class
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
class PlaceEntry(Gtk.Box):
|
||||
|
||||
def __init__(self, dbstate, uistate, track):
|
||||
Gtk.Box.__init__(self)
|
||||
self.dbstate = dbstate
|
||||
self.uistate = uistate
|
||||
self.track = track
|
||||
self.entry = Gtk.Entry()
|
||||
self.entry.set_width_chars(5)
|
||||
self.pack_start(self.entry, True, True, 0)
|
||||
image = Gtk.Image()
|
||||
image.set_from_icon_name('gtk-index', Gtk.IconSize.BUTTON)
|
||||
button = Gtk.Button()
|
||||
button.set_image(image)
|
||||
button.set_relief(Gtk.ReliefStyle.NORMAL)
|
||||
self.pack_start(button, False, True, 0)
|
||||
button.connect('clicked', self.on_clicked)
|
||||
self.show_all()
|
||||
|
||||
def on_clicked(self, button):
|
||||
SelectPlace = SelectorFactory('Place')
|
||||
sel = SelectPlace(self.dbstate, self.uistate, self.track)
|
||||
place = sel.run()
|
||||
if place:
|
||||
self.set_text(place.gramps_id)
|
||||
|
||||
def get_text(self):
|
||||
return self.entry.get_text()
|
||||
|
||||
def set_text(self, text):
|
||||
self.entry.set_text(text)
|
@ -365,6 +365,7 @@ gramps/gui/widgets/fanchartdesc.py
|
||||
gramps/gui/widgets/linkbox.py
|
||||
gramps/gui/widgets/menuitem.py
|
||||
gramps/gui/widgets/multitreeview.py
|
||||
gramps/gui/widgets/placeentry.py
|
||||
gramps/gui/widgets/shortlistcomboentry.py
|
||||
gramps/gui/widgets/springseparator.py
|
||||
gramps/gui/widgets/statusbar.py
|
||||
|
Loading…
Reference in New Issue
Block a user