diff --git a/gui/wxpython/gui_core/preferences.py b/gui/wxpython/gui_core/preferences.py index 2b2dc5ab781..d5548a560d3 100644 --- a/gui/wxpython/gui_core/preferences.py +++ b/gui/wxpython/gui_core/preferences.py @@ -189,46 +189,11 @@ def OnCancel(self, event): """Button 'Cancel' pressed""" self.Close() - def OnSave(self, event): + def OnSave(self, event, force=False): """Button 'Save' pressed Emits signal settingsChanged. """ - if self._updateSettings(): - lang = self.settings.Get(group="language", key="locale", subkey="lc_all") - if lang == "system": - # Most fool proof way to use system locale is to not provide - # any locale info at all - self.settings.Set( - group="language", key="locale", subkey="lc_all", value=None - ) - lang = None - env = grass.gisenv() - nprocs_gisenv = "NPROCS" - memorydb_gisenv = "MEMORYMB" - # Set gisenv MEMORYMB var value - memorymb = self.memorymb.GetValue() - if memorymb: - grass.run_command( - "g.gisenv", - set=f"{memorydb_gisenv}={memorymb}", - ) - elif env.get(memorydb_gisenv): - grass.run_command( - "g.gisenv", - unset=memorydb_gisenv, - ) - # Set gisenv NPROCS var value - nprocs = self.nprocs.GetValue() - if nprocs: - grass.run_command( - "g.gisenv", - set=f"{nprocs_gisenv}={nprocs}", - ) - elif env.get(nprocs_gisenv): - grass.run_command( - "g.gisenv", - unset=nprocs_gisenv, - ) + if force is True or self._updateSettings(): self.settings.SaveToFile() Debug.msg(1, "Settings saved to file '%s'" % self.settings.filePath) self.settingsChanged.emit() @@ -2245,6 +2210,50 @@ def OnEnableWheelZoom(self, event): scrollId = self.winId["display:scrollDirection:selection"] self.FindWindowById(scrollId).Enable(enable) + def OnSave(self, event): + """Button 'Save' pressed + Emits signal settingsChanged. + """ + if self._updateSettings(): + lang = self.settings.Get(group="language", key="locale", subkey="lc_all") + if lang == "system": + # Most fool proof way to use system locale is to not provide + # any locale info at all + self.settings.Set( + group="language", key="locale", subkey="lc_all", value=None + ) + lang = None + env = grass.gisenv() + + # Set gisenv MEMORYMB var value + memorydb_gisenv = "MEMORYMB" + memorymb = self.memorymb.GetValue() + if memorymb: + grass.run_command( + "g.gisenv", + set=f"{memorydb_gisenv}={memorymb}", + ) + elif env.get(memorydb_gisenv): + grass.run_command( + "g.gisenv", + unset=memorydb_gisenv, + ) + # Set gisenv NPROCS var value + nprocs_gisenv = "NPROCS" + nprocs = self.nprocs.GetValue() + if nprocs: + grass.run_command( + "g.gisenv", + set=f"{nprocs_gisenv}={nprocs}", + ) + elif env.get(nprocs_gisenv): + grass.run_command( + "g.gisenv", + unset=nprocs_gisenv, + ) + + PreferencesBaseDialog.OnSave(self, event, force=True) + class MapsetAccess(wx.Dialog): """Controls setting options and displaying/hiding map overlay