From da8f99bab75a5eda6587bb3c715c70257e1c5485 Mon Sep 17 00:00:00 2001 From: Paul Franklin Date: Thu, 4 Aug 2016 08:54:34 -0700 Subject: [PATCH] 8128: GtkDialog mapped without a transient parent --- .../person/_deeprelationshippathbetween.py | 4 +- gramps/gui/editors/addmedia.py | 48 +++++++++---------- gramps/gui/plug/_guioptions.py | 2 +- gramps/gui/plug/_windows.py | 10 ++-- gramps/gui/plug/export/_exportoptions.py | 3 +- gramps/gui/plug/report/_styleeditor.py | 2 +- gramps/gui/user.py | 5 +- gramps/gui/utils.py | 2 +- gramps/gui/widgets/grampletbar.py | 4 +- gramps/plugins/importer/importprogen.py | 2 +- gramps/plugins/tool/changenames.py | 4 +- gramps/plugins/tool/check.py | 6 +-- gramps/plugins/tool/dateparserdisplaytest.py | 4 +- gramps/plugins/tool/eventcmp.py | 9 ++-- gramps/plugins/tool/finddupes.py | 4 +- gramps/plugins/tool/findloop.py | 2 +- gramps/plugins/tool/mergecitations.py | 2 +- gramps/plugins/tool/notrelated.py | 4 +- gramps/plugins/tool/patchnames.py | 2 +- gramps/plugins/tool/populatesources.py | 2 +- gramps/plugins/tool/reorderids.py | 3 +- gramps/plugins/tool/testcasegenerator.py | 4 +- gramps/plugins/view/geoevents.py | 6 ++- gramps/plugins/view/geoplaces.py | 6 ++- 24 files changed, 74 insertions(+), 66 deletions(-) diff --git a/gramps/gen/filters/rules/person/_deeprelationshippathbetween.py b/gramps/gen/filters/rules/person/_deeprelationshippathbetween.py index fcf48e799..7c020783d 100644 --- a/gramps/gen/filters/rules/person/_deeprelationshippathbetween.py +++ b/gramps/gen/filters/rules/person/_deeprelationshippathbetween.py @@ -128,12 +128,12 @@ class DeepRelationshipPathBetween(Rule): " Each path is not necessarily the shortest path.") def prepare(self, db): - # FIXME: this should user the User class + # FIXME: this should use the User class from gramps.gui.utils import ProgressMeter root_person_id = self.list[0] root_person = db.get_person_from_gramps_id(root_person_id) - progress = ProgressMeter(_('Finding relationship paths')) + progress = ProgressMeter(_('Finding relationship paths')) # no-parent progress.set_pass(header=_('Evaluating people'), mode=ProgressMeter.MODE_ACTIVITY) filter_name = self.list[1] diff --git a/gramps/gui/editors/addmedia.py b/gramps/gui/editors/addmedia.py index 539ee21cd..3ea0f4266 100644 --- a/gramps/gui/editors/addmedia.py +++ b/gramps/gui/editors/addmedia.py @@ -214,7 +214,7 @@ class AddMedia(ManagedWindow): if filename: mtype = get_type(filename) if mtype and mtype.startswith("image"): - image = scale_image(filename, THUMBSCALE) + image = self.scale_image(filename, THUMBSCALE) else: image = find_mime_type_pixbuf(mtype) self.image.set_from_pixbuf(image) @@ -224,28 +224,28 @@ class AddMedia(ManagedWindow): config.set('behavior.addmedia-relative-path', self.relative_path) config.save() -#------------------------------------------------------------------------- -# -# scale_image -# -#------------------------------------------------------------------------- -def scale_image(path, size): - """ - Scales the image to the specified size - """ + #------------------------------------------------------------------------- + # + # scale_image + # + #------------------------------------------------------------------------- + def scale_image(self, path, size): + """ + Scales the image to the specified size + """ - title_msg = _("Cannot display %s") % path - detail_msg = _('Gramps is not able to display the image file. ' - 'This may be caused by a corrupt file.') + title_msg = _("Cannot display %s") % path + detail_msg = _('Gramps is not able to display the image file. ' + 'This may be caused by a corrupt file.') - try: - image1 = GdkPixbuf.Pixbuf.new_from_file(path) - width = image1.get_width() - height = image1.get_height() - - scale = size / float(max(width, height)) - return image1.scale_simple(int(scale*width), int(scale*height), - GdkPixbuf.InterpType.BILINEAR) - except: - WarningDialog(title_msg, detail_msg) # no-parent - return GdkPixbuf.Pixbuf.new_from_file(ICON) + try: + image1 = GdkPixbuf.Pixbuf.new_from_file(path) + width = image1.get_width() + height = image1.get_height() + scale = size / float(max(width, height)) + return image1.scale_simple(int(scale*width), int(scale*height), + GdkPixbuf.InterpType.BILINEAR) + except: + WarningDialog(title_msg, detail_msg, + parent=self.window) # parent-OK + return GdkPixbuf.Pixbuf.new_from_file(ICON) diff --git a/gramps/gui/plug/_guioptions.py b/gramps/gui/plug/_guioptions.py index 8381b2e30..3c1fc8efd 100644 --- a/gramps/gui/plug/_guioptions.py +++ b/gramps/gui/plug/_guioptions.py @@ -114,7 +114,7 @@ class LastNameDialog(ManagedWindow): # build up the list of surnames, keeping track of the count for each # name (this can be a lengthy process, so by passing in the # dictionary we can be certain we only do this once) - progress = ProgressMeter(_('Finding Surnames')) + progress = ProgressMeter(_('Finding Surnames')) # no-parent progress.set_pass(_('Finding surnames'), database.get_number_of_people()) for person in database.iter_people(): diff --git a/gramps/gui/plug/_windows.py b/gramps/gui/plug/_windows.py index e3f658d5f..530549a0f 100644 --- a/gramps/gui/plug/_windows.py +++ b/gramps/gui/plug/_windows.py @@ -305,7 +305,7 @@ class PluginStatus(ManagedWindow): except: print("Error: cannot open %s" % URL) return - pm = ProgressMeter(_("Refreshing Addon List")) + pm = ProgressMeter(_("Refreshing Addon List")) # no-parent pm.set_pass(header=_("Reading gramps-project.org...")) state = "read" rows = [] @@ -383,7 +383,8 @@ class PluginStatus(ManagedWindow): Get all addons from the wiki and install them. """ from ..utils import ProgressMeter - pm = ProgressMeter(_("Install all Addons"), _("Installing..."), message_area=True) + pm = ProgressMeter( # no-parent + _("Install all Addons"), _("Installing..."), message_area=True) pm.set_pass(total=len(self.addon_model)) errors = [] for row in self.addon_model: @@ -401,7 +402,8 @@ class PluginStatus(ManagedWindow): Toplevel method to get an addon. """ from ..utils import ProgressMeter - pm = ProgressMeter(_("Installing Addon"), message_area=True) + pm = ProgressMeter( # no-parent + _("Installing Addon"), message_area=True) pm.set_pass(total=2, header=_("Reading gramps-project.org...")) pm.step() self.__get_addon(obj, callback=pm.append_message) @@ -877,7 +879,7 @@ class ToolManagedWindowBase(ManagedWindow): def pre_run(self): from ..utils import ProgressMeter - self.progress = ProgressMeter(self.get_title()) + self.progress = ProgressMeter(self.get_title()) # no-parent def run(self): raise NotImplementedError("tool needs to define a run() method") diff --git a/gramps/gui/plug/export/_exportoptions.py b/gramps/gui/plug/export/_exportoptions.py index 466ad402c..54faa4419 100644 --- a/gramps/gui/plug/export/_exportoptions.py +++ b/gramps/gui/plug/export/_exportoptions.py @@ -64,7 +64,8 @@ class Progress: """ def __init__(self, uistate): from gi.repository import Gtk - self.pm = ProgressMeter(_("Selecting Preview Data"), _('Selecting...'), + self.pm = ProgressMeter(_("Selecting Preview Data"), # parent-OK + _('Selecting...'), parent=uistate.window) self.progress_cnt = 0 self.title = _("Selecting...") diff --git a/gramps/gui/plug/report/_styleeditor.py b/gramps/gui/plug/report/_styleeditor.py index 74ac06483..d6d1680b0 100644 --- a/gramps/gui/plug/report/_styleeditor.py +++ b/gramps/gui/plug/report/_styleeditor.py @@ -82,7 +82,7 @@ class StyleListDisplay: self.sheetlist = stylesheetlist self.parent_window = parent_window - + self.top = Glade(toplevel='styles') self.window = self.top.toplevel diff --git a/gramps/gui/user.py b/gramps/gui/user.py index 03431368c..3c8ea703e 100644 --- a/gramps/gui/user.py +++ b/gramps/gui/user.py @@ -68,9 +68,10 @@ class User(user.User): :returns: none """ if self.uistate: - self._progress = ProgressMeter(title, parent=self.uistate.window) + self._progress = ProgressMeter(title, # parent-OK + parent=self.uistate.window) else: - self._progress = ProgressMeter(title) + self._progress = ProgressMeter(title) # parent-OK if steps > 0: self._progress.set_pass(message, steps, ProgressMeter.MODE_FRACTION) else: diff --git a/gramps/gui/utils.py b/gramps/gui/utils.py index 605d5ff9e..ced6189c1 100644 --- a/gramps/gui/utils.py +++ b/gramps/gui/utils.py @@ -103,7 +103,7 @@ class CLIDialog: # #------------------------------------------------------------------------- -class ProgressMeter: +class ProgressMeter: # parent-OK """ Progress meter class for Gramps. diff --git a/gramps/gui/widgets/grampletbar.py b/gramps/gui/widgets/grampletbar.py index 6578eb05c..22c9a9658 100644 --- a/gramps/gui/widgets/grampletbar.py +++ b/gramps/gui/widgets/grampletbar.py @@ -541,8 +541,8 @@ class GrampletBar(Gtk.Notebook): """ Called when restore defaults is clicked from the context menu. """ - QuestionDialog( - _("Restore to defaults?"), # parent-OK + QuestionDialog( # parent-OK + _("Restore to defaults?"), _("The gramplet bar will be restored to contain its default " "gramplets. This action cannot be undone."), _("OK"), diff --git a/gramps/plugins/importer/importprogen.py b/gramps/plugins/importer/importprogen.py index 083cdc8c2..557ff3e44 100644 --- a/gramps/plugins/importer/importprogen.py +++ b/gramps/plugins/importer/importprogen.py @@ -511,7 +511,7 @@ class ProgenParser: def parse_progen_file(self): self.def_ = PG30_Def(self.fname) #print self.def_.diag() - self.progress = ProgressMeter(_("Import from Pro-Gen"), '') + self.progress = ProgressMeter(_("Import from Pro-Gen"), '') # no-parent self.mems = _read_mem(self.bname) self.pers = _read_recs(self.def_['Table_1'], self.bname) diff --git a/gramps/plugins/tool/changenames.py b/gramps/plugins/tool/changenames.py index 334b8b6ad..69b46923b 100644 --- a/gramps/plugins/tool/changenames.py +++ b/gramps/plugins/tool/changenames.py @@ -82,8 +82,8 @@ class ChangeNames(tool.BatchTool, ManagedWindow): if self.fail: return - self.progress = ProgressMeter(_('Checking Family Names'),'', - parent=uistate.window) + self.progress = ProgressMeter( # parent-OK + _('Checking Family Names'), '', parent=uistate.window) self.progress.set_pass(_('Searching family names'), len(self.db.get_surname_list())) self.name_list = [] diff --git a/gramps/plugins/tool/check.py b/gramps/plugins/tool/check.py index 7505cce2f..d76e96b58 100644 --- a/gramps/plugins/tool/check.py +++ b/gramps/plugins/tool/check.py @@ -103,7 +103,7 @@ def cross_table_duplicates(db, uistate): parent = uistate.window else: parent = None - progress = ProgressMeter(_('Checking Database'),'', parent) + progress = ProgressMeter(_('Checking Database'), '', parent) # parent-OK progress.set_pass(_('Looking for cross table duplicates'), 9) logging.info('Looking for cross table duplicates') total_nr_handles = 0 @@ -246,8 +246,8 @@ class CheckIntegrity: self.empty_objects = defaultdict(list) self.replaced_sourceref = [] self.last_img_dir = config.get('behavior.addmedia-image-dir') - self.progress = ProgressMeter(_('Checking Database'),'', - parent=self.parent_window) + self.progress = ProgressMeter(_('Checking Database'), '', # parent-OK + parent=self.parent_window) self.explanation = Note(_('Objects referenced by this note ' 'were referenced but missing so that is why they have been created ' 'when you ran Check and Repair on %s.') % diff --git a/gramps/plugins/tool/dateparserdisplaytest.py b/gramps/plugins/tool/dateparserdisplaytest.py index 8ec8a1cdc..7abca3770 100644 --- a/gramps/plugins/tool/dateparserdisplaytest.py +++ b/gramps/plugins/tool/dateparserdisplaytest.py @@ -77,8 +77,8 @@ class DateParserDisplayTest(tool.Tool): def run_tool(self): - self.progress = ProgressMeter(_('Running Date Test'),'', - parent=self.parent_window) + self.progress = ProgressMeter(_('Running Date Test'), '', # parent-OK + parent=self.parent_window) self.progress.set_pass(_('Generating dates'), 4) dates = [] diff --git a/gramps/plugins/tool/eventcmp.py b/gramps/plugins/tool/eventcmp.py index 42686a147..99808194f 100644 --- a/gramps/plugins/tool/eventcmp.py +++ b/gramps/plugins/tool/eventcmp.py @@ -176,9 +176,8 @@ class EventComparison(tool.Tool,ManagedWindow): def on_apply_clicked(self, obj): cfilter = self.filter_model[self.filters.get_active()][1] - progress_bar = ProgressMeter(_('Comparing events'), - '', - parent=self.window) + progress_bar = ProgressMeter(_('Comparing events'), '', # parent-OK + parent=self.window) progress_bar.set_pass(_('Selecting people'),1) plist = cfilter.apply(self.db, @@ -307,8 +306,8 @@ class DisplayChart(ManagedWindow): self.progress_bar.close() def build_row_data(self): - self.progress_bar = ProgressMeter(_('Comparing Events'),'', - parent=self.window) + self.progress_bar = ProgressMeter( # parent-OK + _('Comparing Events'), '', parent=self.window) self.progress_bar.set_pass(_('Building data'),len(self.my_list)) for individual_id in self.my_list: individual = self.db.get_person_from_handle(individual_id) diff --git a/gramps/plugins/tool/finddupes.py b/gramps/plugins/tool/finddupes.py index 5de682501..6f50fa957 100644 --- a/gramps/plugins/tool/finddupes.py +++ b/gramps/plugins/tool/finddupes.py @@ -184,9 +184,9 @@ class Merge(tool.Tool,ManagedWindow): pass def find_potentials(self, thresh): - self.progress = ProgressMeter(_('Find Duplicates'), + self.progress = ProgressMeter(_('Find Duplicates'), # parent-OK _('Looking for duplicate people'), - parent=self.window) + parent=self.window) index = 0 males = {} diff --git a/gramps/plugins/tool/findloop.py b/gramps/plugins/tool/findloop.py index 3a42d9244..27c92f4db 100644 --- a/gramps/plugins/tool/findloop.py +++ b/gramps/plugins/tool/findloop.py @@ -86,7 +86,7 @@ class FindLoop(ManagedWindow): self.set_window(window, title, self.title) # start the progress indicator - self.progress = ProgressMeter(self.title, _('Starting'), + self.progress = ProgressMeter(self.title, _('Starting'), # parent-OK parent=self.window) self.progress.set_pass(_('Looking for possible loop for each person'), self.db.get_number_of_people()) diff --git a/gramps/plugins/tool/mergecitations.py b/gramps/plugins/tool/mergecitations.py index 9aea74110..d42e5fecf 100644 --- a/gramps/plugins/tool/mergecitations.py +++ b/gramps/plugins/tool/mergecitations.py @@ -181,7 +181,7 @@ class MergeCitations(tool.BatchTool,ManagedWindow): # Save options self.options.handler.save_options() - self.progress = ProgressMeter(_('Checking Sources'), '', + self.progress = ProgressMeter(_('Checking Sources'), '', # parent-OK parent=self.user.uistate.window) self.progress.set_pass(_('Looking for citation fields'), self.db.get_number_of_citations()) diff --git a/gramps/plugins/tool/notrelated.py b/gramps/plugins/tool/notrelated.py index 508d9f2fb..56aabd46c 100644 --- a/gramps/plugins/tool/notrelated.py +++ b/gramps/plugins/tool/notrelated.py @@ -107,7 +107,7 @@ class NotRelated(tool.ActivePersonTool, ManagedWindow) : self.tagapply.connect('clicked', self.applyTagClicked) # start the progress indicator - self.progress = ProgressMeter(self.title,_('Starting'), + self.progress = ProgressMeter(self.title, _('Starting'), # parent-OK parent=self.window) # setup the columns @@ -252,7 +252,7 @@ class NotRelated(tool.ActivePersonTool, ManagedWindow) : # if more than 1 person is selected, use a progress indicator if rows > 1: - progress = ProgressMeter(self.title,_('Starting'), + progress = ProgressMeter(self.title, _('Starting'), # parent-OK parent=self.window) progress.set_pass( # translators: leave all/any {...} untranslated diff --git a/gramps/plugins/tool/patchnames.py b/gramps/plugins/tool/patchnames.py index 96d8b4fc3..d4069f71b 100644 --- a/gramps/plugins/tool/patchnames.py +++ b/gramps/plugins/tool/patchnames.py @@ -167,7 +167,7 @@ class PatchNames(tool.BatchTool, ManagedWindow): self.cb = callback self.handle_to_action = {} - self.progress = ProgressMeter( + self.progress = ProgressMeter( # no-parent _('Extracting Information from Names'), '') self.progress.set_pass(_('Analyzing names'), self.db.get_number_of_people()) diff --git a/gramps/plugins/tool/populatesources.py b/gramps/plugins/tool/populatesources.py index dcad26e3e..9abe0ed8e 100644 --- a/gramps/plugins/tool/populatesources.py +++ b/gramps/plugins/tool/populatesources.py @@ -134,7 +134,7 @@ class PopulateSources(tool.Tool, ManagedWindow): num_citations_text = self.citations_entry.get_text() num_citations = int(num_citations_text) - self.progress = ProgressMeter( + self.progress = ProgressMeter( # no-parent 'Generating data', '') self.progress.set_pass('Generating data', num_sources*num_citations) diff --git a/gramps/plugins/tool/reorderids.py b/gramps/plugins/tool/reorderids.py index f93b67f18..22239e691 100644 --- a/gramps/plugins/tool/reorderids.py +++ b/gramps/plugins/tool/reorderids.py @@ -65,7 +65,8 @@ class ReorderIds(tool.BatchTool): db = dbstate.db self.uistate = uistate if uistate: - self.progress = ProgressMeter(_('Reordering Gramps IDs'),'') + self.progress = ProgressMeter( # parent-OK + _('Reordering Gramps IDs'), '', parent=uistate.window) else: print(_("Reordering Gramps IDs...")) diff --git a/gramps/plugins/tool/testcasegenerator.py b/gramps/plugins/tool/testcasegenerator.py index 9ee30dc11..2dd1110c6 100644 --- a/gramps/plugins/tool/testcasegenerator.py +++ b/gramps/plugins/tool/testcasegenerator.py @@ -338,8 +338,8 @@ class TestcaseGenerator(tool.BatchTool): else: self.window = None - self.progress = ProgressMeter(_('Generating testcases'),'', - parent=self.window) + self.progress = ProgressMeter( # parent-OK + _('Generating testcases'), '', parent=self.window) self.transaction_count = 0; if self.options.handler.options_dict['lowlevel']: diff --git a/gramps/plugins/view/geoevents.py b/gramps/plugins/view/geoevents.py index 698e25ddc..c5333c0c1 100644 --- a/gramps/plugins/view/geoevents.py +++ b/gramps/plugins/view/geoevents.py @@ -288,7 +288,8 @@ class GeoEvents(GeoGraphyView): if self.show_all: self.show_all = False events_handle = dbstate.db.get_event_handles() - progress = ProgressMeter(self.window_name, can_cancel=False, + progress = ProgressMeter(self.window_name, # parent-OK + can_cancel=False, parent=self.uistate.window) length = len(events_handle) progress.set_pass(_('Selecting all events'), length) @@ -299,7 +300,8 @@ class GeoEvents(GeoGraphyView): progress.close() elif self.generic_filter: events_list = self.generic_filter.apply(dbstate.db) - progress = ProgressMeter(self.window_name, can_cancel=False, + progress = ProgressMeter(self.window_name, # parent-OK + can_cancel=False, parent=self.uistate.window) length = len(events_list) progress.set_pass(_('Selecting all events'), length) diff --git a/gramps/plugins/view/geoplaces.py b/gramps/plugins/view/geoplaces.py index e187a3d23..16c2d1e8e 100644 --- a/gramps/plugins/view/geoplaces.py +++ b/gramps/plugins/view/geoplaces.py @@ -268,7 +268,8 @@ class GeoPlaces(GeoGraphyView): places_handle = dbstate.db.get_place_handles() except: return - progress = ProgressMeter(self.window_name, can_cancel=False, + progress = ProgressMeter(self.window_name, # parent-OK + can_cancel=False, parent=self.uistate.window) length = len(places_handle) progress.set_pass(_('Selecting all places'), length) @@ -279,7 +280,8 @@ class GeoPlaces(GeoGraphyView): progress.close() elif self.generic_filter: place_list = self.generic_filter.apply(dbstate.db) - progress = ProgressMeter(self.window_name, can_cancel=False, + progress = ProgressMeter(self.window_name, # parent-OK + can_cancel=False, parent=self.uistate.window) length = len(place_list) progress.set_pass(_('Selecting all places'), length)