By changing textOption() to return a const reference we will get a
performance increase when accessing this function internally.
Task-number: QTBUG-28193
Change-Id: I65b594d844ebaee6d72f4a95d11bd2c5e801fab4
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
These Qt3 legacy application types do not match the application types
available in Qt5. Thus, the decision was to kill the confusing and
mostly useless type enum. Use for example qobject_cast instead to find
out the application type.
Task-number: QTBUG-28093
Change-Id: Ia8cf7c3ea98a3cea27f74760d62e519ea10bce9f
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The image was outdated and didn't really add much information.
Also bring back mention of QWidget here.
Change-Id: I9de95a4ae7eaf0352418bea5732b5e9a763c73c2
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
In change 1582407fc7, the Q_WS_MAC
code path which disabled drawing cached glyphs for any transform
was removed, as was the comment that scaling and rotation wasn't
supported by the Mac font engines. This obviously broke transformed
text on Mac, so we need to put it back.
I put it into the font engine itself where it belongs, and I kept
the somewhat confusing naming convention which is used in the
paint engine to minimize this patch. I'll clean up these function
names in a future commit.
Task-number: QTBUG-27362
Change-Id: I4fc6a503eedd4b1ebaf3ee659d948f997f433338
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
geometryengine.cpp: In member function 'void
GeometryEngine::drawCubeGeometry(QGLShaderProgram*)':
geometryengine.cpp:159:93: warning: cast to pointer from integer of
different sie [-Wint-to-pointer-cast] geometryengine.cpp:167:95:
warning: cast to pointer f rom integer ofdifferent size
[-Wint-to-pointer-cast]
benchmarking.cpp: In member function 'void TestBenchmark::multiple()':
benchmarking.cpp:85:9: warning: variable 'result' set but not used
[-Wunused-but-set-variable]
benchmarking.cpp: In member function 'void TestBenchmark::series()':
benchmarking.cpp:120:9: warning: variable 'result' set but not used
[-Wunused-but-set-variable]
qstandarditemmodel.cpp:2717:45: warning: unused variable 'd'
[-Wunused-variable]
qxcbconnection.cpp: In member function 'xcb_timestamp_t
QXcbConnection::getTimestamp()': qxcbconnection.cpp:930:40: warning:
suggest parentheses around assignment used as truth value
[-Wparentheses]
tst_qguiapplication.cpp: In constructor
'BlockableWindow::BlockableWindow()': tst_qguiapplication.cpp:340:9:
warning:'BlockableWindow::enters' will be initialized after [-Wreorder]
tst_qguia pplication.cpp:339:9: warning 'int BlockableWindow::leaves'
[-Wreorder] tst_qguiapplication.cpp:342:12: waring: when initialized
here [-Wreorder]
tst_qsqltablemodel.cpp:570:10: warning: unused parameter 'value'
[-Wunused-parameter]
tst_qabstractitemview.cpp:1546:8: warning: unused parameter 'index'
[-Wunused-parameter]
Change-Id: I49c88547182e4669cfde2c2536403fc5573ca2da
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Add a flag indicating user input events to the event type and
leave those events in the queue if
QEventLoop::ExcludeUserInputEvents is set.
Task-number: QTBUG-27595
Change-Id: Ib41b826ef3be19253cd582d9894dd7c87953711f
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
1. cloneWithSize() may return 0
1bis. QRawFont::setPixelSize() may ivalidate the font (due to 1.)
2. using the data obtained from a temporary QString is never safe!
Change-Id: I0cd5f807d8077ef5112704e475f1904bd6fc4b1b
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
If ERREXIT2 is called in jpeg_create_decompress(), SIGSEGV occurs with
no error message. ERREXIT2 macro uses jpeg_compress_struct.err to handle
error case.
Change-Id: I8517a4d6f6e6aa4c1c59cd1aaea435554cca7ac3
Reviewed-by: Jørgen Lind <jorgen.lind@gmail.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Get rid of the + 1 in addition to the ascent and descent.
Task-number: QTBUG-27658
Change-Id: I8721226a034099ebe348cad3c49ac711c7fe44b9
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Added prepare_docs to qt_build_config.prf (it was added
directly in configure in the source branch)
Conflicts:
configure
tools/configure/configureapp.cpp
Change-Id: I1337c69fc62b1c934e3e39b4409e4857440c9db8
The missing break causes state change event handling to fall through
to tablet event handling, which is clearly wrong.
Change-Id: If19d7b3f794b3614961b9e79952331b0ede1fba1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
This keeps the docs as internal, but add
information about the events.
Change-Id: I9b961a946a6d799232a756a9ac874c0caf91ecbc
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Sending enter and leave events to other windows than the grabbing
window is not logical. The policy should be that only the grabbing
window receives enter and leave events.
Changed the documentation accordingly and provided the necessary
changes to Windows implementation.
Also removed explicit leave event generation for widgets when
popup is opened as that is now redundant.
tst_QWidget::underMouse() test was changed to behave according to
new logic.
Task-number: QTBUG-27871
Change-Id: I127fb8685b4a4206d1a319f42cba491ec02bc8ca
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Enter handling requires knowledge of the mouse
position. Extend the enter handling of
QWindowSystemInterface to receive the position
(implemented for Windows, XCB and Mac), passing it
on to QEnterEvent. Dispatch QEnterEvent from
widgets code.
Change-Id: I49c07d2b1f46310c877017dd55d4cd7d636bdbce
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
For the special transparent color index, the decoder would skip
writing anything out (thus leaving the pixels at 0 rgba value).
Although correct for later frames, for the initial frame this would
loose the color information for such pixels (which one otherwise
could have made visible e.g. by converting then image to an
alpha-less image format).
Change-Id: I316cefce8f21797feedebfbf98296ad84eaa4b99
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
(cherry picked from qt/c309d424f45dc0e7b62fbbbabf20dbfe355f48a7)
Reviewed-by: aavit <eirik.aavitsland@digia.com>
While Qt does not support grayscale images explicitly it makes sense to
save palleted images to grayscale png when possible for better
compression and compatibility as opening and saving grayscale images now
converts them to palleted
Change-Id: Iab7c5a5a9d24b9352f5a7bafe04824a97d2463d9
Reviewed-by: aavit <eirik.aavitsland@digia.com>
If possible, let glReadPixels() itself provide the pixel format
that QImage requires, so we can drop the pixel manipulation afterwards.
Change-Id: I6c9226003c15d49548fa00696f31d0b2e26c0783
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
This way the platform plugin can use convenience classes such as
QOpenGLFramebufferObject in the makeCurrent() implementation.
Change-Id: I1fb5f6b8ec094ff39454adbeca9eb0d1a8f43ee6
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
There's no need to force the context to be current and the correct FBO
to be bound when swapBuffers() is called, as this can easily be handled
on a per-platform basis.
Change-Id: I7af5a082d6a2b03dfa2cdc874c27617139a781a9
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
This function can then be used by webkit in a different way.
Change-Id: I2e4c0570b5fc446114f63b3dc43e3c4505bcad79
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
To be reverted after I19c00b54b1d2712f9418e8bcf56e35a8008b89ef and
and Ibd5cd10814c8cbd2b1f6e49b70782c7768d2366d are both integrated
Change-Id: I2e14d732cc7fc4168e8b4507a050f43f1e4c9e49
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Abbreviated properties are to be avoided. But all 3 of these
properties are redundant from the QML perspective; and because QRect,
QPoint and QSize are (wisely) not QObjects, it's not possible to bind
to _their_ properties, which make these QWindow properties less useful
than users might assume that they are.
Change-Id: I19c00b54b1d2712f9418e8bcf56e35a8008b89ef
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
These are intended to exist only during the integration of patch
Ie4424ec15fbdef6b29b137f90a2ae33f173edd21, so that it will be possible
to build the other modules. Then it will be reverted after the
property renaming is propagated to all the other modules.
Change-Id: I8d0c0774e685a728a98e8c866d95c606c927ff46
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
windowTitle, windowModality, windowIcon and so on are named that way
to be similar to the ones in QWidget. However QQuickWindow inherits
all of the declared properties, and we would like to have shorter
property names in QML. If you are working with a Window then it's
obvious the title property is the window title. Unfortunately,
there must be patches in many other modules which depend on this one.
In order to avoid the need to merge them all at the same time,
there is also patch https://codereview.qt-project.org/#change,39001
which temporarily adds backwards-compatible accessors, which can be
removed after the other modules are able to build without them.
We should not rename windowState to state, because in QML, state
usually drives the state machine for animation transitions etc.
(although QWindow is not an Item, a user might get confused about it).
Related patches are
https://codereview.qt-project.org/#change,39001https://codereview.qt-project.org/#change,37764https://codereview.qt-project.org/#change,37765https://codereview.qt-project.org/#change,37766https://codereview.qt-project.org/#change,37762
Change-Id: Ie4424ec15fbdef6b29b137f90a2ae33f173edd21
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
A 180° rotation results in a TxScale QTransform with negative scaling
factors (x=-1.0 y=-1.0). This is not properly handled by blitter paint
engine yet, so use software rendering fallback in this case.
This rendering issue can be seen when using "-webkit-transform" CSS
property in WebKit with DirectFB QPA platform.
Change-Id: Iee496b6bf0c90ffe36c4235ceaa2c80f296b2ca4
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
There is a common standard among all Qt modules. These changes affect
the final .qch file for each module.
Changes:
1)URL in qt-project.org is confirmed by DevNet maintainer
url = http://qt-project.org/doc/<module>
2)Landing page title mapping
indexTitle = landing page
3)"C++ Classes" as a child node.
The list of C++ classes and the titles are specified in the wiki.
4)Removed extra subprojects.
They are not needed for now. Each module may need additional nodes.
Change-Id: I1825476c21fe9aaddc9d6b512ff74229f17271a0
Reviewed-by: Martin Smith <martin.smith@digia.com>
Angle, for instance, which is now the default on Windows,
does not support the GL_BGRA_EXT format as input for
glTexSubImage2D(). In the case where it's not detected, we
therefore need to flip the bytes in the input.
Change-Id: Ibe78d0223e3c2c39cb1943cdcf67103044d00aa7
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Valgrind warns about the jump in qfontconfigdatabase.cpp:522 based on
uint QFondDef::hintingPreference:2 property. Surprising thing is that
the property is initialized in the default constructor, so there should
not be an issue.
The warning disappear if the property is _not_ placed on a boundary of a
two words, or if bit field is fully initialized. So I suspect that only
one bit of the two was initialized properly.
I decide to implement both solutions because of a potential minor
performance improvement, during reading the property.
I still fail to say why the value was uninitialized, I believe that this
patch simply workarounds gcc bug or valgrind bug.
Change-Id: I2e87738f66a435ef6e30b3d2db6baa73da025426
Reviewed-by: Jiang Jiang <gzjjgod@gmail.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Several platform plugins, like eglfs, kms, etc don't support multiple
windows as there's no system compositor, they're rendering directly to
a single back buffer. By adding a platform capability we'll be able to
provide better error reporting when an application tries to create
multiple QWindows on a single-window platform. Also, QML apps can use
this capability to figure out whether they should create a QWindow for
dialogs / popups / menus, or whether to just create items in the same
scene, that are shown on top of the rest of the content.
Change-Id: I15b8d21ee2bc4568e9d705dbf32f872c2c25742b
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
These are useful when QWindow is exposed to QML.
Change-Id: I7ec49ef365183e2c784605889e8ea22c2ef34781
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Using
git ls-files -z | xargs -0 sed -i 's/ \+$//'
in the relevant directories.
Change-Id: I861ef9952fb32ed2db9ec8b67864ec7d0d61f0f2
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Jens has an use-case for using accessibility from styles.
By making the enums always available regardless of QT_NO_ACCESSIBILITY,
it makes the style code less littered with ifndefs.
It should (ahem) also solve the problem where Qt Desktop components
does not compile if QT_NO_ACCESSIBILITY is not defined.
This happens on some linux distros, since atspi-2-dev is not installed
by default, which again causes grief for those affected.
Change-Id: I15d65df8c752a0c4af37cc7b4d908a757cb6a9c4
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
To avoid regressing due to de58eb64bc,
we need to return a pixel aligned height in QTextLine::height() and
also use pixel aligned heights when calculating the position of
lines as well as the bounding rect of the layout.
Later, we can add a QTextLine::naturalHeight()
or something like that which gives the fractional value, but until then,
we need to access private API in QPainter to get the correct
alignment, since we still don't want to align the height of the
last line in the layout, we only want to align the origin of each
line.
Task-number: QTBUG-27740
Change-Id: I12325f07d33aaf1a1b967e0a11492759d0f565d9
Reviewed-by: Caroline Chao <caroline.chao@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
If a modal dialog was shown as a response to button click, the button
retained its hover highlight, because it didn't get leave event.
Fixed by tracking the most recently entered window and sending a leave
to it when modal dialog is shown that blocks it.
Also modified tst_QGuiApplication::modalWindow() autotest to check
for enters and leaves.
Task-number: QTBUG-27644
Change-Id: I387647e18a762a39d523e3df31221b9583a39f9d
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
The (r.start != -1) case is equal to (i == formatChanges.count()) case
in the loop; no need to exit the loop just to do exactly what it did.
Change-Id: I4129d8012399895c2fce70b26716ca5aeadee79c
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
in case when the layout is partially initialized.
We shouldn't access any data except of indices
if GlyphIndicesOnly flag has been passed in.
Change-Id: I264689b498e0f9de8b5c040d47dbae4f6ef391c4
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
-included the snippets
-editing for technical accuracy still to be done.
-ported missing files from Qt 4
Change-Id: I0b2d27630b762c6518c08973a40b476d7852001d
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
-qt-module-defaults.qdocconf already contains the HTML template.
Change-Id: I5757741166f0f688ce0e8a4e77ed45fd4d72f1c7
Reviewed-by: Martin Smith <martin.smith@digia.com>
Fixed menu handling on Cocoa so if a menu is enabled/disabled or made
visible or not then it will keep this in sync with the appropriate
native menu entry.
Change-Id: If269185fcf065fb1b2f60d6ef8c27c107eb4509f
Reviewed-by: Pasi Matilainen <pasi.matilainen@digia.com>
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
According to libpng documentation - PNG files reduce possible bit depths
to 1, 2, 4, 8, and 16. If data is of another bit depth, it's possible to
write an sBIT chunk into the file so that decoders can recover the
original data if desired. Since we hardcode depth to 8 there is no need
to call png_set_sBit
Change-Id: I8e3941675019b920051775128ff4cf2bf1ca7c4a
Reviewed-by: aavit <eirik.aavitsland@digia.com>
As of Qt5, this macro is defined to be empty; simply get rid of these leftovers.
Change-Id: I167ccb4c9e92ec9b5e4faeb02bf9c5ef5d982b50
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
There are a lot of hacks here and there in Qt trying to align the
text in a correct way which caused regressions to appear once
the default coordinate system changed. We need to remove these
hacks to get a more consistent and maintainable base. This also
fixes the regression introduced by changing the aliased coordinate
system.
Task-number: QTBUG-27667
Change-Id: I620db2ca23b7ff6c912f3a51e86e7e36bbef81f0
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Context menu key wasn't working, as QPA had no handling for it.
Added ContextMenu event to QWindowSystemInterface and proper handling
to QGuiApplication and QWidgetWindow.
Also provide Windows implementation.
Task-number: QTBUG-27648
Change-Id: I7ce71ec4b5cdcc7be758e67f9faf6d863f7b19be
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Initialize all member variables including m_invScale, which
was uninitialized.
Change-Id: Id581b1db9411b2f945281e17b7a0407c746761f8
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
The code sets it to input.length() iff the regexp doesn't
match the string, while the docs say it's *always* set.
Therefore, make the docs match what the code does and
add a simple test to enforce it.
We're not changing the code to match the docs because
1) it's better to stay conservative (we don't want
to break existing behaviour);
2) this behaviour mimics what the int/double validators do
(they don't move pos at all).
Change-Id: I958074558de6b0fc5944101c6535fc7e00442ae9
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Use the Qt4CompatiblePainting render hint when painting with QPainter to
treat default constructed QPens as cosmetic still.
The NonCosmeticDefaultPen render hint gets documented as obsolete, since
it was in any case not respected by the raster nor OpenGL paint engine.
Change-Id: I04d910e9700baf7f13a8aac07a3633014bb9283e
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
The font engine has been re-used without increasing it's reference counter
Task-number: QTBUG-27596
Change-Id: Icd4c3ca131446255ad4a27da8aa9a6c69177212e
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
With minimal effort we can keep the GCC 3.4 build working.
Task-number: QTBUG-19803
Change-Id: I31611a27b97d5ac426ea857d8f1b656dc6f5377a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This makes QFont do a "light" detach when the font attributes data has been changed.
The new test clearly shows that the engine is now shared between
two font instances after changing the kerning attribute.
Change-Id: I59db822f459f02d111686dba7101b98e361fada9
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
- Move dnd docs and examples out of QtDoc module to gui library in QtBase
- Remove info related to Motif dnd since Qt5 doesn't implement it
Change-Id: Id7eb4eb422f4294a36dd92709ce3007903371f03
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
.qmake.conf (and previously .qmake.cache) already does that for us.
Change-Id: I06cc01fa45921d7bd66dda7a0f88729faeff37bd
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Native widgets have a native window each, so QPA plugin sends enter and
leave events for associated QWindow whenever mouse cursor moves from
one widget to another. QWidgetWindow had no context to interpret these
events as moves from one widget to another, since they were sent
separately. This resulted in leaves and enters for each widget in
parent chain, when only the bottom child should have gotten them.
Fixed by peeking into window system message queue when handling leave
in QWidgetWindow and retrieving the entered window from queued enter
event.
Also provided a convenience function that QPA plugin can use to
ensure both leave and enter events are in the event queue when
moving from one QWindow to another.
Task-number: QTBUG-27550
Change-Id: I74fec0ac90f6848495c2392c5f7e41624ad8aea2
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Qt 5 is the time to get rid of all the old inconsistencies in the raster
paint engine caused by trying to preserve the old X11 based
coordinate system where (0, 0) is in the center of the top-left pixel
instead of the upper left corner of said pixel. However, this was only
adhered for line drawing and path / rect filling, and not for image or
pixmap drawing and not at all when doing antialiased painting. By
defining the antialiased coordinate system as being the right one and
letting the aliased fill rules follow from that we finally end up with
some consistent behavior that doesn't lead to surprises and workarounds
in application code.
It is still possible for applications to get the old behavior by
setting the QPainter::Qt4CompatiblePainting render hint. This should
make porting easier for the few cases where an application relies on the
aliased fill rules we used to have in Qt 4.
Task-number: QTBUG-27500
Change-Id: If86b95e77d838ec83033d64af86632b9a73c74a9
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Changed it to check the Frame*Margin property instead of the
Block*Margin property as this was incorrect for a QTextFrameFormat.
Task-number: QTBUG-22173
Change-Id: I2c3066165fb592ed034874b1180593822859f933
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
The current implementation requests the platform window to set
the window state if it can, and return the actual window state
back.
The problem with this approach is that the platform window is created
as late as possible, so a call to QWindow::setWindowState would in
many (most?) cases never be forwarded to the platform window (instead,
the platform window is responsible to check the current window state
upon creation). As such, the window state might be left unsynched with
the platform window.
This patch suggests removing the return value from
QPlatformWindow::setWindowState. This will at least be consistent, so
that setting/getting state would produce the same result independent of
delayed window creation. If needed, we can later add new API to
QPlatformIntegration or QPlatformWindow for querying supported/actual
window state.
Change-Id: Ie43f56169656854a765ce88b47a808f8f3d51bb4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
If custom cursor was set before the window was created, it didn't
actually get set, and in some cases even caused a crash.
Fixed by making sure the cursor is correct when showing widget/window.
Task-number: QTBUG-27535
Change-Id: I3bc946a9c406c96af5b86869a3a54893f8980aba
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
The basic idea is that the platform theme is now responsible for
providing the pixmaps for the given standard name, or any file or
directory. Then, the QStyle implementation should query the platform
theme for the pixmaps, and build the icons accordingly using
ThemeHint::IconPixmapSizes. Same thing for QFileIconProvider. This
also opens future support for getting platform dependent pixmaps in
QtQuick components.
Also includes the implementation for the Cocoa (QCocoaTheme) and
Windows (QWindowsTheme) platform plugins.
Task-number: QTBUG-27450
Change-Id: I4e8406585d970a9af481be10f6643cf0abbc38a3
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
I have found the following scenarios when the physical size can
appear to change even though you can't actually stretch your monitor:
1) VNC allows setting the resolution. Physical size will then be a
fraction of the physical size of the monitor on which you display the
VNC window.
2) When you rotate your display, the width and height are reversed.
3) MacOS X simulates a change in physical size when you change the
mode to one whose aspect ratio does not match your monitor, and also
when you use simulated HiDPI mode on a non-HiDPI monitor. While this
info is basically wrong, since we are now querying the OS for it, we
might as well make sure it is propagated all the way through to the
QScreen object's properties.
Also, make sure that when geometry changes on one screen, all the
siblings are informed of the change in virtual geometry. Also
simplified the signals (don't need separate ones to inform of
changes which are fundamentally related to each other and always
change together).
Change-Id: I6a98a1c203e24e8fbeef6e90999671e56dc0c655
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
gl2ext.h only defines GL_APIENTRY and not APIENTRY so we should use
this macro if it is available. Without it, code that uses
QOPENGLF_APIENTRY and QGLF_APIENTRY might experience compile errors
due to the differing signatures.
Task-number: QTBUG-27313
Change-Id: Id79d934825928d9913138edc6e8f1b00edc89a8d
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
As of 98c1eb1750, partially initialized
QGlyphLayout is ok for stringToCMap() if GlyphIndicesOnly flag is set,
thus we can use the glyphIndexes buffer directly and avoid copying.
Also add some checks to guarantee we're not falling into an undefined behavior
for the empty text or NULL buffer.
Change-Id: I662953703e4c65edbebabbe4b753972417d963f3
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
The operators are implemented in qkeysequence.cpp
Change-Id: Id3078abe944673dd2076cc642e4474caa1472dcc
Reviewed-by: Caroline Chao <caroline.chao@digia.com>
The current implementation requests the platform window to set
as many of the flags it can, and return the same flags with the
unsupported flags removed.
The problem with this approach is that the platform window is created
as late as possible, so a call to QWindow::setWindowFlags would in
many (most?) cases never be forwarded to the platform window (instead,
the platform window is responsible to check the current window flags
upon creation). As such, the filtering would never be done.
Looking at the current set of plugins, most of them also seems to
ignore this protocol, returning the flags unfiltered.
This patch suggests removing the return value from
QPlatformWindow::setWindowFlags. This will at least be consistent, so
that setting/getting flags would produce the same result independent of
delayed window creation. If needed, we can later add new API to
QPlatformIntegration or QPlatformWindow for querying supported window
flags.
Change-Id: I9c759b5f9fab5ebed764a982f77fe19881118875
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Stop processing in internal headers, use correct include
syntax.
Change-Id: I9dcf1f6f89907986b7b58658be514083f213a3e6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
QGuiApplicationPrivate::processWindowSystemEvent needs to handle the
FileOpen event type so that applications can receive the events from
the Finder. This makes it possible to e.g. double-click a qml file
and open it in QML Viewer.
Task-number: QTBUG-26855
Change-Id: I1e14e478460e8823095e4a33cee1e0defbf76d8b
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
As there is no way to obtain the list of possible keys for a shortcut
in a platform independent way there needs to be a way to get that
from the platform integration.
Task-number: QTBUG-26902
Change-Id: I520add56ee09d5c3c58709fb29dad2fbfe4c9d0b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
This case has typically required specific work-arounds in other
rendering paths as well.
Task-number: QTBUG-25153
Change-Id: I217e710a30222792ebca3bf297e438d944c32992
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
qdocconf files can now reference $QT_INSTALL_DOCS to pick up e.g. global
includes, instead of using relative paths. Qt modules will automatically
get a doc target that builds and installs into the right place (including
supporting shadow-builds) if they set QMAKE_DOCS before loading(qt_module).
Change-Id: Ia408385199e56e3ead0afa45645a059d1a8b0d48
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
This reverts commit 101d04681f.
That change seems to have introduced a few regressions, and
Creator hits an assertion that it introduced because it assumes
the additionalFormats consists of well-formed ranges
(QTCREATORBUG-7995).
Change-Id: Ic4ae761e6e7f6df8a6b5ca565ceb250647420c15
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
There are now two different ways to implement synchronous
event processing. The platform plugins can choose which
one to use.
1) flushWindowSystemEvents()
Use to flush the event queue at one point, making
preceding calls synchronous.
2) setSynchronousWindowsSystemEvents(bool enable)
Makes all handle* functions synchronous, bypassing
the event queue completely.
Change-Id: I020b80c731fd13f855a377d7c91d06a4e39b6a0b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
This guarantees one will never get `!img.isNull()` after
load()/loadFromData() has failed, even if the image was
not null before.
Apply the same fix to QPixmap and QPicture.
Change-Id: Ida1ad6a6f0fc830df8e75ada0c163fc2d3360dea
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>