diff -r 35cd28825be7 -r 3151495ae5bb ProjectController.py --- a/ProjectController.py Sun Jun 03 23:53:45 2012 +0200 +++ b/ProjectController.py Mon Jun 04 00:39:49 2012 +0200 @@ -230,6 +230,12 @@ return True return False + def _getProjectFilesPath(self): + projectfiles_path = os.path.join(self.GetProjectPath(), "project_files") + if not os.path.exists(projectfiles_path): + os.mkdir(projectfiles_path) + return projectfiles_path + def NewProject(self, ProjectPath, BuildPath=None): """ Create a new project in an empty folder @@ -1358,12 +1364,15 @@ _("Latest build already matches current target. Transfering anyway...\n")) # Get temprary directory path - extrafilespath = self._getExtraFilesPath() - extrafiles = [(name, open(os.path.join(extrafilespath, name), + extrafiles = [] + for extrafilespath in [self._getExtraFilesPath(), + self._getProjectFilesPath()]: + + extrafiles.extend( + [(name, open(os.path.join(extrafilespath, name), 'rb').read()) \ - for name in os.listdir(extrafilespath) \ - if not name=="CVS"] - + for name in os.listdir(extrafilespath)]) + # Send PLC on target builder = self.GetBuilder() if builder is not None: @@ -1383,6 +1392,16 @@ wx.CallAfter(self.UpdateMethodsFromPLCStatus) + def _ImportProjectFile(self): + dialog = wx.FileDialog(self.AppFrame, _("Choose a file"), os.getcwd(), "", _("All files|*.*"), wx.OPEN) + if dialog.ShowModal() == wx.ID_OK: + filepath = dialog.GetPath() + if os.path.isfile(filepath): + shutil.copy(filepath, self._getProjectFilesPath()) + else: + self.logger.write_error(_("No such file: %s\n") % filepath) + dialog.Destroy() + StatusMethods = [ {"bitmap" : "Build", "name" : _("Build"), @@ -1429,6 +1448,10 @@ "name" : _("Raw IEC code"), "tooltip" : _("Edit raw IEC code added to code generated by PLCGenerator"), "method" : "_editIECrawcode"}, + {"bitmap" : "ImportFile", + "name" : _("Import file"), + "tooltip" : _("Import into project a file to be transfered with PLC"), + "method" : "_ImportProjectFile"}, ]