Review Request: Chat plasmoid fixes (global shortcut, visible property)
Lasath Fernando
kde at lasath.org
Sat Dec 22 09:00:16 UTC 2012
> On Dec. 21, 2012, 9:48 p.m., Aleix Pol Gonzalez wrote:
> > plasmoid/org.kde.ktp-chatplasmoid/contents/ui/main.qml, line 68
> > <http://git.reviewboard.kde.org/r/107833/diff/1/?file=100540#file100540line68>
> >
> > If we want to set isOpen to false, then we shouldn't add a function that does that but let the API to be the property be the API
The reason I did this was partially semantic.
But I absolutely want to avoid binding that to anything because it would create a binding loop and break when it changes. This meant its value *had* to be set from a javascript function anyway, so I thought I may as well put said functions next to the property.
And besides, in the 4 places it's used, 3 of them are signals that are directly connected to those functions.
- Lasath
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/107833/#review23816
-----------------------------------------------------------
On Dec. 21, 2012, 2:44 p.m., Lasath Fernando wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/107833/
> -----------------------------------------------------------
>
> (Updated Dec. 21, 2012, 2:44 p.m.)
>
>
> Review request for Telepathy, David Edmundson and Aleix Pol Gonzalez.
>
>
> Description
> -------
>
> This does a few little fixes to the chat plasmoid getting it closer to being keyboard friendly.
>
> 1. I redid the implementation of ConversationQueManager using a K_GLOBAL_STATIC it's now significantly shorter and more elegant IMHO.
> 2. I ditched the KAction with a hardcoded shortcut, and instead exposed ConversationQueManager to QML. So that way, the plasmoid can easily invoke dequeueNext() on plasmoid 'activate' shortcut.
>
> 3. I fixed the massive klugde that was the visible property of the Dialog. Now, everything is encased in separate Item, which contains one property: isOpen. It isn't bound to anything - instead, there are methods to change its value. This ceases the infinite binding loop, and allows for a clearer logic.
> I.e. when button is clicked, dialog is closed with ALT+F4 or the model requestsPopout, those methods are called, which update 'isOpen' which in turn propagates the changes to Dialog.visible, ConversationDeleagte.checked and MessagesModel.visibleToUser properties as they are bound to it.
>
> PS: Sorry if that wall of text didn't make any sense - It's difficult to think straight at 2AM :-)
>
>
> This addresses bug 296929.
> http://bugs.kde.org/show_bug.cgi?id=296929
>
>
> Diffs
> -----
>
> plasmoid/declarative-plugin/conversation-que-manager.h e8ab426
> plasmoid/declarative-plugin/conversation-que-manager.cpp a7b347a
> plasmoid/declarative-plugin/messages-model.h 233bbfb
> plasmoid/declarative-plugin/qml-plugins.cpp 23a4291
> plasmoid/org.kde.ktp-chatplasmoid/contents/ui/ConversationDelegate.qml 8a8d851
> plasmoid/org.kde.ktp-chatplasmoid/contents/ui/main.qml feb766b
>
> Diff: http://git.reviewboard.kde.org/r/107833/diff/
>
>
> Testing
> -------
>
> Talked to myself. Unfortunately, I didn't talk to multiple people at once though - hopefully everything should still work.
>
>
> Thanks,
>
> Lasath Fernando
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-telepathy/attachments/20121222/046e1e3a/attachment-0001.html>
More information about the KDE-Telepathy
mailing list