Review Request 128398: Fix KDescendantsProxyModel::setSourceModel(...) to reset internal data

David Faure faure at kde.org
Fri Jul 15 12:48:09 UTC 2016


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/128398/#review97444
-----------------------------------------------------------



I'd recommend making a new unittest with simply a QStandardItemModel as source model (and switching to another one).
Use text-based comparisons to check the contents of the proxy model. You can use kextracolumnsproxymodeltest.cpp as an example.

I don't really understand kdescendantsproxymodel_smoketest.cpp either, but it seems to mostly monitor for signals, not really for actual expected outcome of the proxymodel.

- David Faure


On July 8, 2016, 2:58 a.m., Friedrich W. H. Kossebau wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/128398/
> -----------------------------------------------------------
> 
> (Updated July 8, 2016, 2:58 a.m.)
> 
> 
> Review request for KDE Frameworks, Stephen  Kelly and Stephen Kelly.
> 
> 
> Repository: kitemmodels
> 
> 
> Description
> -------
> 
> KDescendantsProxyModel currently does not reset its internal data when a (new) source model is set.
> 
> Not sure the provided patch is the most correct one, but it works with the current unit tests and for the use case where this bug was hit.
> I am still confused why `KDescendantsProxyModelPrivate::synchronousMappingRefresh()` loops over `while (!m_pendingParents.isEmpty())` on calling `processPendingParents();` while `KDescendantsProxyModelPrivate::scheduleProcessPendingParents()` does not.
> Especially when the `KDescendantsProxyModelPrivate::sourceModelReset()` handler also only calls the latter.
> The sourceModelReset handler should be surely similar to what is done on setting a new source model, so the patch for now copies that code. But from what I understood by reading the code both of them should rather do a full loop perhaps?
> 
> And `m_relayouting` should get a better name now, but no idea yet what would be nice.
> 
> I have yet to grasp the proxymodeltest system to also write a matching unit test, any proposal where I should start?
> 
> 
> Diffs
> -----
> 
>   src/kdescendantsproxymodel.cpp 477cd96 
> 
> Diff: https://git.reviewboard.kde.org/r/128398/diff/
> 
> 
> Testing
> -------
> 
> Existing kitemmodels unit tests still pass.
> 
> 
> Thanks,
> 
> Friedrich W. H. Kossebau
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20160715/079cd8c9/attachment-0001.html>


More information about the Kde-frameworks-devel mailing list