Переглянути джерело

wxGUI rdigit: fix quitting behavior when no map edited (#594)

* wxGUI rdigit: fix show save dialog when it's necessary

* wxGUI rdigit: fix clean up method if the backup raster is None
Tomas Zigo 5 роки тому
батько
коміт
77f0e1c092
1 змінених файлів з 20 додано та 16 видалено
  1. 20 16
      gui/wxpython/rdigit/controller.py

+ 20 - 16
gui/wxpython/rdigit/controller.py

@@ -300,16 +300,19 @@ class RDigitController(wx.EvtHandler):
 
     def Stop(self):
         """Before stopping digitizer, asks to save edits"""
-        dlg = wx.MessageDialog(
-            self._mapWindow,
-            _("Do you want to save changes?"),
-            _("Save raster map changes"),
-            wx.YES_NO)
-        if dlg.ShowModal() == wx.ID_YES:
-            if self._drawing:
-                self._finish()
-            self._thread.Run(callable=self._exportRaster,
-                             ondone=lambda event: self._updateAndQuit())
+        if self._editedRaster:
+            dlg = wx.MessageDialog(
+                self._mapWindow,
+                _("Do you want to save changes?"),
+                _("Save raster map changes"),
+                wx.YES_NO)
+            if dlg.ShowModal() == wx.ID_YES:
+                if self._drawing:
+                    self._finish()
+                self._thread.Run(callable=self._exportRaster,
+                                 ondone=lambda event: self._updateAndQuit())
+            else:
+                self.quitDigitizer.emit()
         else:
             self.quitDigitizer.emit()
 
@@ -338,12 +341,13 @@ class RDigitController(wx.EvtHandler):
         :param restore: if restore previous cursor, mouse['use']
         """
         try:
-            gcore.run_command(
-                'g.remove',
-                type='raster',
-                flags='f',
-                name=self._backupRasterName,
-                quiet=True)
+            if self._backupRasterName:
+                gcore.run_command(
+                    'g.remove',
+                    type='raster',
+                    flags='f',
+                    name=self._backupRasterName,
+                    quiet=True)
         except CalledModuleError:
             pass