will first delete the d->failureText object and than trigger a relayout
which will access the invalid d->failureText in Applet::contentSize().
=> No crash anymore
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=749708
Widget so that applets with embedded widgets also get the containment's
context menu.
BUG: 152698
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=749078
* introduce QRectF contentRect() const method so applets can easily get the content rect
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=745244
* handle scriptegines properly
* add a setContentSize so applets can use that and not get screwed by the borders
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=743089
* we have to be able to reset it when, e.g. removing the applet or moving it to another, so introduce resetConfigurationObject for internal use
* make it possible to get the containment for an applet by outsiders (e.g. other containments)
* don't access the config object until after we've been assigned to a scene
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=742098
it all happens from one file now using nested groups. this has two major effects:
- one file to rule them all for any given corona; this makes things even nicer for use in other apps, btw.
- the ability to easily save, send/share and restore corona configuration layouts; something i've wanted from the start
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=741158
* introduce relayout() which does only that
* place guards around relayout() calls in Layout class to prevent recursion
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=738923
* clean up some dead code
* try and get rid of a few of the jaggies that happen when rotating
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=738594
* don't paint the interface of containments being shown on views that don't want a background
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=737026
* auto handle the whole draw standard background thing. it now does the right thing for panels, containments and applets for 99% of the cases
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=733970
* invalidate the managing layout on geometry changes, which is what i expected it to do in the first place. calling setGeometry and then updateGeometry is just damaged
CCMAIL:raabe@kde.org
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=732526
* only adjust the size of the containment to the screen size if it is a DesktopContainMent
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=724225
- as Containment is going to remain an Applet, we can put the context menu hack in Applet instead which is nicer on the widgets anyways. also make it a bit less of a hack...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=717489
- fix some apidox
- add a method for state saving, but for the main applet class info as well as subclasses (plasmoids, e.g.)
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=714174
comments below.
* New Flow Layout. This provides simple icon view-esque layout of items.
Useful for icons for documents , applications or other tasks on the desktop
for example. Supports non-equally sized items.
Works well when used with the LayoutAnimator class to animate insertions
and removals.
* Re-wrote BoxLayout and removed old HBoxLayout,VBoxLayout classes which had
a lot of code duplication. BoxLayout class now takes a direction argument
in the constructor, ala. QBoxLayout. New BoxLayout class actually takes
minimumSize() , maximumSize() of items into account. The Qt layout code
for box and grid layouts is surprisingly sophisticated, so the results
from BoxLayout probably will not be as good in certain situations but
it should do for the panel. New BoxLayout also has support for LayoutAnimator
* Fix Plasma::HBoxLayout and Plasma::VBoxLayout to use margin()
rather than spacing() for the distance from the top and left
margins respectively.
* Fix Plasma::Applet::contentSize() to return the actual content size
rather than a size hint. Added a new method contentSizeHint() which
applets use to provide a hint about suitable content size.
Existing implementations of contentSize() in applets need to be renamed
to contentSizeHint(). The arguments and return type are the same as before.
* Install the LayoutAnimator header so that applets can use it
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=707275
* Copyright (C) -> Copyright
* add "or later" clause to files that i have the sole copyright on
* add current year (2007) to my copyrights where it was missing
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=696946
* introduce Applet::destroy which will perform cleanups, like deleting
config files, etc..
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=696586
prefix or suffix constraintsUpdated, e.g. manage the shadow
* add experimental support for dynamic shadow, based on a patch by
zrusin; still issues to be addressed but it gives us the start of a
layer-based means to do effects
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=696561
Aaron: your turn now to discover the 'Mimetypes' key problem.
CCMAIL: aseigo@kde.org
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=694676
* turn off clipping to shape for Applet as that breaks background painting in cute and wonderful ways
* remove some dead code
* use setFlag instead of setFlags everywhere
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=694556
* add in a completely untested-but-should-work ;) implementation of config ui loading; requires a package with config/ui/main.ui and config/xml/main.xml in it. should shave 7LOC off of the clock's Script.js, which is ~10% of the code line count!
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=694399
Color the shadows instead of a roundrect when zoomed out.
Actually paint the applet when zoomed out.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=693787
* on the base implementation of contentSize, check to see if we have a layout and if so use that to determine the size we ought to be
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=693769
we need a separate private contentSize() for Applet because we need to be able to override what the subclass might be trying to accomplish. since the method is virtual, i had to put it in the dptr and call Applet::contentSize from there on successfully passing various tests such as "is this a script?" and "has this applet been marked as failed?". stupid polymorphism.
end result is that now an applet can, as expected, call setFailedToLaunch(true) and the applet gets the right size, no matter when or where it was called from.
huzzah.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=692630
Instead of implementing boundingRect(), applets should now implement
contentSize(), to tell Plasma::Applet how much space they need.
I wrote a long commit log, then realised it belonged in the apidocs.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=692519
* introduce contentsRect() and pass that into paintInterface instead of a widget
i missed monday so much i wanted to break SOMETHING, so i broke all the plasma widgets. i rock! ;P
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=692002
* globalAppletConfig -> globalConfig
* add a convenience and safety method for accessing groups in the applet config, which namespaces the groups appropriately
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=687046
* add a setFailedToLaunch method to applet to allow a generic way to set such status
it's pretty fugly looking at this point, but it works; i'll work with the artists to make it prettier later.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=687027
to change at some point - a definitive list on techbase will probably
be assembled.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=686945
(loadDataEngine will always return a data engine - it just
might not be valid).
I changed it this way, rather than changing the test to
engine->isValid(), since all the plasmoids written so far
blindly assume a valid pointer is returned. (In fact, they
all blindly assume the correct data engine is returned, but
at least this way they shouldn't crash plasma :-P)
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=686301
more explicit as to what it does and falls in line with
setHasConfigurationInterface
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=682296
- add setDrawStandardBackground(bool) to get our common background
- make paint private and introduce paintInterface (with the same params) instead
this should make standardizing looks a bit easier and give us a way to paint the on-hover applet interface. we may need to do the same with boundingRect?
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=679036
i introduced a new enum in the Plasma namespace, ItemType, so we can keep track of these id's centrally.
however, the right click mechanism is rather broken in its implementation; we need a way to offer a centralized menu on appets no metter where they are clicked.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=678562
* create button applets not icon widgets on drop
honestly, not sure i like the qstringlist of argument approach, but that's what klibloader gives me
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=677941
however, making them items makes it possible to drag children outside of their parents (c.f. the button applet) which causes another set of problems. i'll look into this tomorrow though. it's 01:00 and i was trying not to work on kde tonight.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=677904
#include <plasma/foo.h>
in headers in libplasma. this is important so that they can be used post-install by third party plugins, apps, etc.
also, changed Applet::loadDataEngine to just Applet::dataEngine and make it actually return the data engine; move the applets to using it. safer and fewer LoC
svn path=/trunk/KDE/kdebase/workspace/lib/plasma/; revision=670850
* make the library names appear in descending order of specificity (plasma_kind_instance)
svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=668019