Bug 263006

Summary: kworquiz uses KXKB's DBus methods that no longer exist
Product: [Applications] kwordquiz Reporter: Artem Anisimov <aanisimov>
Component: generalAssignee: Peter Hedlund <peter>
Status: RESOLVED FIXED    
Severity: normal CC: aacid, arysin
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: All   
Latest Commit: Version Fixed In: 4.6
Attachments: Fix for kwordquiz

Description Artem Anisimov 2011-01-13 10:11:55 UTC
Created attachment 55955 [details]
Fix for kwordquiz

Version:           4.6 (using KDE 4.5.95) 
OS:                All

Kdeedus' kwordquiz uses KXKB's DBus interface to change keyboard layout. However, in KDE 4.5 names of these KXKB'S DBus methods have been changed and since then kwordquiz was not able to switch keyboard layouts.

I have attached a patch that makes kwordquiz use new names of KXKB's DBus methods.


Reproducible: Always
Comment 1 Albert Astals Cid 2011-01-13 20:16:19 UTC
Artem when you say "However, in KDE 4.5" you mean "However, in KDE 4.6"?
Comment 2 Artem Anisimov 2011-01-13 20:25:40 UTC
Don't know. Kwordquiz's layout switching has already been broken in 4.5. Though, it could be due to some other reason.
Comment 3 Artem Anisimov 2011-01-13 20:32:18 UTC
Albert, could you please have a look at my bug report #263008 and persuade guys who are responsible for kdelibs to implement my suggestion? I believe that making a well-known centralised list of DBus interface names will spare considerable amount of time that will be spent tracking subsequent DBus name changes.

For important and widely used components, such as kxkb I'd even suggest that a small class be implemented that hides DBus communications from its users. In this way one can take all knowledge of DBus names away from users of DBus interfaces, hence when updating an interface only its facade class will have to be updated and the users will automagically switch to modified DBus interface.
Comment 4 Albert Astals Cid 2011-01-13 20:36:15 UTC
Andriy, could you tell us when you changed kxkb dbus name 4.5 or 4.6?
Comment 5 Andriy Rysin 2011-01-13 21:26:38 UTC
It was changed in 4.6

Apologies: the only place I knew (and could find) that was using the API was Parley which I changed appropriately
Comment 6 Peter Hedlund 2011-01-13 21:30:56 UTC
(In reply to comment #5)
> It was changed in 4.6
> 
> Apologies: the only place I knew (and could find) that was using the API was
> Parley which I changed appropriately

Thanks, I would greatly appreciate it if you can commit the necessary changes to KWordQuiz also and close this bug.
Comment 7 Albert Astals Cid 2011-01-13 21:51:23 UTC
Personally i would appreciate if you kept old dbus methods working, you will never know how many programs are out there that are using your dbus methods and will stop working now.
Comment 8 Andriy Rysin 2011-01-21 19:25:07 UTC
SVN commit 1216174 by rysin:

Use new kxkb dbus APIs
BUG: 263006


 M  +1 -1      dlglanguage.cpp  
 M  +1 -1      kwordquiz.cpp  
 M  +1 -1      kwqtableview.cpp  
 M  +1 -1      qaview.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1216174
Comment 9 Andriy Rysin 2011-01-21 19:26:13 UTC
SVN commit 1216175 by rysin:

Use new kxkb dbus APIs
BUG: 263006
FIXED-IN: 4.6


 M  +1 -1      dlglanguage.cpp  
 M  +1 -1      kwordquiz.cpp  
 M  +1 -1      kwqtableview.cpp  
 M  +1 -1      qaview.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1216175
Comment 10 Albert Astals Cid 2011-01-21 19:40:20 UTC
FYI That commit is outside current 4.6.0 tarballs. And i still think you are doing wrong and should make sure your old dbus api still works since you don't know how many other random users might be out there.
Comment 11 Peter Hedlund 2011-01-21 19:44:16 UTC
(In reply to comment #10)
> FYI That commit is outside current 4.6.0 tarballs. And i still think you are
> doing wrong and should make sure your old dbus api still works since you don't
> know how many other random users might be out there.

Isn't the backport he did http://websvn.kde.org/?view=rev&revision=1216175 enough to cover 4.6?

I agree with you on principle, but at least our own programs are working now.
Comment 12 Albert Astals Cid 2011-01-21 20:05:35 UTC
4.6.0 was tagged yesterday night, if you want this change to be in it you'll have to ask the Dirk Mueller to re-roll the packages with this fix in it.
Comment 13 Andriy Rysin 2011-01-21 20:27:38 UTC
I was out for a week and I don't have time right now to add the old dbus API back, so I just tried to fix what I could.
BTW I didn't see an email about 4.6.0 tagging, besides I've put fixed-in 4.6 not 4.6.0 :)
Comment 14 Andriy Rysin 2011-01-22 20:17:49 UTC
SVN commit 1216339 by rysin:

Restore old DBus API: org.kde.kxkb back as an alternative and print deprecation warning if used
BUG: 263006


 M  +25 -1     keyboard_daemon.cpp  
 M  +23 -0     keyboard_daemon.h  
 M  +3 -0      keyboard_dbus.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1216339
Comment 15 Albert Astals Cid 2011-01-22 20:46:12 UTC
Cool :-)