Commit Graph

103 Commits

Author SHA1 Message Date
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
Andreas Aardal Hanssen
7516d7ea30 Introduce QGraphicsItem::CacheMode in place of Widget::CachePaintMode.
This move was planned from the beginning; Widget::CachePaintMode was a
backport of the same feature in Qt 4.4. OK'ed by aseigo after post on
panel-devel. I've left CachePaintMode in there (it simply redirects to
CacheMode); I don't know if it's OK to remove these APIs or not (and
it's not monday anyway).

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=775198
2008-02-15 06:51:37 +00:00
Aaron J. Seigo
e27b0ca4d0 ok, second try based on tzander's response. i think this should work better and be a nice come back from lunch toy for him to play/test with.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=773999
2008-02-12 10:07:45 +00:00
Aaron J. Seigo
5b394a752f make popup location calcs xinerama aware. i bet this even closes some BRs. i'm too tired to look for them though. =P
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=773980
2008-02-12 09:41:49 +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
Chani Armitage
1c4bdb9408 don't set d->size directly; this fixes the weird issues with setting minimum size before contentsize and makes sure the svg is updated
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=773472
2008-02-11 05:53:19 +00:00
Aaron J. Seigo
476eb885cb return on emptying the tooltip
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=771375
2008-02-05 20:10:53 +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
Sebastian Kügler
886eb24647 Ooops. Didn't mean to sneak this in.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=771018
2008-02-05 00:13:37 +00:00
Sebastian Kügler
576a655b05 Tooltip uses Plasma:Theme now ... and turns black here.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=771014
2008-02-05 00:01:15 +00:00
Marco Martin
fb5ad56937 some tweaks in popupPosition()
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=766629
2008-01-26 12:37:17 +00:00
Marco Martin
92ecb186df in popupPosition() calculating if we are out of screen with the actual screen size instead of graphicsview size
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=765724
2008-01-24 15:44:11 +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
Marco Martin
e8b62a6ceb move popupleft when there is not enough room (it looks like the windowmanager doesn't always do it automatically)
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=764755
2008-01-22 14:06:37 +00:00
Marco Martin
6d362861e0 SVN_SILENT: micro cosmetic style fix
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=764302
2008-01-21 11:51:04 +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
Aaron J. Seigo
ee32d3c996 remove the use of 1209 explicitly now that i have Winter's Magic Formula for default debug space. makes backporting way easier; sorry for the noise of the earlier commit. suppose i should read planetkde.org more closely ;)
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=758498
2008-01-08 01:25:09 +00:00
Aaron J. Seigo
12ef6308cb use the plasma debug area (1209); i considered wrapping this in Plasma::debug() but that seems overkill ;)
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=758415
2008-01-07 20:50:31 +00:00
Aaron J. Seigo
402cfc7d26 self(), not instance(), in line with all other singletons in plasma
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=758186
2008-01-07 04:39:36 +00:00
Jason Stubbs
7a202c3382 Holding on to the return value of view() as it's a heavy function call. Hiding
the widget's tooltip when the widget is deleted. Fixed coding style.

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=754986
2007-12-31 01:45:48 +00:00
Jason Stubbs
b907728254 If a widget doesn't have a size yet, it's bounding rect won't intersect
anything, so also check if its position lies within a view's scene rect.

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=754627
2007-12-30 11:44:25 +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
Jason Stubbs
f3e52b76cb Record which tooltip is being shown so that tooltip data updates don't change
which to another widget's tooltip.

BUG: 154719

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=754590
2007-12-30 10:17:33 +00:00
Craig Duquette
ddc888e9c4 moved setToolTip() and toolTip() to match the updated header which moved these functions to
public

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=752612
2007-12-25 05:36:31 +00:00
Jason Stubbs
c0bba16e87 Fix crash when adding widgets to the panel
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=751539
2007-12-22 06:43:05 +00:00
Richard J. Moore
3537033b91 - Partial fix to prevent tooltips being displayed over the top of
popup menus. There's still a problem however as the 1 second timer
  can be started before the menu is triggered. The tooltip code needs
  to detect when this is occuring somehow and suppress the tip in such
  cases.


svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=751298
2007-12-21 15:59:04 +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
689bc02935 Add reference to Qt's bug number that the workaronud works around.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=749089
2007-12-16 13:51:27 +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
Jason Stubbs
89a387b76d Cast the parent being checked rather than parentItem()
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=743922
2007-12-02 11:19:26 +00:00
Aaron J. Seigo
312f42dec0 when setting min/max sizes, adjust our geometry if our current size is not within those boundaries
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=742716
2007-11-28 18:41:21 +00:00
Aaron J. Seigo
0374286c07 * don't reset the painter's opacity to the widget's opacity; rather, *apply* the widget's opacity to the painter's opacity
* get rid of the internal child list. we don't need it and it's a pain (as in error prone) to maintain, esp when we have QGraphicsItem::children()

(man i wish svn allows partial file commits =/ i wonder (idly) if git or any of those new fangled vcs's do?)

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=742100
2007-11-27 06:03:19 +00:00
Tom Albers
bd382fa983 Fix wording so it does not result in false positives.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=741335
2007-11-25 13:28:25 +00:00
Aaron J. Seigo
65d405f264 more layouting love;
* widgets should let Widget handle sizing, geometry unless there are very good reasons for it
* don't relayout the parent layout if the parent layout is already relayouting, because that relayout will have called the child's relayout in the first place. get it? relayout!
* i can dance. we can dance. do the relayout dance.
* some style guide fixes

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=738957
2007-11-20 01:19:59 +00:00
Aaron J. Seigo
92ba2c1b0b move all the layouts to their own directory; much more logical and makes it easier to not miss layouts that need changes
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=738898
2007-11-19 22:42:56 +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
2f5fa3f5fa remove items that are removed from us from our layout, as well
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=738068
2007-11-17 21:32:21 +00:00
Aaron J. Seigo
d9493e73ef avoid unecessary updates, use d->size consistently so problem, if they arise, show up more consistently ;)
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=738038
2007-11-17 19:01:02 +00:00
Aaron J. Seigo
bba7a3d39c 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
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=732530
2007-11-04 05:36:39 +00:00
Aaron J. Seigo
ffcf6bc16b let's not hold on to our own parent pointer; just too easy to have it fall out of date.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=731160
2007-10-30 21:00:01 +00:00
Aaron J. Seigo
c10ddbe353 the item is already children of us at this point, just make sure to not double add it.
i tried to find a way to reliably react to child add events instead of having to call our own method for this, but due to construction order and how itemChanged events are handled, i couldn't find such a thing. =/

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=731137
2007-10-30 20:25:12 +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
260a040477 * avoid a couple unecessary vars/method calls
* don't try and paint on a null pixmap

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=729679
2007-10-26 16:35:58 +00:00
Aaron J. Seigo
576798dd52 set panels properly in setScreen. this will need to be augmented with screen edge stuff eventually as well, but for now this might work better on multiple screens.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=729421
2007-10-25 23:09:02 +00:00
Aaron J. Seigo
49874ae140 temporary fix for the beta: don't make items unmovable when added to a layout as that is screwing with MouseReleaseEvents. this means panels items are, once again, freely draggable (which is wrong) but on the upside you can open the menu again
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=729202
2007-10-25 09:12:15 +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
0f66f80fe2 allow widgets to change their size even if there isn't a layout (because that was just silly)
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=723915
2007-10-11 03:30:50 +00:00