Commit Graph

61 Commits

Author SHA1 Message Date
Aaron J. Seigo
abf654c5c5 have the tooltip inform the widget that it's about to tip so last second updates can be made, particularly nice for expensive tooltips
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=786834
2008-03-18 01:39:28 +00:00
Dan Meltzer
7f624f85d9 Revert one large git mess
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=780657
2008-02-29 17:50:57 +00:00
Dan Meltzer
a081559257 Commit initial progress of work to port to qt4.4
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=780654
2008-02-29 17:43:31 +00:00
Aaron J. Seigo
756041badd const ref fixes
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=776990
2008-02-19 09:19:02 +00:00
Aaron J. Seigo
777b8083f8 * moves the idea of margins up to LayoutItem, allowing any LayoutItem to have a margin
* 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
2008-02-17 23:02:46 +00:00
Aaron J. Seigo
a438b53373 die, setSize, die, and all the problems you represent. silly duplicated, not-like-qwidget API anyways. ;)
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=773505
2008-02-11 08:24:09 +00:00
Aaron J. Seigo
eed0410c56 * make setSize virtual as well since it sets d->size internally, so Applet needs to intercept that call
* remove some dead code in widgets.cpp

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=773475
2008-02-11 06:11:13 +00:00
Aaron J. Seigo
9aa26c5e35 * set the palette on theme changes only
* don't grab the data until actually shown
* show the right size and position when we are showing the tip
* allow the tooltip to figure out it's size with the help of the widget (it knows when to do this, the widget only knows how)
* don't show the tip on every item's mouse over, respect the small timeout
* only create a ToolTipData struct for those items that actually use it (memory savings as well as makes the check for showing the tip a lot simpler)


svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=771314
2008-02-05 18:26:17 +00:00
Aaron J. Seigo
11f9ad3064 BINARY INCOMPATIBLE CHANGE
make it possible to use the context menu event hack with non-Plasma::Widgets.

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=765005
2008-01-22 23:39:15 +00:00
Aaron J. Seigo
08812eeb00 setFont is not on the agenda; Plasma::Theme is there for that now
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=764402
2008-01-21 17:35:01 +00:00
Marco Martin
ee37d19811 better positioning of tooltips in case of panels not in bottom position and a new function in widget called popupPosition(const QSize s) this will be used every time a tooltip or popup menu has to be positioned
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=764299
2008-01-21 11:42:08 +00:00
Luboš Luňák
89ab030a89 Use KWin's TaskbarThumbnail effect to show window previews in tooltips.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=756513
2008-01-03 11:35:42 +00:00
Jason Stubbs
c268168eab Overrode sceneEvent() rather than hover(Enter|Leave)Event so that subclasses
that use those events (such as Icon) can still have tooltips. Also behaviour
on mouse move, mouse click and mouse wheel events is also managed.

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=754605
2007-12-30 10:45:21 +00:00
Craig Duquette
cd216b2eb8 make setToolTip() and toolTip() public from protected
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=752611
2007-12-25 05:34:43 +00:00
Pino Toscano
0ec187a28e include fixup
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=752169
2007-12-23 19:20:22 +00:00
Dan Meltzer
357656f660 Add a generic tooltip widget to Plasma::Widget and implement it in the tasks applet.
Applets wishing to use this tooltip should Create a Plasma::ToolTipData struct 
(defined in widget.h) and pass it to Widget::setToolTip().  Showing and hiding
the tooltip is all handled automatically.

While the basic idea is found in this patch, the look still definatly needs some
work.  Still a definate work in progress.

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=751113
2007-12-21 05:33:17 +00:00
Jason Stubbs
1dc5cc58fc Move the "call the parent's contextMenuEvent()" hack from Applet into
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
2007-12-16 13:21:16 +00:00
Jason Stubbs
10af4df668 Added methods for gaining information about the view. This is useful for
applets such as systemtray and tasks that need to know about global
geometry.

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=746172
2007-12-08 03:35:11 +00:00
Alexis Ménard
ff0b3da511 Fix include for layout
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=738921
2007-11-19 23:40:03 +00:00
Aaron J. Seigo
1a3aec4af2 add another setSize convenience method and use d->size more consistently internally for clarity
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=738568
2007-11-19 07:53:48 +00:00
Aaron J. Seigo
5b10495cf4 get rid of reparent() as that is completely superceded by addChild, and catch when children items no longer belong to us.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=730877
2007-10-29 23:10:45 +00:00
Aaron J. Seigo
b448d9bb90 when an item is added to the layout, give it a chance to react. in the case of Widget, we're going to set the movable state of the QGraphicsItem. the result: items move, or don't, based on whether or not they are in a layout. finally, you can't just move shit around in the panel.
it's pretty hackish since we have to special case FreeLayout but hey, since when were layouts in plasma ever sane?

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=728764
2007-10-24 06:54:26 +00:00
Aaron J. Seigo
22de66fdc0 * fix order of constraints init so that geometry is done before screen affinity
* 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
2007-10-11 19:16:01 +00:00
Aaron J. Seigo
55969fd88b - make setGeometry virtual so that Applet::setGeometry actually does what Petri Damsten was trying for
- erase the rect on the pixmap that is exposed before painting again; this prevents painting over and over and over the pixmap (resulting in darker and darker painting when using transparency)
- some minor whitespace changes made whilst debugging

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=719387
2007-10-01 05:06:51 +00:00
Petri Damstén
61fa701fc0 - Add setSize (needed by Applet)
- Delete white space from line ends

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=718077
2007-09-28 05:45:10 +00:00
Aaron J. Seigo
8f4ed43ae0 whoops, forgot this other half of the commit
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=718011
2007-09-27 22:11:46 +00:00
Aaron J. Seigo
fe13964089 add a contextMenuEvent to Widget so that we get proper context menu propagation by default
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=714171
2007-09-18 21:19:10 +00:00
Aaron J. Seigo
329d912f47 SVN_SILENT: more licensing updates ... all done with this now i think =)
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=712581
2007-09-14 20:17:11 +00:00
Aaron J. Seigo
e0f831373c SVN_SILENT: add "or later" clause. cleared with copyright holders, except for rich moore's ui loader which i need to ask him for permission for first.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=712549
2007-09-14 19:06:18 +00:00
Aaron J. Seigo
d20c9a010f growing tired of being asked about how to get at the font used in widgets, here's a cute little accessor that provides the answer for now and gives us a way to support font settings in the future much in the way qwidget itself does.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=712158
2007-09-13 19:33:44 +00:00
Aaron J. Seigo
926d039802 SVN_SILENT: why bother with a coding style.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=711898
2007-09-13 05:34:11 +00:00
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
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
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
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
Richard J. Moore
e7512b5b77 - Prepare for scripting
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=696309
2007-08-04 12:37:59 +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
Matt Broadstone
be3c212374 Make all plasma/widgets inherit Plasma::Widget now. Holding off on committing change for icon as I have a massive patch for the new text drawing
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=696028
2007-08-03 16:00:10 +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
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
Aaron J. Seigo
04d418f4a7 last round of ebn fixes i had kicking around.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=692337
2007-07-25 11:24:07 +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
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
Aaron J. Seigo
bbaebc6b1b move workspace/plasma/lib to workspace/lib/plasma so that we can do:
#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
2007-06-02 17:29:39 +00:00