docs: def findPreviousItem(self, item):
          """
          Returns the previous item in the tree.
          
          :param      item | <QtGui.QTreeWidgetItem>
          
          :return     <QtGui.QTreeWidgetItem> || None
          """
          if not item:
              return None
          
          while item.parent():
              index = item.parent().indexOfChild(item)
              if index == 0:
                  return item.parent()
              
              child = item.parent().child(index-1)
              if child:
                  while child.childCount():
                      child = child.child(child.childCount() - 1)
                  return child
              
              item = item.parent()
          
          index = self.indexOfTopLevelItem(item)
          out = self.topLevelItem(index-1)
          while out and out.childCount():
              out = out.child(out.childCount() - 1)
          return out