232 self.AppFrame.RefreshFileMenu() |
232 self.AppFrame.RefreshFileMenu() |
233 self.AppFrame.RefreshPageTitles() |
233 self.AppFrame.RefreshPageTitles() |
234 return True |
234 return True |
235 return False |
235 return False |
236 |
236 |
237 def _getProjectFilesPath(self): |
237 def _getProjectFilesPath(self, project_path=None): |
|
238 if project_path is not None: |
|
239 return os.path.join(project_path, "project_files") |
238 projectfiles_path = os.path.join(self.GetProjectPath(), "project_files") |
240 projectfiles_path = os.path.join(self.GetProjectPath(), "project_files") |
239 if not os.path.exists(projectfiles_path): |
241 if not os.path.exists(projectfiles_path): |
240 os.mkdir(projectfiles_path) |
242 os.mkdir(projectfiles_path) |
241 return projectfiles_path |
243 return projectfiles_path |
242 |
244 |
346 |
348 |
347 def CloseProject(self): |
349 def CloseProject(self): |
348 self.ClearChildren() |
350 self.ClearChildren() |
349 self.ResetAppFrame(None) |
351 self.ResetAppFrame(None) |
350 |
352 |
351 def SaveProject(self): |
353 def SaveProject(self, from_project_path=None): |
352 if self.CheckProjectPathPerm(False): |
354 if self.CheckProjectPathPerm(False): |
|
355 if from_project_path is not None: |
|
356 old_projectfiles_path = self._getProjectFilesPath(from_project_path) |
|
357 if os.path.isdir(old_projectfiles_path): |
|
358 shutil.copytree(old_projectfiles_path, |
|
359 self._getProjectFilesPath(self.ProjectPath)) |
353 self.SaveXMLFile(os.path.join(self.ProjectPath, 'plc.xml')) |
360 self.SaveXMLFile(os.path.join(self.ProjectPath, 'plc.xml')) |
354 result = self.CTNRequestSave() |
361 result = self.CTNRequestSave(from_project_path) |
355 if result: |
362 if result: |
356 self.logger.write_error(result) |
363 self.logger.write_error(result) |
357 |
364 |
358 def SaveProjectAs(self, dosave=True): |
365 def SaveProjectAs(self): |
359 # Ask user to choose a path with write permissions |
366 # Ask user to choose a path with write permissions |
360 if wx.Platform == '__WXMSW__': |
367 if wx.Platform == '__WXMSW__': |
361 path = os.getenv("USERPROFILE") |
368 path = os.getenv("USERPROFILE") |
362 else: |
369 else: |
363 path = os.getenv("HOME") |
370 path = os.getenv("HOME") |
365 answer = dirdialog.ShowModal() |
372 answer = dirdialog.ShowModal() |
366 dirdialog.Destroy() |
373 dirdialog.Destroy() |
367 if answer == wx.ID_OK: |
374 if answer == wx.ID_OK: |
368 newprojectpath = dirdialog.GetPath() |
375 newprojectpath = dirdialog.GetPath() |
369 if os.path.isdir(newprojectpath): |
376 if os.path.isdir(newprojectpath): |
370 self.ProjectPath = newprojectpath |
377 self.ProjectPath, old_project_path = newprojectpath, self.ProjectPath |
371 if dosave: |
378 self.SaveProject(old_project_path) |
372 self.SaveProject() |
|
373 self._setBuildPath(self.BuildPath) |
379 self._setBuildPath(self.BuildPath) |
374 return True |
380 return True |
375 return False |
381 return False |
376 |
382 |
377 def GetLibrariesTypes(self): |
383 def GetLibrariesTypes(self): |