[Okular-devel] Review Request: Unfolded toc remains unfolded on reload unless the file is changed

Jaydeep Solanki jaydp17 at gmail.com
Sun Dec 30 22:58:41 UTC 2012



> On Dec. 28, 2012, 11:56 p.m., Albert Astals Cid wrote:
> > Why did you add an "id"? What is that "id" supposed to mean?
> 
> Jaydeep Solanki wrote:
>     because when the display name of two nodes are same, okular won't know which one to expand & will end up expanding the wrong one at times. So id gives a unique identity to each node, to avoid ambiguity.
> 
> Albert Astals Cid wrote:
>     Right, i see the problem.
>     
>     Could you try storing QModelIndexes instead of the "id" you just have created? QModelIndex should work fine since it already has the parent structure, etc, so it should be "doable".
>     
>     The "problem" i see with the current "id" thing is that are adding more memory usage for something that doesn't seem to be necessary.
>     
>     Also you need to delete/clear m_oldTocModel and m_expandedList after the reload is done, otherwise we are leaking memory (in the first case) or using more memory than needed (in the second case)
>     
>     There's also a few minor "style" issue i'll comment in a moment.
> 
> Jaydeep Solanki wrote:
>     there's one problem in using QMOdelIndex, when returning QModelindex from the model (tocmodel::data(..)), it returns a QVariant object, & when we want to compare the QModelIndexes, we cannot cast QVariant to QModelIndex.
>     & even if we succeed in that, the comparision with the QModelIndex of the cloned model & the actual model will result false always, because AFAIK QModelIndex contains the address of the memory location too.
>
> 
> Albert Astals Cid wrote:
>     It's not data() what you need to return but index() if you want a QModelIndex

I guess you are getting me wrong.
I have created a small example, please have a look, http://paste.kde.org/634010/

What I want to say, is that cloned models don't produce the same index as that of the original one.


- Jaydeep


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/107994/#review24157
-----------------------------------------------------------


On Dec. 30, 2012, 4:32 p.m., Jaydeep Solanki wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/107994/
> -----------------------------------------------------------
> 
> (Updated Dec. 30, 2012, 4:32 p.m.)
> 
> 
> Review request for Okular.
> 
> 
> Description
> -------
> 
> This fix will preserve the state of the Table Of Content (toc) on document reload, but if the toc is edited/changed, then it will be restored to default (i.e. all nodes will be folded)
> 
> 
> This addresses bug 312138.
>     http://bugs.kde.org/show_bug.cgi?id=312138
> 
> 
> Diffs
> -----
> 
>   part.h 0c57560 
>   part.cpp 1922128 
>   ui/toc.h eeeff98 
>   ui/toc.cpp 4c84b62 
>   ui/tocmodel.h a857dc0 
>   ui/tocmodel.cpp 39add80 
> 
> Diff: http://git.reviewboard.kde.org/r/107994/diff/
> 
> 
> Testing
> -------
> 
> Checked. Works fine with me.
> 
> 
> Thanks,
> 
> Jaydeep Solanki
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/okular-devel/attachments/20121230/efb033f1/attachment-0001.html>


More information about the Okular-devel mailing list