Compare commits

...

46 Commits

Author SHA1 Message Date
1f614bd76f Add files via upload 2021-04-04 09:10:22 +02:00
0442c34258 Some small fixes in German translation 2021-03-21 00:18:46 +01:00
c903f5e5a5 Update German translation for csv import/export 2021-03-11 22:59:42 +01:00
3329860f50 small fix in German translation 2021-03-01 23:21:46 +01:00
e7401f3aaa Change category of 'MatchesEventFilter' (#1130) 2021-02-19 11:45:38 -06:00
1a48e8a03e Fix issue where separator between top and bottom bar of View creeps up. (#1122)
Fixes #11973
2021-02-19 11:44:32 -06:00
9a4adab9d6 Fix Locations Gramplet (Enclosed by) to properly displaycertain nested places. (#1127)
when the smallest place has undated enclosure and larger places are dated.

Issue #11691
2021-02-19 11:32:33 -06:00
bb0647274b Fix Family Tree Manager drop error on Windows (#1132)
Fixes #10734
2021-02-19 11:31:43 -06:00
f6bfb46fc0 Fix exportvcalendar error is "is not" with a literal (Python 3.8 issue) (#1135)
Fixes #12000
2021-02-19 11:31:06 -06:00
b6fa5da8ee Handle not found when copying source from the (#1175)
Citation tree

Fixes #12170
2021-02-19 11:25:02 -06:00
14c2d0e1b6 DbLoader: Fix call to 'file' function, which doesn't exist in Python3 (#1173) 2021-02-19 11:23:47 -06:00
226e8c549a Fix write_lock_file exception when USERNAME is missing (#1171)
Fixes #12150
2021-02-19 11:23:06 -06:00
d173809d8c Fix EditPlace so Tab key doesn't get stuck on Private icon (#1168)
Fixes #12139
2021-02-19 11:22:35 -06:00
63c52fa1bb Fix Tag report for places that have a hierarchy. (#1162)
Fixes #12124
2021-02-19 11:21:11 -06:00
455628d44a Fix exception when cancelling out of a db upgrade in GUI (#1154)
Fixes #12063
2021-02-19 11:18:18 -06:00
670bb355cb additional small German translation fixes 2021-02-12 21:36:51 +01:00
202c7a9bf6 Small fixes German translation 2021-02-11 12:06:22 +01:00
72955840f1 fix wrong translation of source text in German translation 2021-02-06 22:06:22 +01:00
b8e73d5ee1 fixed small error in German translation 2021-02-06 00:04:33 +01:00
990db39664 small fixes German translation 2021-01-26 18:59:23 +01:00
9c0dca6bd1 Merge pull request #1053 from cjmayo:themeicon 2020-11-14 19:29:58 +00:00
02e0c1c67d Install 128x128 and 256x256 application icons
Created with ImageMagick using e.g.:

convert -background none ../../../gramps.svg -geometry 256x256 gramps.png
2020-11-14 19:23:25 +00:00
ebf1715468 Install MIME type icons into the hicolor theme
The gnome theme is defunct.

Remove gnome-mime- prefix from icon filenames.
2020-11-14 19:23:24 +00:00
c10f2da00e Install application icons into correct directories 2020-11-14 19:10:34 +00:00
9f71372a97 Update Russian translation 2020-10-15 16:06:19 +03:00
0993d9cfc3 Update Czech translation - typo fixes 2020-09-25 09:02:45 +02:00
34471834ab Update Simplified Chinese translation 2020-09-24 22:37:57 +01:00
ff912f844c Update Dutch translation 2020-09-24 21:36:52 +01:00
45eac501a9 Revised and updated hu translation 2020-09-24 19:41:31 +01:00
d4e85c2397 Update Spanish translation 2020-09-24 17:52:35 +01:00
c7a4d287f0 Fix error in Birthday and Anniversary report (#1113)
Fixes an error triggered when the first person_handle in the list
has a death event, but no birth event (get_birth_ref() == None)
and does not have family relationships (spouse_handle == None).
These conditions lead to the local variable short_name not being
declared before it comes time to process death events.

Fixes #11766
2020-09-14 11:13:08 -05:00
c0d622c16a Fix graphdoc to properly escape characters in ids for Graphviz (#1111)
Fixes #11741
2020-09-14 11:10:20 -05:00
b38f77f2aa Replace inspect.stack() with inspect.currentframe() (#1104)
* Replace inspect.stack() with inspect.currentframe()

Fixes #11874

Works around https://bugs.python.org/issue12920 which causes every
call to inspect.trace() to fail because __main__ is always the
starting point.

* Fix a few Codecov complaints from files touched by previous commit.

Ignoring the "duplicate code" issue caused by the empty comment line
at the beginning of every file.
2020-09-14 11:08:58 -05:00
d91fc9e2fb Update Debian directory after producing the deb file for the 5.1.3 (#1100)
Release.

Co-authored-by: Ross Gammon <rossgammon@debian.org>
2020-09-14 11:05:21 -05:00
198602be61 Fix crash sorting on columns in Selectors with TreeModels (#1099)
Fixes #11750
2020-09-14 11:04:12 -05:00
3f9f3215ee Fix progress bar freeze due to changes in Gtk (#1103)
Fixes #11642
2020-09-14 11:02:48 -05:00
beb388a30d Fix svgdrawdoc for text containing XML invalid characters (#1110)
Fixes #11929
2020-09-14 11:00:43 -05:00
29e78d4253 Further changes for bundling with Python 3.8. 2020-08-30 14:46:35 -07:00
b80dcaf701 Add libgeocode-glib to bundle so that it actually works. 2020-08-30 14:44:51 -07:00
a876d94fbc German tzranslation two smal corrections 2020-08-26 18:08:42 +02:00
95e1e8cb67 [mac] Set __file__ if gramps_launcher.py is run as __main__.
Fixes #11874.
2020-08-25 17:14:10 -07:00
4147bc728a Update Czech translation 2020-08-21 11:02:14 +02:00
3a9a7053ec Bundle release of Gramps 5.1.3. 2020-08-20 14:41:57 -07:00
b96fd8a274 Add geocode-glib to build. 2020-08-20 14:14:53 -07:00
26cf0601d8 Update Swedish translation 2020-08-12 20:32:03 +02:00
c59278ef20 Bump to 5.1.4 2020-08-12 12:05:25 -05:00
59 changed files with 10868 additions and 16813 deletions

View File

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

View File

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

View File

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 52 KiB

View File

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

View File

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

7
debian/changelog vendored
View File

@ -1,3 +1,10 @@
gramps (5.1.3-1) focal; urgency=medium
* New release
* Update debian/copyright for Alex Roitman
-- Ross Gammon <rosco2@ubuntu.com> Sun, 16 Aug 2020 20:23:34 +0200
gramps (5.1.2-1) unstable; urgency=medium
* New release

2
debian/copyright vendored
View File

@ -3,7 +3,7 @@ Upstream-Name: Gramps
Source: https://gramps-project.org
Files: *
Copyright: 2000-2007, Alex Roitman
Copyright: 2000-2007, 2020 Alex Roitman
2000-2002, Bruce J. DeGrasse
2000-2008, Donald N. Allingham
2000-2007, Martin Hawlisch

View File

@ -145,7 +145,7 @@ sys.path.insert(0, ROOT_DIR)
git_revision = get_git_revision(ROOT_DIR).replace('\n', '')
if sys.platform == 'win32' and git_revision == "":
git_revision = get_git_revision(os.path.split(ROOT_DIR)[1])
#VERSION += git_revision
VERSION += git_revision
#VERSION += "-1"
#

View File

@ -52,7 +52,6 @@ methods should be changed to generate exceptions. Possibly by globally changing
#
#-------------------------------------------------------------------------
import logging
import os
import inspect
from abc import ABCMeta
from types import FunctionType
@ -160,10 +159,12 @@ def wrapper(method):
"""
class_name = args[0].__class__.__name__
func_name = method.__name__
caller_frame = inspect.stack()[1]
frame = inspect.currentframe()
c_frame = frame.f_back
c_code = c_frame.f_code
LOG.debug('calling %s.%s()... from file %s, line %s in %s',
class_name, func_name, os.path.split(caller_frame[1])[1],
caller_frame[2], caller_frame[3])
class_name, func_name, c_code.co_filename, c_frame.f_lineno,
c_code.co_name)
return method(*args, **keywargs)
return wrapped

View File

@ -78,15 +78,13 @@ class DbTxn(defaultdict):
elapsed_time = time.time() - self.start_time
if __debug__:
caller_frame = inspect.stack()[1]
frame = inspect.currentframe()
c_frame = frame.f_back
c_code = c_frame.f_code
_LOG.debug(" **** DbTxn %s exited. Called from file %s, "
"line %s, in %s **** %.2f seconds" %
((hex(id(self)),)+
(os.path.split(caller_frame[1])[1],)+
tuple(caller_frame[i] for i in range(2, 4))+
(elapsed_time,)
)
)
"line %s, in %s **** %.2f seconds",
hex(id(self)), c_code.co_filename, c_frame.f_lineno,
c_code.co_name, elapsed_time)
return False

View File

@ -42,6 +42,8 @@ from ..const import PLUGINS_DIR, USER_PLUGINS
from ..constfunc import win, get_env_var
from ..config import config
from .dbconst import DBLOGNAME, DBLOCKFN, DBBACKEND
from ..const import GRAMPS_LOCALE as glocale
_ = glocale.translation.gettext
#-------------------------------------------------------------------------
#
@ -70,12 +72,14 @@ def make_database(plugin_id):
database = getattr(mod, pdata.databaseclass)
db = database()
import inspect
caller_frame = inspect.stack()[1]
frame = inspect.currentframe()
c_frame = frame.f_back
c_code = c_frame.f_code
_LOG.debug("Database class instance created Class:%s instance:%s. "
"Called from File %s, line %s, in %s"
% ((db.__class__.__name__, hex(id(db)))
+ (os.path.split(caller_frame[1])[1],)
+ tuple(caller_frame[i] for i in range(2, 4))))
"Called from File %s, line %s, in %s",
db.__class__.__name__, hex(id(db)), c_code.co_filename,
c_frame.f_lineno, c_code.co_name)
return db
else:
raise Exception("can't load database backend: '%s'" % plugin_id)
@ -209,8 +213,8 @@ def write_lock_file(name):
if win():
user = get_env_var('USERNAME')
host = get_env_var('USERDOMAIN')
if host is None:
host = ""
if not user:
user = _("Unknown")
else:
host = os.uname()[1]
# An ugly workaround for os.getlogin() issue with Konsole

View File

@ -29,7 +29,6 @@ Provide the database state class
#
#------------------------------------------------------------------------
import sys
import os
import logging
import inspect
@ -88,10 +87,12 @@ class DbState(Callback):
"""
class_name = self.__class__.__name__
func_name = "is_open"
caller_frame = inspect.stack()[1]
frame = inspect.currentframe()
c_frame = frame.f_back
c_code = c_frame.f_code
_LOG.debug('calling %s.%s()... from file %s, line %s in %s',
class_name, func_name, os.path.split(caller_frame[1])[1],
caller_frame[2], caller_frame[3])
class_name, func_name, c_code.co_filename, c_frame.f_lineno,
c_code.co_name)
return (self.db is not None) and self.db.is_open()
def change_database(self, database):

View File

@ -52,7 +52,7 @@ class MatchesEventFilter(MatchesEventFilterBase):
name = _('Persons with events matching the <event filter>')
description = _("Matches persons who have events that match a certain"
" event filter")
category = _('General filters')
category = _('Event filters')
# we want to have this filter show event filters
namespace = 'Event'

View File

@ -99,7 +99,8 @@ class BaseTest(unittest.TestCase):
stime = perf_counter()
results = filter_.apply(self.db)
if __debug__:
rulename = inspect.stack()[1][3]
frame = inspect.currentframe()
rulename = frame.f_back.f_code.co_name
print("%s: %.2f\n" % (rulename, perf_counter() - stime))
return set(results)

View File

@ -113,6 +113,10 @@ else:
_GS_CMD = where_is("gs")
def esc(id_txt):
return id_txt.replace('"', '\\"')
#------------------------------------------------------------------------------
#
# GVOptions
@ -575,7 +579,7 @@ class GVDocBase(BaseDoc, GVDoc):
text += ' URL="%s"' % url
text += " ]"
self.write(' "%s" %s;\n' % (node_id, text))
self.write(' "%s" %s;\n' % (esc(node_id), text))
def add_link(self, id1, id2, style="", head="", tail="", comment=""):
"""
@ -583,7 +587,7 @@ class GVDocBase(BaseDoc, GVDoc):
Implements GVDocBase.add_link().
"""
self.write(' "%s" -> "%s"' % (id1, id2))
self.write(' "%s" -> "%s"' % (esc(id1), esc(id2)))
if style or head or tail:
self.write(' [')
@ -635,7 +639,7 @@ class GVDocBase(BaseDoc, GVDoc):
Implements GVDocBase.add_samerank().
"""
self.write(' {rank=same "%s" "%s"}\n' % (id1, id2))
self.write(' {rank=same "%s" "%s"}\n' % (esc(id1), esc(id2)))
def rewrite_label(self, id, label):
"""
@ -643,7 +647,7 @@ class GVDocBase(BaseDoc, GVDoc):
Implements GVDocBase.rewrite_label().
"""
self.write(' "%s" [label = "%s"]\n' % (id, label))
self.write(' "%s" [label = "%s"]\n' % (esc(id), label))
def start_subgraph(self, graph_id):
""" Implement GVDocBase.start_subgraph() """

View File

@ -324,12 +324,16 @@ class Callback:
return
# Check signal exists
frame = inspect.currentframe()
c_frame = frame.f_back
c_code = c_frame.f_code
frame_info = (c_code.co_filename, c_frame.f_lineno, c_code.co_name)
if signal_name not in self.__signal_map:
self._warn("Attempt to emit to unknown signal: %s\n"
" from: file: %s\n"
" line: %d\n"
" func: %s\n"
% ((str(signal_name), ) + inspect.stack()[1][1:4]))
% ((str(signal_name), ) + frame_info))
return
# check that the signal is not already being emitted. This prevents
@ -340,7 +344,7 @@ class Callback:
" from: file: %s\n"
" line: %d\n"
" func: %s\n"
% ((str(signal_name), ) + inspect.stack()[1][1:4]))
% ((str(signal_name), ) + frame_info))
return
try:
@ -358,7 +362,7 @@ class Callback:
" from: file: %s\n"
" line: %d\n"
" func: %s\n"
% ((str(signal_name), ) + inspect.stack()[1][1:4]))
% ((str(signal_name), ) + frame_info))
return
# type check arguments
@ -369,7 +373,7 @@ class Callback:
" from: file: %s\n"
" line: %d\n"
" func: %s\n"
% ((str(signal_name), ) + inspect.stack()[1][1:4]))
% ((str(signal_name), ) + frame_info))
return
if len(args) > 0:
@ -379,7 +383,7 @@ class Callback:
" from: file: %s\n"
" line: %d\n"
" func: %s\n"
% ((str(signal_name), ) + inspect.stack()[1][1:4]))
% ((str(signal_name), ) + frame_info))
return
if arg_types is not None:
@ -391,7 +395,7 @@ class Callback:
" line: %d\n"
" func: %s\n"
" arg passed was: %s, type of arg passed %s, type should be: %s\n"
% ((str(signal_name), ) + inspect.stack()[1][1:4] +\
% ((str(signal_name), ) + frame_info +\
(args[i], repr(type(args[i])), repr(arg_types[i]))))
return
if signal_name in self.__callback_map:

View File

@ -471,27 +471,36 @@ class ClipCitation(ClipHandleWrapper):
def refresh(self):
if self._handle:
citation = clipdb.get_citation_from_handle(self._handle)
if citation:
self._title = citation.get_gramps_id()
notelist = list(map(clipdb.get_note_from_handle,
citation.get_note_list()))
srctxtlist = [note for note in notelist
if note.get_type() == NoteType.SOURCE_TEXT]
page = citation.get_page()
if not page:
page = _('not available|NA')
text = ""
if srctxtlist:
text = " ".join(srctxtlist[0].get().split())
#String must be unicode for truncation to work for non
#ascii characters
text = str(text)
if len(text) > 60:
text = text[:60] + "..."
self._value = _("Volume/Page: %(pag)s -- %(sourcetext)s") % {
'pag' : page,
'sourcetext' : text}
try:
citation = clipdb.get_citation_from_handle(self._handle)
if citation:
self._title = citation.get_gramps_id()
notelist = list(map(clipdb.get_note_from_handle,
citation.get_note_list()))
srctxtlist = [note for note in notelist
if note.get_type() == NoteType.SOURCE_TEXT]
page = citation.get_page()
if not page:
page = _('not available|NA')
text = ""
if srctxtlist:
text = " ".join(srctxtlist[0].get().split())
#String must be unicode for truncation to work for non
#ascii characters
text = str(text)
if len(text) > 60:
text = text[:60] + "..."
self._value = _("Volume/Page: %(pag)s -- %(sourcetext)s"
) % { 'pag' : page,
'sourcetext' : text}
except:
# We are in the Source tree view. The shortcuts only
# work for citations.
print("We cannot copy the source from this view."
" Use drag and drop.")
self._title = self._value = ''
self._pickle = self._type = self._objclass = None
self._handle = self._dbid = self._dbname = None
class ClipRepoRef(ClipObjWrapper):
@ -1281,6 +1290,14 @@ class ClipboardListView:
model.insert_before(node, data)
else:
model.insert_after(node, data)
elif isinstance(data[1], ClipCitation):
if data[3]:
# we have a real citation
model.append(data)
#else:
# We are in a Source treeview and trying
# to copy a source with a shortcut.
# Use drag and drop to do that.
else:
model.append(data)

View File

@ -532,7 +532,7 @@ class GrampsImportFileDialog(ManagedWindow):
return True
else:
try:
f = file(filename,'w')
f = open(filename, 'w')
f.close()
os.remove(filename)
except IOError:
@ -548,7 +548,6 @@ class GrampsImportFileDialog(ManagedWindow):
self.import_info = None
self._begin_progress()
self.uistate.set_sensitive(False)
self.uistate.viewmanager.enable_menu(False)
try:
#an importer can return an object with info, object.info_text()
@ -569,7 +568,6 @@ class GrampsImportFileDialog(ManagedWindow):
except Exception:
_LOG.error("Failed to import database.", exc_info=True)
self.uistate.set_sensitive(True)
self.uistate.viewmanager.enable_menu(True)
self._end_progress()
def build_menu_names(self, obj): # this is meaningless since it's modal

View File

@ -1013,7 +1013,7 @@ class DbManager(CLIDbManager, ManagedWindow):
"""
Handle the reception of drag data
"""
drag_value = selection.get_data().decode()
drag_value = selection.get_data().decode().strip(' \r\n\x00')
fname = None
type = None
title = None

View File

@ -520,7 +520,10 @@ class DisplayState(Callback):
history.push(handle)
def set_sensitive(self, state):
self.window.set_sensitive(state)
tbar = self.uimanager.get_widget('ToolBar')
tbar.set_sensitive(state)
self.viewmanager.hpane.set_sensitive(state)
self.uimanager.enable_all_actions(state)
def db_changed(self, db):
db.connect('long-op-start', self.progress_monitor.add_op)

View File

@ -39,6 +39,9 @@ from ..glade import Glade
from gramps.gen.simple import SimpleAccess
from gramps.gen.const import URL_MANUAL_SECT2
import logging
_LOG = logging.getLogger("editlink")
#-------------------------------------------------------------------------
#
# Constants
@ -154,6 +157,12 @@ class EditLink(ManagedWindow):
def _on_new_callback(self, obj):
object_class = obj.__class__.__name__
# workaround for bug12260
try:
test = obj.handle
except AttributeError:
_LOG.warn(str(object_class))
return
self.selected.set_text(self.display_link(
object_class, "handle", obj.handle))
self.url_link.set_text("gramps://%s/%s/%s" %

View File

@ -1,11 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.18.3 -->
<!-- Generated with glade 3.22.2 -->
<interface>
<requires lib="gtk+" version="3.10"/>
<requires lib="grampswidgets" version="0.0"/>
<object class="GtkDialog" id="editplace">
<property name="can_focus">False</property>
<property name="type_hint">dialog</property>
<child type="titlebar">
<placeholder/>
</child>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox19">
<property name="visible">True</property>
@ -101,7 +103,7 @@
<child>
<object class="GtkLabel" id="comment1">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes">Either use the two fields below to enter coordinates (latitude and longitude),</property>
<property name="hexpand">True</property>

View File

@ -325,7 +325,6 @@ class BaseSelector(ManagedWindow):
self.sortorder = Gtk.SortType.ASCENDING
else:
self.sortorder = Gtk.SortType.DESCENDING
self.model.reverse_order()
self.build_tree()
return True

View File

@ -496,6 +496,16 @@ class UIManager():
"""
return group.act_group.lookup_action(actionname)
def enable_all_actions(self, state):
for group in self.action_groups:
if group.act_group:
for item in group.actionlist:
action = group.act_group.lookup_action(item[ACTION_NAME])
if action:
# We check in case the group has not been inserted into
# UIManager yet
action.set_enabled(group.sensitive if state else False)
def dump_all_accels(self):
''' A function used diagnostically to see what accels are present.
This will only dump the current accel set, if other non-open windows

View File

@ -450,7 +450,7 @@ def open_file_with_default_application(path, uistate):
GLib.timeout_add_seconds(1, poll_external, (proc, errstrings, uistate))
return
def process_pending_events(max_count=10):
def process_pending_events(max_count=20):
"""
Process pending events, but don't get into an infinite loop.
"""

View File

@ -273,13 +273,13 @@ class ViewManager(CLIManager):
Gdk.ModifierType.CONTROL_MASK | Gdk.ModifierType.MOD1_MASK)
vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
self.window.add(vbox)
hpane = Gtk.Paned()
self.hpane = Gtk.Paned()
self.ebox = Gtk.EventBox()
self.navigator = Navigator(self)
self.ebox.add(self.navigator.get_top())
hpane.pack1(self.ebox, False, False)
hpane.show()
self.hpane.pack1(self.ebox, False, False)
self.hpane.show()
self.notebook = Gtk.Notebook()
self.notebook.set_scrollable(True)
@ -288,14 +288,14 @@ class ViewManager(CLIManager):
self.__init_lists()
self.__build_ui_manager()
hpane.add2(self.notebook)
self.hpane.add2(self.notebook)
toolbar = self.uimanager.get_widget('ToolBar')
self.statusbar = Statusbar()
self.statusbar.show()
vbox.pack_end(self.statusbar, False, True, 0)
vbox.pack_start(toolbar, False, True, 0)
vbox.pack_end(hpane, True, True, 0)
vbox.show()
vbox.pack_end(self.hpane, True, True, 0)
vbox.show_all()
self.uistate = DisplayState(self.window, self.statusbar,
self.uimanager, self)
@ -835,6 +835,7 @@ class ViewManager(CLIManager):
hbox.add(Gtk.Label(label=pdata.name))
hbox.show_all()
page_num = self.notebook.append_page(page.get_display(), hbox)
self.active_page.post_create()
if not self.file_loaded:
self.uimanager.set_actions_visible(self.actiongroup, False)
self.uimanager.set_actions_visible(self.readonlygroup, False)
@ -993,7 +994,8 @@ class ViewManager(CLIManager):
The method called after load of a new database.
Inherit CLI method to add GUI part
"""
self._post_load_newdb_nongui(filename, title)
if self.dbstate.db.is_open():
self._post_load_newdb_nongui(filename, title)
self._post_load_newdb_gui(filename, filetype, title)
def _post_load_newdb_gui(self, filename, filetype, title=None):
@ -1061,51 +1063,6 @@ class ViewManager(CLIManager):
config.set('paths.recent-file', '')
config.save()
def enable_menu(self, enable):
""" Enable/disable the menues. Used by the dbloader for import to
prevent other operations during import. Needed because simpler methods
don't work under Gnome with application menus at top of screen (instead
of Gramps window).
Note: enable must be set to False on first call.
"""
if not enable:
self.action_st = (
self.uimanager.get_actions_sensitive(self.actiongroup),
self.uimanager.get_actions_sensitive(self.readonlygroup),
self.uimanager.get_actions_sensitive(self.undoactions),
self.uimanager.get_actions_sensitive(self.redoactions),
self.uimanager.get_actions_sensitive(self.fileactions),
self.uimanager.get_actions_sensitive(self.toolactions),
self.uimanager.get_actions_sensitive(self.reportactions),
self.uimanager.get_actions_sensitive(
self.recent_manager.action_group))
self.uimanager.set_actions_sensitive(self.actiongroup, enable)
self.uimanager.set_actions_sensitive(self.readonlygroup, enable)
self.uimanager.set_actions_sensitive(self.undoactions, enable)
self.uimanager.set_actions_sensitive(self.redoactions, enable)
self.uimanager.set_actions_sensitive(self.fileactions, enable)
self.uimanager.set_actions_sensitive(self.toolactions, enable)
self.uimanager.set_actions_sensitive(self.reportactions, enable)
self.uimanager.set_actions_sensitive(
self.recent_manager.action_group, enable)
else:
self.uimanager.set_actions_sensitive(
self.actiongroup, self.action_st[0])
self.uimanager.set_actions_sensitive(
self.readonlygroup, self.action_st[1])
self.uimanager.set_actions_sensitive(
self.undoactions, self.action_st[2])
self.uimanager.set_actions_sensitive(
self.redoactions, self.action_st[3])
self.uimanager.set_actions_sensitive(
self.fileactions, self.action_st[4])
self.uimanager.set_actions_sensitive(
self.toolactions, self.action_st[5])
self.uimanager.set_actions_sensitive(
self.reportactions, self.action_st[6])
self.uimanager.set_actions_sensitive(
self.recent_manager.action_group, self.action_st[7])
def __change_undo_label(self, label, update_menu=True):
"""
Change the UNDO label

View File

@ -138,6 +138,7 @@ class PageView(DbGUIElement, metaclass=ABCMeta):
self.sidebar = None
self.bottombar = None
self.widget = None
self.vpane = None
DbGUIElement.__init__(self, dbstate.db)
@ -154,18 +155,20 @@ class PageView(DbGUIElement, metaclass=ABCMeta):
self.ident + "_bottombar",
defaults[1])
hpane = Gtk.Paned()
vpane = Gtk.Paned(orientation=Gtk.Orientation.VERTICAL)
hpane.pack1(vpane, resize=True, shrink=False)
self.vpane = Gtk.Paned(orientation=Gtk.Orientation.VERTICAL)
hpane.pack1(self.vpane, resize=True, shrink=False)
hpane.pack2(self.sidebar, resize=False, shrink=False)
hpane.show()
vpane.show()
self.vpane.show()
self.widget = self.build_widget()
self.widget.show_all()
self.widget.set_name('view')
vpane.pack1(self.widget, resize=True, shrink=False)
vpane.pack2(self.bottombar, resize=False, shrink=True)
self._setup_slider_config(vpane, 'vpane.slider-position')
self.vpane.pack1(self.widget, resize=True, shrink=False)
self.vpane.pack2(self.bottombar, resize=False, shrink=True)
self.vpane.show_all()
self._config.register('vpane.slider-position', -1)
self.vpane.set_position(self._config.get('vpane.slider-position'))
self.sidebar_toggled(self.sidebar.get_property('visible'))
self.hpane_sig = hpane.connect("draw", self.set_page_slider)
@ -343,6 +346,11 @@ class PageView(DbGUIElement, metaclass=ABCMeta):
self.bottombar.set_inactive()
self.active = False
def post_create(self):
if self.vpane:
self._setup_slider_config(self.vpane, 'vpane.slider-position')
self.vpane = None
@abstractmethod
def build_tree(self):
"""

View File

@ -29,7 +29,6 @@ BSDDBTxn class: Wrapper for BSDDB transaction-oriented methods
#-------------------------------------------------------------------------
import logging
import inspect
import os
#-------------------------------------------------------------------------
#
@ -73,14 +72,13 @@ class BSDDBTxn:
"""
# Conditional on __debug__ because all that frame stuff may be slow
if __debug__:
caller_frame = inspect.stack()[1]
frame = inspect.currentframe()
c_frame = frame.f_back
c_code = c_frame.f_code
_LOG.debug(" BSDDBTxn %s instantiated. Called from file %s,"
" line %s, in %s" %
((hex(id(self)),)+
(os.path.split(caller_frame[1])[1],)+
(tuple(caller_frame[i] for i in range(2, 4)))
)
)
" line %s, in %s", hex(id(self)), c_code.co_filename,
c_frame.f_lineno, c_code.co_name)
self.env = env
self.db = db
self.txn = None

View File

@ -31,7 +31,7 @@ SVG document generator.
#
#-------------------------------------------------------------------------
from io import StringIO
from xml.sax.saxutils import escape
#-------------------------------------------------------------------------
#
# Gramps modules
@ -147,7 +147,7 @@ class SvgDrawDoc(BaseDoc, DrawDoc):
linex = xpos + (width - self.string_width(font, line)) / 2
self.buffer.write(
'<tspan x="%4.2f" dy="%d">' % (linex, size) +
line +
escape(line) +
'</tspan>'
)
self.buffer.write('</text>\n')
@ -273,7 +273,7 @@ class SvgDrawDoc(BaseDoc, DrawDoc):
self.buffer.write(' font-family:serif;')
self.buffer.write(
'">' +
line +
escape(line) +
'</text>\n'
)
@ -307,7 +307,7 @@ class SvgDrawDoc(BaseDoc, DrawDoc):
self.buffer.write('font-family:serif;')
self.buffer.write(
'">' +
text +
escape(text) +
'</text>\n'
)

View File

@ -202,7 +202,7 @@ class CalendarWriter:
date = event.get_date_object()
place_handle = event.get_place_handle()
date_string = self.format_date(date, 1)
if date_string is not "":
if date_string != "":
# self.writeln("")
self.writeln("BEGIN:VEVENT")
time_s = time.gmtime(event.change)

View File

@ -300,6 +300,8 @@ class DateRange:
"""
start = None
stop = None
if date.is_empty():
return (None, None)
if date.modifier == Date.MOD_NONE:
start = date.sortval
stop = date.sortval

View File

@ -271,6 +271,7 @@ class BirthdayReport(Report):
for person_handle in people:
step()
person = self.database.get_person_from_handle(person_handle)
short_name = self.get_name(person)
birth_ref = person.get_birth_ref()
birth_date = None
if birth_ref:

View File

@ -441,7 +441,8 @@ class TagReport(Report):
for place_handle in place_list:
place = self.database.get_place_from_handle(place_handle)
place_title = _pd.display(self.database, place, self.place_format)
place_title = _pd.display(self.database, place, None,
self.place_format)
self.doc.start_row()

View File

@ -18,7 +18,7 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
VERSION_TUPLE = (5, 1, 3)
VERSION_TUPLE = (5, 1, 4)
VERSION_QUALIFIER = ""
VERSION = '.'.join(map(str,VERSION_TUPLE)) + VERSION_QUALIFIER
major_version = "%s.%s" % (VERSION_TUPLE[0], VERSION_TUPLE[1])

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

Before

Width:  |  Height:  |  Size: 709 B

After

Width:  |  Height:  |  Size: 709 B

View File

Before

Width:  |  Height:  |  Size: 1003 B

After

Width:  |  Height:  |  Size: 1003 B

View File

Before

Width:  |  Height:  |  Size: 1003 B

After

Width:  |  Height:  |  Size: 1003 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

View File

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 61 KiB

View File

@ -7,7 +7,7 @@
<key>CFBundleExecutable</key>
<string>Gramps</string>
<key>CFBundleGetInfoString</key>
<string>Gramps-5.1.2-1, (C) 1997-2020 The Gramps Team http://www.gramps-project.org</string>
<string>Gramps-5.1.3-1, (C) 1997-2020 The Gramps Team http://www.gramps-project.org</string>
<key>CFBundleIconFile</key>
<string>gramps.icns</string>
<key>CFBundleIdentifier</key>
@ -17,11 +17,11 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>Gramps-5.1.2-1</string>
<string>Gramps-5.1.3-1</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>Gramps-5.1.2-1</string>
<string>Gramps-5.1.3-1</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright 1997 - 2020 The Gramps Team, GNU General Public License.</string>
<key>LSMinimumSystemVersion</key>

View File

@ -41,7 +41,7 @@
</binary>
<binary recurse="True">
${prefix}/lib/python3.6/*.so
${prefix}/lib/python3.8/*.so
</binary>
<binary>
@ -96,6 +96,10 @@
${prefix}/lib/libgexiv2.dylib
</binary>
<binary>
${prefix}/lib/libgeocode-glib.dylib
</binary>
<gir>
${prefix}/share/gir-1.0/*.gir
</gir>
@ -144,19 +148,19 @@
<!-- We have to pull in the python modules, which are mixed python
and loadable modules. -->
<data recurse="True">
${prefix}/lib/python3.6/*.py
${prefix}/lib/python3.8/*.py
</data>
<data>
${prefix}/lib/python3.6/config-3.6m-darwin/
${prefix}/lib/python3.8/config-3.8-darwin/
</data>
<data>
${prefix}/lib/python3.6/site-packages/gramps/gen/utils/resource-path
${prefix}/lib/python3.8/site-packages/gramps/gen/utils/resource-path
</data>
<data>
${prefix}/include/python3.6m/pyconfig.h
${prefix}/include/python3.8/pyconfig.h
</data>
@ -173,7 +177,7 @@
</data>
<data recurse="True">
${prefix}/lib/python3.6/site-packages/gramps/*.glade
${prefix}/lib/python3.8/site-packages/gramps/*.glade
</data>
<data>

View File

@ -65,9 +65,9 @@ gtk-mac-bundler gtk-osx-build/projects/gramps/gramps.bundle
</distutils>
<distutils id="gramps" supports-non-srcdir-builds="no">
<branch module="gramps-project/gramps/archive/v5.1.2.tar.gz"
repo="github-tarball" version="5.1.2"
checkoutdir="gramps-gramps-5.1.2"/>
<branch module="gramps-project/gramps/archive/v5.1.3.tar.gz"
repo="github-tarball" version="5.1.3"
checkoutdir="gramps-gramps-5.1.3"/>
<dependencies>
<dep package="meta-gramps-modules"/>
</dependencies>
@ -106,6 +106,25 @@ gtk-mac-bundler gtk-osx-build/projects/gramps/gramps.bundle
<branch module="xdg-utils-1.0.2.tgz" version="1.0.2" repo="xdg-utils"/>
</autotools>
<meson id="json-glib">
<branch module="json-glib/1.4/json-glib-1.4.4.tar.xz"
version="1.4.4" repo="ftp.gnome.org"
hash="sha256:720c5f4379513dc11fd97dc75336eb0c0d3338c53128044d9fabec4374f4bc47"/>
<dependencies>
<dep package="gobject-introspection"/>
</dependencies>
</meson>
<meson id="geocode-glib" mesonargs="-Denable-gtk-doc=false">
<branch module="geocode-glib/3.26/geocode-glib-3.26.2.tar.xz"
version="3.26.2" repo="ftp.gnome.org"
hash="sha256:01fe84cfa0be50c6e401147a2bc5e2f1574326e2293b55c69879be3e82030fd1"/>
<dependencies>
<dep package="json-glib"/>
<dep package="libsoup"/>
</dependencies>
</meson>
<autotools id="osmgpsmap" skip-autogen="never"
autogenargs="--disable-gtk-doc-html"
supports-non-srcdir-builds="no">
@ -173,6 +192,7 @@ gtk-mac-bundler gtk-osx-build/projects/gramps/gramps.bundle
<dep package="shared-mime-info"/>
<dep package="hunspell"/>
<dep package="gtkspell3"/>
<dep package="geocode-glib"/>
<dep package="osmgpsmap"/>
<dep package="graphviz"/>
<dep package="gexiv2"/>

View File

@ -40,6 +40,8 @@ environ['USERPROFILE'] = environ['HOME']
environ['APPDATA'] = join(environ['HOME'], 'Library', 'Application Support')
environ['PATH'] = join(bundle_contents, 'MacOS') + ':' + environ['PATH']
if __name__ == '__main__':
__file__ = 'gramps_launcher.py'
import gramps.grampsapp as app
app.main()

View File

@ -38,7 +38,7 @@ msgstr ""
"Project-Id-Version: gramps 3.3.x\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-07-15 22:20+0200\n"
"PO-Revision-Date: 2020-01-07 16:39+0100\n"
"PO-Revision-Date: 2020-09-25 09:02+0200\n"
"Last-Translator: Zdeněk Hataš <zdenek.hatas@gmail.com>\n"
"Language-Team: Czech <Czech <gnome-cs-list@gnome.org>>\n"
"Language: cs\n"
@ -48,7 +48,7 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Poedit-Bookmarks: 2035,-1,-1,-1,-1,-1,-1,-1,-1,-1\n"
"X-Poedit-SourceCharset: utf-8\n"
"X-Generator: Poedit 2.0.6\n"
"X-Generator: Poedit 2.3\n"
#: ../data/gramps.appdata.xml.in.h:1
msgid ""
@ -2514,7 +2514,7 @@ msgstr "P=červen|D=června|T=červnu|O=červnem"
#: ../gramps/gen/datehandler/_datestrings.py:85
msgid "localized lexeme inflections||July"
msgstr "P=červenec|D=července|T=červenci|O=červencen"
msgstr "P=červenec|D=července|T=červenci|O=červencem"
#: ../gramps/gen/datehandler/_datestrings.py:86
msgid "localized lexeme inflections||August"
@ -11805,11 +11805,13 @@ msgid "Show text label beside Navigator buttons (requires restart)"
msgstr "Zobrazovat text vedle tlačítek Navigátoru (projeví se po restartu)"
#: ../gramps/gui/configure.py:1343
#, fuzzy
msgid ""
"Show or hide text beside Navigator buttons (People, Families, Events...).\n"
"Requires Gramps restart to apply."
msgstr "Zobrazovat text vedle tlačítek Navigátoru (projeví se po restartu)"
msgstr ""
"Zobrazovat nebo skrýt text vedle tlačítek Navigátoru (Osoby, Rodiny, "
"Události ...).\n"
"Projeví se po restartu Gramps."
#: ../gramps/gui/configure.py:1349
msgid "Show close button in gramplet bar tabs"
@ -14097,7 +14099,7 @@ msgstr "Link_Editor"
#: ../gramps/gui/editors/editlink.py:87 ../gramps/gui/editors/editlink.py:239
msgid "Link Editor"
msgstr " Editor linků"
msgstr "Editor linků"
#: ../gramps/gui/editors/editlink.py:91
msgid "Internet Address"
@ -15388,7 +15390,7 @@ msgstr "Příště se již neptat"
#: ../gramps/gui/glade/displaystate.glade:7
msgid "Gramps Warnings"
msgstr " Varování Gramps"
msgstr "Varování Gramps"
#: ../gramps/gui/glade/editaddress.glade:44
#: ../gramps/gui/glade/editchildref.glade:47
@ -23318,9 +23320,8 @@ msgid "Gramplet showing the events for all the family"
msgstr "Gramplet zobrazující události pro celou rodinu"
#: ../gramps/plugins/gramplet/leak.py:99
#, fuzzy
msgid "Referrer"
msgstr "Odkaz"
msgstr "Odkazující"
#: ../gramps/plugins/gramplet/leak.py:103
msgid "Uncollected object"
@ -23434,7 +23435,7 @@ msgstr "Dvojklikem zobrazit osoby v generacích"
#: ../gramps/plugins/gramplet/pedigreegramplet.py:264
#, python-format
msgid " has 1 of 1 individual (%(percent)s complete)\n"
msgstr "zahrnuje pouze jednoho jednotlivce (dokončeno z %(percent)s)\n"
msgstr " zahrnuje pouze jednoho jednotlivce (dokončeno z %(percent)s)\n"
#. Create the Generation title, set an index marker
#: ../gramps/plugins/gramplet/pedigreegramplet.py:267
@ -25069,7 +25070,7 @@ msgstr "Oddělený(á)"
#: ../gramps/plugins/importer/importgeneweb.py:197
msgid "GeneWeb import"
msgstr "importovat GeneWeb"
msgstr "Importovat GeneWeb"
#: ../gramps/plugins/importer/importgeneweb.py:912
#, python-brace-format
@ -25167,11 +25168,12 @@ msgstr ""
#: ../gramps/plugins/importer/importprogen.glade:49
#: ../gramps/plugins/importer/importprogen.glade:70
#, fuzzy
msgid ""
"Source reference\n"
"(out of Settings)"
msgstr "Hledají se problémové odkazy na prameny"
msgstr ""
"Zdrojový odkaz\n"
"(mimo Předvolby)"
#: ../gramps/plugins/importer/importprogen.glade:124
msgid ""
@ -25218,11 +25220,10 @@ msgid "Import Text"
msgstr "Import textu"
#: ../gramps/plugins/importer/importprogen.glade:415
#, fuzzy
msgid ""
"Default Tagtext\n"
"(out of Settings)."
msgstr "Nastavení výchozí předpony a spojky"
msgstr "Výchozí text štítku (mimo Předvolby)."
#: ../gramps/plugins/importer/importprogen.glade:443
msgid "Import Filename."
@ -25330,7 +25331,7 @@ msgid ""
"event description."
msgstr ""
"Uložit datum narození\n"
"v popisu události"
"v popisu události."
#: ../gramps/plugins/importer/importprogen.glade:1495
msgid ""
@ -25338,7 +25339,7 @@ msgid ""
"event description."
msgstr ""
"Uložit datum úmrtí\n"
"v popisu události"
"v popisu události."
#: ../gramps/plugins/importer/importprogen.glade:1515
msgid "Diverse"
@ -25605,7 +25606,7 @@ msgstr " Štítky: %d\n"
#: ../gramps/plugins/importer/importxml.py:291
#, python-format
msgid " Citations: %d\n"
msgstr "Citací: %d\n"
msgstr " Citací: %d\n"
#: ../gramps/plugins/importer/importxml.py:293
msgid "Number of new objects imported:\n"
@ -25916,7 +25917,7 @@ msgstr "Řádek ignorován "
#: ../gramps/plugins/lib/libgedcom.py:1540
#, python-format
msgid "Illegal character%s"
msgstr "neplatný znak%s"
msgstr "Neplatný znak%s"
#: ../gramps/plugins/lib/libgedcom.py:1820
msgid "Your GEDCOM file is corrupted. It appears to have been truncated."
@ -30078,7 +30079,7 @@ msgstr "Importují se osoby."
#: ../gramps/plugins/lib/libprogen.py:1414
msgid "see address on "
msgstr "viz adresa"
msgstr "viz adresa "
#: ../gramps/plugins/lib/libprogen.py:1417
msgid "see also address"
@ -30091,7 +30092,7 @@ msgstr "Důvod úmrtí"
#. start feedback about import progress (GUI/TXT)
#: ../gramps/plugins/lib/libprogen.py:1586
msgid "Importing families."
msgstr "Importují se rodiny"
msgstr "Importují se rodiny."
#: ../gramps/plugins/lib/libprogen.py:1691
msgid "Civil union"
@ -30467,12 +30468,12 @@ msgstr "Dánsko"
#. TODO for Arabic, should the next line's comma be translated?
#: ../gramps/plugins/mapservices/eniroswedenmap.py:81
msgid " parish"
msgstr "farnost"
msgstr " farnost"
#. TODO for Arabic, should the next line's comma be translated?
#: ../gramps/plugins/mapservices/eniroswedenmap.py:87
msgid " state"
msgstr "kraj"
msgstr " kraj"
#: ../gramps/plugins/mapservices/eniroswedenmap.py:150
msgid "Latitude not within '54.55' to '69.05'\n"
@ -31548,9 +31549,8 @@ msgid "Dead Symbol"
msgstr "Symbol úmrtí"
#: ../gramps/plugins/textreport/birthdayreport.py:512
#, fuzzy
msgid "This will show after name to indicate that person is dead"
msgstr "Štítek indikující, že osoba je kompletní"
msgstr "Štítek za jménem indikující, že osoba zemřela"
#: ../gramps/plugins/textreport/birthdayreport.py:519
msgid "Show event year"
@ -31643,7 +31643,7 @@ msgstr "sp. %(reference)s : %(spouse)s"
#: ../gramps/plugins/textreport/descendreport.py:393
#, python-format
msgid "%s sp."
msgstr " %s sp."
msgstr "%s sp."
#: ../gramps/plugins/textreport/descendreport.py:526
#: ../gramps/plugins/textreport/detdescendantreport.py:1011
@ -34288,9 +34288,8 @@ msgstr "ukazatel"
#. 2=double underline
#: ../gramps/plugins/tool/removespaces.py:135
#, fuzzy
msgid "firstname"
msgstr "Vyhovují lidé s chybějícím křestním jménem nebo příjmením"
msgstr "křestní jméno"
#. 2=double underline
#: ../gramps/plugins/tool/removespaces.py:143
@ -35031,19 +35030,16 @@ msgid "Old age but no death"
msgstr "Starý ale živý"
#: ../gramps/plugins/tool/verify.py:1806
#, fuzzy
msgid "Birth equals death"
msgstr "Smrt před narozením"
msgstr "Narození je rovno úmrtí"
#: ../gramps/plugins/tool/verify.py:1824
#, fuzzy
msgid "Birth equals marriage"
msgstr "Sňatek před narozením"
msgstr "Narození je rovno sňatku"
#: ../gramps/plugins/tool/verify.py:1842
#, fuzzy
msgid "Death equals marriage"
msgstr "Sňatek po smrti"
msgstr "Úmrtí je rovna sňatku"
#: ../gramps/plugins/view/citationlistview.py:105
msgid "Source: Title"
@ -35413,7 +35409,6 @@ msgstr "Stejnoměrné rozložení potomků"
#: ../gramps/plugins/view/fanchart2wayview.py:329
#: ../gramps/plugins/view/fanchartdescview.py:328
#, fuzzy
msgid "Size proportional to number of descendants"
msgstr "Velikost proporcionálně k počtu potomků"
@ -35600,14 +35595,13 @@ msgid "Selecting all events"
msgstr "Vybírají se všechny události"
#: ../gramps/plugins/view/geoevents.py:368
#, fuzzy
msgid ""
"Right click on the map and select 'show all events' to show all known events "
"with coordinates. You can use the history to navigate on the map. You can "
"use filtering."
msgstr ""
"Klikněte pravým tlačítkem myši na mapu s vyberte 'Zobrazit všechna místa' "
"pro zobrazení všech známých st včetně souřadnic. Pro navigaci v mapě "
"Klikněte pravým tlačítkem myši na mapu s vyberte 'zobrazit všechny události' "
"pro zobrazení všech známých událostí včetně souřadnic. Pro navigaci v mapě "
"můžete použít historii. Můžete použít filtrování."
#: ../gramps/plugins/view/geoevents.py:408
@ -36243,7 +36237,7 @@ msgstr " (1 bratr)"
#: ../gramps/plugins/view/relview.py:1053
#: ../gramps/plugins/view/relview.py:1108
msgid " (1 sister)"
msgstr "(1 sestra)"
msgstr " (1 sestra)"
#: ../gramps/plugins/view/relview.py:1055
#: ../gramps/plugins/view/relview.py:1110
@ -36310,14 +36304,14 @@ msgstr "Spusťte prosím nástroj pro ověření integrity/opravy databáze"
#, python-brace-format
msgid " ({number_of} child)"
msgid_plural " ({number_of} children)"
msgstr[0] "({number_of} potomek)"
msgstr[1] "({number_of} potomci)"
msgstr[2] "({number_of} potomků)"
msgstr[0] " ({number_of} potomek)"
msgstr[1] " ({number_of} potomci)"
msgstr[2] " ({number_of} potomků)"
#: ../gramps/plugins/view/relview.py:1567
#: ../gramps/plugins/view/relview.py:1613
msgid " (no children)"
msgstr "(bez dětí)"
msgstr " (bez dětí)"
#: ../gramps/plugins/view/relview.py:1871
msgid "Use shading"
@ -36556,7 +36550,7 @@ msgstr "Poslední změna nastala %(date)s"
#: ../gramps/plugins/webreport/basepage.py:1319
#, python-format
msgid " on %(date)s"
msgstr "%(date)s"
msgstr " %(date)s"
#: ../gramps/plugins/webreport/basepage.py:1340
#: ../gramps/plugins/webreport/basepage.py:1345
@ -36622,7 +36616,7 @@ msgstr "Další"
#: ../gramps/plugins/webreport/basepage.py:2127
msgid " [Click to Go]"
msgstr "[Kliknout pro pokračování]"
msgstr " [Kliknout pro pokračování]"
#: ../gramps/plugins/webreport/basepage.py:2151
msgid "Latter-Day Saints/ LDS Ordinance"
@ -36913,7 +36907,7 @@ msgstr "Volby Html"
#: ../gramps/plugins/webreport/narrativeweb.py:1678
#: ../gramps/plugins/webreport/webcal.py:1685
msgid "File extension"
msgstr "přípona souboru"
msgstr "Přípona souboru"
#: ../gramps/plugins/webreport/narrativeweb.py:1681
#: ../gramps/plugins/webreport/webcal.py:1688
@ -37043,9 +37037,9 @@ msgid "Sort places references either by date or by name"
msgstr "Třídit odkazy na místa podle data nebo jména"
#: ../gramps/plugins/webreport/narrativeweb.py:1796
#, fuzzy
msgid "Sort the places references by date or by name. Not set means by date."
msgstr "Třídit odkazy na místa podle data nebo jména"
msgstr ""
"Třídit odkazy na místa podle data nebo jména. Nenastaveno znamená podle data."
#: ../gramps/plugins/webreport/narrativeweb.py:1800
msgid "Graph generations"
@ -37184,13 +37178,11 @@ msgid "Max width of initial image"
msgstr "Maximální šířka výchozího obrázku"
#: ../gramps/plugins/webreport/narrativeweb.py:1893
#, fuzzy
msgid ""
"This allows you to set the maximum width of the image shown on the media "
"page."
msgstr ""
"Umožní vám nastavit maximální šířku obrázku zobrazeného na stránce média. "
"Nastavení na 0 ruší limit."
"Umožní vám nastavit maximální šířku obrázku zobrazeného na stránce média."
#: ../gramps/plugins/webreport/narrativeweb.py:1898
msgid "Max height of initial image"

677
po/de.po

File diff suppressed because it is too large Load Diff

3728
po/es.po

File diff suppressed because it is too large Load Diff

1290
po/hu.po

File diff suppressed because it is too large Load Diff

20654
po/nl.po

File diff suppressed because it is too large Load Diff

416
po/ru.po

File diff suppressed because it is too large Load Diff

View File

@ -27,7 +27,7 @@ msgstr ""
"Project-Id-Version: sv\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-07-15 22:20+0200\n"
"PO-Revision-Date: 2020-06-22 21:42+0200\n"
"PO-Revision-Date: 2020-08-12 20:03+0200\n"
"Last-Translator: Pär Ekholm <pehlm@pekholm.se>\n"
"Language-Team: \n"
"Language: sv\n"
@ -35,7 +35,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.0.6\n"
"X-Generator: Poedit 2.3\n"
#: ../data/gramps.appdata.xml.in.h:1
msgid ""
@ -30540,6 +30540,18 @@ msgid ""
"\n"
"The next errors will be normal"
msgstr ""
"Du måste verifiera och ändra tilecachen\n"
"...\n"
"[geography]\n"
"...\n"
"path='bad/path'\n"
"...\n"
"i gramps.ini-filen :\n"
"%s\n"
"\n"
"Innan ändring av gramps.ini-filen, måste gramps stängas ned\n"
"\n"
"Senare fel kommer att vara normala"
#: ../gramps/plugins/lib/maps/osmgps.py:174
#: ../gramps/plugins/lib/maps/osmgps.py:239
@ -37287,13 +37299,12 @@ msgid "Max width of initial image"
msgstr "Största bredd på första bild"
#: ../gramps/plugins/webreport/narrativeweb.py:1893
#, fuzzy
msgid ""
"This allows you to set the maximum width of the image shown on the media "
"page."
msgstr ""
"Detta tillåter dig att ställa in den största bredden för bilden som visas på "
"mediasidan. Sätt till 0 för obegränsad bredd."
"mediasidan."
#: ../gramps/plugins/webreport/narrativeweb.py:1898
msgid "Max height of initial image"

File diff suppressed because it is too large Load Diff

View File

@ -419,8 +419,7 @@ package_data = package_data_core + package_data_gui
# Resources
#
#-------------------------------------------------------------------------
data_files_core = [('share/mime-info', ['data/gramps.mime']),
('share/icons', ['images/gramps.png'])]
data_files_core = [('share/mime-info', ['data/gramps.mime'])]
DOC_FILES = ['AUTHORS', 'COPYING', 'FAQ', 'INSTALL', 'NEWS', 'README.md',
'TODO']
GEDCOM_FILES = glob.glob(os.path.join('example', 'gedcom', '*.*'))
@ -441,8 +440,8 @@ data_files_core.append(('share/gramps/css/swanky-purse/images', SWANKY_IMG))
PNG_FILES = glob.glob(os.path.join('data', '*.png'))
SVG_FILES = glob.glob(os.path.join('data', '*.svg'))
data_files_core.append(('share/icons/gnome/48x48/mimetypes', PNG_FILES))
data_files_core.append(('share/icons/gnome/scalable/mimetypes', SVG_FILES))
data_files_core.append(('share/icons/hicolor/48x48/mimetypes', PNG_FILES))
data_files_core.append(('share/icons/hicolor/scalable/mimetypes', SVG_FILES))
DTD_FILES = glob.glob(os.path.join('data', '*.dtd'))
RNG_FILES = glob.glob(os.path.join('data', '*.rng'))
@ -465,6 +464,20 @@ data_files_gui.append(('share/gramps/images/hicolor/22x22/actions', ICON_22))
data_files_gui.append(('share/gramps/images/hicolor/24x24/actions', ICON_24))
data_files_gui.append(('share/gramps/images/hicolor/48x48/actions', ICON_48))
data_files_gui.append(('share/gramps/images/hicolor/scalable/actions', ICON_SC))
APP_16 = os.path.join(THEME, '16x16', 'apps', 'gramps.png')
APP_22 = os.path.join(THEME, '22x22', 'apps', 'gramps.png')
APP_24 = os.path.join(THEME, '24x24', 'apps', 'gramps.png')
APP_48 = os.path.join(THEME, '48x48', 'apps', 'gramps.png')
APP_128 = os.path.join(THEME, '128x128', 'apps', 'gramps.png')
APP_256 = os.path.join(THEME, '256x256', 'apps', 'gramps.png')
APP_SC = os.path.join(THEME, 'scalable', 'apps', 'gramps.svg')
data_files_gui.append(('share/icons/hicolor/16x16/apps', [APP_16]))
data_files_gui.append(('share/icons/hicolor/22x22/apps', [APP_22]))
data_files_gui.append(('share/icons/hicolor/24x24/apps', [APP_24]))
data_files_gui.append(('share/icons/hicolor/48x48/apps', [APP_48]))
data_files_gui.append(('share/icons/hicolor/128x128/apps', [APP_128]))
data_files_gui.append(('share/icons/hicolor/256x256/apps', [APP_256]))
data_files_gui.append(('share/icons/hicolor/scalable/apps', [APP_SC]))
data_files = data_files_core + data_files_gui