Compare commits
41 Commits
v5.2.0-dev
...
bug12260
Author | SHA1 | Date | |
---|---|---|---|
|
1f614bd76f | ||
|
0442c34258 | ||
|
c903f5e5a5 | ||
|
3329860f50 | ||
|
e7401f3aaa | ||
|
1a48e8a03e | ||
|
9a4adab9d6 | ||
|
bb0647274b | ||
|
f6bfb46fc0 | ||
|
b6fa5da8ee | ||
|
14c2d0e1b6 | ||
|
226e8c549a | ||
|
d173809d8c | ||
|
63c52fa1bb | ||
|
455628d44a | ||
|
670bb355cb | ||
|
202c7a9bf6 | ||
|
72955840f1 | ||
|
b8e73d5ee1 | ||
|
990db39664 | ||
|
9c0dca6bd1 | ||
|
02e0c1c67d | ||
|
ebf1715468 | ||
|
c10f2da00e | ||
|
9f71372a97 | ||
|
0993d9cfc3 | ||
|
34471834ab | ||
|
ff912f844c | ||
|
45eac501a9 | ||
|
d4e85c2397 | ||
|
c7a4d287f0 | ||
|
c0d622c16a | ||
|
b38f77f2aa | ||
|
d91fc9e2fb | ||
|
198602be61 | ||
|
3f9f3215ee | ||
|
beb388a30d | ||
|
29e78d4253 | ||
|
b80dcaf701 | ||
|
a876d94fbc | ||
|
95e1e8cb67 |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 52 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
7
debian/changelog
vendored
@@ -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
@@ -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
|
||||
|
@@ -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
|
||||
|
||||
|
@@ -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
|
||||
|
||||
|
@@ -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
|
||||
|
@@ -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):
|
||||
|
@@ -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'
|
||||
|
@@ -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)
|
||||
|
||||
|
@@ -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() """
|
||||
|
@@ -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:
|
||||
|
@@ -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)
|
||||
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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)
|
||||
|
@@ -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" %
|
||||
|
@@ -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>
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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.
|
||||
"""
|
||||
|
@@ -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
|
||||
|
@@ -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):
|
||||
"""
|
||||
|
@@ -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
|
||||
|
@@ -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'
|
||||
)
|
||||
|
||||
|
@@ -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)
|
||||
|
@@ -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
|
||||
|
@@ -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:
|
||||
|
@@ -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()
|
||||
|
||||
|
BIN
images/hicolor/128x128/apps/gramps.png
Normal file
After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 709 B After Width: | Height: | Size: 709 B |
Before Width: | Height: | Size: 1003 B After Width: | Height: | Size: 1003 B |
Before Width: | Height: | Size: 1003 B After Width: | Height: | Size: 1003 B |
BIN
images/hicolor/256x256/apps/gramps.png
Normal file
After Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 61 KiB |
@@ -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>
|
||||
|
@@ -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()
|
||||
|
||||
|
46
po/cs.po
@@ -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-08-21 11:01+0200\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"
|
||||
@@ -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"
|
||||
@@ -14099,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"
|
||||
@@ -15390,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
|
||||
@@ -23435,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
|
||||
@@ -25070,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
|
||||
@@ -25331,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 ""
|
||||
@@ -25339,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"
|
||||
@@ -25606,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"
|
||||
@@ -25917,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."
|
||||
@@ -30079,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"
|
||||
@@ -30092,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"
|
||||
@@ -30468,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"
|
||||
@@ -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
|
||||
@@ -36237,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
|
||||
@@ -36304,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"
|
||||
@@ -36550,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
|
||||
@@ -36616,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"
|
||||
@@ -36907,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
|
||||
|
425
po/zh_CN.po
21
setup.py
@@ -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
|
||||
|
||||
|