Attica moved to kdereview

Albert Astals Cid aacid at kde.org
Tue Nov 3 23:09:37 GMT 2009


A Dimarts, 3 de novembre de 2009, Frederik Gladhorn va escriure:
> Hi all,
> after spending some time with libattica, we decided that now is a good
>  point to get a review for it and eventually have it used in KDE.
> 
> What is libattica?
> A library originally started by Cornelius Schumacher to access the api of
> Open Collaboration Services servers, see the spec here:
> http://www.freedesktop.org/wiki/Specifications/open-collaboration-services
> At this time that means access to the opendesktop.org and kde-apps.org run
> by Frank Karlitschek as well as maemo.org websites.
> Since the specification is open, more providers are to be expected.
> For application developers this means easy access to the services such as
> Friends, Contents (be it wallpapers, vocabulary files or applications...),
> Events and Knowledge Base to name just a few.
> 
> It is used in the OpenDesktop and Knowledge Base plasmoids.
> The new Amarok About dialog uses a local copy of attica already.
> See also the contest about integrating the Social Desktop on the dot:
> http://dot.kde.org/2009/10/09/social-desktop-winners
> We would like to get feedback if the extended about dialog should be made
> available for all of kde.
> 
> Currently libattica comes in two parts, a Qt-only library and a plugin that
> provides KDE integration.
> It would make sense to have the Qt-only library be part of kdesupport and
> the plugin in KDE proper.
> Some things can be found in a branch:
> branches/work/attica/kcm - a kcm to controll open collaboration service
> providers
> branches/work/attica/plasma - port of the opendesktop plasmoid to the
> updated lib
> branches/work/attica/ocs - the plasma data engine
> branches/work/attica/ocs/example - a simple example how to use attica
> 
> Another candidate I'm currently working on with Jeremy is the refactoring
>  of KNewStuff, which will provide some great new features such as server
>  side search (have you ever wanted exactly this script which just fell of
>  the top 100 that was presented in the Get Hot New Stuff dialog?), rating
>  and comments.
> Work on knewstuff is being done in a branch:
>  branches/work/knewstuffrefactor
> 
> We moved attica into kdereview today.
> 
> Eckhart, Frank and I are looking forward to your comments, concerns and
> suggestions.
> Let us know if you're interested in integrating it with your app or need
> help to get started.

The licensing is unclear, activity.h is GPL2+ while downloaditem.h is LGPL2+

You have one foreach without const & in the "iterator"

Maybe it would make sense to d-pointify Attica:BaseJob::Metadata, 
Attica::DownloadUrlDescription, Attica::GetJob, Attica::PostJob

In Attica::DownloadUrlDescription if you put the two bools together your 
struct will use less memory

Should downloadUrlDescription(), previewPicture(), license(), author() of 
Attica::Content be const?

Should url() in Attica::DownloadItem be const?

Any reason to make Attica::DownloadItem use a QExplicitlySharedDataPointer?

From the application point of view, it would make sense to me that if for 
example it makes no sense that the application ever calls 
Folder::setMessageCount it should be private and called by a friend class. But 
maybe it makes sense calling Folder::setMessageCount and it's ok :D

After a quick look at the API i'm not sure if the Jobs are supposed to be part 
of the public API or not. Their headers are installed an the classes exported, 
but 

GetJob(const QSharedPointer<Internals>& internals, const QNetworkRequest& 
request);

seems a bit weird, what's that QSharedPointer<Internals>?

Albert

> 
> Cheers
> Frederik
> 





More information about the kde-core-devel mailing list