| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| |
| |
| |
| | |
This should improve qgraphicsview, qgraphicsitem and qtableview
autotests on slow window managers on X11.
Reviewed-by: trustme
|
|\ \
| | |
| | |
| | |
| | | |
Conflicts:
tests/auto/qtwidgets/tst_qtwidgets.cpp
|
| | |
| | |
| | |
| | |
| | | |
Make the test independent of window activation; we're only
interested in the behavior for hover events.
|
| | |
| | |
| | |
| | |
| | | |
Problem was that the window got activated *after* the items
were added to the scene, causing two repaints on the viewport.
|
| |\ \
|/ / /
| | _
| |
| |
| | |
Conflicts:
tests/auto/qimagereader/tst_qimagereader.cpp
tests/auto/qtwidgets/tst_qtwidgets.cpp
|
| | |
|
| |
| |
| |
| | |
Reviewed-by: Trust Me
|
| |
| |
| |
| |
| |
| |
| |
| | |
The bug was triggered by setting focus on a parent scope (which then
passes focus to the innermost scope). Subfocus was set up for the
first scope, but not the inner scopes.
Reviewed-by: TrustMe
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This feature is essential for Declarative UI, but does not add much
value for C++ developers. A FocusScope provides a stack of focused
widgets, and it ensures that the topmost item on the stack has
focus if any of the items in the stack gains focus. When the topmost
loses focus, focus is passed to the "parent" focus scope, and so on.
You can get almost the same behavior using panels (ItemIsPanel),
except panels impose other behavior, like stopping clickfocus
propagation, and stopping event propagation in general. In a QML
world you would typically use FocusScope for controlling focus
locally, and panels when you need to maintain separate focus stacks.
Reviewed-by: akennedy
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This line was added to fix crashes when deleting items that had
a subFocusItem pointing to a child that was already deleted. This
bug was fixed by ebb1162f54a29baeccb71d1e283146892629518f. After
this, subFocusItem is always 0 at this point.
The original change was eb3d5a73148cd7206c6b3b6672ed47b44611f745.
Reviewed-by: TrustMe
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The bug appeared only when calling collidingItems right after setPos.
When calling setPos on a parent the sceneTransform is mark as dirty, so
when we paint the parent and its children if the scene transform of the
parent was dirty then we update all children sceneTransform. In our
case here, collidingItems call ensureTransform on one of the children
which go recursively to the top most dirty item and update the
sceneTransform. The problem is that all sibling children are not mark
their sceneTransform dirty so next paint will skip them (since the parent
is not dirty anymore).
Task-number:260711
Reviewed-by:bnilsen
|
| |
| |
| |
| |
| |
| |
| |
| | |
Removes dangling subFocusItem pointers when changing focus after
reparenting. This change also includes a mini-optimization when adding
focusable items to an inactive scene.
Reviewed-by: brad
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This change ensures that only active scenes can have active input
focus items. If you try to set input focus on items that are in an
inactive scene, these items will gain input focus only when the scene
is activated.
For scenes attached to a view, this change should only fix the bug that
you could have a blinking line edit in a scene when the view is inactive,
meaning you couldn't type into the line edit.
For scenes that have no view, you now must activate the scene in order
to give the items active input focus. This will affect those who use
QGraphicsScene with custom key and focus handling.
Reviewed-by: brad
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This change partially reverts f68fed388dcdba6ab6dad3af4933bcd3aa123cf8,
which was an attempt at getting FocusRealms working. Turns out this
approach is wrong. The flag behaves badly when reparenting, and the
feature conflicts with plain old setting focus.
Discussed with Aaron; this change was already reverted in the
kinetic-declarativeui branch.
Reviewed-by: TrustMe
|
| | |
|
| |
| |
| |
| | |
Reviewed-by: Trust Me
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This fix prevents crashes in
QGraphicsItem caused by calls to pure virtual functions as an item
tries to access its dying parent. This happens when an item is moved
by an ancestor during this ancestor's destructor.
Autotests included.
Reviewed-by: bnilsen
|
| |
| |
| |
| |
| |
| | |
Added event information in QTest::mouse* warning message.
Reviewed-by: Olivier
|
| |
| |
| |
| |
| | |
This test failed randomly in the past, and more often on a KDE4
desktop with a slow graphics card.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Allow delayed activation for more fine grained control over which panels
are activated or left inactive when the scene is created.
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
|
| |
| |
| |
| | |
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
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/gui/graphicsview/qgraphicsitem.cpp
src/gui/kernel/qwidget.cpp
src/gui/kernel/qwidget_p.h
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
Discussed with Andreas.
|
| |\ \
| | | |
| | | |
| | | |
| | | | |
Conflicts:
src/gui/graphicsview/qgraphicsitem_p.h
|
| |\ \ \ |
|
| |\ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Conflicts:
src/gui/graphicsview/graphicsview.pri
src/gui/graphicsview/qgraphicsitem.cpp
src/gui/graphicsview/qgraphicsitem.h
src/gui/graphicsview/qgraphicsitem_p.h
src/gui/graphicsview/qgraphicsscene.cpp
tests/auto/auto.pro
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
We cannot cache the bounding rect on the fly for children, because the
bounding rect is mapped to the callee's local coordinate system.
Auto-test included.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
We have to use the effectiveBoundingRect() when finding out which items
to repaint within a specific area. However, we don't want items to be
clickable on the shadow, so we shouldn't use effectiveBoundingRect for
normal item-lookup. Solution to this is to only use
effectiveBoundingRect() in the BSP (used by estimateTopLevels) and in
drawSubtreeRecursive.
Auto-test included.
|
|\ \ \ \ \ \
| | |_|_|/ /
| |/| | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Conflicts:
doc/src/examples.qdoc
doc/src/plugins-howto.qdoc
doc/src/topics.qdoc
examples/phonon/musicplayer/mainwindow.cpp
src/3rdparty/freetype/src/base/ftobjs.c
src/corelib/global/qglobal.h
src/corelib/tools/qalgorithms.h
src/corelib/tools/qshareddata.cpp
src/corelib/tools/qsharedpointer.cpp
src/corelib/tools/tools.pri
src/corelib/xml/qxmlstream.h
src/gui/painting/painting.pri
src/gui/widgets/qdatetimeedit.cpp
tests/auto/qdesktopservices/qdesktopservices.pro
tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
tests/auto/qtextcodec/test/test.pro
|
| | |_|/ /
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
New flag: QGraphicsItem::ItemNegativeZStacksBehindParent, which makes
it easy to toggle stack-behind based on the value of Z alone.
Add interface initializations to QGV classes.
Add a simple internal focus policy to QGraphicsItem to allow derived
items to be focusable without allowing clickfocus.
Reviewed-by: Alexis
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This change would have been much simpler if either QGraphicsItem
inherited QObject, or if we had some similar QPointer-like class that
supported QGraphicsItem. The issue is this: Each item can delegate
another item to be its focus proxy. That item can be a parent or child,
or something completely unrelated. Either of the two items can be
deleted independently.
The former solution was to store backpointers in a map in the scene.
Problem is, the items may not be in a scene when this happens, they
may be removed from the scene, and the items may be moved between
two scenes.
The bad part about this fix is that it adds another pointer to
QGraphicsItemPrivate.
Reviewed-by: Shane Kearns <shane.kearns@sosco.com>
|
|\ \ \ \ \
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Conflicts:
examples/opengl/samplebuffers/glwidget.cpp
src/corelib/io/qfsfileengine_unix.cpp
src/corelib/kernel/qobject.cpp
src/corelib/tools/qsharedpointer.cpp
src/gui/gui.pro
tests/auto/qhttp/tst_qhttp.cpp
tests/auto/qkeyevent/tst_qkeyevent.cpp
|
| | |/ /
| |/| |
| | | |
| | | | |
Reviewed-by: Trust Me
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Apparently Nokia X86 compiler is not able to use templated qCompare
when given arguments have different different type but same base class.
This error should be isolated and reported to Nokia X86 team.
See task: 259508
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When autofocused child is deleted, remove from ancestors to avoid double
deletion crash.
Check for null receiver when auto SIP is enabled in mouseReleaseEvent
|
|\ \ \ \
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
configure.exe
doc/src/classes/qnamespace.qdoc
examples/examples.pro
src/corelib/kernel/qcoreevent.cpp
src/corelib/kernel/qobject.cpp
src/gui/kernel/qapplication.cpp
src/gui/kernel/qstandardgestures.h
src/gui/kernel/qwidget.cpp
|
| |\ \ \
| | | |/
| | |/|
| | | |
| | | |
| | | | |
Conflicts:
src/gui/graphicsview/qgraphicsitem.cpp
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
updateAncestorFlags was not reseting the flags if you change the parent
that have for instance itemsClipChildrenToShape to a new one that
doesn't have that flag.
Task-number:258956
Reviewed-by:bnilsen
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This patch allows for input hints to be set on a QGraphicsItem.
Input methods use such hints to define its appearance/behavior
(e.g. to allow for numerical input only).
Reviewed-by: ahanssen
Task-number: 254493
|
|\ \ \ \
| |/ / /
|/| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
tests/auto/qfilesystemmodel/qfilesystemmodel.pro
tests/auto/qfontdialog/tst_qfontdialog.cpp
tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
tests/auto/qgraphicslayout/tst_qgraphicslayout.cpp
tests/auto/qsqldriver/qsqldriver.pro
tests/auto/qsqlquery/qsqlquery.pro
tests/auto/qsqlrelationaltablemodel/qsqlrelationaltablemodel.pro
tests/auto/qsqltablemodel/qsqltablemodel.pro
tests/auto/qsqlthread/qsqlthread.pro
tests/auto/qstatemachine/tst_qstatemachine.cpp
tests/auto/qtcpsocket/tst_qtcpsocket.cpp
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The idea of having separate rotationX/Y/Z, shearX/Y, etc.
methods in QGraphicsItem turned out to be not giving us
the flexibility we need and wanted.
The new code now implements a different scheme, where we
keep simple rotate (around z-axis), scale and
transformOriginPoint methods, but remove the other ones.
Instead we now have an additional list of QGraphicsTransform
object. QGraphicsTransform is an abstract class that inherits
QObject. Several specializations are provided and can be
used to transform (and through property bindings animate)
the item.
Reviewed-By: Andreas
|
| |_|/
|/| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If you set this flag on an item, and descendant item that gains input
focus will become this item's focus proxy. This simplifies how focus
proxy items are assigned from QML; instead of binding the possible
focusProxy property to a named child widget, this assignment happens
automatically as you set the focus property of a descendant to true.
As part of this change, QGraphicsWidget::focusWidget behavior has been
improved and moved into QGraphicsItem. For example, if you set focus on
an item that it's part of a scene, it can gain focus once the parent
has been assigned (which is how object trees are built in QML).
Autotests are included.
Reviewed-by: Michael Brasser
|