Skip to content

Commit

Permalink
wxGUI/preferences: fix PreferencesDialog class OnSave method (#3368)
Browse files Browse the repository at this point in the history
  • Loading branch information
landam authored Jan 21, 2024
1 parent b0deb48 commit aec3432
Showing 1 changed file with 46 additions and 37 deletions.
83 changes: 46 additions & 37 deletions gui/wxpython/gui_core/preferences.py
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit aec3432

Please sign in to comment.