util/FileManagementPanel.py
changeset 784 a1d970365e41
parent 783 f5cea1a6851e
child 789 b1b1a8f85e2f
--- a/util/FileManagementPanel.py	Thu Jun 28 16:42:07 2012 +0200
+++ b/util/FileManagementPanel.py	Sun Jul 01 23:20:19 2012 +0200
@@ -268,7 +268,8 @@
         for idx, (name, bitmap, help) in enumerate([
                 ("DeleteButton", "remove_element", _("Remove file from left folder")),
                 ("LeftCopyButton", "LeftCopy", _("Copy file from right folder to left")),
-                ("RightCopyButton", "RightCopy", _("copy file from left folder to right"))]):
+                ("RightCopyButton", "RightCopy", _("copy file from left folder to right")),
+                ("EditButton", "edit", _("Edit file"))]):
             button = wx.lib.buttons.GenBitmapButton(self.Editor, 
                   bitmap=GetBitmap(bitmap), 
                   size=wx.Size(28, 28), style=wx.NO_BORDER)
@@ -311,6 +312,9 @@
         
         self.Controler = controler
         
+        self.EditableFileExtensions = []
+        self.EditButton.Hide()
+        
         self.SetIcon(GetBitmap("FOLDER"))
     
     def __del__(self):
@@ -319,6 +323,11 @@
     def GetTitle(self):
         return self.TagName
     
+    def SetEditableFileExtensions(self, extensions):
+        self.EditableFileExtensions = extensions
+        if len(self.EditableFileExtensions) > 0:
+            self.EditButton.Show()
+    
     def RefreshView(self):
         self.ManagedDir.RefreshTree()
         self.SystemDir.RefreshTree()
@@ -331,6 +340,10 @@
         self.DeleteButton.Enable(os.path.isfile(managed_filepath))
         self.LeftCopyButton.Enable(os.path.isfile(system_filepath))
         self.RightCopyButton.Enable(os.path.isfile(managed_filepath))
+        if len(self.EditableFileExtensions) > 0:
+            self.EditButton.Enable(
+                os.path.isfile(managed_filepath) and
+                os.path.splitext(managed_filepath)[1] in self.EditableFileExtensions)
     
     def OnTreeItemChanged(self, event):
         self.RefreshButtonsState()
@@ -352,6 +365,13 @@
                 self.ManagedDir.RefreshTree()
         event.Skip()
 
+    def OnEditButton(self, event):
+        filepath = self.ManagedDir.GetPath()
+        if (os.path.isfile(filepath) and 
+            os.path.splitext(filepath)[1] in self.EditableFileExtensions):
+            self.Controler._OpenView(filepath)
+        event.Skip()
+        
     def CopyFile(self, src, dst):
         if os.path.isfile(src):
             src_folder, src_filename = os.path.split(src)