give GUI User an optional parent, for when None would otherwise be used

This commit is contained in:
Paul Franklin 2016-12-21 15:35:45 -08:00
parent f75618eb2d
commit 66260871dc
5 changed files with 14 additions and 5 deletions

View File

@ -49,7 +49,8 @@ class User(user.User):
This class provides a means to interact with the user via CLI. This class provides a means to interact with the user via CLI.
It implements the interface in :class:`.gen.user.User` It implements the interface in :class:`.gen.user.User`
""" """
def __init__(self, callback=None, error=None, auto_accept=False, quiet=False, def __init__(self, callback=None, error=None,
auto_accept=False, quiet=False,
uistate=None, dbstate=None): uistate=None, dbstate=None):
""" """
Init. Init.

View File

@ -191,7 +191,7 @@ class DbManager(CLIDbManager):
self.before_change = "" self.before_change = ""
self.after_change = "" self.after_change = ""
self._select_default() self._select_default()
self.user = User(error=ErrorDialog, self.user = User(error=ErrorDialog, parent=self.parent,
callback=self.uistate.pulse_progressbar, callback=self.uistate.pulse_progressbar,
uistate=self.uistate) uistate=self.uistate)

View File

@ -592,7 +592,8 @@ class ExportAssistant(ManagedWindow, Gtk.Assistant):
export_function = self.map_exporters[ix].get_export_function() export_function = self.map_exporters[ix].get_export_function()
success = export_function(self.dbstate.db, success = export_function(self.dbstate.db,
filename, filename,
User(error=ErrorDialog, callback=self.callback), User(error=ErrorDialog, parent=self.uistate.window,
callback=self.callback),
self.option_box_instance) self.option_box_instance)
except: except:
#an error not catched in the export_function itself #an error not catched in the export_function itself

View File

@ -49,9 +49,11 @@ class User(user.User):
This class provides a means to interact with the user via GTK. This class provides a means to interact with the user via GTK.
It implements the interface in :class:`.gen.user.User` It implements the interface in :class:`.gen.user.User`
""" """
def __init__(self, callback=None, error=None, uistate=None, dbstate=None): def __init__(self, callback=None, error=None, parent=None,
uistate=None, dbstate=None): # TODO User API: gen==cli==gui
user.User.__init__(self, callback, error, uistate, dbstate) user.User.__init__(self, callback, error, uistate, dbstate)
self._progress = None self._progress = None
self.parent = parent
def begin_progress(self, title, message, steps): def begin_progress(self, title, message, steps):
""" """
@ -144,10 +146,14 @@ class User(user.User):
:type error: str :type error: str
:returns: none :returns: none
""" """
if self.error_function: if self.error_function and self.parent: # if parent is set, use it
self.error_function(title, error, parent=self.parent)
elif self.error_function:
self.error_function(title, error) self.error_function(title, error)
elif self.uistate: elif self.uistate:
ErrorDialog(title, error, parent=self.uistate.window) ErrorDialog(title, error, parent=self.uistate.window)
elif self.user.uistate:
ErrorDialog(title, error, parent=self.user.uistate.window)
else: else:
ErrorDialog(title, error, parent=None) ErrorDialog(title, error, parent=None)

View File

@ -298,6 +298,7 @@ class ViewManager(CLIManager):
self.__build_main_window() # sets self.uistate self.__build_main_window() # sets self.uistate
if self.user is None: if self.user is None:
self.user = User(error=ErrorDialog, self.user = User(error=ErrorDialog,
parent=self.window,
callback=self.uistate.pulse_progressbar, callback=self.uistate.pulse_progressbar,
uistate=self.uistate, uistate=self.uistate,
dbstate=self.dbstate) dbstate=self.dbstate)