FR10850 V1: Refresh button in the gramplet bar.
Fixes #10850 This is the first method to avoid reloading gramplet automaticaly.
This commit is contained in:
parent
263a082afe
commit
d48dcc9c5f
@ -196,6 +196,7 @@ register('interface.view-categories',
|
|||||||
register('interface.filter', False)
|
register('interface.filter', False)
|
||||||
register('interface.fullscreen', False)
|
register('interface.fullscreen', False)
|
||||||
register('interface.grampletbar-close', False)
|
register('interface.grampletbar-close', False)
|
||||||
|
register('interface.grampletbar-refresh', False)
|
||||||
register('interface.ignore-gexiv2', False)
|
register('interface.ignore-gexiv2', False)
|
||||||
register('interface.ignore-pil', False)
|
register('interface.ignore-pil', False)
|
||||||
register('interface.ignore-osmgpsmap', False)
|
register('interface.ignore-osmgpsmap', False)
|
||||||
|
@ -34,6 +34,7 @@ LOG = logging.getLogger(".Gramplets")
|
|||||||
#
|
#
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
from ..const import GRAMPS_LOCALE as glocale
|
from ..const import GRAMPS_LOCALE as glocale
|
||||||
|
from gramps.gen.config import config
|
||||||
_ = glocale.translation.gettext
|
_ = glocale.translation.gettext
|
||||||
|
|
||||||
class Gramplet:
|
class Gramplet:
|
||||||
@ -296,12 +297,15 @@ class Gramplet:
|
|||||||
not self.gui.force_update):
|
not self.gui.force_update):
|
||||||
self.dirty = True
|
self.dirty = True
|
||||||
if self.dbstate.is_open():
|
if self.dbstate.is_open():
|
||||||
#print " %s is not active" % self.gui.gname
|
#print(" %s is not active" % self.gui.gname)
|
||||||
self.update_has_data()
|
self.update_has_data()
|
||||||
else:
|
else:
|
||||||
self.set_has_data(False)
|
self.set_has_data(False)
|
||||||
return
|
return
|
||||||
#print " %s is UPDATING" % self.gui.gname
|
#print(" %s is UPDATING" % self.gui.gname)
|
||||||
|
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
|
self.dirty = False
|
||||||
LOG.debug("gramplet updater: %s: running" % self.gui.title)
|
LOG.debug("gramplet updater: %s: running" % self.gui.title)
|
||||||
if self._idle_id != 0:
|
if self._idle_id != 0:
|
||||||
|
@ -984,6 +984,12 @@ class GrampsPreferences(ConfigureDialog):
|
|||||||
"""
|
"""
|
||||||
self.uistate.emit('grampletbar-close-changed')
|
self.uistate.emit('grampletbar-close-changed')
|
||||||
|
|
||||||
|
def cb_grampletbar_refresh(self, obj):
|
||||||
|
"""
|
||||||
|
Gramplet bar refresh button preference callback
|
||||||
|
"""
|
||||||
|
self.uistate.emit('grampletbar-refresh-changed')
|
||||||
|
|
||||||
def add_formats_panel(self, configdialog):
|
def add_formats_panel(self, configdialog):
|
||||||
row = 0
|
row = 0
|
||||||
grid = Gtk.Grid()
|
grid = Gtk.Grid()
|
||||||
@ -1185,6 +1191,13 @@ class GrampsPreferences(ConfigureDialog):
|
|||||||
row, 'interface.grampletbar-close', stop=3,
|
row, 'interface.grampletbar-close', stop=3,
|
||||||
extra_callback=self.cb_grampletbar_close)
|
extra_callback=self.cb_grampletbar_close)
|
||||||
row += 1
|
row += 1
|
||||||
|
|
||||||
|
# Gramplet bar refresh button:
|
||||||
|
self.add_checkbox(grid,
|
||||||
|
_("Enable manual refresh for the active gramplet"),
|
||||||
|
row, 'interface.grampletbar-refresh', stop=3,
|
||||||
|
extra_callback=self.cb_grampletbar_refresh)
|
||||||
|
row += 1
|
||||||
return _('Display'), grid
|
return _('Display'), grid
|
||||||
|
|
||||||
def auto_title_changed(self, obj):
|
def auto_title_changed(self, obj):
|
||||||
|
@ -398,6 +398,7 @@ class DisplayState(Callback):
|
|||||||
'nameformat-changed' : None,
|
'nameformat-changed' : None,
|
||||||
'placeformat-changed' : None,
|
'placeformat-changed' : None,
|
||||||
'grampletbar-close-changed' : None,
|
'grampletbar-close-changed' : None,
|
||||||
|
'grampletbar-refresh-changed' : None,
|
||||||
'update-available' : (list, ),
|
'update-available' : (list, ),
|
||||||
'autobackup' : None,
|
'autobackup' : None,
|
||||||
}
|
}
|
||||||
|
@ -104,6 +104,16 @@ class GrampletBar(Gtk.Notebook):
|
|||||||
self.set_show_border(False)
|
self.set_show_border(False)
|
||||||
self.set_scrollable(True)
|
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()
|
book_button = Gtk.Button()
|
||||||
# Arrow is too small unless in a box
|
# Arrow is too small unless in a box
|
||||||
box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
|
box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
|
||||||
@ -142,6 +152,7 @@ class GrampletBar(Gtk.Notebook):
|
|||||||
self.set_current_page(config_settings[1])
|
self.set_current_page(config_settings[1])
|
||||||
|
|
||||||
uistate.connect('grampletbar-close-changed', self.cb_close_changed)
|
uistate.connect('grampletbar-close-changed', self.cb_close_changed)
|
||||||
|
uistate.connect('grampletbar-refresh-changed', self.cb_refresh_changed)
|
||||||
|
|
||||||
# Connect after gramplets added to prevent making them active
|
# Connect after gramplets added to prevent making them active
|
||||||
self.connect('switch-page', self.__switch_page)
|
self.connect('switch-page', self.__switch_page)
|
||||||
@ -404,6 +415,16 @@ class GrampletBar(Gtk.Notebook):
|
|||||||
tablabel = self.get_tab_label(gramplet)
|
tablabel = self.get_tab_label(gramplet)
|
||||||
tablabel.use_close(config.get('interface.grampletbar-close'))
|
tablabel.use_close(config.get('interface.grampletbar-close'))
|
||||||
|
|
||||||
|
def cb_refresh_changed(self):
|
||||||
|
"""
|
||||||
|
Refresh button preference changed.
|
||||||
|
"""
|
||||||
|
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):
|
def __delete_clicked(self, button, gramplet):
|
||||||
"""
|
"""
|
||||||
Called when the delete button is clicked.
|
Called when the delete button is clicked.
|
||||||
@ -476,6 +497,15 @@ class GrampletBar(Gtk.Notebook):
|
|||||||
gramplet.detached_window.close()
|
gramplet.detached_window.close()
|
||||||
gramplet.detached_window = None
|
gramplet.detached_window = None
|
||||||
|
|
||||||
|
def __refresh_clicked(self, button):
|
||||||
|
"""
|
||||||
|
Called when the drop-down button is clicked.
|
||||||
|
"""
|
||||||
|
for gramplet in self.get_children():
|
||||||
|
if gramplet and gramplet.pui:
|
||||||
|
if gramplet.pui.active:
|
||||||
|
gramplet.pui.main()
|
||||||
|
|
||||||
def __button_clicked(self, button):
|
def __button_clicked(self, button):
|
||||||
"""
|
"""
|
||||||
Called when the drop-down button is clicked.
|
Called when the drop-down button is clicked.
|
||||||
@ -743,7 +773,7 @@ class TabLabel(Gtk.Box):
|
|||||||
|
|
||||||
def use_close(self, use_close):
|
def use_close(self, use_close):
|
||||||
"""
|
"""
|
||||||
Display the cose button according to user preference.
|
Display the close button according to user preference.
|
||||||
"""
|
"""
|
||||||
if use_close:
|
if use_close:
|
||||||
self.closebtn.show()
|
self.closebtn.show()
|
||||||
|
@ -34,6 +34,7 @@ from gi.repository import Pango
|
|||||||
import time
|
import time
|
||||||
import os
|
import os
|
||||||
import configparser
|
import configparser
|
||||||
|
from gramps.gen.config import config
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
@ -242,6 +243,8 @@ class GrampletWindow(ManagedWindow):
|
|||||||
self.setup_configs('interface.' + cfg_name,
|
self.setup_configs('interface.' + cfg_name,
|
||||||
gramplet.detached_width, gramplet.detached_height)
|
gramplet.detached_width, gramplet.detached_height)
|
||||||
self.window.add_button(_('_Help'), Gtk.ResponseType.HELP)
|
self.window.add_button(_('_Help'), Gtk.ResponseType.HELP)
|
||||||
|
if config.get('interface.grampletbar-refresh'):
|
||||||
|
self.window.add_button(_('Refresh'), Gtk.ResponseType.APPLY)
|
||||||
# add gramplet:
|
# add gramplet:
|
||||||
if self.gramplet.pui:
|
if self.gramplet.pui:
|
||||||
self.gramplet.pui.active = True
|
self.gramplet.pui.active = True
|
||||||
@ -274,6 +277,8 @@ class GrampletWindow(ManagedWindow):
|
|||||||
else:
|
else:
|
||||||
display_help(WIKI_HELP_PAGE,
|
display_help(WIKI_HELP_PAGE,
|
||||||
self.gramplet.tname.replace(" ", "_"))
|
self.gramplet.tname.replace(" ", "_"))
|
||||||
|
elif response == Gtk.ResponseType.APPLY:
|
||||||
|
self.refresh()
|
||||||
|
|
||||||
def build_menu_names(self, obj):
|
def build_menu_names(self, obj):
|
||||||
"""
|
"""
|
||||||
@ -281,6 +286,12 @@ class GrampletWindow(ManagedWindow):
|
|||||||
"""
|
"""
|
||||||
return (self.title, 'Gramplet')
|
return (self.title, 'Gramplet')
|
||||||
|
|
||||||
|
def refresh(self):
|
||||||
|
"""
|
||||||
|
Refresh the detached gramplet
|
||||||
|
"""
|
||||||
|
self.gramplet.pui.main() # refresh
|
||||||
|
|
||||||
def get_title(self):
|
def get_title(self):
|
||||||
"""
|
"""
|
||||||
Returns the window title.
|
Returns the window title.
|
||||||
|
Loading…
Reference in New Issue
Block a user