| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| | |
Conflicts:
src/gui/kernel/qapplication_x11.cpp
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Due to this, the behaviour of count(), itemAt() and removeAt() was
different between QGraphicsLinearLayout and QGraphicsGridLayout.
QGraphicsGridLayout does it right.
This adds some behaviour changes:
1. QGraphicsLinearLayout::count() is no longer affected by inserted
stretches (through insertStretch)
This means that code like this will break:
QGraphicsLinearLayout *linearLayout = new QGraphicsLinearLayout;
linearLayout->addItem(new QGraphicsWidget);
linearLayout->addStretch();
int count = linearLayout->count();
linearLayout->removeAt(count - 1);
// before this patch it would do nothing (and it wouldn't
// actually remove the stretch), with the new patch it would
// remove the QGraphicsWidget.
2. count(), itemAt() and removeAt() now prints a warning for an invalid
index.
The documentation actually says that "The reimplementation can assume
that index is valid (i.e., it respects the value of count()", but I
decided that its too risky to not assume that it is valid, since it
would break the following common pattern:
while(layout->itemAt(0)) {
layout->removeAt(0);
}
Cleaned up autotests (and a small codeblock) that assumed
itemAt/removeAt with an invalid index to work, since we should try to
follow our own advice. :-)
This change is also an alignment with what QGraphicsGridLayout does
(it checks the index argument and prints a warning too.)
|
| |\
| | |
| | |
| | |
| | | |
Conflicts:
src/sql/drivers/psql/qsql_psql.cpp
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
focusWidget().
Reviewed-by: Thierry
Task-number: 255468
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This enum indicates what kind of device generated the touch event
(TouchScreen or TouchPad). We use this information to control how touch
events are sent, specifically we restrict touch events to a single
widget/QGraphicsItem on touch-pads, since there is no direct
relationship between the physical touch location on the pad and the on-
using the touch-pad).
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | | |
Conflicts:
doc/src/qnamespace.qdoc
src/corelib/global/qnamespace.h
src/gui/graphicsview/qgraphicsscene.cpp
|
| | |
| | |
| | |
| | | |
Every cycle counts :)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
It's easier to read and maintain the code now. This version is also
faster than the old one and makes it easier to implement another
cut-off I'm working on.
All auto-tests still pass. Examples/demos run fine.
|
| | |
| | |
| | |
| | | |
Reviewed-by: Samuel
|
|\ \ \
| |/ /
| | |
| | |
| | | |
Conflicts:
src/gui/graphicsview/qgraphicsitem_p.h
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The QtSVG module failed to link because it includes qgraphicsitem_p.h,
which had an inlined function (updateHelper) that called an undeclared
function (QGraphicViewPrivate::update(Region|Rect))...Resulting in
unresolved symbols.
Reviewed-by: MariusSO
|
| | |
| | |
| | |
| | |
| | | |
I changed the logic in e920c83084b48db7fe1925c7b98e34794eec6d55 and this
negation incidentally snuck in.
|
| | |
| | |
| | |
| | | |
We save three function calls by calling item->paint() directly.
|
| | |
| | |
| | |
| | | |
Avoid QTransform copy in common case.
|
| | |
| | |
| | |
| | | |
Don't calculate dirty scene transforms for invisible items.
|
| | |
| | |
| | |
| | |
| | |
| | | |
Broken after: 85f811b849f3b0e0b79e0f1b7bf41512d7f53414
QPainter::worldTransform returns a const reference(!) so we have to make
a copy.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The view is usually untransformed, and in that case there's no need to
call QGraphicsView::viewportTransform() and QPainter::setWorldTransform().
Reviewed-by: Andreas
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The accelerate scrolling work-around is fixed by:
8ebe882b077fffedc3ff80fb80d2e181d5e56ab8
The other case was trying to avoid doing expensive QRegion calculations
when everything must be repainted anyways. However, it was not entirely
correct to assume all paintEvents are triggered by GV itself. Anyways,
we don't need it anymore :-)
Reviewed-by: Andreas
|
| | |
| | |
| | |
| | |
| | | |
Child items must ignore visible/opacity if parent does.
Broke after: c9ab7a8b8504101c06456b706a84e0eb0693c77e
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Don't process invisible items or items with no contents. I've also added
cut-offs to QGraphicsViewPrivate::update(Region|Rect) to make sure
update areas outside the viewport are discarded immediately.
Reviewed-by: lars
|
|\ \ \
| |/ /
| | |
| | |
| | | |
Conflicts:
src/gui/graphicsview/qgraphicsscene_p.h
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The ItemHasNoContents flag was preventing items that clip their children
from rendering their children at all. Fixed now.
Reviewed-by: bnilsen
|
| |\ \
| | |/ |
|
| | |
| | |
| | |
| | | |
Reviewed-by: Trust Me
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Forwarding the ignoreOpacity flag to children in QGraphicsItemPrivate::fullUpdateHelper.
This is a complementary fix to task 252913, partly fixed in commit 2e3a5ea44...
Reviewed-by: bnilsen
BT: yes
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
doc/src/qnamespace.qdoc
doc/src/snippets/code/src_gui_qproxystyle.cpp
src/3rdparty/webkit/VERSION
src/3rdparty/webkit/WebKit/qt/ChangeLog
src/gui/graphicsview/qgraphicsscene.cpp
src/gui/kernel/qapplication.cpp
src/gui/kernel/qapplication_x11.cpp
src/gui/kernel/qt_x11_p.h
src/gui/kernel/qwidget.cpp
src/gui/styles/qproxystyle.cpp
src/gui/styles/qstyle.cpp
src/scripttools/debugging/qscriptdebugger.cpp
src/scripttools/debugging/qscriptenginedebugger.cpp
src/sql/drivers/odbc/qsql_odbc.cpp
src/sql/kernel/qsqldatabase.cpp
src/sql/kernel/qsqldriver.cpp
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The QGraphicsItem::ItemHasNoContents flag ensures that we don't have
to ever paint this item. So let's not mark it as dirty at all (items
are marked as dirty when updated, moved, or transformed).
This is a minor optimization.
Reviewed-by: bnilsen
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If the item either sets the ItemHasNoContents flag, or if it's invisible
but has child items that are not (and ignore parent opacity), then don't
bother calculating the item's exposed view rect as the item will not get
drawn anyway.
This carves down the number of QTransform::mapRect operations by 25%
when running the Declarative UI calculator transition. We'll proceed
to removing such operations from the markDirty step as well.
Reviewed-by: bnilsen
|
| | |
| | |
| | |
| | |
| | |
| | | |
Do as little as possible and avoid premulitplication :)
Reviewed-by: Samuel
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The problem was that we used QRect::isEmpty() on the item's bounding
rect intersected with the exposed region's bounding rect as a criteria
for whether the item should be drawn or not. This does not work as
expected with partial updates, where the boundingRect() of the exposed
region easily can cover the entire viewport area.
The item should *only* be drawn if its bounding rect intersects with
the exposed region (and not the exposed region's bounding rect).
Auto-test included.
|
| | | |
|
| | | |
|
|\ \ \
| |/ /
| | |
| | |
| | | |
Conflicts:
src/gui/graphicsview/qgraphicsitem_p.h
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem appears in the chip demo when clicking an item while scrolling the
view using the mouse wheel. The problem was that we didn't translate the
the item's old painted view rect.
There was also a problem when enabling the DontAdjustForAntialiasing flag,
causing an item to not redraw its edges. We have to adjust the rectangle
by (-1, -1, 1, 1) since QRect() and QRectF() behaves differently.
Auto-test (made by Andreas) included.
Reviewed-by: Andreas
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We have some nice cut-offs when there's a full update pending, but we
don't know about it if we call update() directly on the viewport.
Instead call QGraphicsViewPrivate::updateAll() which has the same
effect, except that it also sets a flag telling us a full update is
pending.
Reviewed-by: Andreas
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
In addition added documentation for the other properties.
Reviewed-by: Andreas
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
add auto tests for QGraphicsObject
FX items are better off with property notifications on each component
rather than on the position.
Added some basic testing for QGraphicsObject and fixed the failures
exposed.
Reviewed-by: Andreas
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Added a toGraphicsObject() method to QGraphicsItem to allow upcasting.
Expose some of QGraphicsItems setter/getter pairs as real properties
in QGraphicsObject, including NOTIFY signals.
Reviewed-by: Andreas
|
| | |
| | |
| | |
| | |
| | |
| | | |
These are properties of QGraphicsItem. QGraphicsObject should expose these.
Reviewed-by: Andreas
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
to inherit from it
This changes the inheritance hierarchy of QGraphicsWidget from
multiply inheriting from QObject, QGraphicsItem and QGraphicsLayoutItem
to inherit from QGraphicsObject and QGraphicsLayoutItem. QGraphicsObject
then simply inherits from QObject and QGraphicsItem.
This change is binary compatible as it will leave the vtable layout
unchanged and as the parent class doesn't appear in the C++ name
mangling on any of our platforms. It's also source compatible as
it isn't noticable by existing code.
The restriction we have on QGraphicsObject is that we can not add any
new virtual methods to it, or add data members to the class. We can however
implement a QGraphicsObjectprivate inheriting from QGraphicsItemPrivate
if there is a need to add data members to the class.
This change will allow us to now have one single base for all QGraphicsItems
that inherit from QObject: QGraphicsTextItem, QGraphicsWidget and in the
future QFxItem. Having that single base class will significantly simplify
our work in the qml engine.
Reviewed-by: Andreas
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
transformations component"
This partially reverts commit 56f23d4c, which changed the logic in
updateCachedClipPathFromSetPosHelper. We cannot compute the item's
transform relative to the parent by using transformToParent() because
the new position is not yet set on the item, that's why the new position
is passed into the function.
However, I'll look into how we can get rid of the entire function, but
keep it as is for now.
Reviewed-by: Olivier
|
| | |
| | |
| | |
| | |
| | |
| | | |
See also: 32f32ee3e752a6cc03505ddaa48d2849eaedc2a6
Reviewed-by: Andreas
|
| | |
| | |
| | |
| | | |
private class member.
|
| | |
| | |
| | |
| | |
| | |
| | | |
interested in touch events
this is a continuation of 0218d8f8dc569db9a1290f595a814c3690c1b14b
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
the API for these 2 classes is identical, the implementation is almost
identical, they share the same data structures, so bite the bullet and
merge them.
this means we go back to using screenPos() instead of globalPos()
again
|
| | |
| | |
| | |
| | |
| | |
| | | |
rects instead
these are more useful, as already shown in the fingerpaint example
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/gui/graphicsview/qgraphicsitem.cpp
src/gui/graphicsview/qgraphicsitem_p.h
src/gui/graphicsview/qgraphicsscene_p.h
|