controls/FolderTree.py
changeset 1730 64d8f52bc8c8
parent 1571 486f94a8032c
child 1736 7e61baa047f0
--- a/controls/FolderTree.py	Fri Aug 11 15:18:19 2017 +0300
+++ b/controls/FolderTree.py	Mon Aug 14 19:13:01 2017 +0300
@@ -47,13 +47,13 @@
     return splitpath(head) + [tail]
 
 class FolderTree(wx.Panel):
-    
+
     def __init__(self, parent, folder, filter=None, editable=True):
         wx.Panel.__init__(self, parent, style=wx.TAB_TRAVERSAL)
-        
+
         main_sizer = wx.BoxSizer(wx.VERTICAL)
-        
-        self.Tree = wx.TreeCtrl(self, 
+
+        self.Tree = wx.TreeCtrl(self,
               style=wx.TR_HAS_BUTTONS|
                     wx.TR_SINGLE|
                     wx.SUNKEN_BORDER|
@@ -69,19 +69,19 @@
         self.Bind(wx.EVT_TREE_BEGIN_LABEL_EDIT, self.OnTreeBeginLabelEdit, self.Tree)
         self.Bind(wx.EVT_TREE_END_LABEL_EDIT, self.OnTreeEndLabelEdit, self.Tree)
         main_sizer.AddWindow(self.Tree, 1, flag=wx.GROW)
-        
+
         if filter is not None:
             self.Filter = wx.ComboBox(self, style=wx.CB_READONLY)
             self.Bind(wx.EVT_COMBOBOX, self.OnFilterChanged, self.Filter)
             main_sizer.AddWindow(self.Filter, flag=wx.GROW)
         else:
             self.Filter = None
-        
+
         self.SetSizer(main_sizer)
-        
+
         self.Folder = folder
         self.Editable = editable
-        
+
         self.TreeImageList = wx.ImageList(16, 16)
         self.TreeImageDict = {}
         for item_type, bitmap in [(DRIVE, "tree_drive"),
@@ -89,7 +89,7 @@
                                   (FILE, "tree_file")]:
             self.TreeImageDict[item_type] = self.TreeImageList.Add(GetBitmap(bitmap))
         self.Tree.SetImageList(self.TreeImageList)
-        
+
         self.Filters = {}
         if self.Filter is not None:
             filter_parts = filter.split("|")
@@ -101,11 +101,11 @@
                 self.Filter.Append(filter_parts[idx])
                 if idx == 0:
                     self.Filter.SetStringSelection(filter_parts[idx])
-                
+
             self.CurrentFilter = self.Filters[self.Filter.GetStringSelection()]
         else:
             self.CurrentFilter = ""
-    
+
     def _GetFolderChildren(self, folderpath, recursive=True):
         items = []
         if wx.Platform == '__WXMSW__' and folderpath == "/":
@@ -127,25 +127,25 @@
                         else:
                             children = 0
                         items.append((filename, FOLDER, children))
-                    elif (self.CurrentFilter == "" or 
+                    elif (self.CurrentFilter == "" or
                           os.path.splitext(filename)[1] == self.CurrentFilter):
                         items.append((filename, FILE, None))
         if recursive:
             items.sort(sort_folder)
         return items
-    
+
     def SetFilter(self, filter):
         self.CurrentFilter = filter
-    
+
     def GetTreeCtrl(self):
         return self.Tree
-    
+
     def RefreshTree(self):
         root = self.Tree.GetRootItem()
         if not root.IsOk():
             root = self.Tree.AddRoot("")
         self.GenerateTreeBranch(root, self.Folder)
-        
+
     def GenerateTreeBranch(self, root, folderpath):
         item, item_cookie = self.Tree.GetFirstChild(root)
         for idx, (filename, item_type, children) in enumerate(self._GetFolderChildren(folderpath)):
@@ -172,18 +172,18 @@
     def ExpandItem(self, item):
         self.GenerateTreeBranch(item, self.GetPath(item))
         self.Tree.Expand(item)
-    
+
     def OnTreeItemActivated(self, event):
         self.ExpandItem(event.GetItem())
         event.Skip()
-    
+
     def OnTreeLeftDown(self, event):
         item, flags = self.Tree.HitTest(event.GetPosition())
         if flags & wx.TREE_HITTEST_ONITEMBUTTON and not self.Tree.IsExpanded(item):
             self.ExpandItem(item)
         else:
             event.Skip()
-    
+
     def OnTreeItemExpanded(self, event):
         item = event.GetItem()
         self.GenerateTreeBranch(item, self.GetPath(item))
@@ -201,7 +201,7 @@
             event.Skip()
         else:
             event.Veto()
-    
+
     def OnTreeEndLabelEdit(self, event):
         new_name = event.GetLabel()
         if new_name != "":
@@ -212,20 +212,20 @@
                     os.rename(old_filepath, new_filepath)
                     event.Skip()
                 else:
-                    message =  wx.MessageDialog(self, 
-                        _("File '%s' already exists!") % new_name, 
+                    message =  wx.MessageDialog(self,
+                        _("File '%s' already exists!") % new_name,
                         _("Error"), wx.OK|wx.ICON_ERROR)
                     message.ShowModal()
                     message.Destroy()
                     event.Veto()
         else:
             event.Skip()
-    
+
     def OnFilterChanged(self, event):
         self.CurrentFilter = self.Filters[self.Filter.GetStringSelection()]
         self.RefreshTree()
         event.Skip()
-    
+
     def _SelectItem(self, root, parts):
         if len(parts) == 0:
             self.Tree.SelectItem(root)
@@ -233,7 +233,7 @@
             item, item_cookie = self.Tree.GetFirstChild(root)
             while item.IsOk():
                 if self.Tree.GetItemText(item) == parts[0]:
-                    if (self.Tree.ItemHasChildren(item) and 
+                    if (self.Tree.ItemHasChildren(item) and
                         not self.Tree.IsExpanded(item)):
                         self.Tree.Expand(item)
                         wx.CallAfter(self._SelectItem, item, parts[1:])
@@ -241,14 +241,14 @@
                         self._SelectItem(item, parts[1:])
                     return
                 item, item_cookie = self.Tree.GetNextChild(root, item_cookie)
-    
+
     def SetPath(self, path):
         if path.startswith(self.Folder):
             root = self.Tree.GetRootItem()
             if root.IsOk():
                 relative_path = path.replace(os.path.join(self.Folder, ""), "")
                 self._SelectItem(root, splitpath(relative_path))
-    
+
     def GetPath(self, item=None):
         if item is None:
             item = self.Tree.GetSelection()