267 |
267 |
268 self.__fileName = filename |
268 self.__fileName = filename |
269 |
269 |
270 # TODO: add loading of file in JSON format |
270 # TODO: add loading of file in JSON format |
271 # TODO: eric7: delete the current one |
271 # TODO: eric7: delete the current one |
272 def load(self): |
272 def load(self, filename=""): |
273 """ |
273 """ |
274 Public method to load a diagram from a file. |
274 Public method to load a diagram from a file. |
275 |
275 |
276 @return flag indicating success (boolean) |
276 @param filename name of the file to be loaded |
277 """ |
277 @type str |
278 filename = E5FileDialog.getOpenFileName( |
278 @return flag indicating success |
279 self, |
279 @rtype bool |
280 self.tr("Load Diagram"), |
280 """ |
281 "", |
|
282 self.tr("Eric Graphics File (*.e5g);;All Files (*)")) |
|
283 if not filename: |
281 if not filename: |
284 # Cancelled by user |
282 filename = E5FileDialog.getOpenFileName( |
285 return False |
283 self, |
|
284 self.tr("Load Diagram"), |
|
285 "", |
|
286 self.tr("Eric Graphics File (*.e5g);;All Files (*)")) |
|
287 if not filename: |
|
288 # Cancelled by user |
|
289 return False |
286 |
290 |
287 try: |
291 try: |
288 with open(filename, "r", encoding="utf-8") as f: |
292 with open(filename, "r", encoding="utf-8") as f: |
289 data = f.read() |
293 data = f.read() |
290 except OSError as err: |
294 except OSError as err: |
320 if key.strip() != "diagram_type": |
324 if key.strip() != "diagram_type": |
321 self.__showInvalidDataMessage(filename, linenum) |
325 self.__showInvalidDataMessage(filename, linenum) |
322 return False |
326 return False |
323 try: |
327 try: |
324 diagramType, diagramTypeString = value.strip().split(None, 1) |
328 diagramType, diagramTypeString = value.strip().split(None, 1) |
325 self.__diagramType = UMLDialogType(int(self.__diagramType)) |
329 self.__diagramType = UMLDialogType(int(diagramType)) |
326 self.__diagramTypeString = diagramTypeString[1:-1] |
330 self.__diagramTypeString = diagramTypeString[1:-1] |
327 # remove opening an closing bracket |
331 # remove opening and closing bracket |
328 except ValueError: |
332 except ValueError: |
329 self.__showInvalidDataMessage(filename, linenum) |
333 self.__showInvalidDataMessage(filename, linenum) |
330 return False |
334 return False |
331 self.scene.clear() |
335 self.scene.clear() |
332 self.builder = self.__diagramBuilder(self.__diagramType, "") |
336 self.builder = self.__diagramBuilder(self.__diagramType, "") |