Browse Source

fix https://trac.osgeo.org/grass/ticket/2451 - pass string instead of unicode to environment (merge from trunk, https://trac.osgeo.org/grass/changeset/62269)

git-svn-id: https://svn.osgeo.org/grass/grass/branches/releasebranch_7_0@62270 15284696-431f-4ddb-bdfa-cd5b030d7da7
Anna Petrášová 10 years ago
parent
commit
8bc5249248
1 changed files with 11 additions and 4 deletions
  1. 11 4
      gui/wxpython/gui_core/preferences.py

+ 11 - 4
gui/wxpython/gui_core/preferences.py

@@ -45,7 +45,7 @@ from grass.pydispatch.signal import Signal
 from grass.script import core as grass
 from grass.script import core as grass
 
 
 from core          import globalvar
 from core          import globalvar
-from core.gcmd     import RunCommand
+from core.gcmd     import RunCommand, GError
 from core.utils    import ListOfMapsets, GetColorTables, ReadEpsgCodes, _
 from core.utils    import ListOfMapsets, GetColorTables, ReadEpsgCodes, _
 from core.settings import UserSettings
 from core.settings import UserSettings
 from gui_core.dialogs import SymbolDialog
 from gui_core.dialogs import SymbolDialog
@@ -1441,9 +1441,16 @@ class PreferencesDialog(PreferencesBaseDialog):
         if dlg.ShowModal() == wx.ID_OK:
         if dlg.ShowModal() == wx.ID_OK:
             # set default font and encoding environmental variables
             # set default font and encoding environmental variables
             if dlg.font:
             if dlg.font:
-                os.environ["GRASS_FONT"] = dlg.font
-                self.settings.Set(group = 'display', value = dlg.font,
-                                  key = 'font', subkey = 'type')
+                try:
+                    os.environ["GRASS_FONT"] = str(dlg.font)
+                    self.settings.Set(group='display', value=dlg.font,
+                                      key='font', subkey='type')
+                except UnicodeEncodeError:
+                    GError(parent=self, message=_("Failed to set default display font. "
+                                                  "Try different font."),
+                           showTraceback=True)
+                    dlg.Destroy()
+                    return
 
 
             if dlg.encoding and \
             if dlg.encoding and \
                     dlg.encoding != "ISO-8859-1":
                     dlg.encoding != "ISO-8859-1":