Compare commits
41
Commits
v5.2.0-dev2
...
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 |
No files matched your search
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Vendored
+7
@@ -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
|
||||
|
||||
Vendored
+1
-1
@@ -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
|
||||
|
||||
|
||||
+11
-7
@@ -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:
|
||||
|
||||
+38
-21
@@ -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
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+1
-1
@@ -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()
|
||||
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 24 KiB |
File renamed without changes.
File renamed without changes.
File renamed without changes.
Binary file not shown.
|
After Width: | Height: | Size: 57 KiB |
File renamed without changes.
File renamed without changes.
+10
-6
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
+200
-225
File diff suppressed because it is too large.
Load diff
@@ -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
|
||||
|
||||
|
||||
Reference in new issue
Block a user