dropped URL handling in containment, was: Re: How to get Akonadi notes onto Plasma?

Sebastian Kügler sebas at kde.org
Thu Oct 29 01:17:59 CET 2009


On Wednesday 28 October 2009 19:47:13 Aaron J. Seigo wrote:
> On October 28, 2009, Sebastian Kügler wrote:
> > On Wednesday 28 October 2009 16:39:41 Aaron J. Seigo wrote:
> > >   On October 27, 2009, Sebastian Kügler wrote:
> > > > On Tuesday 27 October 2009 17:19:24 Aaron J. Seigo wrote:
> > > > >   On October 27, 2009, Sebastian Kügler wrote:
> > > > > > Is this something I should pursue? It sounds simple enough ...
> > > > >
> > > > > sure; i don't see any downside to it and the results could be
> > > > > interesting; worst case is we'd have a failed experimnt on our
> > > > > hands and one more way not  to do it (in the words of Edison ;) but
> > > > > i think this could work out very well..
> > > >
> > > > The attached patch seems to work. I've not really tested it, just
> > > > confirmed that it works at least in one case (emailmessage, added
> > > >  X-Plasma-DropUrlPatterns=akonadi:* to its desktop file) -- it's late
> > > > and I should sleep. If it's conceptually OK, I'll clean it up and
> > > > submit it to review board.
> > >
> > > doing:
> > >
> > > KPluginInfo::List allApplets = KPluginInfo::fromServices(offers, "exist
> > > [X- Plasma-DropUrlPatterns]")
> > >
> > > should eliminate all the entries that don't have any DropUrlPatterns
> > >  without  having to create and then cycle through all the plasma
> > > applets installed.
> >
> > Good, good. That part felt icky...
> >
> > > this shouldn't be needed:
> > >
> > >     QHash<KJob*, KPluginInfo::List> dropPlugins;
> > >
> > > the URL can be retrieved in mimeTypeRetrieved with job->url()
> >
> > We the list of plugins (not the URL, I'm retrieving that from the job
> >  indeed) for the following case:
> >
> > - a URL is dropped
> > - applets matching DropUrlPatterns are found
> > - the TransferJob returns an error
> 
> the same thing could be achieved by calling the method that fetches the
> matching plugins in each place that needs it (including the error path)
>  rather than caching those values. that would mean calling it twice on
>  success, or twice on error or three times on error-that-isn't-an-error.
> 
> it's not a hot path and finding the matching plasmoids shouldn't be very
>  slow at all. i'd prefer to keep the bookkeeping for drops simple as long
>  as it isn't a performance problem.

I've removed the private member, and found that we can actually do with calling 
listAppletInfoForUrl() only once. We simply don't cop out on job->error() in 
dropResult() and call the slot anyway, the counting and stuff now happens only there, 
looks a bit cleaner as well. :)

I've also changed the other bits, cleaned up a bit and sent it to reviewboard.

Thanks for the feedback!
-- 
sebas

 http://www.kde.org | http://vizZzion.org |  GPG Key ID: 9119 0EF9 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 489 bytes
Desc: This is a digitally signed message part.
Url : http://mail.kde.org/pipermail/plasma-devel/attachments/20091029/fc98c0de/attachment.sig 


More information about the Plasma-devel mailing list