| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
Updated version of LGPL and FDL licenseheaders.
Apply release phase licenseheaders for all source files.
Reviewed-by: Trust Me
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
| |
Reviewed-by: Trust Me
|
| |
|
|
|
|
|
| |
Task-number: QTBUG-14351
Reviewed-by: David Boddie
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
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
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| | |
| | |
| | |
| | | |
Conflicts:
src/declarative/graphicsitems/qdeclarativeitem.cpp
|
| | | |
|
|/ /
| |
| |
| |
| |
| | |
Warnings --.
Reviewed-by:TrustMe
|
|\ \
| |/
| |
| |
| |
| |
| | |
Conflicts:
qmake/generators/symbian/symmake.cpp
src/gui/image/qimage.cpp
src/openvg/qwindowsurface_vgegl.cpp
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Commits reverted:
880e4935410769b8337d75f219bef70493c4bb2c
82a306e7dda06909801f576bbbbebb59dc41c563
6cb935dd89a391f792f8ad42012b5c7c38712f17
ebd1c45822aca087be994c898cfb01cd41599429
4e4c0055d59978850796ff8c1b5015e17459e8d2
|
|\ \
| |/
| |
| |
| |
| |
| |
| | |
Conflicts:
configure
doc/src/modules.qdoc
src/gui/graphicsview/qgraphicsitem_p.h
src/gui/graphicsview/qgraphicswidget.h
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QGraphicsObject"
This reverts commit 4be83fa7337c5a4eb7b0ce085aa5854af5d33252.
Conflicts:
src/gui/graphicsview/qgraphicswidget.cpp
This drops the support of QML on top of 4.6
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This reverts commit 79a02c86c445e50630bcae62a4505f212281ec8b.
Conflicts:
src/gui/graphicsview/qgraphicswidget.cpp
This drop the support of QML on top of 4.6
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
changes"
This reverts commit 13bccd4ade76dd8a9c1cc067cc2b8da69c11def2.
Conflicts:
src/gui/graphicsview/qgraphicswidget.cpp
Drop the support of QML on top of 4.6
|
| |
| |
| |
| |
| |
| | |
This reverts commit 87fae30fc63460e0ed2cc98f55a22e28d7520311.
This drop the support of QML on top of 4.6
|
| |
| |
| |
| | |
Reviewed-by:michael brasser
|
|\ \
| |/
| |
| |
| |
| |
| | |
Conflicts:
mkspecs/common/symbian/symbian.conf
qmake/generators/symbian/symmake.cpp
src/3rdparty/webkit/WebCore/WebCore.pro
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| | |
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| | |
We bundle the size and the geometry into the same NOTIFY signal.
Reviewed-by:akennedy
|
| |
| |
| |
| |
| |
| |
| | |
Just add the notify + the signal.
Task-number:QTBUG-8277
Reviewed-by:yoann
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| | |
Reviewed-by: Trust Me
|
|\ \
| |/
| |
| |
| |
| |
| | |
Conflicts:
src/corelib/io/qfsfileengine.cpp
src/network/access/qnetworkrequest.cpp
tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|/
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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.
|
|\
| |
| |
| | |
morpheuz-fixes
|
| |
| |
| |
| |
| |
| |
| | |
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>
|
| | |
|
|/
|
|
|
|
|
|
| |
The layout should be invalidated because all layouts are dependent on
some style-specific defaults. (e.g. PM_LayoutHorizontalSpacing can
differ.)
Reviewed-by: alexis
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Reviewed-by: Trust Me
|
|
|
|
|
| |
Adjust the constraint with the widget margin before passing it on to
d->layout->effectiveSizeHint().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| | |
Reviewed-by: Trust Me
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|