Commit Graph

90 Commits

Author SHA1 Message Date
Andreas Aardal Hanssen
1cf7d7c0f6 Enable DeviceCoordinateCacheMode by default. Overload update() to give
it invalidate-like behavior, and remove invalidate(). Revert last change
to analogclock, cached behavior is now enabled for all applets. If you
want to disable caching, call setCachePaintMode(NoCacheMode) from your
applet's constructor.


svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=710764
2007-09-10 20:44:24 +00:00
Andreas Aardal Hanssen
55e02ca70a Add CachePaintMode, as a temporary local back-port of
QGraphicsItem::CacheMode, which will appear in 4.4. I've chosen names
that aren't really good, but they're not misleading, and they don't
clash with the API in 4.4.

My first KDE submit :-DDD.


svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=710738
2007-09-10 19:06:58 +00:00
Robert Knight
37b4ea6334 managingLayout() is a better way to get the layout managing the widget's geometry than parent()->layout() which doesn't work for top-level Widget instances.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=709899
2007-09-08 14:01:03 +00:00
Robert Knight
3dc0a4795f Correct the layout invalidation logic. As with Qt, when a layout is invalidated it finds its top-level layout and causes that to be updated. Calling Widget::updageGeometry() causes the parent widget's layout to be invalidated.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=709495
2007-09-07 16:15:46 +00:00
Robert Knight
04375c4b09 Replace 'INFINITY' with more correct numeric_limits<qreal>::infinity()
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=706983
2007-08-31 17:46:12 +00:00
Robert Knight
bb25f62e55 Remove Widget::invalidate(), that is a feature which is part of the layouts. Better attempt at Widget::updateGeometry() which widget subclasses can call when their size hint or min/max size changes. Ultimately should behave like the QWidget methods of the same name. Make Widget return Qt::Horizontal | Qt::Vertical in its default implementation of expandingDirections()
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=706939
2007-08-31 15:32:10 +00:00
Thomas Georgiou
44c1f66714 Make other widgets paint when zoomed out. (These 3 commits are just
commenting things out. The code will need to be removed once we are 
sure we do not need it.)

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=705868
2007-08-28 19:12:13 +00:00
Robert Knight
773612ac44 Default implementations of minimumSize() , maximumSize() in Layout and correct implementations of minimumSize() , maximumSize() in Widget to match equivalents in QLayout , QWidget.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=703547
2007-08-22 20:13:24 +00:00
Robert Knight
93bf2933e4 When updating a Widget's geometry, pass the geometry in the Widget's co-ordinates to layout()->setGeometry() rather than the parent widget's co-ordinates. Call updateGeometry() inside setGeometry().
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=701207
2007-08-17 16:28:54 +00:00
Matt Broadstone
19efbb9108 Respect min/max sizeHints when setting geometry
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=701205
2007-08-17 16:04:49 +00:00
Robert Knight
93070ce1fd Implement the same sizeHint() logic in Plasma::Widget as QWidget. It returns the layout's sizeHint() if there is a layout or an invalid QSizeF otherwise. Implement sizeHint() in Plasma::Applet. It returns the same as contentSize() if there is no border or the content size hint plus the border size otherwise. Many of the applets need changes for setGeometry() to work properly on them. Fix various warnings.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=701192
2007-08-17 15:05:01 +00:00
Robert Knight
2475cfed09 Add LayoutAnimator class. This provides a way to animate changes in layouts. eg. Fading in new items, fading out removed items, moving and resizing items smoothly as the layout changes. The layouts themselves need some small changes to make use of this class, and the client code must create the animator, attach it to the layout and choose the animation effects to use.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=700844
2007-08-16 15:56:00 +00:00
Robert Knight
482f9824ba Optimization. Avoid calling prepareGeometryChange() if the new and old geometry have the same size. Added a graphicsItem() method to LayoutItem which returns the associated graphics item (if any). Needed for effects during layouting.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=699494
2007-08-13 09:01:00 +00:00
Aaron J. Seigo
db4a7ebe61 copyright cleanups:
* 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
2007-08-06 11:20:02 +00:00
Aaron J. Seigo
5d05c8ac7e more comparison fixes
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=696656
2007-08-05 14:24:24 +00:00
Aaron J. Seigo
b1d1f1959f comparing doubles for equality with == isn't great
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=696628
2007-08-05 12:58:40 +00:00
Matt Broadstone
a53be5affe Proper documentation, added setSize
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=696079
2007-08-03 18:56:14 +00:00
Aaron J. Seigo
ac918ad4bf kdebug fixes
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=695587
2007-08-02 13:12:59 +00:00
Aaron Eisenberg
d40669a2d2 Do not paint anything inheriting Widget and do not paint LineEdit when in desktop view. LineEdit is currently just a temporary solution, because it doesn't inherit Widget for some reason.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=695323
2007-08-01 20:51:27 +00:00
Matt Broadstone
9bc4377eff For posterity's sake
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=693708
2007-07-28 19:27:09 +00:00
Aaron J. Seigo
a8b7589479 someone got confused as to the difference between "the layout that manages my children" and "the layout that manages me". this fixes that and stops crashes in applets that use vbox/hbox
* don't crash when parent=0 is passed in
* don't divid by 0 when we have no children
* have the (fugly) setManagingLayout and unsetManagingLayout and managingLayout methods
* do some memory management so layouts that are thrown around don't get lost in the heap

