--- 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"},
]