dfaure planned changes to this revision. dfaure added a comment.
In D25315#619436 <https://phabricator.kde.org/D25315#619436>, @rrosch wrote: > Tested on patched KF5 5.64, on Fedora 30 (32bit)... root node shows up! I had to change the call in my code that was originally: > > model->dirLister()->openUrl(QUrl::fromLocalFile("/"), KDirLister::Keep); > > [to] model->openUrl(QUrl::fromLocalFile("/"), KDirModel::ShowRoot); > and don't really know the implications of the change at this point. (Will it "Keep"? Does it matter that I now call the model's openURL vs the dirLister's?) It's part of the documentation for this change, that you're actually supposed to call model->openUrl(). So yes it matters :-) Keep only matters for further calls to openUrl, not the first one. It's about whether to *add* or *replace* the currently open URL. KDirModel takes care of that. > I couldn't however get the following to work: > > QModelIndex index = getIndexFromUrl("/home/myuser"); Invalid URL, that's a path, not a URL. You need QUrl::fromLocalFile(). > if (index.isValid()) { > treeView->setRootIndex(index.parent()); > } > > > Which should show the node for "/home" as the root, but is instead giving me a flat listing of all the child nodes without "/home" as the root. Oh, hmm, that's not how setRootIndex works (that's a *view* feature, we can't change that). I changed the model to have one more node for "/", while I see now that what you want is that it *always* shows a root node even when the root is another directory. > (Also, it would be great to have a setRootPath() that works in conjunction to expandToUrl or openUrl, to save processing cycles wasted on loading the parts of the model that won't be shown in the new rootIndex, like https://doc.qt.io/qt-5/qfilesystemmodel.html#setRootPath ) Yes it sounds like that's exactly what's needed in KDirModel. Damn, I need to rework all this then. > As it is relevant, I also tested the patch at http://www.davidfaure.fr/2019/kdirmodel_haschildren.diff for `hasChildren()`, which works as expected! Thank you! Thanks, posted as D27731 <https://phabricator.kde.org/D27731> REPOSITORY R241 KIO REVISION DETAIL https://phabricator.kde.org/D25315 To: dfaure, stefanocrocco, elvisangelaccio, meven, apol Cc: rrosch, kde-frameworks-devel, LeGast00n, cblack, GB_2, michaelh, ngraham, bruns