Go to file
Alex Merry 13116aaea9 Don't crash on weirdly invalid SVGs.
The particular problem I was having was that frame->leftWidth was 0 and leftHeight was 0, but
frame->rightWidth was > 0.  And, while trying to paint a 0x0 pixmap is apparently fine
(because QPixmap::isNull() is just (QPixmap::width() == 0)),
QPainter::drawTiledPixmap() tries to do 0 % 0 if you pass it an 8x0 pixmap (which is an
arithmetic error).

And this was happening in KSMServer when displaying the shutdown dialog.
Cue weird behaviour when trying to log out or shut down.


svn path=/trunk/KDE/kdelibs/; revision=909140
2009-01-11 03:48:29 +00:00
effects ok, this time JUST the plasma dir ;) 2008-11-03 23:08:39 +00:00
private plasmoids -> widgets in this case 2009-01-10 00:10:33 +00:00
scripting apidocs fixes. 2009-01-10 00:08:31 +00:00
servicetypes a default size for scripted applets, because they aren't allowed to do anything themselves before init (and this is the one thing that *must* be done before init) 2009-01-10 00:33:38 +00:00
tests fix test (fix .desktop install path and read() path) 2009-01-09 09:23:35 +00:00
widgets forward also editingFinished 2009-01-10 19:35:29 +00:00
.krazy skip template.h 2008-11-07 14:44:06 +00:00
abstractrunner.cpp make the bigLock publicly accessible; BIC, so thankfully caught before release! 2008-12-12 20:10:50 +00:00
abstractrunner.h apidocs fixes. 2009-01-10 00:08:31 +00:00
animationdriver.cpp ok, this time JUST the plasma dir ;) 2008-11-03 23:08:39 +00:00
animationdriver.h ok, this time JUST the plasma dir ;) 2008-11-03 23:08:39 +00:00
animator.cpp Fix iterator 2009-01-06 13:09:05 +00:00
animator.h ok, this time JUST the plasma dir ;) 2008-11-03 23:08:39 +00:00
applet.cpp apparently it's bad to compare to QSize() 2009-01-10 04:16:26 +00:00
applet.h apidocs fixes. 2009-01-10 00:08:31 +00:00
CMakeLists.txt Added Plasma::SpinBox. 2009-01-07 18:54:43 +00:00
configloader.cpp make it easy to get at items and values by name 2009-01-05 23:27:29 +00:00
configloader.h make it easy to get at items and values by name 2009-01-05 23:27:29 +00:00
containment.cpp if the applet is already in another containment, don't re-animate it as if it were new 2009-01-09 20:44:53 +00:00
containment.h apidocs fixes. 2009-01-10 00:08:31 +00:00
context.cpp ok, this time JUST the plasma dir ;) 2008-11-03 23:08:39 +00:00
context.h ok, this time JUST the plasma dir ;) 2008-11-03 23:08:39 +00:00
corona.cpp a useful method to retrieve free edges on the screen 2008-12-21 10:23:45 +00:00
corona.h apidocs fixes. 2009-01-10 00:08:31 +00:00
datacontainer.cpp use isEmpty; a couple minor, minor changes that crept in while debugging things elsewhere 2008-12-09 20:37:41 +00:00
datacontainer.h apidocs fixes. 2009-01-10 00:08:31 +00:00
dataengine.cpp Fix iterator 2009-01-06 13:09:05 +00:00
dataengine.h some Q_INVOKABLEs to be used in scripts 2009-01-05 19:09:24 +00:00
dataenginemanager.cpp Fix iterator 2009-01-06 13:09:05 +00:00
dataenginemanager.h ok, this time JUST the plasma dir ;) 2008-11-03 23:08:39 +00:00
delegate.cpp constify and build 2008-12-17 17:45:24 +00:00
delegate.h constify and build 2008-12-17 17:45:24 +00:00
dialog.cpp escape == hide 2009-01-04 07:59:55 +00:00
dialog.h escape == hide 2009-01-04 07:59:55 +00:00
extender.cpp Move the QGL resize hacks from extender to extenderapplet. The only applet atm for which this hack is necesarry is actually extenderapplet, in the future we will have better layouts, and it won't be necesarry at all, and for now it avoids breaking panel layouts when removing the last extenderitem from an extenderapplet. 2009-01-09 13:13:57 +00:00
extender.h Couple of fixes: 2008-12-01 18:30:42 +00:00
extenderitem.cpp * add actions in the order they are added, not alphabetically by name (?!) 2009-01-09 02:15:23 +00:00
extenderitem.h * add actions in the order they are added, not alphabetically by name (?!) 2009-01-09 02:15:23 +00:00
framesvg.cpp Don't crash on weirdly invalid SVGs. 2009-01-11 03:48:29 +00:00
framesvg.h a bit of Q_INVOCABLE to make qtscript happy 2008-12-30 10:47:07 +00:00
glapplet.cpp ok, this time JUST the plasma dir ;) 2008-11-03 23:08:39 +00:00
glapplet.h ok, this time JUST the plasma dir ;) 2008-11-03 23:08:39 +00:00
Mainpage.dox Some documentation improvements and corrections, including renaming the documentation section from libplasma to Plasma, for consistency with other parts of kdelibs. 2008-11-23 18:39:58 +00:00
Messages.sh ok, this time JUST the plasma dir ;) 2008-11-03 23:08:39 +00:00
package.cpp * make it possible to get a list of installed packages by path rather than package name 2009-01-05 18:49:54 +00:00
package.h apidocs fixes. 2009-01-10 00:08:31 +00:00
packagemetadata.cpp change KDE includes to use the .h style now that we're in libs 2008-11-04 02:04:34 +00:00
packagemetadata.h ok, this time JUST the plasma dir ;) 2008-11-03 23:08:39 +00:00
packagestructure.cpp Fix iterator 2009-01-06 13:09:05 +00:00
packagestructure.h apidocs fixes. 2009-01-10 00:08:31 +00:00
paintutils.cpp QImage.fill take a uint not a QColor so this color (Qt::transparent enum with 19 as a value) is invalid. 2009-01-09 16:50:27 +00:00
paintutils.h allow defining the font to use with the shadow text 2008-12-23 18:31:59 +00:00
plasma_export.h ok, this time JUST the plasma dir ;) 2008-11-03 23:08:39 +00:00
plasma.cpp don't crash when given a null item pointer 2008-12-01 00:49:36 +00:00
plasma.h apidocs fixes. 2009-01-10 00:08:31 +00:00
popupapplet.cpp always make a layout no matter what 2009-01-06 18:08:58 +00:00
popupapplet.h having two methods named the same thing was a bit insane.. WHICH togglePopup? =) 2008-12-30 02:06:06 +00:00
querymatch.cpp change KDE includes to use the .h style now that we're in libs 2008-11-04 02:04:34 +00:00
querymatch.h Qt includes in public headers must be in the form <QtModule/QClass> 2008-11-06 17:40:09 +00:00
README a small update 2008-11-17 22:53:29 +00:00
runnercontext.cpp use value/contains better. 2008-12-11 02:52:06 +00:00
runnercontext.h ok, this time JUST the plasma dir ;) 2008-11-03 23:08:39 +00:00
runnermanager.cpp better use of value and contains; thanks Hermier! =) 2008-12-11 02:50:06 +00:00
runnermanager.h ok, this time JUST the plasma dir ;) 2008-11-03 23:08:39 +00:00
service.cpp a bit more helpful debug output for future such problems 2009-01-04 18:12:27 +00:00
service.h apidocs fixes. 2009-01-10 00:08:31 +00:00
servicejob.cpp ok, this time JUST the plasma dir ;) 2008-11-03 23:08:39 +00:00
servicejob.h change KDE includes to use the .h style now that we're in libs 2008-11-04 02:04:34 +00:00
svg.cpp Fix iterator 2009-01-06 13:09:05 +00:00
svg.h SVN_SILENT apidox fix for QSize size() const; 2008-12-16 16:44:51 +00:00
theme.cpp make the Wallpaper section of metadata.desktop actually work 2009-01-02 10:52:14 +00:00
theme.h colorScheme and buttonColorScheme need to be updated the color changes 2008-12-19 01:48:42 +00:00
tooltipcontent.cpp allow custom image, html and css resources in tooltips 2008-11-14 00:52:29 +00:00
tooltipcontent.h allow custom image, html and css resources in tooltips 2008-11-14 00:52:29 +00:00
tooltipmanager.cpp clear the current widget when an widget is unregistered; solves a crash where the task widget disconnects *all* signals to items before deleting them, thus preventing the destroyed(QObject*) signal from getting through. it was calling unregisterWidget, but that wasn't clearing the current widget -> POOF! 2009-01-09 01:15:39 +00:00
tooltipmanager.h ok, this time JUST the plasma dir ;) 2008-11-03 23:08:39 +00:00
version.cpp ok, this time JUST the plasma dir ;) 2008-11-03 23:08:39 +00:00
version.h apidocs fixes. 2009-01-10 00:08:31 +00:00
view.cpp return always the lastScreen as screen() 2008-12-17 13:29:40 +00:00
view.h add proper support for virtual desktops, which really requires more than just the View being aware of it; given the default parameters, it's a detail most plasma based apps can ignore (just like screens in general, actually =) 2008-11-17 04:34:55 +00:00
wallpaper.cpp change KDE includes to use the .h style now that we're in libs 2008-11-04 02:04:34 +00:00
wallpaper.h apidocs fixes. 2009-01-10 00:08:31 +00:00

libplasma

Commit Rules:
* If your patch is not an obvious or trivial bug fix, have it peer reviewed
  by another Plasma developer
* All code MUST follow the kdelibs coding style, as found at:
    http://techbase.kde.org/Policies/Kdelibs_Coding_Style
* All new public API MUST have apidox written before committing

Unit tests are next to godliness. (Though as you can see, right now libplasma
is hellbound.)

This directory contains the classes making up libplasma, which provides the
core framework used by Plasma applictions, such as the Plasma desktop shell
and its components. This includes applet and extension definitions and loading,
common GUI elements, data and service interaction, search system, etc.

Domain specific sets of functionality, e.g. for network awareness or sensors,
are not found here but as DataEngine, Service, Applet, PackageStructure, etc
plugins.

Please refer to the Plasma website (http://plasma.kde.org) and Plasma wiki
(http://techbase.kde.org/Projects/Plasma) for API documentation and design
documents regarding this library.