Review Request: Provide (mostly) automatic synchronization between separate instances of KXMLGUIClient-derivatives

Thomas Friedrichsmeier thomas.friedrichsmeier at ruhr-uni-bochum.de
Sat May 8 17:03:36 BST 2010



> On 2010-05-06 18:22:46, Christoph Cullmann wrote:
> > If that works for you better, please apply the patch ;)
> > I am not that deep inside this area :P

Actually, this request is currently sort of "on hold" (I wish there was a way to mark it as such). Two reasons for that:

- The request would change a lot, if KDirWatch was available in kdecore (or anywhere above kdeui), as pointed out by David Faure. As far as I can see, some things appear to be moving for KDE 4.6, so perhaps that actually has a chance of happening. @David (or anybody else), could you comment on that?
- The current code for re-building the GUI does not work well with action lists (also pointed out by David, in a different thread on kdecore-devel: http://lists.kde.org/?l=kde-core-devel&m=125387933016624&w=2). It should be possible to address this (kdelibs already has similar code), but I did not get around to do so, yet.

I have removed kate from the list of reviewers. This is really about kdelibs, and kate was more or less just an example use-case.


- Thomas


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


On 2010-05-08 15:55:22, Thomas Friedrichsmeier wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviewboard.kde.org/r/1238/
> -----------------------------------------------------------
> 
> (Updated 2010-05-08 15:55:22)
> 
> 
> Review request for kdelibs.
> 
> 
> Summary
> -------
> 
> First to sum up the problem, I'm trying to solve. I'll use konqueror as an example:
> 1) Fire up two instances of konqueror. In one of the instances, set the shortcut of "Show History" to "Shift+F6". Now switch to the other instance: The change has not been propagated. Ok, perhaps you did not expect that to work in the first place, but now:
> 2) Fire up a single instance of konqueror, the open a new window (File->New Window). Do the same game as in 1. The change is not propagated between the two toplevel windows of the same konqueror instance, either. Finally:
> 3) Fire up a single instance of konqueror, with a single toplevel window. Open a second tab inside this window. Navigate both tabs to e.g. http://www.kde.org. Switch to tab A. Change the shortcut of "View Document Source" to "Shift+F6". Take a look at the "View"-menu to see the new shortcut. Now switch to tab B. Take another look at the "View"-menu. The shortcut is still at the previous setting, here. Switch back to tab A. The shortcut is back to the previous setting as well.
> 4) If you like to, play games 1-3 with modifying the toolbars, instead of shortcuts.
> 
> So much for the bug description. Konqueror is not really to blame, here, and neither is it the only application to be affected. The problem is that we're missing a mechanism to synchronize user settings between separate instances of KXMLGUIClients. That's what the new class KXmlGuiClientSyncer - contained in this patch - does. See the API-documentation within for usage details. For the "essence" of the code, see KXmlGuiClientSyncerPrivate::uiRcFileChanged().
> 
> Some points, I wasn't sure about:
> 1) Originally, I tried to incorporate this into KXMLGUIClient, directly (or rather KXMLGUIClientPrivate). That would have allowed for *fully* automatic synchronization, i.e. without having to register/watch the clients manually. However, kio depends on kdeui, and this would have added a cyclic dependency back to kio. Any idea on how to work around this? Or this semi-automatic solution safer in the first place?
> 2) I placed this inside kio, pretty much for the reason above. Is this appropriate?
> 3) Which kDebug area to use?
> 
> 
> Diffs
> -----
> 
>   trunk/KDE/kdelibs/includes/CMakeLists.txt 1006783 
>   trunk/KDE/kdelibs/includes/KXmlGuiClientSyncer PRE-CREATION 
>   trunk/KDE/kdelibs/kdeui/xmlgui/kxmlguiclient.h 1009993 
>   trunk/KDE/kdelibs/kio/CMakeLists.txt 1006783 
>   trunk/KDE/kdelibs/kio/kio/kxmlguiclientsyncer.h PRE-CREATION 
>   trunk/KDE/kdelibs/kio/kio/kxmlguiclientsyncer.cpp PRE-CREATION 
>   trunk/KDE/kdelibs/kio/kio/kxmlguiclientsyncer_p.h PRE-CREATION 
> 
> Diff: http://reviewboard.kde.org/r/1238/diff
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Thomas
> 
>





More information about the kde-core-devel mailing list