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) |