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
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ Plasma-devel mailing list Plasma-devel@kde.org https://mail.kde.org/mailman/listinfo/plasma-devel