some unit tests would be nice. hell, a design document on the layout stuff would be nice. i know we're only keeping this around for 4.0, but  ... yeah. ugh.
CCMAIL:panel-devel@kde.org

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=693361
2007-07-27 20:00:07 +00:00
Matias Valdenegro Toro
2120758983 Devirtualize minimumSize() and maximumSize() and add values to d-pointer.
Added setters.

CCMAIL:panel-devel@kde.org


svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=693115
2007-07-27 06:35:39 +00:00
Matt Broadstone
8f619a954b QGraphicsItem::ItemClipsToShape is now default, should fix some nasty painting bugs in the future.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=692061
2007-07-24 23:31:52 +00:00
Matias Valdenegro Toro
efa6b9d8b3 setGeometry(geometry()); is a no-op, so remove it.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=691273
2007-07-23 09:29:18 +00:00
Matias Valdenegro Toro
bef5a33ed5 - Full Doxygenization
- Ported PushButton to Plasma::Widget API
- Two new classes, Rectangle and Label.
- All Widgets should now inherit from Plasma::Widget


svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=691090
2007-07-22 22:16:40 +00:00
Aaron J. Seigo
09d1546b2c let's do something a bit more sensible for the default sizeHint(). it's still likely to return 0,0 but it gives us a chance at least at something non-zero
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=691036
2007-07-22 19:59:13 +00:00
Aaron J. Seigo
b82624429e - make it possible to instantiate a Plasma::Widget itself (implement all pure virtuals from QGraphicsItem)
- allow parenting it to a QGraphicsItem

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=687019
2007-07-12 18:11:50 +00:00
Aaron J. Seigo
ac35242c5d fix the indentation before i add anything to this
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=687015
2007-07-12 17:54:58 +00:00
Matt Williams
f93b9f7396 EBN Krazy header fixes
svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=669864
2007-05-30 16:47:36 +00:00
Aaron J. Seigo
8288d58356 DataVisualization remained anemic: it was only offering a single SLOT, and it was pure virtual at that. to keep the inheritance tree sane, it has been removed.
Widget remains problematic as it uses QGraphicsItem API, but it needs to be subclassed by items that are already QGraphicsItems. ugh.

svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=668083
2007-05-25 02:27:33 +00:00
Matias Valdenegro Toro
c24e5b36d4 Krazy fix
svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=667704
2007-05-23 17:18:43 +00:00
David Faure
22998455f1 fix compiling
svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=667422
2007-05-22 19:23:22 +00:00
Matias Valdenegro Toro
4bde70b077 Make it compile
svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=667380
2007-05-22 16:59:33 +00:00
Matias Valdenegro Toro
edaecc53af First commit of my work, added classes :
- LayoutItem
- Layout
- VBoxLayout


svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=667376
2007-05-22 16:48:34 +00:00
Dirk Mueller
72fa8d7b1b pedantic--
svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=644597
2007-03-20 14:21:56 +00:00
Alexander Wiedenbruch
fa16f5700c Clean up Widget as discussed
svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=638826
2007-03-03 13:13:39 +00:00
Alexander Wiedenbruch
239e2afb87 Bring DataVisualization and widget together
svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=638571
2007-03-02 14:34:41 +00:00
Alexander Wiedenbruch
b321a91d3d Don't misuse the boundingRect for positioning the item
svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=638558
2007-03-02 13:33:12 +00:00
Aaron J. Seigo
2bfbce6618 use the plasma namespace consistently
svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=638473
2007-03-02 05:27:33 +00:00
Alexander Wiedenbruch
585852a0de Move the InputBox from SuperKaramba to Plasma.
svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=638393
2007-03-01 19:58:19 +00:00