Returns the previous item in the tree.
        
        :param      item | <QtGui.QTreeWidgetItem>
        
        :return     <QtGui.QTreeWidgetItem> || None

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