[rekonq] Re: Review Request: A bit of cleanup in Application.

Pierre Rossi pierre.rossi at gmail.com
Sun Jan 9 22:53:14 CET 2011



> On Jan. 8, 2011, 10:13 p.m., Benjamin Poulain wrote:
> > You are gonna kill me. The previous patch was more correct actually :)
> > 
> > I did not notice those objects are parented to the instance of Application. One have to wonder why those methods are static at all.
> 
> Pierre Rossi wrote:
>     Huh indeed, that might actually crash on exit now! 
>     The static methods still seem more convenient than something like Application::instance()->historyManger() or similar calls...
>     Hard to decide which approach to keep for cleanup, I'm tempted to drop the instance() as a parent in favor of a scoped pointer because it's more generic, so if some day someone wants to add something that's not a QObject in the same fashion, it can still be done in the same way.
> 
> Andrea Diamantini wrote:
>     The static methods + members has been maintained from the "big switch" to be a singleton. I'm not actually sure on what are the implications of moving from the QWeakPointer (deleting them in dtor) to the QScopedPointer class (deleting them... when?).
>     I just think that, for cleaness of the Application class code, they should be completely removed. This anyway will force the other classes to use something like "Application::instance()->historyManager()" or similar.
>     That's it. Tell me what you think it's better.
> 
> Benjamin Poulain wrote:
>     > I'm not actually sure on what are the implications of moving from the QWeakPointer (deleting them in dtor) to the QScopedPointer class (deleting them... when?).
>     
>     Static variables are destroyed in reverse order of their creation. Which mean the objects would be destroyed after main().
>     
>     > I just think that, for cleaness of the Application class code, they should be completely removed. This anyway will force the other classes to use something like > "Application::instance()->historyManager()" or similar.
>     > That's it. Tell me what you think it's better.
>     
>     Sounds good.
>     
>     Make them explicitly dependent on the object application. We could add rApp as a shortcut to Application::instance(), similar to qApp.
>     
>     Or I guess those classes could be singleton themselves.
> 
> Andrea Diamantini wrote:
>     So, to summarize:
>     1) remove ALL static methods from Application
>     2) Let the manager classes be singleton (this way you can call them without using the instance call)
>     3) add an rApp shortcut (nice) to get rid of Application::instance() in the code.
>     
>     Right?

I think I wouldn't go for 2), I believe it'd make sense to have more than one manager instance in some cases (e.g. private browsing could use a temporary one to throw away and not save to file.)


- Pierre


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


On Jan. 8, 2011, 9:51 p.m., Pierre Rossi wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/100316/
> -----------------------------------------------------------
> 
> (Updated Jan. 8, 2011, 9:51 p.m.)
> 
> 
> Review request for rekonq and Benjamin Poulain.
> 
> 
> Summary
> -------
> 
> I believe we don't need static members in QWeakPointers for all the *Managers, static getter functions would do the job.
> 
> 
> This addresses bug N/A.
>     /show_bug.cgi?id=N/A
> 
> 
> Diffs
> -----
> 
>   src/application.h b30e337 
>   src/application.cpp 466a0a4 
> 
> Diff: http://git.reviewboard.kde.org/r/100316/diff
> 
> 
> Testing
> -------
> 
> "compiles and runs" ™
> 
> 
> Thanks,
> 
> Pierre
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/rekonq/attachments/20110109/a77aaa28/attachment.htm 


More information about the rekonq mailing list