| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| |
| |
| | |
git://gitorious.org/~fleury/qt/fleury-openbossa-clone into fleury-ooo-sequential
Conflicts:
tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
These assert messages are no longer valid since some anchors can have
their size not respected if they are in parallel with the layout and
have size equal to "QWIDGETSIZE_MAX".
Signed-off-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
With the addition of min and maxPrefSizeHints, the logic used in the
preferred simplex had to be changed. The concept behind it is still
the same, we minimize the deviation from each item's preferred size.
Previously we would make an special effort to avoid items being shrunk,
that's why the "shinker" simplex variables had larger multipliers in
the objective function.
Now we still have variables with large multipliers and others with
small mutlipliers, but rather than differentiating between shrinker
and/or grower variables, we classify them as "soft" or "hard".
"Soft" variables, or slacks, are those that allow the anchor to change
its value up to the minPref or maxPref boundaries, OTOH, "hard" slacks
are those that allow the item to go all the way to its minimum or
maximum sizes. Naturally, the "hard" slacks get large coeficients
in the objective function while the "soft" ones get small ones.
Now all the slack variables are restricted in size as to respect
the boundaries of each interval:
- Minimum to MinimumPreferred,
- MinimumPreferred to Preferred,
- Preferred to MaximumPreferred and
- MaximumPreferred to Maximum
With such limits, the SizeHint constraints became redundant in the
calculation of preferred sizes so they are no longer used.
Additionally, as an optimization, if a given interval is NULL
(for instance, MinimumPreferred is equal to Preferred), then
the associated slack variable would have its size restricted to
zero, therefore it is not created at all.
Signed-off-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
With the addition of out-of-order sequential simplification,
the calculation of preferred sizes became more complicated.
In the past, when parallel anchors or the simplex solver had to
decide between conflicting preferred sizes, they could assume that
increasing the size of an anchor was better than decreasing it.
That assumption comes from early discussions with Jan-Arve
regarding the preferred size calculation algorithm.
However, when ooo-sequential anchors exist, we can have a situation
where increasing the size of an anchor can actually reduce the size
of a simplified anchor inside it. To solve that, we need to expose
some information regarding the internal anchors to the decision
makers outside, ie. the simplex solver and parallel anchors.
This information is now being provided in terms of two additional
values present in each anchor, as follows:
- minPrefSize: Always in the interval [minSize, prefSize].
Denotes the minimum size an anchor can assume
as to avoid shrinking anchors below their
preferred sizes.
- maxPrefSize: Always in the interval [prefSize, maxSize].
Similar to the value above, but refering to
the maximum size the anchor should assume.
Some examples:
1) Standard anchor:
10 / 50 / 500
o---------------------------->
Becomes:
10 / 50 / 50 / 500 / 500
o---------------------------->
We'd rather grow than shrink, so we say that our preferred size
is 50, but if we need to grow up to 500, that's OK.
Note that we are still able to shrink all the way to 10, but
it will hurt us more.
2) Two anchors:
100 / 200 / 500 10 / 20 / 40
o--------------------> <-------------------o
Resulting sequential anchor:
60 / 160 / 180 / 480 / 490
o------------------------------------------>
The resulting anchor have a preferred size of 180 but it can
"easily" grow to 480 (only the first half grows). If it had
to go all the way to 490 the second half would have to shrink
below its preferred size.
OTOH, if it had to shrink, it could go to 160 if the second
half grew. However, shrinking even more, towards 60, would
require the first half to shrink below its preferred size.
With this information parallel and simplex are now able to choose
the best solutions when solving conflicts.
Signed-off-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For an out-of-order parallel anchor, i.e. when the second child is
backwards in relation to the parallel anchor, we need to fix the
constraints that used to have the second child.
The parallel anchor will replace its child, but we must change the
multiplier signal, so the constraint remain valid.
This commit also changes the order of restoration steps, since now we
depend on correct vertex information to fix back the constraints, we do
it before the restoring of pair vertices.
Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
Reviewed-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In a parallel anchor, the second child anchor may be forward or
backwards in relation to the parallel itself. Moves the directionality
check to a function. It'll be useful in the next commit.
Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
Reviewed-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Modify the "dot" format graph to use a single arrow between each
pair of vertices.
Previously we would use two anchors (a black forward one and a
gray backwards). With a single arrow the graph loooks cleaner.
Signed-off-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Modify the simplification code to allow the creation of out-of-order
sequential anchors.
Basically the "changedDirection" end-of-sequence condition was removed,
also note that createSequence no longer bothers to revert the direction
of anchors if the order it receives is not standard.
Removing expect-fail clause from test since now we pass :-)
Signed-off-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Now sequential anchors account for the fact they may be composed of
anchors with different directions.
Both refreshSizeHints and updateChildrenSizes have been updated
to support this situation.
Signed-off-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Since we now support anchors with size less then zero, we no longer
need to revert anchors with negative spacing.
Signed-off-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This commit is groundwork for the support of negative-sized anchors
by the simplex solver.
The idea is to add to all variables an offset large enough to ensure
they are never negative. The implementation limits all variable
sizes in the range [-limit, limit] and feed them into the simplex
with an offset of "limit". Subtracting this offset later to find out
the real values.
"limit" is defined as QWIDGETSIZE_MAX for platforms where qreal is
double and as QWIDGETSIZE_MAX / 32 when it is float. This is to
avoid numerical errors in the simplex solver.
This commit also modifies the ASSERT clause inside QSimplex so it
becomes less prone to false positives due to numerical errors.
Signed-off-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
|
| |
| |
| |
| |
| |
| |
| | |
Former name did not reflect actual work done by the function.
Signed-off-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Some tests and the example were leaking memory what made it
harder to investigate leaks on the layout itself.
Those were simple errors like not deleting the layout at the
end of the test and were corrected.
Signed-off-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
Reviewed-by: Artur Duque de Souza <artur.souza@openbossa.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fixing QGraphicsAnchor memory leak and access to free'd region.
-- Leak:
User-created anchors have two representations in QGAL, one
visible externally (QGraphicsAnchor) and other internal (AnchorData).
When such anchors are removed externally (QGraphicsAnchor is deleted),
the former implementation ensured that the internal representation
would be deleted too. However the opposite was not true. In cases
where the anchors are deleted internally (in the layout destructor,
for instance, or when an item is removed through the removeAt API),
the public QGraphicsAnchor object would leak.
This commit ensures the deletion will happen in both directions
and adds protection to avoid a deletion loop.
-- Invalid read:
In QGAL::removeAnchor(vertex1, vertex2), we read vertex information
after calling removeAnchor_helper(vertex1, vertex2).
The problem is that in cases where the removed anchor is the last
anchor to connect to a center vertex, its removal will cause also
the removal of such vertex. Thus, accessing the vertices after
the removeAnchor_helper() call is unsafe.
To solve that we cache the information we need and then clear the
vertex pointers to avoid errors in the future.
Signed-off-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
Reviewed-by: Artur Duque de Souza <artur.souza@openbossa.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Adding check to prevent the structural layout anchors as well as
those internal to items, from being exposed through the public API.
These checks also ensure no QGraphicsAnchor instances will be
created for those anchors.
Signed-off-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
Reviewed-by: Artur Duque de Souza <artur.souza@openbossa.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This test ensures that internal anchors are not exposed through the
QGAL::anchor() API and also that the QGraphicsAnchors are deleted
when the associated anchors are deleted internally.
Signed-off-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
Reviewed-by: Artur Duque de Souza <artur.souza@openbossa.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
After a default spacing is set through QGAL::setSpacing() family
of methods, the user must be able to unset it.
To avoid adding another public method, we enabled this feature
by allowing a negative value to be passed to those methods.
Signed-off-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
Reviewed-by: Anselmo Lacerda S. de Melo <anselmo.melo@openbossa.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The reason for the first hunk is that the Intel compiler does not
support the __has_trivial_constructor type trait.
The Intel Compiler can report itself as _MSC_VER >= 1400. The reason
for that is that the Intel Compiler depends on the Microsoft Platform
SDK, and in order to try to be "fully" MS compatible it will "pretend"
to be the same MS compiler as was shipped with the MS PSDK. (Thus,
compiling with win32-icc with VC8 SDK will make the source code "think"
the compiler at hand supports this type trait).
The second hunk is simply for including stdint.h since MS does not
ship that in their PSDK.
Reviewed-by: Simon Hausmann
|
|\ \
| | |
| | |
| | | |
4.6-staging2
|
| | | |
|
|\ \ \ |
|
| |\ \ \ |
|
| | |_|/
| |/| |
| | | |
| | | | |
Reviewed-by: Olivier Goffart
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
After initial fix, 99% of widgets draw temselves properly after
orientation switch. However, QScrollAreas lose their palette hash,
which causes scrollarea background to re-start from theme background
top-left.
As a correction, we re-set the theme palette hash after calling
QApplication::setPalette, since that clears palette hash.
Task-number: QTBUG-6125
Reviewed-by: Alessandro Portale
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Fixing previous fixes of QS60StylePrivate::setBackgroundTexture with
commit SHAs a80e58335e69c8ce96d1596e0ed2d14e424a0d5e and
d4089399a3ab7548a864d5a399e08df85c444783
Now, the palette gets the updated background brush and the palette is
actually set as application palette.
Also making sure that QS60StylePrivate::handleDynamicLayoutVariantSwitch
does the right things in the right order. So that Table headers are not
broken after orientaion switch.
Task-number: QTBUG-6125
Task-number: QT-1478
Reviewed-by: Shane Kearns
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Early push of this fix which should be overwritten by the fix
upstreamed in WebKit trunk later.
Reviewed-by: Simon Hausmann
(cherry picked from commit dddd3e5fc9658ebbb5f94b343e7c7c0cd27eb7f2)
|
| |\ \ \ |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Qt is using the same window message as Flash plugin. We need to check
the window handle before we treat this as Qt internal message.
Reviewed-by: Bradley T. Hughes
(cherry picked from commit 48e56643f1b7daf7c255a1e58f0e213b06e15f65)
|
| |\ \ \ \ |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The reson is that some menu items are reused across all menu bars.
So we need to check that a menu actually still owns the item before
clearing or hiding its data.
Reviewed-by: Prasanth
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
If you have two window, each with its own menu bar that
has a 'Quit' action, we reuse the quit menu item when
switching between the windows. Now, it we deleteLater one of
the menu bars, the new menubar will update the 'Quit' item
just before deleteLater will come along and remote the update
again. This patch will fix this.
Task-number: QTBUG-4684
Reviewed-by: Prasanth
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The integral type should be a 64-bit integer, not long (which is only 32-bit
even when building 64-bit).
Reviewed-by: Prasanth Ullattil
Task-number: QTBUG-6079
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The broadcast receiver should share the port number. In most cases users
won't run the example on a network, but only on one machine. In the case
it simply should work too.
According to our documentation the fix is platform specific, it will
work only on Linux.
Reviewed-by: Peter Hartmann
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The unique ID was not taking into account the bits 4, 5, 6,
7 of CSR_TYPE. Those bytes identify similar devices with different
flavor/color.
The cursor data were also not updated correctly. The information
were only updated if the pointer type changes (e.g.: pen to eraser)
but not if the physical device change (e.g. stylus to brush). The
information are now updated every time a proximity event has a
new unique ID.
Reviewed-by: Denis Dzyubenko
Task-number: QTBUG-1930
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Qt is using the same window message as Flash plugin. We need to check
the window handle before we treat this as Qt internal message.
Reviewed-by: Bradley T. Hughes
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
the grammar file src/corelib/xml/qxmlstream.g has been changed in the
previous commit, this commit regenerates the file
src/corelib/xml/qxmlstream_p.h .
Reviewed-by: TrustMe
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
like e.g. <!DOCTYPE doc []>
According to the specification, it is possible for a doctype to contain
no markup declarations:
http://www.w3.org/TR/xml/#sec-prolog-dtd
"intSubset ::= (markupdecl | DeclSep)*"
However, currently QXmlStreamReader would raise an error when
encountering such a declaration.
Merge-request: 1926
Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Reviewed-by: TrustMe
|
| | |\ \ \ \ |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
We trust the bus, so no need to match per path. The sender and the
interface should be enough for us.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Add the note that this signal will cause many activations and that
QDBusServiceWatcher is better.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Previously, we were relying on NameOwnerChanged to notify us of our
own names. This worked because we got all NameOwnerChanged that
happened on the bus.
Now, we only get those we're interested in. Instead of watching for
newOwner==baseService, let's just use the NameAcquired and NameLost
signals, that the D-Bus server sends to us anyway.
Task-number: QTBUG-5979
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
now"
This reverts commit f01c631f84f9373b06d0572bfed7a4e8213a46a7.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
QtDBus itself""
This reverts commit db1cff73726ff12d50139769dc8071f9e9173261.
Task-number: QTBUG-5979
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
The new dataset was created. In the function we shouldn't test only one
data type. In the same time a new Jira's task were created (QTBUG-6187)
as a result of the XFail investigation.
Reviewed-by: TrustMe
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Reviewed-by: Trust Me
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Reviewed-by: Trust Me
|
| |\ \ \ \ \ \ |
|
| |\ \ \ \ \ \ \
| | | |/ / / / /
| | |/| | | | | |
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Reviewed-by: TrustMe
|