Review Request 111308: Disallow changing URI of PersonData after creation

Martin Klapetek martin.klapetek at gmail.com
Mon Jul 1 12:55:28 UTC 2013


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

Ship it!


Watch out for personitem.cpp, looks like you have my patch applied.


src/persondata.cpp
<http://git.reviewboard.kde.org/r/111308/#comment25899>

    & uri -> &uri



src/persondata.cpp
<http://git.reviewboard.kde.org/r/111308/#comment25900>

    & contacItd -> &contactId



src/persondata.cpp
<http://git.reviewboard.kde.org/r/111308/#comment25901>

    I know it's the original code, but I think this could also use "if (d->uri == uri) { return; }



src/widgets/plugins/mergecontactswidget.cpp
<http://git.reviewboard.kde.org/r/111308/#comment25902>

    This shouldn't be part of this patch (it's fixed in my branch)


- Martin Klapetek


On June 30, 2013, 10:33 p.m., David Edmundson wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/111308/
> -----------------------------------------------------------
> 
> (Updated June 30, 2013, 10:33 p.m.)
> 
> 
> Review request for Telepathy, Aleix Pol Gonzalez and Vishesh Handa.
> 
> 
> Description
> -------
> 
> Disallow changing URI of PersonData after creation
> 
> Currently setUri and setContactId are public which would cause a lot of bugs if changed.
> Instead replace with two clear static methods; loadFromUri and loadFromContactId.
> 
> In practice they were never used more than once.
> 
> A declarative wrapper using QDeclarativeParserStatus provides the same functionality
> in QML. A wrapper is needed anyway as it means we can now put more complex data types in PersonData.
> 
> 
> bugs that used to exist which are no longer relevant:
>  - every single plugin for PersonsViewer does not respond to uriChanged
>  - personsactionsmodel did not respond to uriChanged()
>  - contactId would return the last user set with setContactId not the current contacts ID (which is misleading/wrong anyway, as a person can have multiple IDs)
>  - isPerson property was not updated when changed
>  - PeronDetailsView kept an invalid empty PersonData on construction with a lifespan of the parent.. for no reason.
> 
> Given we want people to write plugins, we need to make it easier.
> PersonData code is also simpler as it doesn't have to be careful about wiping old resources in setUri.
> 
> Downside is you can't have a PersonData on the stack. Bit of a effort for the unit tests.. but not in the real world I don't think.
> 
> I believe someone (vishesh?) also suggested this at the Pineda sprint. 
> 
> 
> Diffs
> -----
> 
>   src/abstractpersonplugin.h 60508b693fd6406b77f4622bff4c4419fb13c50e 
>   src/abstractpersonplugin.cpp 3a41f3bcff668994de70d77c77fd5a4a061dadde 
>   src/autotests/tests/persondatatests.cpp 623fb5f752cca6d98aa261a72a34b740d74b92e8 
>   src/declarative/CMakeLists.txt 9b33b85429c65ce832f37edecebf2ecdf467c476 
>   src/declarative/declarativepersondata.h PRE-CREATION 
>   src/declarative/declarativepersondata.cpp PRE-CREATION 
>   src/declarative/peopleqmlplugin.cpp c991064e011f5115683adb90955c0e3a5dbd156c 
>   src/examples/personwidget.cpp bc2eaf2805891a201fbbf8cb20420764652e34c7 
>   src/personactionsmodel.cpp 458006213442bcd24bb08216594aed1deb7fb171 
>   src/persondata.h 177f2451c5c432d3cb6add454716bd292540bb7f 
>   src/persondata.cpp 2341bd4f4215bcc2a671f75a118c488e870c98ac 
>   src/personitem.h 91fcd3cc6558625622d17b02805cc4f04382c51d 
>   src/personitem.cpp 6086e41afbd028d830c6a3771dad9fd69d3627cc 
>   src/personpluginmanager.h 38f13816485e69a4a2acab45b73c978d6448be1a 
>   src/personpluginmanager.cpp 487f1bbde1cf122b4c475d8a33bc7514bc9bcc43 
>   src/personsmodel.h 4b6a829d5c3b62e7f057fd15c821460b1e8c5df3 
>   src/personsmodel.cpp 813d0afd6add7d8c33a9d08729ce9c5acadc421f 
>   src/plugins/core/emailplugin.h ebffe6451b0a8cd74d934227e1f771643acab402 
>   src/plugins/core/emailplugin.cpp 83babd4aa71627d6172794a6878a15b0738ad15e 
>   src/resourcewatcherservice.h 94210ef7ac754eebd324c3d55c391378e1dc07d9 
>   src/resourcewatcherservice.cpp 1342c99a597a3203c17aeb187ec2740af1e0ed00 
>   src/widgets/persondetailsview.cpp f655eb2ec0a16f00239b679263354632a6183fee 
>   src/widgets/plugins/mergecontactswidget.cpp 51e11dc8d2457297336616e6ee211493b0f5fa08 
> 
> Diff: http://git.reviewboard.kde.org/r/111308/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> David Edmundson
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-telepathy/attachments/20130701/0a23640f/attachment.html>


More information about the KDE-Telepathy mailing list