ProjectController.py
changeset 1061 02f371f3e063
parent 1006 0302f9ab7e9a
child 1062 fd7c9a7cf882
equal deleted inserted replaced
1060:ac9896336b90 1061:02f371f3e063
   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):