void BaseTreeBranch::updateOpenFolder() { KFileTreeViewItem *newItem; KFileTreeViewItem *item = root(); while (item) { if (item->isDir() && item->isOpen()) { updateDirectory( item->url() ); kapp->processEvents(QEventLoop::ExcludeUserInput | QEventLoop::ExcludeSocketNotifiers); // dive into the tree first newItem = dynamic_cast<KFileTreeViewItem *>(item->firstChild()); if (newItem) { // found child go ahead item = newItem; continue; }; }; // go up if no sibling available if (! item->nextSibling()) item = dynamic_cast<KFileTreeViewItem *>(item->parent()); if (item == root()) break; if (item) item = dynamic_cast<KFileTreeViewItem *>(item->nextSibling()); }; }
void BaseTreeBranch::addOpenFolder(QStringList* openFolder) { if (! openFolder) // just in case return; KFileTreeViewItem *newItem; KFileTreeViewItem *item = root(); while (item) { if (item->isDir() && item->isOpen()) { openFolder->append( item->url().url() ); // dive into the tree first newItem = dynamic_cast<KFileTreeViewItem *>(item->firstChild()); if (newItem) { // found child go ahead item = newItem; continue; }; }; // move up in the tree while (item && item != root()) { if (item->nextSibling()) { item = dynamic_cast<KFileTreeViewItem *>(item->nextSibling()); break; } else { item = dynamic_cast<KFileTreeViewItem *>(item->parent()); } } if (item == root()) break; }; }