summaryrefslogtreecommitdiffstats
path: root/src/gui/graphicsview/qgraphicswidget.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fixes to how resize event and layout request are posted.Jan-Arve Saether2011-06-101-10/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also fixed how the relayout is initiated. This is because we needed to react differently to *posted* layout requests than to sent layout requests. (sent ones should activate the layout, posted ones should also resize the widget). We therefore introduced the private slot _q_relayout() in order to be able to make the distinction between posted and sent layout requests. (Instead of posting we now invokeMethod with a queued connection. In order to make it behave as it was compressed we also have to refcount the number of calls to invokeMethod.) (Note that refCount is 16 bits only, so it should not overflow in sane cases. In the insane cases, the worst thing that will happen is that it'll relayout the layout one extra time). Make sure we resize QGraphicsWidget to be within its min,max sizes when we change one of its constraints. (e.g. we change minimumSize to something bigger than the current size). This did not work if the widget did not have a layout. Send a resize event whenever a QGraphicsWidget changes its size. This did not happen before, because in the cases where a Layout Request was sent, we did not send a resize event. This patch changes that, so that when we send a resize event, we do not send a Layout Request event. This means that a Layout Request event is now *only* sent in order to tell a widget to relayout its children (but the widgets size was not changed, that's why we cannot send a resize event in that case) Also includes a unit test, and a fix to make sure that we send a resize event when we resize due to the sizehint changing followed by a setPos command. Added autotests for this. (and changed some) Many thanks to John Tapsell and Stanislav Ionascu for help. (autotests were provided by them). My poor explanation did not convince Frederik 100%, but he is "convinced enough" :) Reviewed-by: Frederik Gladhorn
* Fixed move a QGraphicsWidget and invalidate its layout at the same timeJohn Tapsell2011-05-271-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | QGraphicsWidget::setGeometry() could sometimes call QGraphicsLayoutItem::setGeometry() with an uninitialized rectangle. This happened in the specific case where the widget had a layout that was not active, and where setPos was called on the widget. This would in turn cause it to enter setGeometry() where it would act as expected. However, due to the fact that we sent a LayoutRequest event at the end of that function, it could result in that QGraphicsLayout::activate() would call setGeometry again. Now, we would actually enter setGeometry, where wd->inSetPos == 1. Then, we would not enter the "if (!wd->inSetPos)" block nor the "if (moved)" block. It would then end up calling QGraphicsLayoutItem::setGeometry(newGeom), where newGeom was uninitialized. Bug happens only when QGraphicsLayout::setInstantInvalidatePropagation(true) was used, because that was the condition for sending the layout request from setGeometry() Tracked down and written by Stanislav Ionascu. Reviewed-by: Jan-Arve Sćther
* Update licenseheader text in source filesJyri Tahtela2011-05-131-17/+17
| | | | | | | Updated version of LGPL and FDL licenseheaders. Apply release phase licenseheaders for all source files. Reviewed-by: Trust Me
* Avoid flicker when invalidate is propagated in a widget/layout hierarchyJan-Arve Sæther2011-04-141-34/+71
| | | | | | | | | | | | | | | | | | | | | * Do not call invalidate from activateRecursive(). This resulted in that a layout was invalidated as many times as there were items in the layout. * Several improvements. Do not call resize(size()) too often. Calling resize() from the widgetEvent() is not very nice though... * Remove commented out code * make sure layout is activated even if the widget does not change size * activate the layout if the resize is same as size() * In order to not break existing apps, make this an opt-in feature with QGraphicsLayout::setInstantInvalidatePropagation(true); Reviewed-by: Frederik Gladhorn Reviewed-by: John Tapsell
* Update copyright year to 2011.Jason McDonald2011-01-101-1/+1
| | | | Reviewed-by: Trust Me
* Doc: Fixing typoSergio Ahumada2010-11-091-1/+1
|
* Moved the property documentation to its proper location.Jerome Pasion2010-10-111-0/+16
| | | | | Task-number: QTBUG-14351 Reviewed-by: David Boddie
* Make sure propagated font in QGraphicsWidget can be set on a QPainterEskil Abrahamsen Blomfeldt2010-08-271-1/+3
| | | | | | | | | | | | | | | | | | | | | In QWidget and QGraphicsWidget, propagating fonts blank out the resolve mask, mainly to help in determining inheritance. This means that when the font is set on a QPainter with device and therefore resolved against the device font, none of the attributes in the font will take presedence and the font will essentially just be ignored. For QWidgets this has not been a problem due to the fact that the painter is opened on the widget, getting the propagated font as its device font. For QGraphicsWidget, however, the QPainter is opened on the viewport and the viewport's font will therefore override the propagated font when it's passed into setFont(). To fix this, we need the font returned by QGraphicsWidget::font() to contain the resolve mask of the inherited parts of its font as well. This is done last minute to avoid messing up the rules of inheritance in the QGraphicsWidget tree (problem arises e.g. in hierarchy A -> B -> C and a font is set on B which should override the font C has previously inherited from A.) Task-number: QTBUG-13188 Reviewed-by: Lars
* Properly emit geometryChanged() when the position change.Alexis Menard2010-08-121-1/+2
| | | | | | | Also emit the signal at the very end, so people can rely on the resize event to adjust some stuff in their item. Reviewed-by:yoann
* Merge remote branch 'origin/4.6' into qt-4.7-from-4.6Olivier Goffart2010-05-171-7/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: demos/demos.pro mkspecs/features/resources.prf mkspecs/features/uic.prf src/corelib/io/qurl.cpp src/corelib/tools/qlocale_symbian.cpp src/gui/graphicsview/qgraphicsscene.cpp src/gui/graphicsview/qgraphicswidget_p.cpp src/gui/graphicsview/qgraphicswidget_p.h src/gui/util/qsystemtrayicon_win.cpp src/multimedia/audio/qaudioinput.cpp tests/auto/qhostinfo/qhostinfo.pro
| * QGraphicsWidget was not working properly when ItemSendsPositionChanges is falseAlexis Menard2010-05-051-7/+1
| | | | | | | | | | | | | | | | | | | | | | The geometry was not properly set because QGraphicsWidget rely on itemChange to update its own geometry. Now when calling setPos we also ensure that for a widget the geometry will be up to date. Setting the flag ItemSendsPositionChanges to false for a given widget will give a small performance boost. Reviewed-by:janarve Reviewed-by:bnilsen
* | Optimize QGW constructor.Alexis Menard2010-05-101-3/+0
| | | | | | | | | | | | | | | | Mostly by avoiding sending useless QVariant at construction time. itemChange is virtual, the user implementation will never be called. Worst case the QGW one. Reviewed-by:janarve
* | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt into 4.7Warwick Allison2010-05-041-3/+1
|\ \ | | | | | | | | | | | | Conflicts: src/declarative/graphicsitems/qdeclarativeitem.cpp
| * | doc: Fixed some qdoc errors.Martin Smith2010-04-301-9/+1
| | |
* | | Bunch of doc fixes.Alexis Menard2010-04-281-6/+11
|/ / | | | | | | | | | | Warnings --. Reviewed-by:TrustMe
* | Merge remote branch 'origin/4.6' into qt-4.7-from-4.6Thiago Macieira2010-04-121-2/+2
|\ \ | |/ | | | | | | | | | | Conflicts: qmake/generators/symbian/symmake.cpp src/gui/image/qimage.cpp src/openvg/qwindowsurface_vgegl.cpp
| * Fixes CursorChange and TooltipChange events delivery for QGraphicsWidgetYoann Lopes2010-04-071-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | As the documentation mentions, these two events are delivered respectively after the cursor has changed and after the tooltip has changed. These two events were previously delivered just before. This patch is needed for fixing QTBUG-5349 even if it is not directly related. Auto-test included. Reviewed-by: bnilsen
* | Revert 4.6 commits that shouldn't be in 4.7.Thiago Macieira2010-03-311-1/+14
| | | | | | | | | | | | | | | | | | Commits reverted: 880e4935410769b8337d75f219bef70493c4bb2c 82a306e7dda06909801f576bbbbebb59dc41c563 6cb935dd89a391f792f8ad42012b5c7c38712f17 ebd1c45822aca087be994c898cfb01cd41599429 4e4c0055d59978850796ff8c1b5015e17459e8d2
* | Merge remote branch 'origin/4.6' into qt-4.7-from-4.6Thiago Macieira2010-03-311-13/+1
|\ \ | |/ | | | | | | | | | | | | Conflicts: configure doc/src/modules.qdoc src/gui/graphicsview/qgraphicsitem_p.h src/gui/graphicsview/qgraphicswidget.h
| * Revert "Add a children private property needed for QML to support ↵Alexis Menard2010-03-311-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | QGraphicsObject" This reverts commit 4be83fa7337c5a4eb7b0ce085aa5854af5d33252. Conflicts: src/gui/graphicsview/qgraphicswidget.cpp This drops the support of QML on top of 4.6
| * Revert "Add NOTIFY to size property so QML bindings are working fine."Alexis Menard2010-03-311-5/+0
| | | | | | | | | | | | | | | | | | | | This reverts commit 79a02c86c445e50630bcae62a4505f212281ec8b. Conflicts: src/gui/graphicsview/qgraphicswidget.cpp This drop the support of QML on top of 4.6
| * Revert "Better handling for NOTIFY in QGraphicsWidget regarding geometry ↵Alexis Menard2010-03-311-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | changes" This reverts commit 13bccd4ade76dd8a9c1cc067cc2b8da69c11def2. Conflicts: src/gui/graphicsview/qgraphicswidget.cpp Drop the support of QML on top of 4.6
| * Revert "Add a a layout property in QGraphicsWidget."Alexis Menard2010-03-311-1/+0
| | | | | | | | | | | | This reverts commit 87fae30fc63460e0ed2cc98f55a22e28d7520311. This drop the support of QML on top of 4.6
| * Add a a layout property in QGraphicsWidget.Alexis Menard2010-03-301-0/+1
| | | | | | | | Reviewed-by:michael brasser
* | Merge remote branch 'origin/4.6' into qt-4.7-from-4.6Thiago Macieira2010-03-291-5/+17
|\ \ | |/ | | | | | | | | | | Conflicts: mkspecs/common/symbian/symbian.conf qmake/generators/symbian/symmake.cpp src/3rdparty/webkit/WebCore/WebCore.pro
| * Fix linking errorAnders Bakken2010-03-261-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The #include "moc_qgraphicswidget.cpp" is superfluous and caused these link errors: .obj/debug-shared-emb-x86_64/moc_qgraphicswidget.o:(.data.rel.ro+0x0): multiple definition of `QGraphicsWidget::staticMetaObject' .obj/debug-shared-emb-x86_64/qgraphicswidget.o:(.data.rel.ro+0x0): first defined here .obj/debug-shared-emb-x86_64/moc_qgraphicswidget.o: In function `QGraphicsWidget::metaObject() const': Presumably this only happens when you have a stale moc file sitting around but it's a bug none-the-less. Reviewed-by: TrustMe
| * Add a children private property needed for QML to support QGraphicsObjectAlexis Menard2010-03-241-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit adds a private property that QML can use to add children for a given item. This is a custom list that calls a callback which actually reparent the item instead of just appending in the list (otherwise it will mess up the state of QGraphicsView). This is needed because childItems() is pretty useless you get a list but if you append something on it then it adds that into a copy. Also the children property is the default property a concept used by QML. Width and Height private properties has been added in order to support better the integration with QGraphicsWidget in QML. The actual implementation is in the private class of QGI and QGraphicsWidget reimplements it to return the geometry. (In 4.7 QDeclarativeItem reimplements it too). This change should be harmless everything is private. Task-number:QT-2757 Reviewed-by:andreas
* | doc: Fixed all the remaining qdoc errors. For now.Martin Smith2010-03-241-0/+6
| |
* | Merge branch '4.6-s60' into 4.7-s60axis2010-03-221-1/+1
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure.exe mkspecs/common/symbian/symbian.conf src/gui/graphicsview/qgraphicswidget.h src/gui/kernel/qapplication.cpp src/gui/text/qtextlayout.cpp src/openvg/qpixmapdata_vg.cpp src/s60installs/s60installs.pro tools/runonphone/main.cpp tools/runonphone/serenum_unix.cpp qtextlayout.cpp fixed up together with Eskil. Kept the configure.exe from 4.7 without recompile.
| * Better handling for NOTIFY in QGraphicsWidget regarding geometry changesAlexis Menard2010-03-191-2/+1
| | | | | | | | | | | | We bundle the size and the geometry into the same NOTIFY signal. Reviewed-by:akennedy
| * Add NOTIFY to size property so QML bindings are working fine.Alexis Menard2010-03-191-0/+1
| | | | | | | | | | | | | | Just add the notify + the signal. Task-number:QTBUG-8277 Reviewed-by:yoann
* | Merge branch '4.6'Thiago Macieira2010-01-131-1/+1
|\ \ | |/ | | | | | | | | | | | | | | | | | | Conflicts: bin/syncqt doc/src/deployment/deployment.qdoc src/corelib/io/qfsfileengine_win.cpp src/corelib/xml/qxmlstream.cpp src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h tools/assistant/tools/assistant/centralwidget.cpp tools/linguist/lupdate/main.cpp
| * Update copyright year to 2010Jason McDonald2010-01-061-1/+1
| | | | | | | | Reviewed-by: Trust Me
* | Merge commit 'origin/4.6'Olivier Goffart2009-12-151-1/+1
|\ \ | |/ | | | | | | | | | | Conflicts: src/corelib/io/qfsfileengine.cpp src/network/access/qnetworkrequest.cpp tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp
| * Fix a crash on the focus chain when removing items from the scene.Alexis Menard2009-12-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The crash was because of the dangling pointer set on the tabFocusFirst attribute in QGraphicsScene. A child which was the tabFocusFirst was removed from the scene and fixFocusChainBeforeReparenting was setting the new tabFocusFirst pointer to the parent (since in that example it was the focusNext) but later on the parent was removed also from the scene (due to the recursion of removeItem if you call it with the parent : first children, then the parent itself) and fixFocusChainBeforeReparenting was not called again so if you delete the parent then the scene has the dangling pointer set. Task-number:QTBUG-6544 Reviewed-by:janarve
* | Added QGraphicsWidget::autoFillBackground property.J-P Nurmi2009-12-031-0/+30
|/ | | | | | | | This add a property to QGraphicsWidget to fill its background. QWidget has the same. Merge-Request: 1656 Reviewed-by: Alexis Menard <alexis.menard@nokia.com>
* Only call updateFont if the font have changed.Alexis Menard2009-11-301-1/+2
| | | | | | | | | When receiving the polish event, we call updateFont only if the font has changed (from the QApplication::font()). This avoid to clear sizeHints cache. Task-number:QTBUG-6272 Reviewed-by:janarve
* Remove caching of QGraphicsItem::clipPath().Bjørn Erik Nilsen2009-11-251-2/+0
| | | | | | | | | The cache was added in 4.5 and was useful at that time. With 4.6 it is not relevant anymore since the only use case for it is item-lookup releated to mouse events and collision detection, so the overhead of maintaining the cache is more pain than gain. All existing auto tests pass.
* Merge branch 'fixes' of git://gitorious.org/~morphbr/qt/morphbrs-clone into ↵Jan-Arve Sæther2009-11-061-0/+6
|\ | | | | | | morpheuz-fixes
| * Make sizePolicy a property of QGraphicsWidget tooArtur Duque de Souza2009-11-061-0/+6
| | | | | | | | | | | | | | The widget has sizePolicy as a property and declaring that properly helps scripting. Just as it was done with min/pref/max sizes. Signed-off-by: Artur Duque de Souza <artur.souza@openbossa.org>
* | Add documentation for the new min/pref/maxSize properties.Jan-Arve Sæther2009-11-061-0/+21
| |
* | If a QGraphicsWidget gets a StyleChange event, invalidate its layout.Jan-Arve Sæther2009-10-271-0/+2
|/ | | | | | | | The layout should be invalidated because all layouts are dependent on some style-specific defaults. (e.g. PM_LayoutHorizontalSpacing can differ.) Reviewed-by: alexis
* Fix the pad navigator demo.Alexis Menard2009-10-061-1/+1
| | | | | | | | | | | | QGraphicsWidget used to called setPosHelper where all the logic was. But since the new flag itemSendsGeometryChanges some part of the code inside setPosHelper move back to setPos. QGraphicsWidget was not updated after this change. It doesn't matter as it is but for QGraphicsProxyWidget which activate the flag itemSendsGeometryChanges it matters. ItemChange was never called so the proxy was never really moved. Task-number:QT-672 Reviewed-by:andreas
* Make QEventTransition works with QGraphicsObject.Alexis Menard2009-10-051-6/+0
| | | | | | | | | | | QStateMachine framework installs QObject event filters to catch events in order to triggers the proper transition. But installing a QObject event filter on a QGraphicsObject gives nothing because QGraphicsView events filters works differently. In order to make this works we now post events using QApplication::postEvent in addition to the QGraphicsView events. Reviewed-by:andreas
* Update license headers again.Jason McDonald2009-09-091-4/+4
| | | | Reviewed-by: Trust Me
* QGraphicsWidget::sizeHint didn't pass the correct constraint to layout.Jan-Arve Sæther2009-09-041-2/+4
| | | | | Adjust the constraint with the widget margin before passing it on to d->layout->effectiveSizeHint().
* Add auto-activation on show/hide and setParentItem().Andreas Aardal Hanssen2009-08-311-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | If you show a child panel of an active panel, the child will now be activated and the parent deactivated. Hiding the child panel will reactive the parent. If the parent is 0, no other panel is activated. Reparenting a panel onto an active panel will also activate the (new) child. Reparenting away does not affect activation in any way. This change also fixes QGraphicsWidget::isActiveWindow(), which returned true for all toplevel widgets (not in a panel/window). This is wrong; either the non-panel items are active, or a panel is active. The correct behavior is the same as calling QGraphicsItem::isActive(). Fixed the autotests (which wrongly tested that both a panel and a non-panel item were active at the same time). This change causes popups (QGraphics{Proxy,}Widget) to deactivate the parent widget. On the positive side this activates the popup, and ensures that the parent regains proper focus when the popup is closed. However it also means the parent widget is inactive while the popup is open, which (e.g.) causes editable combobox line edit cursors to stop blinking. This is to be fixed soon, but the fix is a bit big so we'll do that later. Autotests included. Reviewed-by: Brad
* Merge branch '4.5' into 4.6Thiago Macieira2009-08-311-13/+13
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: demos/boxes/glshaders.cpp demos/boxes/vector.h demos/embedded/fluidlauncher/pictureflow.cpp demos/embedded/fluidlauncher/pictureflow.h doc/src/desktop-integration.qdoc doc/src/distributingqt.qdoc doc/src/examples-overview.qdoc doc/src/examples.qdoc doc/src/frameworks-technologies/dbus-adaptors.qdoc doc/src/geometry.qdoc doc/src/groups.qdoc doc/src/objecttrees.qdoc doc/src/platform-notes.qdoc doc/src/plugins-howto.qdoc doc/src/qt3support.qdoc doc/src/qtdbus.qdoc doc/src/qtdesigner.qdoc doc/src/qtgui.qdoc doc/src/qtmain.qdoc doc/src/qtopengl.qdoc doc/src/qtsvg.qdoc doc/src/qtuiloader.qdoc doc/src/qundo.qdoc doc/src/richtext.qdoc doc/src/topics.qdoc src/corelib/tools/qdumper.cpp src/gui/embedded/qkbdpc101_qws.cpp src/gui/embedded/qkbdsl5000_qws.cpp src/gui/embedded/qkbdusb_qws.cpp src/gui/embedded/qkbdvr41xx_qws.cpp src/gui/embedded/qkbdyopy_qws.cpp src/gui/embedded/qmousebus_qws.cpp src/gui/embedded/qmousevr41xx_qws.cpp src/gui/embedded/qmouseyopy_qws.cpp src/gui/painting/qpaintengine_d3d.cpp src/gui/painting/qwindowsurface_d3d.cpp src/opengl/gl2paintengineex/glgc_shader_source.h src/opengl/gl2paintengineex/qglpexshadermanager.cpp src/opengl/gl2paintengineex/qglpexshadermanager_p.h src/opengl/gl2paintengineex/qglshader.cpp src/opengl/gl2paintengineex/qglshader_p.h src/opengl/util/fragmentprograms_p.h src/plugins/kbddrivers/linuxis/linuxiskbdhandler.cpp src/plugins/mousedrivers/linuxis/linuxismousehandler.cpp src/script/parser/qscript.g src/script/qscriptarray_p.h src/script/qscriptasm_p.h src/script/qscriptbuffer_p.h src/script/qscriptclass.cpp src/script/qscriptclassdata_p.h src/script/qscriptcompiler.cpp src/script/qscriptcompiler_p.h src/script/qscriptcontext.cpp src/script/qscriptcontext_p.cpp src/script/qscriptcontext_p.h src/script/qscriptcontextfwd_p.h src/script/qscriptecmaarray.cpp src/script/qscriptecmaarray_p.h src/script/qscriptecmaboolean.cpp src/script/qscriptecmacore.cpp src/script/qscriptecmadate.cpp src/script/qscriptecmadate_p.h src/script/qscriptecmaerror.cpp src/script/qscriptecmaerror_p.h src/script/qscriptecmafunction.cpp src/script/qscriptecmafunction_p.h src/script/qscriptecmaglobal.cpp src/script/qscriptecmaglobal_p.h src/script/qscriptecmamath.cpp src/script/qscriptecmamath_p.h src/script/qscriptecmanumber.cpp src/script/qscriptecmanumber_p.h src/script/qscriptecmaobject.cpp src/script/qscriptecmaobject_p.h src/script/qscriptecmaregexp.cpp src/script/qscriptecmaregexp_p.h src/script/qscriptecmastring.cpp src/script/qscriptecmastring_p.h src/script/qscriptengine.cpp src/script/qscriptengine_p.cpp src/script/qscriptengine_p.h src/script/qscriptenginefwd_p.h src/script/qscriptextenumeration.cpp src/script/qscriptextenumeration_p.h src/script/qscriptextqobject.cpp src/script/qscriptextqobject_p.h src/script/qscriptextvariant.cpp src/script/qscriptfunction.cpp src/script/qscriptfunction_p.h src/script/qscriptgc_p.h src/script/qscriptmember_p.h src/script/qscriptobject_p.h src/script/qscriptprettypretty.cpp src/script/qscriptprettypretty_p.h src/script/qscriptvalue.cpp src/script/qscriptvalueimpl.cpp src/script/qscriptvalueimpl_p.h src/script/qscriptvalueimplfwd_p.h src/script/qscriptvalueiteratorimpl.cpp src/script/qscriptxmlgenerator.cpp src/script/qscriptxmlgenerator_p.h tests/auto/linguist/lupdate/testdata/recursivescan/project.ui tests/auto/linguist/lupdate/testdata/recursivescan/sub/finddialog.cpp tests/auto/qkeyevent/tst_qkeyevent.cpp tools/linguist/shared/cpp.cpp
| * Update tech preview license header.Jason McDonald2009-08-311-13/+13
| | | | | | | | Reviewed-by: Trust Me
* | Introduce QGraphicsItem::ItemIsPanel, light-weight window.Andreas Aardal Hanssen2009-08-261-6/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ItemIsPanel allows items that act like windows. They can be activated and deactivated just like windows and focus is handled just like with windows. The main difference is that panels are more light-weight. There's less built-in functionality (e.g., clicking a panel doesn't automatically activate nor raise it). This patch also introduces QGraphicsItem::panel(), QGraphicsItem::isPanel(), and QGraphicsItem::isActive(), as well as QGraphicsScene::activePanel(), QGraphicsScene::setActivePanel(). and QGraphicsScene::isActive(). Regular windows (QGraphicsWidgets with Qt::Window set) are also panels, with added functionality. The ItemIsPanel flag is set automatically for windows. Reviewed-by: brad