Folder* Folder::folderBelow() { QList<Folder*> lst = folders(); if (!lst.isEmpty()) return lst.first(); Folder *parentFolder = (Folder *)parent(); Folder *childFolder = this; while (parentFolder && childFolder){ lst = parentFolder->folders(); int pos = lst.indexOf(childFolder) + 1; if (pos < lst.size()) return lst.at(pos); childFolder = parentFolder; parentFolder = (Folder *)parentFolder->parent(); } return NULL; }