| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Reviewed-by: paul
|
|\
| |
| |
| |
| |
| | |
Conflicts:
src/gui/kernel/qevent.cpp
src/gui/kernel/qgesture.cpp
|
| |
| |
| |
| | |
Reviewed-by: Trust Me
|
|\ \
| | |
| | |
| | |
| | |
| | | |
Conflicts:
dist/changes-4.6.0
src/gui/kernel/qevent.h
|
| | |
| | |
| | |
| | |
| | |
| | | |
Changes to the gesture api after the review.
Reviewed-by: Jasmin Blanchette
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
By default if the gesture is ignored, only gestures in the started state
are propagated, and accepting a gesture in the started state adds an
implicit grab meaning all the following events in the gesture sequence
will be delivered to that widget. This is similar to the way QTouchEvent
is propagated.
Also added a hint, which specifies if gestures in any state can be
propagated to the widget which has enabled the hint.
Reviewed-by: Thomas Zander
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Oops, apparently we forgot to add a function for unsubscribing a
graphics object from a gesture. Fixing it now.
Reviewed-by: trustme
|
| | |
| | |
| | |
| | | |
Reviewed-By: Denis
|
|\ \ \
| | |/
| |/| |
|
| |\ \ |
|
| | | | |
|
| | |\ \
| | | |/
| | |/|
| | | |
| | | | |
Conflicts:
src/gui/effects/qgraphicseffect.cpp
|
| | | |\
| | | | |
| | | | |
| | | | | |
into cmarcelo-fixes
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Sets the orientation bit for complex anchors. This is being done in the
constructor, and I did a minor refactor to make the constructor of
SequentialAnchor take the list of vertices and anchors that it is
simplifying. Before that we set one of those directly in the structure
and the other via a setter function.
The tests were passing because right now, complex anchors do not use the
orientation bit, while some Normal anchors use in the refreshSizeHints()
function (to get either the width() or height() of an item).
Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
|
| | | |\ \ |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Reviewed-by: Jan-Arve
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The task provides an example that doesn't gain input focus when started.
The fix contains two parts: one is to allow items with focus scope
ancestors to become focus items even if the scope is inactive. The other
is to fix up the focusItem pointers on reparent. Before, the focus
scopes' focusItem pointers always pointed to itself, or the next scope.
Now these items are treated no differently than other items in that
respect.
The change has a performance impact when reparenting a large subtree
that has a sub focus item onto another item (one more dig).
Task-number: QT-2331
Reviewed-by: Alexis Menard
|
| | | |\ \ \ |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This change allows children of QGraphicsObject-derived classes to check
if the parent is being deleted by checking the private flag wasDeleted.
Reverts 37b16d5cbb4e7bc534f690ebf50434d228b5ecfc, p4 change 9681, to
allow QGraphicsItem to set QObjectPrivate's wasDeleted member before
entering QObjectPrivate's destructor. The original code was in there to
let the user know, via the console output, that QObject was
double-deleted (e.g., when placing QObject on the stack, and also giving
it a parent, so that if the parent is deleted first, bang).
Reviewed-by: Aaron Kennedy
Reviewed-by: Bradley T. Hughes
|
| | | |\ \ \ \
| | | | |/ / /
| | | |/| | /
| | | | | |/
| | | | |/|
| | | | | |
| | | | | |
| | | | | | |
git://gitorious.org/~fleury/qt/fleury-openbossa-clone into openbossa-fleury-fixes3
Conflicts:
src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
src/gui/graphicsview/qgraphicsanchorlayout_p.h
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Now the simplex solver is able to remove fixed variables from its
constraints as to improve its running time.
The simplification consists of two actions that are done iteratively
until no possible changes exist:
1st) Look for constraints of type Var == Constant
Save constant as the trivial value of Var
2nd) Substitute known results in existing constraints
Signed-off-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The idea is to allow QSimplex solver to modify the constraints
without breaking other parts of the code that rely on the original
ones.
Signed-off-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Signed-off-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
We usually create two restrictions for each item, one to tell its
size should be more than its minimum size and other enforcing it to
be at most its maximum size.
Now, for items that have fixed size, ie. minSize == maxSize, we create
a single constraint telling its size should be equal its min/maxSize.
The immediate advantage is to have one less constraint for each of
these items. The indirect advantage is that the simplex solver can
take advantage of such information.
Signed-off-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The 'isLayoutAnchor' is necessary only as a way to flag Layout
internal anchors, i.e. anchors with the Layout as 'item' in the
AnchorData structure.
We don't need to propagate this bit when composing anchors.
Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
Reviewed-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Use a free bit in the anchor struct to save the orientation
information. That way we do not depend on looking for this information
in the vertices (by looking the orientation of its edge).
Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
Reviewed-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Look for information inside the anchor instead of on the
vertices. This will give us flexibility of simplifying vertices before
the anchor simplification phase.
Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
Reviewed-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
We used to look for this information in the anchor's from and to
vertices, but to enable simplification of vertices, we have to store
this information in the anchor.
Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
Reviewed-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The calculate graphs now can return early due to unfeasible anchor
setups found out during simplification. This allows finding out
problems in parallel anchors, when one anchor has maximum size smaller
than the minimum size of the other anchor.
The order for simplification and refreshing size hints also has been swaped:
- First, refresh size hints for all anchors in the graph. If the graph is
simplified, the refreshSizeHints() call will reach the children anchors.
- Then, if the simplificated graph is invalid, rebuild it. During this
rebuild, refreshSizeHints_helper() will be called for all levels.
So in both situations we can identify an unfeasible setup. Note that
this test alone is not enough to classify the graph as feasible, depending
on the graph, it will still need to go through the Simplex.
A test case was added and the function that traverse the graph
refreshing now is called refreshAllSizeHints(). The old name was not
so clear since the function will not fill only the anchors that have
items associated.
Last but not least, the lastCalculationUsedSimplex variable is cleared
when starting calculateGraphs(), since we now can leave the function
earlier, without reaching calculateTrunk(), which is the function that
sets it.
Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
Reviewed-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Extract the creation of parallel anchors from the creation of
sequential anchor. This will be useful to keep track whether a
parallel anchor is feasible or not.
Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
Reviewed-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Now the refreshSizeHints() returns a boolean, and the parallel anchor
will return false in unfeasible cases, e.g. one anchor has maximum
size smaller than other minimum size.
Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
Reviewed-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
We move the QLayoutStyleInfo class out of the gridlayout engine to a
common header file so that anchor layout also can utilize it.
Due to that we now can have a per-item spacing we have to change the
'effectiveSpacing' argument of refreshSizeHints to just take a
QLayoutStyleInfo pointer that we will later query for the actual
spacing used.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The layout should be invalidated because all layouts are dependent on
some style-specific defaults. (e.g. PM_LayoutHorizontalSpacing can
differ.)
Reviewed-by: alexis
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Reported by Alan. The stackBefore() implementation did not alter the
insertion order if the two items' current Z values were different. The
fix is to ensure it is updated, so that the stackBefore() operation
takes effect should the Z values become equal in the future. Example:
Current order: A-B-C-D
A->setZValue(1);
Current order: B-C-D-A (A moves to the end)
D->stackBefore(A);
Current order: B-C-D-A (unchanged, D is already before A)
A->setZValue(0);
Current order: D-A-B-C (now A moves back, and D moves in front)
Reviewed-by: Aaron Kennedy
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The painter's worldTransform() is updated for each item we draw, and
when the DontSavePainterState optimization flag is set, this change is
not protected by save() and restore(). After all the items are drawn, it
means the painter is left with the last drawn item's transform. We
therefore have to make sure it is reset back to whatever it was before
the items were drawn.
Auto-test included.
Task-number: QTBUG-4973
Reviewed-by: alexis
Reviewed-by: andreas
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The problem was that QGraphicsLineItem's bounding rect is an empty rect
(either width is 0 or height is 0), and when updating the item's old
occupied area, we explicitly checked whether the rect was empty() or
not. In case of being empty (rect.isEmpty()) we did nothing, which was
the root of the problem.
We can safely remove the rect.isEmpty() check without any significant
loss of performance since the common case is that the rect is non-empty.
And in the case of being empty, we'll bail out from
QGraphicsViewPrivate::updateRect's highly optimized rect intersection.
Auto test included.
Task: QTBUG-4877
Reviewed-by: alexis
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Basically some items were not properly remove in the BSP which means
that if you delete one of items, the BSP tree may contain dangling pointers.
The problem was in removeItemHelper in QGraphicsScene were the child
were removed after reparenting to 0 the topmost parent. The
sceneBoundingRect for children was invalid which means that we were removing
them in the wrong position inside the BSP. Reparenting to 0 means that the
sceneBoundingRect will be the boundingRect but wasn't the case before
(for the topmost parent).
Reviewed-by:bnilsen
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Reviewed-by:TrustMe
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Reviewed-by: tom
|
| | |_|_|/
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | | |
However, compiling with QT_NO_ICON will still not work :(
Reviewed-by: tom
|
| |/ / /
|/| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Due to the rendering model in XRender ((src IN mask) OP dest) we can't
support the PorterDuff composition modes natively under X11. They
just behave differently than what we've defined them to do in QPainter,
and there is no apparent workaround.
Task-number: QTBUG-4829
Reviewed-by: Gunnar
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
* Use ExpandToTransparentBorderPadMode since we can use GL_CLAMP_TO_EDGE
to clamp to the texture.
* Shrink the bounding rects reported by the blur
and drop shadow filters (expanding by 2 * radius isn't needed).
* Use a single-pass blur for radii <= 3 to avoid the overhead of
rendering to an FBO.
* Made the fast blur setting generate filters for only a predefined set
of radii, and then use the actual blur radius to spread the sample
points outwards.
* Optimized the generated program to rely less on temporary variables,
as those seemed to not be handled very well by certain GLSL compilers.
Reviewed-by: Gunnar Sletta
|
|\ \ \ \
| |/ / / |
|
| | | |
| | | |
| | | |
| | | | |
Reviewed-by: Michael Brasser
|
| | | |
| | | |
| | | |
| | | | |
Reviewed-by: Trust Me
|
| |\ \ \ |
|
| |\ \ \ \ |
|
| |\ \ \ \ \
| | | |_|/ /
| | |/| | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
QtGui had some debug functions only exported in the debug build.
Now these are exported in release mode as well, but as stubs (i.e. no
debug output is generated).
Reviewed-by: Thiago Macieira
|