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
Pino Toscano
cec28bebac
use QtModule/QFoo for public headers
...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=708026
2007-09-03 17:16:40 +00:00
Robert Knight
15fbaba2ac
Move duplicated animation starting code into Layout::startAnimation() which layout subclasses can call at the end of their setGeometry() implementation to start the layout animator's timer.
...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=707803
2007-09-03 00:52:29 +00:00
Robert Knight
ecd23d6e67
Always restart timeline from 0 when setGeometry() is called. QTimeLine::start() is a no-op if already running.
...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=707800
2007-09-03 00:41:57 +00:00
Richard J. Moore
4663b82555
- More Q_PROPERTY additions
...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=707687
2007-09-02 17:49:34 +00:00
Richard J. Moore
b09f73ac86
- Add support for opacity property of Widget
...
- Add Q_PROPERTIES and missing Q_OBJECT to signalplotter
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=707684
2007-09-02 17:41:05 +00:00
Pino Toscano
c27291a3fc
slots -> Q_SLOTS
...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=707337
2007-09-01 15:02:09 +00:00
Robert Knight
a29ae57a7d
This breaks the existing Plasma applet API, see the contentSize()
...
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
2007-09-01 12:34:22 +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
536d3749c1
Fix crash when layout argument is null.
...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=706975
2007-08-31 17:24:03 +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
Robert Knight
f7861353ba
Add a method to change the parent of a layout. Make isEmpty() non-virtual, and instead always equal to (count()==0). Add invalidate() method which is used like the method of the same name in QLayout to invalidate cached information in the layout.
...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=706937
2007-08-31 15:27:32 +00:00
Robert Knight
af8659fa22
Update the parent of a LayoutItem when calling setLayout
...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=706935
2007-08-31 15:23:09 +00:00
Robert Knight
d1aba23cd2
Return 0 for the expanding directions of an icon. At present icons have a fixed size.
...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=706934
2007-08-31 15:21:30 +00:00
Robert Knight
37b993d8ff
Add auto-deletion functionality into LayoutAnimator which can be used to delete the item when its removal animation finishes. Emit a signal when the state of an item in the animator changes. Avoid repeatedly setting an item's geometry with the NoEffect effect. Added a DeadState into which items transition after their removal animation finishes or if they have not been added to the animator. When inserting an item with a fade in effect set the opacity to 0 if the item is a widget.
...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=706933
2007-08-31 15:19:02 +00:00
Percy Leonhardt
615eae37ba
Merged HBoxLayout and VBoxLayout into BoxLayout to avoid duplicate code.
...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=706645
2007-08-30 23:44:08 +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
Thomas Georgiou
d65ab52dd6
Lineedits should display when zoomed out.
...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=705867
2007-08-28 19:02:38 +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
Thiago Macieira
eca6dc90c0
Remove use of k_funcinfo
...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=702583
2007-08-20 21:33:48 +00:00
Matt Broadstone
4fbc948d56
That'll teach me not to test the build before committing :)
...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=701238
2007-08-17 18:57:28 +00:00
Matt Broadstone
1fb3bef9bb
Fix build
...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=701237
2007-08-17 18:55:55 +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
Percy Leonhardt
c86bf6caea
Example for nested layouts
...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=701173
2007-08-17 14:36:48 +00:00
Robert Knight
62b2605d0d
Add methods to set/get a layout's animator. The various layout implementations need small changes to make use of an animator if set. Add an update() method to Layout to trigger re-layouting.
...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=701059
2007-08-17 07:02:24 +00:00
Percy Leonhardt
f1855dd6b2
Fixed wrong calculation of width
...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=700938
2007-08-16 20:37:29 +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
Gabriel Anderson
0231bb68fe
fixed dpointer
...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=700536
2007-08-15 19:53:46 +00:00
Robert Knight
ad83b23dc4
Reimplement sizeHint() in Plasma::Icon, otherwise an invalid size hint gets returned.
...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=699874
2007-08-14 06:59:36 +00:00
Gabriel Anderson
6fd370952d
Fixed krazy issue #8 (Non-const d-pointer)
...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=699687
2007-08-13 21:51:23 +00:00
Percy Leonhardt
9268590942
Added a signalplotter to plasma.
...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=699576
2007-08-13 15:15:19 +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
Robert Knight
ca39faf71a
Fix the push button size hint. Make PushButton::boundingRect() side-effect free.
...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=699467
2007-08-13 06:32:31 +00:00
Robert Knight
1f99ac776a
Fix LineEdit::geometry(). Returned ectangle should be in parent coordinates.
...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=699255
2007-08-12 13:13:06 +00:00
Aaron J. Seigo
b764db9438
use a KIcon here to get the proper loading
...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=698791
2007-08-11 03:30:54 +00:00
Aaron J. Seigo
b80d526229
use QIcon in the public API
...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=698752
2007-08-10 22:24:49 +00:00
Matias Valdenegro Toro
777d23d06b
Change start layout position topLeft point of the Geometry.
...
CCMAIL: panel-devel@kde.org
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=698656
2007-08-10 16:04:26 +00:00
Matias Valdenegro Toro
0923b77b89
Fix the starting position of VBoxLayout.
...
CCMAIL: lfranchi@gmail.com
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=698045
2007-08-08 20:37:59 +00:00
Aaron J. Seigo
b4a001e6e1
SVN_SILENT: yeah, (C) is meaningless
...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=697686
2007-08-08 12:13:05 +00:00
Matt Broadstone
21394705f1
Provide a valid size before being painted
...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=697570
2007-08-08 05:29:50 +00:00
Pino Toscano
99f22093f9
include fixup
...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=697353
2007-08-07 14:58: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
Matt Broadstone
26569e231c
Add layout test
...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=696814
2007-08-05 23:05:57 +00:00
Matt Broadstone
6a6c508036
Fix Q_PROPERTY/Q_INVOKABLE's, readd icon accessor
...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=696719
2007-08-05 18:03:26 +00:00
Matt Broadstone
8a4601f9b0
Remove old unneeded debug calls
...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=696700
2007-08-05 17:13:07 +00:00
Matt Broadstone
388d1ca167
Cleaned up Plasma::Icon a whole lot, added Fredrik's text drawing code from KFileItemDelegate so we actually draw text correctly.
...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=696698
2007-08-05 17:11:46 +00:00
Matt Broadstone
f33c5ab58b
'fixes' layouts for pushbuttons
...
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=696696
2007-08-05 17:03:18 +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