Review Request: Save/Restore the ProjectTreeView.
Andreas Pakulat
apaku at gmx.de
Thu Jan 5 16:53:59 UTC 2012
> On Jan. 5, 2012, 4:17 p.m., Milian Wolff wrote:
> > plugins/projectmanagerview/projecttreeview.cpp, line 329
> > <http://git.reviewboard.kde.org/r/103619/diff/1/?file=45327#file45327line329>
> >
> > I wonder about this, as it is a ABI/source-incompatible change. How could this happen with kdelibs code?
> >
> > Also: I don't see setTreeView here:
> >
> > http://api.kde.org/4.5-api/kdelibs-apidocs/kdeui/html/kviewstatesaver_8h_source.html
> >
> > while the apidox in here:
> >
> > http://api.kde.org/4.5-api/kdelibs-apidocs/kdeui/html/classKViewStateSaver.html#8ea1426a563a88733f26f55d837946ee
> >
> > do refer to a "setTreeView", it is not actually listed as a method there either.
It seems like Andrew got confused by the api docs and didn't really compile against a 4.5 kdelibs. Both 4.5 and 4.6 have the setView function in the header so apparently no breakage of ABI/API or source-compatibility, just a typo/oversight in the documentation (note the typo is also in both versions of the docs)
- Andreas
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/103619/#review9574
-----------------------------------------------------------
On Jan. 3, 2012, 6:29 a.m., Andrew Fuller wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/103619/
> -----------------------------------------------------------
>
> (Updated Jan. 3, 2012, 6:29 a.m.)
>
>
> Review request for KDevelop.
>
>
> Description
> -------
>
> Save/Restore the ProjectTreeView. This enables a more seamless transition when returning to a project that was closed.
>
> I'm using KViewStateSaver to do the actual save/restore which unfortunately has an interface change between KDE 4.5 and 4.6, so there's a small #if #else (twice) in the code. This can be removed when KDE 4.5 is no longer supported.
>
> I was directed in #kdevelop to store this in the project config files (as done in this patch). There are two implications of storing it there since the tree view combines all the projects together. The first is that when multiple projects are open, then the stored values may contain data for other projects (in practice this is irrelevant, it just feels impure). The other is that because it gets restored piecemeal that the scrollbar is incorrect. This is also irrelevant. Just imperfect.
>
> This would also work very well stored in the session config. To do this I would only need to add a signal for when the session is about to be closed. Currently the QuitSession signal triggers all the cleanup and I would need to guarantee that the settings are saved before the model is emptied.
>
> Finally, I did a best-guess to follow the coding style within kdevplatform, but some files were conflicting and http://www.kdevelop.org/mediawiki/index.php/Coding_Guidelines (from Architecture.dox) is MIA. So please point out any style errors as well.
>
>
> Diffs
> -----
>
> plugins/projectmanagerview/projecttreeview.h 16893f0713b83a78a5b025a55fcfa082265d4419
> plugins/projectmanagerview/projecttreeview.cpp 8237af513627c0459d571de2bccc275e8a4b0ae9
> project/CMakeLists.txt bac4b22b8a9966f4efe4080a6d24e0de17c48e12
> project/projectmodelsaver.h PRE-CREATION
> project/projectmodelsaver.cpp PRE-CREATION
>
> Diff: http://git.reviewboard.kde.org/r/103619/diff/diff
>
>
> Testing
> -------
>
> Load a session, Exit, and return. Voilà! The tree is right where you left it.
>
>
> Thanks,
>
> Andrew Fuller
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20120105/0302cdf5/attachment.html>
More information about the KDevelop-devel
mailing list