util/FileManagementPanel.py
changeset 784 a1d970365e41
parent 783 f5cea1a6851e
child 789 b1b1a8f85e2f
equal deleted inserted replaced
783:f5cea1a6851e 784:a1d970365e41
   266               flag=wx.ALL|wx.ALIGN_CENTER_VERTICAL)
   266               flag=wx.ALL|wx.ALIGN_CENTER_VERTICAL)
   267         
   267         
   268         for idx, (name, bitmap, help) in enumerate([
   268         for idx, (name, bitmap, help) in enumerate([
   269                 ("DeleteButton", "remove_element", _("Remove file from left folder")),
   269                 ("DeleteButton", "remove_element", _("Remove file from left folder")),
   270                 ("LeftCopyButton", "LeftCopy", _("Copy file from right folder to left")),
   270                 ("LeftCopyButton", "LeftCopy", _("Copy file from right folder to left")),
   271                 ("RightCopyButton", "RightCopy", _("copy file from left folder to right"))]):
   271                 ("RightCopyButton", "RightCopy", _("copy file from left folder to right")),
       
   272                 ("EditButton", "edit", _("Edit file"))]):
   272             button = wx.lib.buttons.GenBitmapButton(self.Editor, 
   273             button = wx.lib.buttons.GenBitmapButton(self.Editor, 
   273                   bitmap=GetBitmap(bitmap), 
   274                   bitmap=GetBitmap(bitmap), 
   274                   size=wx.Size(28, 28), style=wx.NO_BORDER)
   275                   size=wx.Size(28, 28), style=wx.NO_BORDER)
   275             button.SetToolTipString(help)
   276             button.SetToolTipString(help)
   276             setattr(self, name, button)
   277             setattr(self, name, button)
   309         
   310         
   310         EditorPanel.__init__(self, parent, name, None, None)
   311         EditorPanel.__init__(self, parent, name, None, None)
   311         
   312         
   312         self.Controler = controler
   313         self.Controler = controler
   313         
   314         
       
   315         self.EditableFileExtensions = []
       
   316         self.EditButton.Hide()
       
   317         
   314         self.SetIcon(GetBitmap("FOLDER"))
   318         self.SetIcon(GetBitmap("FOLDER"))
   315     
   319     
   316     def __del__(self):
   320     def __del__(self):
   317         self.Controler.OnCloseEditor(self)
   321         self.Controler.OnCloseEditor(self)
   318     
   322     
   319     def GetTitle(self):
   323     def GetTitle(self):
   320         return self.TagName
   324         return self.TagName
       
   325     
       
   326     def SetEditableFileExtensions(self, extensions):
       
   327         self.EditableFileExtensions = extensions
       
   328         if len(self.EditableFileExtensions) > 0:
       
   329             self.EditButton.Show()
   321     
   330     
   322     def RefreshView(self):
   331     def RefreshView(self):
   323         self.ManagedDir.RefreshTree()
   332         self.ManagedDir.RefreshTree()
   324         self.SystemDir.RefreshTree()
   333         self.SystemDir.RefreshTree()
   325         self.RefreshButtonsState()
   334         self.RefreshButtonsState()
   329         system_filepath = self.SystemDir.GetPath()
   338         system_filepath = self.SystemDir.GetPath()
   330         
   339         
   331         self.DeleteButton.Enable(os.path.isfile(managed_filepath))
   340         self.DeleteButton.Enable(os.path.isfile(managed_filepath))
   332         self.LeftCopyButton.Enable(os.path.isfile(system_filepath))
   341         self.LeftCopyButton.Enable(os.path.isfile(system_filepath))
   333         self.RightCopyButton.Enable(os.path.isfile(managed_filepath))
   342         self.RightCopyButton.Enable(os.path.isfile(managed_filepath))
       
   343         if len(self.EditableFileExtensions) > 0:
       
   344             self.EditButton.Enable(
       
   345                 os.path.isfile(managed_filepath) and
       
   346                 os.path.splitext(managed_filepath)[1] in self.EditableFileExtensions)
   334     
   347     
   335     def OnTreeItemChanged(self, event):
   348     def OnTreeItemChanged(self, event):
   336         self.RefreshButtonsState()
   349         self.RefreshButtonsState()
   337         event.Skip()
   350         event.Skip()
   338         
   351         
   350             if remove:
   363             if remove:
   351                 os.remove(filepath)
   364                 os.remove(filepath)
   352                 self.ManagedDir.RefreshTree()
   365                 self.ManagedDir.RefreshTree()
   353         event.Skip()
   366         event.Skip()
   354 
   367 
       
   368     def OnEditButton(self, event):
       
   369         filepath = self.ManagedDir.GetPath()
       
   370         if (os.path.isfile(filepath) and 
       
   371             os.path.splitext(filepath)[1] in self.EditableFileExtensions):
       
   372             self.Controler._OpenView(filepath)
       
   373         event.Skip()
       
   374         
   355     def CopyFile(self, src, dst):
   375     def CopyFile(self, src, dst):
   356         if os.path.isfile(src):
   376         if os.path.isfile(src):
   357             src_folder, src_filename = os.path.split(src)
   377             src_folder, src_filename = os.path.split(src)
   358             if os.path.isfile(dst):
   378             if os.path.isfile(dst):
   359                 dst_folder, dst_filename = os.path.split(dst)
   379                 dst_folder, dst_filename = os.path.split(dst)