Просмотр исходного кода

Fixed problem with project saving due to json.dump failing to serialize QString.

Juan Pablo Caram 11 лет назад
Родитель
Сommit
ef30eb5d9c
2 измененных файлов с 21 добавлено и 1 удалено
  1. 20 0
      FlatCAMApp.py
  2. 1 1
      recent.json

+ 20 - 0
FlatCAMApp.py

@@ -1007,6 +1007,11 @@ class App(QtCore.QObject):
         except TypeError:
         except TypeError:
             filename = QtGui.QFileDialog.getOpenFileName(caption="Open Gerber")
             filename = QtGui.QFileDialog.getOpenFileName(caption="Open Gerber")
 
 
+        # The Qt methods above will return a QString which can cause problems later.
+        # So far json.dump() will fail to serialize it.
+        # TODO: Improve the serialization methods and remove this fix.
+        filename = str(filename)
+
         if str(filename) == "":
         if str(filename) == "":
             self.inform.emit("Open cancelled.")
             self.inform.emit("Open cancelled.")
         else:
         else:
@@ -1021,6 +1026,11 @@ class App(QtCore.QObject):
         except TypeError:
         except TypeError:
             filename = QtGui.QFileDialog.getOpenFileName(caption="Open Excellon")
             filename = QtGui.QFileDialog.getOpenFileName(caption="Open Excellon")
 
 
+        # The Qt methods above will return a QString which can cause problems later.
+        # So far json.dump() will fail to serialize it.
+        # TODO: Improve the serialization methods and remove this fix.
+        filename = str(filename)
+
         if str(filename) == "":
         if str(filename) == "":
             self.inform.emit("Open cancelled.")
             self.inform.emit("Open cancelled.")
         else:
         else:
@@ -1036,6 +1046,11 @@ class App(QtCore.QObject):
         except TypeError:
         except TypeError:
             filename = QtGui.QFileDialog.getOpenFileName(caption="Open G-Code")
             filename = QtGui.QFileDialog.getOpenFileName(caption="Open G-Code")
 
 
+        # The Qt methods above will return a QString which can cause problems later.
+        # So far json.dump() will fail to serialize it.
+        # TODO: Improve the serialization methods and remove this fix.
+        filename = str(filename)
+
         if str(filename) == "":
         if str(filename) == "":
             self.inform.emit("Open cancelled.")
             self.inform.emit("Open cancelled.")
         else:
         else:
@@ -1051,6 +1066,11 @@ class App(QtCore.QObject):
         except TypeError:
         except TypeError:
             filename = QtGui.QFileDialog.getOpenFileName(caption="Open Project")
             filename = QtGui.QFileDialog.getOpenFileName(caption="Open Project")
 
 
+        # The Qt methods above will return a QString which can cause problems later.
+        # So far json.dump() will fail to serialize it.
+        # TODO: Improve the serialization methods and remove this fix.
+        filename = str(filename)
+
         if str(filename) == "":
         if str(filename) == "":
             self.inform.emit("Open cancelled.")
             self.inform.emit("Open cancelled.")
         else:
         else:

+ 1 - 1
recent.json

@@ -1 +1 @@
-[{"kind": "gerber", "filename": "C:/Users/jpcaram/Dropbox/CNC/pcbcam/test_files/WindMills - Bottom Copper 2.gbr"}, {"kind": "gerber", "filename": "C:/Users/jpcaram/Dropbox/CNC/pcbcam/test_files/Example1_copper_bottom.gbr"}, {"kind": "gerber", "filename": "C:/Users/jpcaram/Dropbox/CNC/pcbcam/test_files/7V-PSU.zip"}, {"kind": "gerber", "filename": "C:/Users/jpcaram/Dropbox/CNC/pcbcam/test_files/Gerbers/AVR_Transistor_Tester_copper_top.GTL"}, {"kind": "gerber", "filename": "C:/Users/jpcaram/Dropbox/CNC/pcbcam/test_files/XGerber/do-kotle.Bot"}, {"kind": "excellon", "filename": "C:/Users/jpcaram/Dropbox/CNC/pcbcam/test_files/FlatCam_Drilling_Test/FlatCam_Drilling_Test.drl"}, {"kind": "excellon", "filename": "C:/Users/jpcaram/Dropbox/CNC/pcbcam/test_files/Excellon_Planck/X-Y CONTROLLER - Drill Data - Through Hole.drl"}, {"kind": "gerber", "filename": "C:/Users/jpcaram/Dropbox/CNC/pcbcam/test_files/7V-PSU/7V PSU.GTL"}, {"kind": "cncjob", "filename": "C:/Users/jpcaram/Dropbox/CNC/pcbcam/test_files/output.gcode"}, {"kind": "project", "filename": "C:/Users/jpcaram/Dropbox/CNC/pcbcam/test_files/project_copy.fcproj"}]
+[{"kind": "gerber", "filename": "C:/Users/jpcaram/Dropbox/CNC/pcbcam/cirkuix/tests/CBS-F_Cu.gtl"}, {"kind": "excellon", "filename": "C:/Users/jpcaram/Dropbox/CNC/pcbcam/test_files/BLDC2003Through.drl"}, {"kind": "gerber", "filename": "C:/Users/jpcaram/Dropbox/CNC/pcbcam/cirkuix/tests/CBS-B_Cu.gbl"}, {"kind": "project", "filename": "C:/Users/jpcaram/Dropbox/CNC/pcbcam/test_files/gerber_project.fcam"}, {"kind": "project", "filename": "C:/Users/jpcaram/Dropbox/CNC/pcbcam/test_files/drill_project.fcam"}, {"kind": "excellon", "filename": "C:/Users/jpcaram/Dropbox/CNC/pcbcam/test_files/TFTadapter.drl"}, {"kind": "gerber", "filename": "C:/Users/jpcaram/Dropbox/CNC/pcbcam/test_files/WindMills - Bottom Copper 2.gbr"}, {"kind": "gerber", "filename": "C:/Users/jpcaram/Dropbox/CNC/pcbcam/test_files/Example1_copper_bottom.gbr"}, {"kind": "gerber", "filename": "C:/Users/jpcaram/Dropbox/CNC/pcbcam/test_files/7V-PSU.zip"}, {"kind": "gerber", "filename": "C:/Users/jpcaram/Dropbox/CNC/pcbcam/test_files/Gerbers/AVR_Transistor_Tester_copper_top.GTL"}]