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

Reply via email to