Compare commits
1 Commits
FR10850_V2
...
FR10850_V1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d48dcc9c5f |
@@ -196,7 +196,7 @@ register('interface.view-categories',
|
||||
register('interface.filter', False)
|
||||
register('interface.fullscreen', False)
|
||||
register('interface.grampletbar-close', False)
|
||||
register('interface.grampletbar-freeze', False)
|
||||
register('interface.grampletbar-refresh', False)
|
||||
register('interface.ignore-gexiv2', False)
|
||||
register('interface.ignore-pil', False)
|
||||
register('interface.ignore-osmgpsmap', False)
|
||||
|
||||
@@ -34,6 +34,7 @@ LOG = logging.getLogger(".Gramplets")
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
from ..const import GRAMPS_LOCALE as glocale
|
||||
from gramps.gen.config import config
|
||||
_ = glocale.translation.gettext
|
||||
|
||||
class Gramplet:
|
||||
@@ -291,6 +292,7 @@ class Gramplet:
|
||||
"""
|
||||
The main interface for running the :meth:`main` method.
|
||||
"""
|
||||
from gi.repository import GLib
|
||||
if ((not self.active) and
|
||||
not self.gui.force_update):
|
||||
self.dirty = True
|
||||
@@ -301,36 +303,9 @@ class Gramplet:
|
||||
self.set_has_data(False)
|
||||
return
|
||||
#print(" %s is UPDATING" % self.gui.gname)
|
||||
uva = self.uistate.viewmanager.active_page
|
||||
# The dashboard has no sidebar or bottombar
|
||||
if uva.bottombar:
|
||||
for gramplets in [uva.bottombar.get_children()]:
|
||||
for gramplet in gramplets:
|
||||
for i in range(gramplet.pui.gui.pane.get_n_pages()):
|
||||
child = gramplet.pui.gui.pane.get_nth_page(i)
|
||||
label = gramplet.pui.gui.pane.get_tab_label(child)
|
||||
act_grplet = (i == gramplet.pui.gui.pane.get_current_page())
|
||||
if (gramplet.title == child.get_title() and
|
||||
gramplet.title == self.gui.title and
|
||||
not label.get_freeze().get_active() and
|
||||
act_grplet):
|
||||
self._really_update()
|
||||
for gramplets in [uva.sidebar.get_children()]:
|
||||
for gramplet in gramplets:
|
||||
for i in range(gramplet.pui.gui.pane.get_n_pages()):
|
||||
child = gramplet.pui.gui.pane.get_nth_page(i)
|
||||
label = gramplet.pui.gui.pane.get_tab_label(child)
|
||||
act_grplet = (i == gramplet.pui.gui.pane.get_current_page())
|
||||
if (gramplet.title == child.get_title() and
|
||||
gramplet.title == self.gui.title and
|
||||
not label.get_freeze().get_active() and
|
||||
act_grplet):
|
||||
self._really_update()
|
||||
else:
|
||||
self._really_update()
|
||||
|
||||
def _really_update(self):
|
||||
from gi.repository import GLib
|
||||
if (config.get('interface.grampletbar-refresh') and
|
||||
self.gui.view.navigation_type() != None): # dashboard has no navtype
|
||||
return # Don't update the gramplet if we are in manual refresh
|
||||
self.dirty = False
|
||||
LOG.debug("gramplet updater: %s: running" % self.gui.title)
|
||||
if self._idle_id != 0:
|
||||
|
||||
@@ -984,11 +984,11 @@ class GrampsPreferences(ConfigureDialog):
|
||||
"""
|
||||
self.uistate.emit('grampletbar-close-changed')
|
||||
|
||||
def cb_grampletbar_freeze(self, obj):
|
||||
def cb_grampletbar_refresh(self, obj):
|
||||
"""
|
||||
Gramplet bar freeze/unfreeze button preference callback
|
||||
Gramplet bar refresh button preference callback
|
||||
"""
|
||||
self.uistate.emit('grampletbar-freeze-changed')
|
||||
self.uistate.emit('grampletbar-refresh-changed')
|
||||
|
||||
def add_formats_panel(self, configdialog):
|
||||
row = 0
|
||||
@@ -1192,11 +1192,11 @@ class GrampsPreferences(ConfigureDialog):
|
||||
extra_callback=self.cb_grampletbar_close)
|
||||
row += 1
|
||||
|
||||
# Gramplet bar freeze button:
|
||||
# Gramplet bar refresh button:
|
||||
self.add_checkbox(grid,
|
||||
_("Enable freeze/unfreeze for the active gramplet"),
|
||||
row, 'interface.grampletbar-freeze', stop=3,
|
||||
extra_callback=self.cb_grampletbar_freeze)
|
||||
_("Enable manual refresh for the active gramplet"),
|
||||
row, 'interface.grampletbar-refresh', stop=3,
|
||||
extra_callback=self.cb_grampletbar_refresh)
|
||||
row += 1
|
||||
return _('Display'), grid
|
||||
|
||||
|
||||
@@ -398,7 +398,7 @@ class DisplayState(Callback):
|
||||
'nameformat-changed' : None,
|
||||
'placeformat-changed' : None,
|
||||
'grampletbar-close-changed' : None,
|
||||
'grampletbar-freeze-changed' : None,
|
||||
'grampletbar-refresh-changed' : None,
|
||||
'update-available' : (list, ),
|
||||
'autobackup' : None,
|
||||
}
|
||||
|
||||
@@ -104,6 +104,16 @@ class GrampletBar(Gtk.Notebook):
|
||||
self.set_show_border(False)
|
||||
self.set_scrollable(True)
|
||||
|
||||
image = Gtk.Image(stock=Gtk.STOCK_REFRESH)
|
||||
refresh_button = Gtk.Button(image=image)
|
||||
refresh_button.set_relief(Gtk.ReliefStyle.NONE)
|
||||
refresh_button.connect('clicked', self.__refresh_clicked)
|
||||
self.set_action_widget(refresh_button, Gtk.PackType.START)
|
||||
if config.get('interface.grampletbar-refresh'):
|
||||
refresh_button.show()
|
||||
else:
|
||||
refresh_button.hide()
|
||||
|
||||
book_button = Gtk.Button()
|
||||
# Arrow is too small unless in a box
|
||||
box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
|
||||
@@ -142,7 +152,7 @@ class GrampletBar(Gtk.Notebook):
|
||||
self.set_current_page(config_settings[1])
|
||||
|
||||
uistate.connect('grampletbar-close-changed', self.cb_close_changed)
|
||||
uistate.connect('grampletbar-freeze-changed', self.cb_freeze_changed)
|
||||
uistate.connect('grampletbar-refresh-changed', self.cb_refresh_changed)
|
||||
|
||||
# Connect after gramplets added to prevent making them active
|
||||
self.connect('switch-page', self.__switch_page)
|
||||
@@ -390,11 +400,6 @@ class GrampletBar(Gtk.Notebook):
|
||||
else: # just a function; always show yes it has data
|
||||
tablabel.set_has_data(True)
|
||||
|
||||
if config.get('interface.grampletbar-freeze'):
|
||||
tablabel.use_freeze(True)
|
||||
else:
|
||||
tablabel.use_freeze(False)
|
||||
|
||||
if config.get('interface.grampletbar-close'):
|
||||
tablabel.use_close(True)
|
||||
else:
|
||||
@@ -410,13 +415,15 @@ class GrampletBar(Gtk.Notebook):
|
||||
tablabel = self.get_tab_label(gramplet)
|
||||
tablabel.use_close(config.get('interface.grampletbar-close'))
|
||||
|
||||
def cb_freeze_changed(self):
|
||||
def cb_refresh_changed(self):
|
||||
"""
|
||||
Freeze/unfreeze button preference changed.
|
||||
Refresh button preference changed.
|
||||
"""
|
||||
for gramplet in self.get_children():
|
||||
tablabel = self.get_tab_label(gramplet)
|
||||
tablabel.use_freeze(config.get('interface.grampletbar-freeze'))
|
||||
button = self.get_action_widget(Gtk.PackType.START)
|
||||
if config.get('interface.grampletbar-refresh'):
|
||||
button.show()
|
||||
else:
|
||||
button.hide()
|
||||
|
||||
def __delete_clicked(self, button, gramplet):
|
||||
"""
|
||||
@@ -490,15 +497,14 @@ class GrampletBar(Gtk.Notebook):
|
||||
gramplet.detached_window.close()
|
||||
gramplet.detached_window = None
|
||||
|
||||
def __freeze_clicked(self, button):
|
||||
def __refresh_clicked(self, button):
|
||||
"""
|
||||
Called when the freeze/unfreeze button is clicked.
|
||||
Called when the drop-down button is clicked.
|
||||
"""
|
||||
for gramplet in self.get_children():
|
||||
if gramplet and gramplet.pui:
|
||||
if gramplet.pui.active:
|
||||
if not self.freeze:
|
||||
gramplet.pui.main()
|
||||
gramplet.pui.main()
|
||||
|
||||
def __button_clicked(self, button):
|
||||
"""
|
||||
@@ -625,7 +631,6 @@ class TabGramplet(Gtk.ScrolledWindow, GuiGramplet):
|
||||
self.add(self.textview)
|
||||
self.show_all()
|
||||
self.track = []
|
||||
self.pane = pane
|
||||
|
||||
def get_title(self):
|
||||
return self.title
|
||||
@@ -746,11 +751,6 @@ class TabLabel(Gtk.Box):
|
||||
self.label.set_tooltip_text(gramplet.tname)
|
||||
self.label.show()
|
||||
|
||||
self.freezebtn = Gtk.ToggleButton()
|
||||
self.freezebtn.connect("toggled", self.update_freeze, gramplet)
|
||||
self.freezebtn.set_active(False)
|
||||
self.update_freeze(self.freezebtn, gramplet)
|
||||
|
||||
self.closebtn = Gtk.Button()
|
||||
image = Gtk.Image()
|
||||
image.set_from_icon_name('window-close', Gtk.IconSize.MENU)
|
||||
@@ -759,7 +759,6 @@ class TabLabel(Gtk.Box):
|
||||
self.closebtn.set_relief(Gtk.ReliefStyle.NONE)
|
||||
|
||||
self.pack_start(self.label, True, True, 0)
|
||||
self.pack_start(self.freezebtn, False, False, 0)
|
||||
self.pack_end(self.closebtn, False, False, 0)
|
||||
|
||||
def set_has_data(self, has_data):
|
||||
@@ -772,39 +771,6 @@ class TabLabel(Gtk.Box):
|
||||
else:
|
||||
self.label.set_text(self.text)
|
||||
|
||||
def update_freeze(self, obj, gramplet):
|
||||
"""
|
||||
Display the correct icon for the button according to user
|
||||
gramplet preference.
|
||||
"""
|
||||
child = obj.get_child()
|
||||
if child:
|
||||
obj.remove(child)
|
||||
image = Gtk.Image()
|
||||
if obj.get_active():
|
||||
image.set_from_icon_name('gramps-lock', Gtk.IconSize.MENU)
|
||||
obj.set_tooltip_text(_('Gramplet update is freezed'))
|
||||
else:
|
||||
image.set_from_icon_name('gramps-unlock', Gtk.IconSize.MENU)
|
||||
obj.set_tooltip_text(_('Gramplet update is allowed'))
|
||||
image.show()
|
||||
obj.add(image)
|
||||
|
||||
def get_freeze(self):
|
||||
"""
|
||||
return the freeze button
|
||||
"""
|
||||
return self.freezebtn
|
||||
|
||||
def use_freeze(self, use_freeze):
|
||||
"""
|
||||
Display the close button according to user preference.
|
||||
"""
|
||||
if use_freeze:
|
||||
self.freezebtn.show()
|
||||
else:
|
||||
self.freezebtn.hide()
|
||||
|
||||
def use_close(self, use_close):
|
||||
"""
|
||||
Display the close button according to user preference.
|
||||
|
||||
@@ -34,6 +34,7 @@ from gi.repository import Pango
|
||||
import time
|
||||
import os
|
||||
import configparser
|
||||
from gramps.gen.config import config
|
||||
|
||||
import logging
|
||||
|
||||
@@ -242,6 +243,8 @@ class GrampletWindow(ManagedWindow):
|
||||
self.setup_configs('interface.' + cfg_name,
|
||||
gramplet.detached_width, gramplet.detached_height)
|
||||
self.window.add_button(_('_Help'), Gtk.ResponseType.HELP)
|
||||
if config.get('interface.grampletbar-refresh'):
|
||||
self.window.add_button(_('Refresh'), Gtk.ResponseType.APPLY)
|
||||
# add gramplet:
|
||||
if self.gramplet.pui:
|
||||
self.gramplet.pui.active = True
|
||||
@@ -274,6 +277,8 @@ class GrampletWindow(ManagedWindow):
|
||||
else:
|
||||
display_help(WIKI_HELP_PAGE,
|
||||
self.gramplet.tname.replace(" ", "_"))
|
||||
elif response == Gtk.ResponseType.APPLY:
|
||||
self.refresh()
|
||||
|
||||
def build_menu_names(self, obj):
|
||||
"""
|
||||
@@ -281,6 +286,12 @@ class GrampletWindow(ManagedWindow):
|
||||
"""
|
||||
return (self.title, 'Gramplet')
|
||||
|
||||
def refresh(self):
|
||||
"""
|
||||
Refresh the detached gramplet
|
||||
"""
|
||||
self.gramplet.pui.main() # refresh
|
||||
|
||||
def get_title(self):
|
||||
"""
|
||||
Returns the window title.
|
||||
|
||||
Reference in New Issue
Block a user