234 else: |
234 else: |
235 # old XML based format |
235 # old XML based format |
236 f = QFile(fn) |
236 f = QFile(fn) |
237 if f.open(QIODevice.OpenModeFlag.ReadOnly): |
237 if f.open(QIODevice.OpenModeFlag.ReadOnly): |
238 with E5OverrideCursor(): |
238 with E5OverrideCursor(): |
239 from E5XML.MultiProjectReader import MultiProjectReader |
239 from EricXML.MultiProjectReader import MultiProjectReader |
240 reader = MultiProjectReader(f, self) |
240 reader = MultiProjectReader(f, self) |
241 reader.readXML() |
241 reader.readXML() |
242 f.close() |
242 f.close() |
243 res = not reader.hasError() |
243 res = not reader.hasError() |
244 else: |
244 else: |
278 @return flag indicating success |
278 @return flag indicating success |
279 """ |
279 """ |
280 if fn is None: |
280 if fn is None: |
281 fn = self.pfile |
281 fn = self.pfile |
282 |
282 |
283 if os.path.splitext(fn)[1] == ".emj": |
283 res = self.__multiProjectFile.writeFile(fn) |
284 # new JSON based format |
|
285 res = self.__multiProjectFile.writeFile(fn) |
|
286 else: |
|
287 # old XML based format |
|
288 f = QFile(fn) |
|
289 if f.open(QIODevice.OpenModeFlag.WriteOnly): |
|
290 from E5XML.MultiProjectWriter import MultiProjectWriter |
|
291 MultiProjectWriter( |
|
292 f, |
|
293 self, os.path.splitext(os.path.basename(fn))[0] |
|
294 ).writeXML() |
|
295 res = True |
|
296 else: |
|
297 E5MessageBox.critical( |
|
298 self.ui, |
|
299 self.tr("Save Multi Project File"), |
|
300 self.tr( |
|
301 "<p>The multi project file <b>{0}</b> could not be " |
|
302 "written.</p>").format(fn)) |
|
303 res = False |
|
304 |
|
305 if res: |
284 if res: |
306 self.pfile = os.path.abspath(fn) |
285 self.pfile = os.path.abspath(fn) |
307 self.ppath = os.path.abspath(os.path.dirname(fn)) |
286 self.ppath = os.path.abspath(os.path.dirname(fn)) |
308 self.name = os.path.splitext(os.path.basename(fn))[0] |
287 self.name = os.path.splitext(os.path.basename(fn))[0] |
309 self.setDirty(False) |
288 self.setDirty(False) |
622 (Preferences.getMultiProject("Workspace") or |
601 (Preferences.getMultiProject("Workspace") or |
623 Utilities.getHomeDir()) |
602 Utilities.getHomeDir()) |
624 ) |
603 ) |
625 fn, selectedFilter = E5FileDialog.getSaveFileNameAndFilter( |
604 fn, selectedFilter = E5FileDialog.getSaveFileNameAndFilter( |
626 self.parent(), |
605 self.parent(), |
627 self.tr("Save multiproject as"), |
606 self.tr("Save Multiproject"), |
628 defaultPath, |
607 defaultPath, |
629 self.tr("Multi Project Files (*.emj);;" |
608 self.tr("Multi Project Files (*.emj)"), |
630 "XML Multi Project Files (*.e5m)"), |
|
631 defaultFilter, |
609 defaultFilter, |
632 E5FileDialog.DontConfirmOverwrite) |
610 E5FileDialog.DontConfirmOverwrite) |
633 |
611 |
634 if fn: |
612 if fn: |
635 ext = QFileInfo(fn).suffix() |
613 ext = QFileInfo(fn).suffix() |