8128: GtkDialog mapped without a transient parent
This commit is contained in:
@ -120,7 +120,7 @@ except ImportError:
|
|||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
|
|
||||||
def _display_welcome_message():
|
def _display_welcome_message(parent=None):
|
||||||
"""
|
"""
|
||||||
Display a welcome message to the user.
|
Display a welcome message to the user.
|
||||||
"""
|
"""
|
||||||
@ -145,11 +145,37 @@ def _display_welcome_message():
|
|||||||
"them with this version, and make sure to export your "
|
"them with this version, and make sure to export your "
|
||||||
"data to XML every now and then.")
|
"data to XML every now and then.")
|
||||||
% { 'bold_start' : '<b>',
|
% { 'bold_start' : '<b>',
|
||||||
'bold_end' : '</b>' } )
|
'bold_end' : '</b>' },
|
||||||
|
parent=parent)
|
||||||
config.set('behavior.autoload', False)
|
config.set('behavior.autoload', False)
|
||||||
config.set('behavior.betawarn', True)
|
config.set('behavior.betawarn', True)
|
||||||
config.set('behavior.betawarn', config.get('behavior.betawarn'))
|
config.set('behavior.betawarn', config.get('behavior.betawarn'))
|
||||||
|
|
||||||
|
def _display_gtk_gettext_message(parent=None):
|
||||||
|
"""
|
||||||
|
Display a GTK-translations-missing message to the user.
|
||||||
|
"""
|
||||||
|
LOG.warning("GTK translations missing, GUI will be broken, "
|
||||||
|
"especially for RTL languages!")
|
||||||
|
from .dialog import WarningDialog
|
||||||
|
# Note: the warning dialog below will likely have wrong stock icons!
|
||||||
|
# Translators: the current language will be the one you translate into.
|
||||||
|
WarningDialog(_("Gramps detected an incomplete GTK installation"),
|
||||||
|
_("GTK translations for the current language (%(language)s) "
|
||||||
|
"are missing.\n"
|
||||||
|
"%(bold_start)sGramps%(bold_end)s will "
|
||||||
|
"proceed nevertheless.\n"
|
||||||
|
"The GUI will likely be broken "
|
||||||
|
"as a result, especially for RTL languages!\n\n"
|
||||||
|
"See the Gramps README documentation for installation "
|
||||||
|
"prerequisites,\n"
|
||||||
|
"typically located in "
|
||||||
|
"/usr/share/doc/gramps.\n"
|
||||||
|
) % {'language' : glocale.lang,
|
||||||
|
'bold_start' : '<b>',
|
||||||
|
'bold_end' : '</b>'},
|
||||||
|
parent=parent)
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# Main Gramps class
|
# Main Gramps class
|
||||||
@ -172,33 +198,21 @@ class Gramps:
|
|||||||
from .dialog import WarningDialog
|
from .dialog import WarningDialog
|
||||||
import gettext
|
import gettext
|
||||||
|
|
||||||
_display_welcome_message()
|
|
||||||
|
|
||||||
# Append image directory to the theme search path
|
# Append image directory to the theme search path
|
||||||
theme = Gtk.IconTheme.get_default()
|
theme = Gtk.IconTheme.get_default()
|
||||||
theme.append_search_path(IMAGE_DIR)
|
theme.append_search_path(IMAGE_DIR)
|
||||||
|
|
||||||
if lin() and glocale.lang != 'C' and not gettext.find(GTK_GETTEXT_DOMAIN):
|
|
||||||
LOG.warning("GTK translations missing, GUI will be broken, "
|
|
||||||
"especially for RTL languages!")
|
|
||||||
# Note: the warning dialog below will likely have wrong stock icons!
|
|
||||||
# Translators: the current language will be the one you translate into.
|
|
||||||
WarningDialog(
|
|
||||||
_("Gramps detected an incomplete GTK installation"),
|
|
||||||
_("GTK translations for the current language (%(language)s) "
|
|
||||||
"are missing.\n%(bold_start)sGramps%(bold_end)s will "
|
|
||||||
"proceed nevertheless.\nThe GUI will likely be broken "
|
|
||||||
"as a result, especially for RTL languages!\n\n"
|
|
||||||
"See the Gramps README documentation for installation "
|
|
||||||
"prerequisites,\ntypically located in "
|
|
||||||
"/usr/share/doc/gramps.\n") % {
|
|
||||||
'language' : glocale.lang ,
|
|
||||||
'bold_start' : '<b>' ,
|
|
||||||
'bold_end' : '</b>' } )
|
|
||||||
|
|
||||||
dbstate = DbState()
|
dbstate = DbState()
|
||||||
self.vm = ViewManager(dbstate,
|
self.vm = ViewManager(dbstate,
|
||||||
config.get("interface.view-categories"))
|
config.get("interface.view-categories"))
|
||||||
|
|
||||||
|
if (lin()
|
||||||
|
and glocale.lang != 'C'
|
||||||
|
and not gettext.find(GTK_GETTEXT_DOMAIN)):
|
||||||
|
_display_gtk_gettext_message(parent=self.vm.window)
|
||||||
|
|
||||||
|
_display_welcome_message(parent=self.vm.window)
|
||||||
|
|
||||||
self.vm.init_interface()
|
self.vm.init_interface()
|
||||||
|
|
||||||
#act based on the given arguments
|
#act based on the given arguments
|
||||||
@ -226,9 +240,14 @@ class Gramps:
|
|||||||
TipOfDay(self.vm.uistate)
|
TipOfDay(self.vm.uistate)
|
||||||
|
|
||||||
def argerrorfunc(self, string):
|
def argerrorfunc(self, string):
|
||||||
from .dialog import ErrorDialog
|
|
||||||
""" Show basic errors in argument handling in GUI fashion"""
|
""" Show basic errors in argument handling in GUI fashion"""
|
||||||
ErrorDialog(_("Error parsing arguments"), string)
|
from .dialog import ErrorDialog
|
||||||
|
parent = None
|
||||||
|
if hasattr(self, 'vm'):
|
||||||
|
if hasattr(self.vm, 'uistate'):
|
||||||
|
if hasattr(self.vm.uistate, 'window'):
|
||||||
|
parent = self.vm.uistate.window
|
||||||
|
ErrorDialog(_("Error parsing arguments"), string, parent=parent)
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
|
Reference in New Issue
Block a user