diff -r 31e63e25b4cc -r 64beb9e9c749 editors/FileManagementPanel.py --- a/editors/FileManagementPanel.py Mon Aug 21 20:17:19 2017 +0000 +++ b/editors/FileManagementPanel.py Mon Aug 21 23:22:58 2017 +0300 @@ -34,39 +34,41 @@ FILTER = _("All files (*.*)|*.*|CSV files (*.csv)|*.csv") + class FileManagementPanel(EditorPanel): - + def _init_Editor(self, parent): self.Editor = wx.Panel(parent) - + main_sizer = wx.BoxSizer(wx.HORIZONTAL) - + left_sizer = wx.BoxSizer(wx.VERTICAL) - main_sizer.AddSizer(left_sizer, 1, border=5, flag=wx.GROW|wx.ALL) - + main_sizer.AddSizer(left_sizer, 1, border=5, flag=wx.GROW | wx.ALL) + managed_dir_label = wx.StaticText(self.Editor, label=_(self.TagName) + ":") - left_sizer.AddWindow(managed_dir_label, border=5, flag=wx.GROW|wx.BOTTOM) - + left_sizer.AddWindow(managed_dir_label, border=5, flag=wx.GROW | wx.BOTTOM) + self.ManagedDir = FolderTree(self.Editor, self.Folder, FILTER) left_sizer.AddWindow(self.ManagedDir, 1, flag=wx.GROW) - + managed_treectrl = self.ManagedDir.GetTreeCtrl() self.Bind(wx.EVT_TREE_SEL_CHANGED, self.OnTreeItemChanged, managed_treectrl) if self.EnableDragNDrop: self.Bind(wx.EVT_TREE_BEGIN_DRAG, self.OnTreeBeginDrag, managed_treectrl) - + button_sizer = wx.BoxSizer(wx.VERTICAL) - main_sizer.AddSizer(button_sizer, border=5, - flag=wx.ALL|wx.ALIGN_CENTER_VERTICAL) - + main_sizer.AddSizer(button_sizer, border=5, + flag=wx.ALL | wx.ALIGN_CENTER_VERTICAL) + 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")), ("EditButton", "edit", _("Edit file"))]): - button = wx.lib.buttons.GenBitmapButton(self.Editor, - bitmap=GetBitmap(bitmap), - size=wx.Size(28, 28), style=wx.NO_BORDER) + button = wx.lib.buttons.GenBitmapButton( + self.Editor, + bitmap=GetBitmap(bitmap), + size=wx.Size(28, 28), style=wx.NO_BORDER) button.SetToolTipString(help) setattr(self, name, button) if idx > 0: @@ -75,62 +77,62 @@ flag = 0 self.Bind(wx.EVT_BUTTON, getattr(self, "On" + name), button) button_sizer.AddWindow(button, border=20, flag=flag) - + right_sizer = wx.BoxSizer(wx.VERTICAL) - main_sizer.AddSizer(right_sizer, 1, border=5, flag=wx.GROW|wx.ALL) - + main_sizer.AddSizer(right_sizer, 1, border=5, flag=wx.GROW | wx.ALL) + if wx.Platform == '__WXMSW__': system_dir_label = wx.StaticText(self.Editor, label=_("My Computer:")) else: system_dir_label = wx.StaticText(self.Editor, label=_("Home Directory:")) - right_sizer.AddWindow(system_dir_label, border=5, flag=wx.GROW|wx.BOTTOM) - + right_sizer.AddWindow(system_dir_label, border=5, flag=wx.GROW | wx.BOTTOM) + self.SystemDir = FolderTree(self.Editor, self.HomeDirectory, FILTER, False) right_sizer.AddWindow(self.SystemDir, 1, flag=wx.GROW) - + system_treectrl = self.SystemDir.GetTreeCtrl() self.Bind(wx.EVT_TREE_SEL_CHANGED, self.OnTreeItemChanged, system_treectrl) - + self.Editor.SetSizer(main_sizer) - + def __init__(self, parent, controler, name, folder, enable_dragndrop=False): self.Folder = os.path.realpath(folder) self.EnableDragNDrop = enable_dragndrop - + if wx.Platform == '__WXMSW__': self.HomeDirectory = "/" else: self.HomeDirectory = os.path.expanduser("~") - + EditorPanel.__init__(self, parent, name, None, None) - + self.Controler = controler - + self.EditableFileExtensions = [] self.EditButton.Hide() - + self.SetIcon(GetBitmap("FOLDER")) - + def __del__(self): self.Controler.OnCloseEditor(self) - + 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() self.RefreshButtonsState() - + def RefreshButtonsState(self): managed_filepath = self.ManagedDir.GetPath() system_filepath = self.SystemDir.GetPath() - + self.DeleteButton.Enable(os.path.isfile(managed_filepath)) self.LeftCopyButton.Enable(os.path.isfile(system_filepath)) self.RightCopyButton.Enable(os.path.isfile(managed_filepath)) @@ -138,22 +140,23 @@ self.EditButton.Enable( os.path.isfile(managed_filepath) and os.path.splitext(managed_filepath)[1] in self.EditableFileExtensions) - + def OnTreeItemChanged(self, event): self.RefreshButtonsState() event.Skip() - + def OnDeleteButton(self, event): filepath = self.ManagedDir.GetPath() if os.path.isfile(filepath): folder, filename = os.path.split(filepath) - - dialog = wx.MessageDialog(self, - _("Do you really want to delete the file '%s'?") % filename, - _("Delete File"), wx.YES_NO|wx.ICON_QUESTION) + + dialog = wx.MessageDialog(self, + _("Do you really want to delete the file '%s'?") % filename, + _("Delete File"), + wx.YES_NO | wx.ICON_QUESTION) remove = dialog.ShowModal() == wx.ID_YES dialog.Destroy() - + if remove: os.remove(filepath) self.ManagedDir.RefreshTree() @@ -161,11 +164,11 @@ def OnEditButton(self, event): filepath = self.ManagedDir.GetPath() - if (os.path.isfile(filepath) and - os.path.splitext(filepath)[1] in self.EditableFileExtensions): + 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) @@ -173,17 +176,18 @@ dst_folder, dst_filename = os.path.split(dst) else: dst_folder = dst - + dst_filepath = os.path.join(dst_folder, src_filename) if os.path.isfile(dst_filepath): - dialog = wx.MessageDialog(self, - _("The file '%s' already exist.\nDo you want to replace it?") % src_filename, - _("Replace File"), wx.YES_NO|wx.ICON_QUESTION) + dialog = wx.MessageDialog( + self, + _("The file '%s' already exist.\nDo you want to replace it?") % src_filename, + _("Replace File"), wx.YES_NO | wx.ICON_QUESTION) copy = dialog.ShowModal() == wx.ID_YES dialog.Destroy() else: copy = True - + if copy: shutil.copyfile(src, dst_filepath) return dst_filepath @@ -202,7 +206,7 @@ self.SystemDir.RefreshTree() self.SystemDir.SetPath(filepath) event.Skip() - + def OnTreeBeginDrag(self, event): filepath = self.ManagedDir.GetPath() if os.path.isfile(filepath): @@ -211,4 +215,3 @@ dragSource = wx.DropSource(self) dragSource.SetData(data) dragSource.DoDragDrop() -