| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
-qtdoc repo uses "OS X" instead of "Mac OS X" and this caused
broken links.
-more comprehensive change still needs to be done but the new
name is used in the page to maintain consistency. At least within
the page or class.
Change-Id: I8a5650046fc0413cbb18359b743ecd30fd62e417
Task-number: QTBUG-40759
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
The QOpenGLWidget's paintDevice needs to update devicePixelRatio when
changing screens.
Change-Id: Iec6e7157f22ff99e04f81347cbbf70f3fc3ff424
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Unlike ordinary widgets, the ones that have OpenGL framebuffers must know
about screen changes because the device pixel ratio may be different on
the new screen. Add an internal event, ScreenChangeInternal, as the
counterpart to WindowChangeInternal.
Change-Id: I5e55999838e4c0284e7d9832299f7cc6b541ee3f
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-41191
Change-Id: I510d1631926ed0d9e371703d22229aed92432aa6
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
If you configure QOpenGLWidget to use sampling, the 'resolvedFbo' isn't
updated during resizing. This leads to garbled views.
Change-Id: I9f9265520134bcf12436778773507df936c5fbb6
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In both cases theme.rect calculated right after the
"sub & SC_ScrollBarSlider" test.
Change-Id: I9fa0c4e1327e68b4184674a13e7a4bf362f8deff
Reviewed-by: Adam Majer <adamm@zombino.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
QOpenGLWindow already has some notes regarding this. It must be
mentioned in QOpenGLWidget too.
Change-Id: I0af90c9410a1c44cb9dd9ce58aa0371a58c57f65
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
To convert coordinates to a parent's coordinate system one should
translate them by an offset of a child widget relative to it's
parent widget. QRect::moveCenter() doesn't translate, it sets
the coordinates of the touch point's center to this offset.
Change-Id: I9d823784803bd1448c0d665944090674d3ff518b
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It was decided not to port the handling of the saved
screen size to Qt 4.8, so, bump the major version to
ensure Qt 4.8 bails out.
Task-number: QTBUG-38858
Change-Id: Ia870519553172cd383830d9a722b0fada180ee1b
Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
|
| |
| |
| |
| |
| |
| |
| | |
Use a proper function for that.
Change-Id: I166ce44b8987d522cb01bae57009b2b862851b92
Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Factor out functions to return the fixed values and scale those.
Task-number: QTBUG-38993
Task-number: QTBUG-38858
Change-Id: I59c70a206eae76bf08bc2aeb5cda5a740cd3d6dc
Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Metrics obtained from the system must be scaled down
when device pixel ration scaling is in effect. Factor out
functions to return the device pixel values which might still
be used for drawing.
Task-number: QTBUG-38993
Task-number: QTBUG-38858
Change-Id: I6b90629e4979436bbb46f8c1fa1ee2253ada7ece
Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
No need to allocate dynamic memory for a fixed-size point array
when QPainter has a (QPoint*,int) overload.
This one is a bit more complicated, as the QPolygon was returned
from a helper function, so I wrapped the array in a minimal
std::array-like StaticPolygonF.
Together, these four QPolygon -> QPoint[] changes result in
ca. 4.5K text size reduction for libQtWidgets.
Change-Id: I082f199d5edb7a7782173fe3748220f373edac8a
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
No need to allocate dynamic memory for a fixed-size point array
when QPainter has a (QPoint*,int) overload.
Change-Id: Ie1eecd376a52b73572998ba253a032deaa0daaf9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
No need to allocate dynamic memory for a fixed-size point array
when QPainter has a (QPoint*,int) overload.
Change-Id: Ifdf8224ddffe06ef7848562023e372e2c32b9ad6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
No need to allocate dynamic memory for a fixed-size point array
when QPainter has a (QPoint*,int) overload.
Change-Id: I50c69103bba47e9f6de4f5616e8f40fee522ddc2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When we strip the & we should also report the hotkey.
In addition only strip labels when they are buddys and try not to remove
ampersands from all kinds of random text.
This fixes https://bugs.kde.org/show_bug.cgi?id=338282
Change-Id: I401281cd9ff43b23a3923ad9909ca9c469b59506
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
These functions are supposed to make it easy for third parties (and
QLineEdit) to implement the textAt/Before/AfterOffset functions.
Before the functions were ignoring newlines completely and thus only somewhat
useful.
Change-Id: I7136b9502a7fa6f8ad9ad7236761a34c1a7fd4da
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QMdiSubWindow::eventFilter() is supposed to close the sub window on a
double click on the menu icon. However, it did not receive the double
click event since it removed itself when the menu was hidden, which
happened before the double click was delivered.
Task-number: QTBUG-25179
Change-Id: I5e7fb02dda26ceab12e8b7554fc604066a0a3136
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When using a linear index, all items in a scene are stored in a QList.
While adding new items is a constant operation, removal requires a
traversal through the entire list. This is especially problematic
when the scene contains millions of items and many of them are removed,
which requires a linear search for each item, resulting in a very slow
operation. Moreover, this behavior is actually inconsistent with the
current documentation which states for the linear index:
"Adding, moving and removing items, however, is done in constant time."
With this change, the list is sorted once an item needs to be removed.
The item to be removed is then found using binary search. To reduce
the overhead of sorting the list is not sorted from scratch. First the
newly inserted items are sorted and then the two parts of the list
are merged.
[ChangeLog][QtWidgets][QGraphicsScene] Speed up the removal of items
when using the linear index.
Change-Id: I28708622605d7fb0fac656df1f9b2f2fa3136759
Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This reverts commit bf2ec0183cb62034f2a4e700b7ab741371fcb106.
That patch changed the way the linear index works in QGraphicsScene
in order to speed up item removal. That patch occasionally rebuilt
the index by recursively exploring all items in the scene, starting
with the top level. Further testing revealved that in some
circumstances, rebuilding the index in this way can be slow, thereby
significantly slowing down the index compared to the unpatched
version.
The original patch only exists in the qt 5.4 branch and has not been
released.
Change-Id: I081dbcdcc86196ef382466c3e800a33eab9a5b79
Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Assignment of a value was two times successively for same variable while
the variable itself is not used between these assignments.
Change-Id: I3c457e3af0505d32a64f6c8576b458cd15a951e5
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-15768
Change-Id: Idc6c6687430365a015fb2c15f4e4dcae6a687f9f
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
|
| |
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-40525
Change-Id: Iff3c1e16d9c44e1d36b8f83ca96b48bff05ab1f0
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Extract a struct containing the function pointers and derive
QWindowsXPStylePrivate from it, so that both styles can use them.
Remove duplicated variables.
Task-number: QTBUG-38858
Change-Id: I7c2c665b5930c56ffdf33c5185720f71517d146c
Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
|
| |
| |
| |
| |
| |
| | |
Change-Id: I755ed32f7458fec0fcbc5243d25fb1f6ecf46492
Task-number: QTBUG-32420
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
|
| |
| |
| |
| |
| |
| | |
Change-Id: I577bd5d10e52571c95c9e646327264cf95ac6eb1
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This makes it significantly easier to obtain debug output
for style functionality.
Task-number: QTBUG-38858
Change-Id: I19edc834a55fa369b6830abeb4697ae5e5ded995
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-39902
Change-Id: Ie850371098070e8ce485d5cb122aa89c18d97359
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-40477
Change-Id: I0741a1a769c9e7e0d19e8aec231acc29461d44ea
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
|
| |
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-38993
Task-number: QTBUG-388583
Change-Id: I1e3f1b5c82b9751e7f2aa6aed3d89d4388ecf1ce
Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Bump minor version of the saved geometry and append
the screen width in version 1.1. Use that to check and bail out should
large differences occur due to scaling or different levels of DPI
awareness.
Task-number: QTBUG-38858
Change-Id: Iad8ae0705297118b4237c9a41469cb97d7eab549
Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-40656
Change-Id: I134b07705744c23af9718dee486ab5e9ad4352cf
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We do this for QWidget::setFocus(), but were missing a call on clearing
the focus widget. Since QWidgetWindow::focusObject() will fall back to
returning itself if there is no focus widget, we need to pass the
result of window->focusObject() to the change signal instead of 0.
Change-Id: I52a5519a19bb20e74b4a7c2a1abc9d47e2ea1315
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: Ic0949e4d76a7332ef1a42c93a06a0e4515c1192d
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This function actually is worse than just calling
QAccessibleButton::text which it already does. It would mess up the
shortcut handling in addition to that.
Change-Id: I56cb95a44624da4c5fccb43e6835f6012a083337
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: I0414d7bab89371f330d5b0cfa88758e3f1668f32
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QList<WidgetMapper>::takeLast() is a needlessly expensive operation
(involves copying a QPersistentModelIndex and a QPointer).
Instead of looping over takeLast() until empty, reverse-iterate
over the list and call removeEventFilter(), then clear the whole
list.
We reverse-iterate to preserve existing behavior. Also, since the
original code popped the WidgetMapper instance before calling
removeEventFilter(), we move the whole list into a local copy
before iterating. There's little chance that a removeEventFilter()
call will cause reentrancy into QDataWidgetMapper, but better safe
than sorry.
This and the previous change together save 448 bytes of text size in
libQt5Widgets.
Change-Id: I1bfe907751659f31e618aa05bbb7b840f0aa61f4
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
|
| |
| |
| |
| |
| |
| |
| | |
Don't use index-based iteration, but use iterators.
Change-Id: I57c9582aed644fc58ced1a1af940dcd20d11d970
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: I502ecf6c862f101e426536e11f5c466ed3419946
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It gets somewhat complicated due to the fact that a RasterGLSurface window
(i.e. any widget window since 5.3) may behave either like an OpenGLSurface
or a RasterSurface, and the expected behavior may change on each backingstore
sync.
This does not fit designs where the platform window implementation is separated
and there is different behavior for raster and GL windows.
Therefore QAndroidPlatformOpenGLWindow is now made capable of behaving like the
raster one, based on a flag communicated from the widget stack via QWindowPrivate
(since the plugin knows nothing about widgets).
This means that widget windows that do not have renderToTexture children (QOpenGLWidget,
QQuickWidget) will go through the raster path, while the ones that have will behave
like an OpenGL window with the actual rendering happening in
QPlatformBackingStore::composeAndFlush().
The surface type is RasterGLSurface in both cases nonetheless.
Task-number: QTBUG-37907
Change-Id: I6f9261fc0fd993afcda7f30d379c5410069033d3
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The QPanGesture recognizer requires single-point touch events. The touch
implementation in Qt 4 would test Qt::WA_TouchPadAcceptSingleTouchEvents
and forward single touch events if set.
Making this work in Qt 5 is a little bit more involved since the platform
plugins don't know about widgets.
Change the Cocoa touch implementation to send single-point touch events
to QWidgetWindow windows only. Make QApplication forward single-point
touch events only if the target widget has the
Qt::WA_TouchPadAcceptSingleTouchEvents attribute set.
Task-number: QTBUG-35893
Change-Id: I68712a5e3efb4ece7a81ca42f49c412e525eeb3a
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
On both iOS and Android it is very confusing to be able to move the focus to both, the line edit and the outer frame that is the spin box.
For Linux this fixes an issue that orca would not read the value correctly after pressing the up/down buttons.
Task-number: QTBUG-39861
Task-number: QTBUG-39442
Change-Id: I73c50c91e9021324c52d168d537afd0ea719a48f
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
|
|\ \ |
|
| |\|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Manually included changes from
3a347a4e70e5a10ee92dd2578316c926a399e894
in src/opengl/qgl.cpp.
Conflicts:
src/opengl/qgl_qpa.cpp
src/plugins/platforms/android/androidjnimain.cpp
Change-Id: Ic26b58ee587d4884c9d0fba45c5a94b5a45ee929
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
QStyle is used, so include it explicitly instead of relying on
indirect inclusions.
Build was broken when using a bunch of QT_NO_ defines, not sure
which one triggers the failure though.
Change-Id: Ib07218521648448576f1b55d2d91d1711c048f09
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
viewportSizeHint() should be defined outside the QT_NO_DRAGANDDROP ifndef
Change-Id: I7c23c820ea58b3614eb030dc5b0f290ad891ccb1
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We introduce QPlatformFontDatabase::isPrivateFontFamily() to allow
testing for private, system UI font families. Both QFontComboBox
and QFontDialog need to filter out those private font families
which, by definition, should be hidden from the end user.
(The textedit example had to be updated to fix the issue where the
default font would be private. In 5.4, we will be adding an equivalent,
public API in QFontDatabase, and a better solution for the textedit
example and QTexEdit in general).
In particular, on OS X and iOS, private fonts are used for the system
UI font. Those have their font family name prefixed by a dot.
QCoreTextFontDatabase knows about this, and makes sure those are
tested positive as private font families. In order to have a cleaner
layer separation, we moved the QPA theme font resolution from the
platform theme classes into QCoreTextFontDatabase for both Cocoa and
iOS QPA plugins.
In both cases, we use CoreText's CTFontCreateUIFontForLanguage(), that
nicely maps to the HITheme API we were using so far on Mac. That means
one HITheme dependency less. We also cache the font descriptors we get
for these font for each time QCTFD::populateFamilies() gets called.
(While not common, this currently happens in auto-tests, like
tst_QFontDatabase, and could happen in actual applications -- specially
when adding and removing application fonts.)
Change-Id: Ic6f0b60f9f597afee1a43596a669742dc546b97f
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Native dialogs are used whenever possible, not just when the dialog is
instantiated via the static function.
Task-number: QTBUG-36657
Change-Id: Ibad67114e67f8e2f9956037f8469542c72bfd8ea
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
While we will cover the entire surface with our textured quads, the clear
is still necessary in order to make top-levels with TranslucentBackground
render correctly: We don't want to blend transparent areas with undefined
content that is in the surface's framebuffer.
Blending is problematic for alpha values. We now prevent the blended alpha
from being written out. This ensures that in examples like qquickviewcomparison,
where the backingstore image contains an alpha of 0.5 while the QQuickWidget
texture 1.0, the result is still an alpha value of 1.0 in the final image.
Writing out an alpha of 0.5 would break on systems where windows get an alpha
buffer by default.
hellogl2 can now take a --transparent parameter which makes the QOpenGLWidget
being cleared to transparent in order to verify it works in combination
with Qt::WA_TranslucentBackground.
The swapped red and blue problem is also corrected. RGBA8888 does not need
swizzling. The only format that needs this is RGB32.
Task-number: QTBUG-40716
Change-Id: I54a9fd3a91a1b59575b38cdb908835315514e40f
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
|