ProjectController.py
changeset 757 3151495ae5bb
parent 754 a8c258f7bdcf
child 758 699a7bad5a8c
--- 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"},
     ]