that only applets with a matching major.minor version
are loaded. needs porting to plugins other than applets.
CCMAIL: aseigo@kde.org
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=833550
* introduce Plasma::viewFor and Plasma::popupPosition
generally nicer code all around.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=833534
* accept bad config objectsin Applet::save and Containment::save
* move some initialization code around to be more robust with external use (will make more sense in next commit to workspace/plasma/plasma)
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=828940
* select the correct containment for removal when zoomed out (will have isses on multi-screen; see FIXME)
* move containment destruction logic out of Corona; it really doesn't belong there
* remove the hack to not set focus on a containment when clicked as that doesn't seem to reliably trigger it for me here and it doesn't address the issue of a new containment still messing things up, so we really ought to have a generic solution instead of a slightly ugly hack
BUG:id=165670
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=828906
that would drive to an automatic scrolling of the view when clicking on
it, hiding other containments
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=828193
flushPendingConstraintsEvents, now it changes only the sizepolicy
and the enforcing is done by returning the proper values in sizeHint.
ConstrainedSquare behaves like square with sizes less than
Liconloader::sizeLarge, otherwise the size is not much controllable and
would be hard to have the right (not blurry) icon sizes when the panel
is not so big
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=823640
can happen that it exits from top of the screen but at least it won't
totally destroy the panel layout anymore
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=820917
into account. When the size is too small to allow the svg and a single
icon, disable the svg.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=818155
it makes applets in panel to not
be wider than tall in horizontal panels and not taller than wider in
vertical panels, but can be for instance less wide than tall in
horizontal panels, as opposed to square applets.
it makes poossible to have icons with a reasonable size in very big
panels as vertical panels usually are for instance
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=816757
certain svg or if it would fallback to the default theme if loaded.
this makes possible an alternative fallback mechanism between images of
the same theme, used now for the TransparentBackground background hint
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=816734
it's not needed for global shortcuts, and it wouldn't work that way for local shortcuts anyways.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=815532
* move the contents of setGeometry to itemChange and resizeEvent for greater reliability
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=815043
TranslucentBackground, now used by folder view.
when an applet has TranslucentBackground set, it loads
"widgets/tranlucentbackground" as its own background
when that svg does not exists in theh them it falls back to
"widgets/background" instead of translucentbackground of the default
theme
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=813283
resizing loop) had to use maximum and minimum sizes, layouts seems to be
sooo stoopid :(
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=813266
notification is received, so don't use it in calculating the correct
position. Also some other small WoC cleanups.
BUG: 161969
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=812493
used nowhere.
"ervin, fighting feature creep in APIs since 1980."
(BTW, at this rate I'm less and less convinced that it'd be wise to not
have a second round of API review post 4.1)
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=812172
now I can remove some of the ten desktop containments I accumulated :)
oh, and the code is cleaner too, yay!
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=810129
* Only move applet to toplevel window when overlapping other plasma views, ignoring other windows and such.
* Drag & drop now works reasonably well when using multiple desktop containments ('activities'), both when
zoomed in as when zoomed out. Only a couple of issues remaining.
* Containment's addApplet function now cleans up the pointer to the applethandle in the preview containment,
Avoiding some nasty crashes when moving applets between containments.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=809841
another bug in QGraphicsProxyWidget? labels appear as innactive until you click on them!
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=808983
the defaults are kinda lame right now, but I'm planning to do a lot more with this.
applet focus and the shorcut hooks work properly, however.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=808610
* when dropping on another containment, the center of the applet is used to determine where
to drop the applet, instead of the position of the mousepointer.
* movement now works correctly if multiple drag&drops are performed while not removing the
mouse away from the applet handle.
* now works correctly on rotated applets.
* various code style fixes.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=808379
* dragging an applet creates a top level window so the applet won't appear behind the panel
when dragging, as is the case now.
* dragging leaves a semi transparent version of the applet at the original location, so it's
clear to the user where the applet came from and where it will go when the drag is cancelled.
There are still some open issues, I'm working on those...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=806484
*removed Containment::Private::destroyApplet in favour of just calling Applet::destroy() directly.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=805666
* call the ScriptEngine's config method if we fail on the automatic generation
* use an internal timer id to trigger flush updated constraints calls so that if it gets called manually we prevent a future unecessary signal from happening
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=805631
* watchForMouseMove() -> registerAsDragHandle() / unregisterDragHandle()
* Added isRegisteredAsDragHandle() (I'm not really sure If it's a good idea to add this method).
ping me if you find better names for registerAsDragHandle() / unregisterDragHandle().
CCMAIL: panel-devel@kde.org
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=802774
remainSquare(), aspectRatioMode() and their setters are merged in
aspectRatioMode() + setAspectRatioMode(Plasma::AspectRatio)
Plasma::AspectRatio has IgnoreAspectRatio, KeepAspectRatio and Square
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=802561
checkImmutability()->Q_PRIVATE_SLOT
added a q-pointer into Applet needed for this and themeChanged the other
Q_PRIVATE_SLOT that will be added
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=802124
Vertical
this fixes the panel layout on the first load when there is no
plasma-appletsrc
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=802089
Probably it should be protected and we need also updateConstraints() like in applet.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=801661
killed drawStandardBackground() and shadowShown()
now the two properties are merged in backgroundHints() and
setBackgroundHints() using the combination of BackgroundHints flags
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=801282
isImmutable(), setIsImmutable() and isKioskImmutable() of applet and
corona are merged in one property so they becamed
immutability() and setImmutability() using the new type
ImmutabilityType defined in plasma.h as:
NotImmutable: normal behaviour
UserImmutable: the user locked the desktop, can unlock it
SystemImmutable: the system locked the desktop and the user can't unlock
it
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=800724
Plasma::Svg(imagePath, parent) -> Plasma::Svg(parent) and
Plasma::PanelSvg(imagePath, parent) -> Plasma::PanelSvg(parent)
updated as needed every class that was using Svg or PanelSvg
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=800143
- renamed drawWallpaper
- made config() protected
- moved updateSceneRect() and initGraphicsView to pimpl
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=798623
init() and setFailedToLaunch are now protected
containment and corona are friends of applet
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=798585
but now when standard background is disabled the minimum size shrinks.
now some applets are starting to look good on the desktop, for instance
tasks, but not pager or clock
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=798173
as a bonus, applets with standard background appears a little bit less
wrong (but still wrong) on the desktop
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=798154
will include the applet handle No More Seperate Item ;) ) + delete in layouts in
containments when removing applets
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=797066
+remove tooltip that will be replaced by the tooltip manager
+port some used stuff in applet class
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=796924
It's still busted right now though, since geometry() returns an
empty rect (dunno why ... )
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=796898
applets,
please update to another revision to use the version that works
green flag from aaron
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=796368
* don't change the default background painting setting, as we now rely on the applet to be set up properly on its own
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=792405
if you want to make a widget draggable around just call the new function
void watchForMouseMove(QGraphicsItem * watched, bool watch)
also, some style fixes.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=777705
* moves the idea of the size of the item up to LayoutItem, as both Widget and Layout implemented it separately
* provides a way in LayoutItem to adjust a rect within an item to its margins (that is what LayoutItem::topLeft() is there for)
* fix several bugs, both painting and sizing, in LineEdit
* Applet sets margins now based on the existence of setDrawBackground
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=776380
* restore lock status
* save/restore zorder
* allow "raising" and applet (increase zorder above all others)
* some layout fixes for next monday's big layout fix patch
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=774337
* move the (broken) size constraining commit to flushUpdatedConstraints, not why it is broken and add a comment into constraintsUpdated() noting why code should never be added to that method directly (and what to do instead)
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=770949
this makes vertical larger panels actually usable.
Some notes:
-it works only for applets that aren't forced to square
-in horizontal panels only for applets that don't have expandingDirections()=Qt::Horizontal
-in vertical panels only for applets that don't have expandingDirections()=Qt::Vertical
On other news the kickoff applets are modified to use this new feature
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=770423
* implement a generic shape() method. this is experimental, so will be interesting to see how it goes. it does show we need a good shape hint in the applet background svg =)
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=760187
borders can later be removed without the minimum size being updated causing a
minimum size that's way too big
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=752322
emitting geometryChanged() and doing an update() if the geometry hasn't
actually changed.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=751543
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