plasma-framework/private
Sebastian Kügler 5ea600487a Make dropping remote content onto Plasma work
The idea is that you drop a file from a webpage, or basically a URL onto Plasma and Plasma creates a suitable applet to display this URL. For example an image frame for picture, or a previewer for pdf files. Downloading the data itself (and possibly saving it) is left to the applets. The mimetype needs to be retrieved as it cannot be determined from the URL.

The code pathes I've changed or added are, roughly:
- "something" is dropped onto Plasma
- if it's a remote URL, we don't know the mimetype of the object behind the URL yet
- a KIO::TransferJob is used to retrieve the mimetype asynchronously, and will call back
- we open a QMenu that says "Fetching file type..."
- If the user closes the menu while the mimetype is being retrieved, we will open a new one
- When the TransferJob calls back, and we have our mimetype, we offer a list of applets suitable for this kind of content
- If the user chooses to create an applet, we put the transfer job on hold to make it available for recycling by the applet
- If the user dismisses the offering, we kill the job

Thanks to marco for reviewing and everybody else for the input :)

Next steps are making some more applets work with this.

CCMAIL:plasma-devel@kde.org


svn path=/trunk/KDE/kdelibs/; revision=1009004
2009-08-08 22:01:16 +00:00
..
qtjolie-branch Add a small control app for the Vision proof of concept provided with 2009-07-01 20:36:01 +00:00
actionwidgetinterface_p.h licensing and what not 2009-04-24 08:55:31 +00:00
applet_p.h save the background hints in two vars when they are set, use the second 2009-07-27 20:14:38 +00:00
applethandle_p.h Fix handle possibly moving to the other side if the cursor exist for a short time. 2009-02-20 23:23:55 +00:00
applethandle.cpp Don't start the fade out animation if the applet handle is still under the mouse. 2009-04-02 19:08:22 +00:00
configloader_p.h enable-final and compiler warnings fixed 2009-01-06 17:06:26 +00:00
containment_p.h Make dropping remote content onto Plasma work 2009-08-08 22:01:16 +00:00
datacontainer_p.cpp allow kicking all visualizations immediately rather than wait for their timeouts in the case of changes that _must_ be reflected immediatley, e.g. time changes or network availability causing first fetch of data 2009-06-27 01:26:33 +00:00
datacontainer_p.h allow kicking all visualizations immediately rather than wait for their timeouts in the case of changes that _must_ be reflected immediatley, e.g. time changes or network availability causing first fetch of data 2009-06-27 01:26:33 +00:00
dataengine_p.h make all calls to scheduleSourcesUpdate async so engines that use that internally don't incure a time penalty for doing so 2009-05-09 00:32:45 +00:00
dataengineconsumer_p.h use a QSet instead of a list since we're doing random access and don't care about order 2009-04-07 20:57:19 +00:00
desktoptoolbox_p.h fix desktop toolbox dragging once and for all; i should have implemented dragging like this in the first place. also fixes misplacement of the toolbox on the bottom or right edge of the screen. there's some room for optimization here as cornerSize, fullHeight and fullWidth do a -lot- of manip on the background svg that really is only needed once per drag. in practice, it's not so bad and i'd like to keep the diff as small as possible (it's already huge) so i can backport it without feeling tooo guilty ;) 2009-07-28 03:19:33 +00:00
desktoptoolbox.cpp fix desktop toolbox dragging once and for all; i should have implemented dragging like this in the first place. also fixes misplacement of the toolbox on the bottom or right edge of the screen. there's some room for optimization here as cornerSize, fullHeight and fullWidth do a -lot- of manip on the background svg that really is only needed once per drag. in practice, it's not so bad and i'd like to keep the diff as small as possible (it's already huge) so i can backport it without feeling tooo guilty ;) 2009-07-28 03:19:33 +00:00
extender_p.h moved to public api 2009-05-06 14:21:37 +00:00
extenderapplet_p.h Minor APIDOX fixes (spelling etc.) 2009-07-26 15:22:59 +00:00
extenderapplet.cpp 1 regression down! Reenabling and changing one of the layout workarounds fixes the incorrect sizehints problem for detached extenderitems, while still allowing 2009-02-09 19:21:59 +00:00
extendergroup_p.h Fix memory leak on theme changes. 2009-04-30 00:46:57 +00:00
extenderitem_p.h Yay! Add support for grouping in extenders. Expect this feature used for grouping jobs in systemtray soon: I'll commit that as soon as I figured out the last problem that patch has (an atm seemingly random crash that happens incidentally). 2009-03-23 16:30:32 +00:00
extenderitemmimedata_p.h Massive refactoring of extender drag&drop handling. This should avoid bugs with the old way of doing things (toplevel view on an offscreen widget can lose 2009-02-09 18:10:45 +00:00
extenderitemmimedata.cpp Massive refactoring of extender drag&drop handling. This should avoid bugs with the old way of doing things (toplevel view on an offscreen widget can lose 2009-02-09 18:10:45 +00:00
framesvg_p.h actually do something with the cached overlays, instead of using them 2009-08-04 21:19:20 +00:00
nativetabbar_p.h clicking on the tabs in the weather widget felt normal. scroll wheeling == nice. but i kept trying to grab the tab thumb and move it around! now i can :) 2009-04-09 06:41:37 +00:00
nativetabbar.cpp clicking on the tabs in the weather widget felt normal. scroll wheeling == nice. but i kept trying to grab the tab thumb and move it around! now i can :) 2009-04-09 06:41:37 +00:00
packages_p.h prep this for fixing the memory leak; at least it doesn't crash anymore, along with my changes to KNS that are upcoming 2009-07-03 02:17:25 +00:00
packages.cpp Unbreak the build by defining an empty method - avoids linkage error introduced by r990700. 2009-07-03 08:54:29 +00:00
paneltoolbox_p.h get the highlight/unhilight and shown/unshown sorted out.. now it all works on for the spacer in the panel containment :) 2009-04-24 19:29:16 +00:00
paneltoolbox.cpp get the highlight/unhilight and shown/unshown sorted out.. now it all works on for the spacer in the panel containment :) 2009-04-24 19:29:16 +00:00
popupapplet_p.h Add getters and setters for PopupApplet::widget() and PopupApplet::graphicsWidget() 2009-07-17 12:31:08 +00:00
runnerjobs.cpp Style correction - thanks Dan 2009-04-23 02:13:54 +00:00
runnerjobs.h if the RunnerManager is deleted but jobs are still processing, create a helper object to wait it out and clean them up when possible 2009-03-12 20:25:52 +00:00
service_p.h return a dummy group when we have no description set up; prevents crashes when the operations file is not available 2009-08-02 18:24:20 +00:00
sharedtimer_p.h ok, this time JUST the plasma dir ;) 2008-11-03 23:08:39 +00:00
style_p.h vertically (or horizontally) center sliders 2009-05-01 17:08:31 +00:00
style.cpp unbreak scrollbar 2009-05-01 19:19:06 +00:00
toolbox_p.h fix desktop toolbox dragging once and for all; i should have implemented dragging like this in the first place. also fixes misplacement of the toolbox on the bottom or right edge of the screen. there's some room for optimization here as cornerSize, fullHeight and fullWidth do a -lot- of manip on the background svg that really is only needed once per drag. in practice, it's not so bad and i'd like to keep the diff as small as possible (it's already huge) so i can backport it without feeling tooo guilty ;) 2009-07-28 03:19:33 +00:00
toolbox.cpp fix desktop toolbox dragging once and for all; i should have implemented dragging like this in the first place. also fixes misplacement of the toolbox on the bottom or right edge of the screen. there's some room for optimization here as cornerSize, fullHeight and fullWidth do a -lot- of manip on the background svg that really is only needed once per drag. in practice, it's not so bad and i'd like to keep the diff as small as possible (it's already huge) so i can backport it without feeling tooo guilty ;) 2009-07-28 03:19:33 +00:00
tooltip_p.h clickable tooltips; plasma-devel@ people: please review API one more time 2009-06-26 06:40:15 +00:00
tooltip.cpp make the positions of previews, icon and text on plasma tooltip consistent. 2009-07-08 13:17:55 +00:00
wallpaper_p.h expose the caching for wallpapers that don't use render() to use 2009-04-10 19:49:33 +00:00
wallpaperrenderthread_p.h we can't queue signals with our own enum type, but since this is all internal to the lib and doesn't ever escape into the public API, just pass it around as an int. 2009-04-02 17:21:42 +00:00
wallpaperrenderthread.cpp QDebug is not marked as re-entrant or thread safe and seems to cause crashses for some when used from the wallpaper rendering threads, so let's just remove those lines :) 2009-08-05 04:48:33 +00:00
windowpreview_p.h clickable tooltips; plasma-devel@ people: please review API one more time 2009-06-26 06:40:15 +00:00
windowpreview.cpp limit to 4 windows for now; need to improve the layout so it doesn't suck 2009-08-02 19:12:20 +00:00