Commit Graph

2339 Commits

Author SHA1 Message Date
Andreas Holzammer
741eb8cbb1 QNX: Add support for WindowDoesNotAcceptFocus flag
Set SCREEN_PROPERTY_SENSITIVITY to SCREEN_SENSITIVITY_NO_FOCUS of the
screen window when the Qt::WindowDoesNotAcceptFocus window flag is set.

Change-Id: Iac0764a84186c382dcd3f4bdd31dd24ac15df768
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2013-05-11 15:05:47 +02:00
Gatis Paeglis
96d00ed19b Fix HTML data transferring through the Clipboard on Windows
When transferring html formated data through the clipboard
some of the html markup was lost when converting from Windows
clipboard native mimedata to Qt mimedata type.

On X11 we are sending everything - inluding <!DOCTYPE ...><html> .. </html>.
This patch enables the same behavior on Windows.

Task-number: QTBUG-30984

Change-Id: Ic0e339ad53955f1d31e8dff92ccf38b6eeec369a
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-05-10 23:48:44 +02:00
Gatis Paeglis
d1bf366e42 Use [NSEvent keyCode] to retrieve a virtual key code.
No need to use old style Carbon Event Manager function when there is
Cocoa [NSEvent keyCode] equivalent for retrieving virtual key code.

Change-Id: I5cceb76fc662e42a46a17dc69131091a64ca6060
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-05-10 23:48:32 +02:00
Andy Nichols
cd2a51a66f Fix Invalid Drawable error for QGLWidget on Mac
You are not supposed to call NSOpenGLContext -setView: for a view that
has not yet called drawRect.  We we attempted to do this, we would get
the invalid drawable error, leading to QGLWidgets just drawing garbage.

Task-number: QTBUG-28175
Change-Id: I47aef07b4676f2db8591f98fc1661f6f447bdef9
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-05-10 17:43:52 +02:00
Rafael Roquetto
6dfba7c628 QNX: Use 'disabled' child window buffers.
Because there is only one QBackingStore per top-level window, child windows do
not need to have their own buffer, since Qt will use the TLW backing store as
their drawing surface. Since QNX's libscreen does not support windows without
buffer, a 1x1 buffer is used instead.

Change-Id: I4b81fdd0f3e6059c46b1d4302d2a754d72dc8a68
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2013-05-09 14:56:32 +02:00
Sérgio Martins
46685f755b Windows: Introduce QFileDialog::DontUseCustomDirectoryIcons
Folders can have a custom icon, set by the user. Some system
folders also have one, for example c:\windows\fonts.

This option allows you to disable this behavior, you'll get the
folder directory icon.

As a side-effect, you'll get a very big performance improvement
on removable/network media: 2 seconds vs 60 seconds on a SDCard
with 10000 folders.

Change-Id: Id55ea628186e0a6523585ec7a4ff622d6f5da505
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2013-05-09 14:56:32 +02:00
Gabriel de Dietrich
baa2822077 Revert "OSX: obey the Qt::WindowTransparentForInput flag"
This reverts commit 79e729e111, which
partially fixed QTBUG-30122 and will need to be reopened.

On the Creator side, we think using the Qt::ToolTip flag is a bit unsafe
since tooltips are supposed to have very limited interactivity. We would
like to propose to use a similar pattern as in QComboBox instead.

Task-number: QTBUG-30702
Change-Id: I245b7d8b16ac870564ea44f24f481ebfec8ca9a1
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-05-08 14:07:41 +02:00
Gabriel de Dietrich
7e7d40eeb7 Cocoa: Add support for ForeignWindow window type
Necessary to make QWindow::fromWinId() work on Mac.

Change-Id: I0dc3a1b0d63cff61d484693aee711dc54fea6b2f
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-05-08 09:48:05 +02:00
Richard Moe Gustavsen
758f064558 iOS: don't send ended touch events to QPA
The current implementation kept a list of TouchPoints that
was reused when sending active touces to QPA. This list was
never cleaned up, so if you pressed three fingers, and released
one, we would still continue to sendt three touches to QPA.
Especially, since this list was not cleaned up when receiving
a touch cancel, mouse events sometimes stopped working when trigging
a system gesture (like a four finger swipe). This can be seen by
using the fingerpaint example.

Since we cannot rely on TouchPoints having IDs that corresponds to
their index in the touch point list, it ends up being
simpler (and results in less code) to rewrite the implementation to use
a hash table of UITouch to TouchPoints instead.

Change-Id: I5b32f57a8d72a0b8759a64ac7cdfa6700109d2b3
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-05-07 22:43:14 +02:00
Gatis Paeglis
a2a8a9ea01 Make access to xkbcommon_workaround.h more generic
It makes more sense to keep this workaround header together with the other
libxkbcommon files for a better access point since it's used by several *.pro
files.

Change-Id: I63d4eb58f6e7f3852834e41c4b6e058a2c962233
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-05-07 22:43:14 +02:00
Gatis Paeglis
43578e1901 Use X11 core protocol when xkb not available
To have a properly working key input in the xcb plugin in the case when
xcb-xkb library is not available we can update the xkb_state struct with the
keyboard state information available in the X11 core events.

The current modifier state is reported to clients in a number of core
protocol events and can be determined using the QueryPointer request.

This is how it is done in Weston, Wayland's reference implementation.

Note: In case the X server doesn't have a xkb support on it (which is very
unlikely), then xkbcommon will only pick up the user's primary layout.
The X server with the xkb support stuffs unused bits (13 and 14) of 'state' in the
core events with the effective keyboard group, which we can use to determine layout
changes.

Change-Id: I9f1ef635109870e7412ef1157ca592f3c8f9271c
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-05-07 22:43:14 +02:00
Gatis Paeglis
260bfaf056 Added possibleKeys(QKeyEvent *) to QXcbIntegration
This is required for a modifier+key shortcut support.

Also fixes old Qt bug when keymap group changes were not handled
properly for shortcut functionality.

Task-number: QTBUG-26902
Task-number: QTBUG-4845

Change-Id: I04d2c2ad7049df7420999816154605848fa670e1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-05-07 22:43:14 +02:00
Gatis Paeglis
05351b0cde Utilize libxkbcommon API for the keyboard backend on X11
libxkbcommon is a keymap compiler [1] which utilizes xkb
keyboard configuration database [2].

xkbcommon simplifies keyboard state handling by providing xkb_state
object which holds the current state of all modifiers, groups, LEDs,
etc, relating to the provided keymap.

Detecting modifier mapping should become simpler once it gets supported
in libxkbcommon. Also with xinput2 we could get rid of the XkbStateNotify
events, because xinput2 key press/release already include all the mod/group
info.

[1] http://xkbcommon.org/
[2] http://www.freedesktop.org/wiki/Software/XKeyboardConfig

This patch:

- Removes a dependency to -lxcb-keysyms
- Removes a dependency to XLib call - XLookupString
- Enables required functionality to fix QTBUG-27681

Task-number: QTBUG-27680
Change-Id: I10e10f873821ee02f6df72238e215a541150f38f
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-05-07 22:43:14 +02:00
Gatis Paeglis
9c1d62cc95 Add xcb-xkb to 3rd party libs
1) -qt-xcb

a) Use xkb from the 3rd party libs. As it is done for the other xcb
dependencies when qt configure with -qt-xcb.

2) -system-xcb (default)

a) If xkb found then use xkb from the system. (Currenly xkb is not
enabled by default when configuring libxcb library).

b) If xkb can't be found on the system then keyboard state will be
updated from X11 core events.

Change-Id: I7c3dbce6daa2cec52067cd5af80f19040233a0db
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-05-07 22:43:14 +02:00
Gatis Paeglis
2122e731ab Add libxkbcommon to 3rd party libs
This library is required by the XCB platform plugin. As we depend on
very recent version of this library and it might not be available
in base repositories of distributions, users can use -qt-xkbcommom
switch to build Qt with the bundled version.

Change-Id: I0ed2a5cc2f1df98b0e7cc926cabfa69818674e08
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-05-07 22:43:14 +02:00
Samuel Rødal
4635536bfb Re-enable automatic evdev support in EGLFS for Qt on embedded Android.
Change-Id: I2ed6bb57c14ee2c5a72d99e01d1d7d1ae966245f
Reviewed-by: aavit <eirik.aavitsland@digia.com>
2013-05-07 22:43:14 +02:00
Rafael Roquetto
46d80dedb7 QNX: Fix screen event thread compilation
Breakage was caused by two typos

Change-Id: Ic9ca3a3db8dbf191b3bee8b2ef6e3513f7c9adc4
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2013-05-07 20:55:35 +02:00
Shawn Rutledge
dd7058898c xcb: don't do mouse synthesis from touch unless we find a reason
One reason is when we are using XInput 2.2, because touch devices
will then generate touch events only.  For the other X11 scenarios,
X11 does its own mouse emulation.

QPlatformIntegration::styleHint() wasn't overridden yet.  The remaining
hints are TODO for now.

Change-Id: I2e444a00a18b33ed840ebfa8d8218655c2c39aad
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-05-07 14:30:50 +02:00
Tor Arne Vestbø
87d08acf40 iOS: Set context and bind FBO before allocating render-buffer storage
defaultFramebufferObject() may be called from anywhere, at any point,
not just makeCurrent(). One example is the glyph-cache, which uses it
to re-bind the default FBO after generating the texture cache.

If the default FBO had already been created, but the render-buffer was
out of sync with the window size, we would end up in the resize code
without the correct context current, and without the render-buffer's
owning FBO bound. This caused "Failed to make complete framebuffer
object 8cd7" warnings at runtime.

We now make the context current and bind the FBO, even though it might
already be bound and the context current from makeCurrent(), or when
initially creating the FBO. For the future we should move the whole
resize logic out of defaultFramebufferObject() and call it from
makeCurrent(), or possibly [EAGLView layoutSubviews]. That's a
higher impact change though, which we reserve for the 'dev' branch.

Change-Id: I50ea949c12a02ad1af6ec9fdc3215d5da85b324f
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-05-07 14:19:04 +02:00
Sergio Ahumada
db44b891fb Merge branch 'stable' into dev
Change-Id: Ica003a10ede86914bbbb062a2dc277a2ce39a259
2013-05-07 12:02:41 +02:00
Tor Arne Vestbø
130b579a16 iOS: Don't use -1 as magic value for UIDeviceOrientationFaceUp/Down
The check in [QIOSOrientationListener orientationChanged] ensured we
never reported the two unsupported orientations through QPA, but we
were reporting back the orientation through QIOSScreen::orientation()
as well, and that didn't have a guard for -1. This resulted in crashes
in client code that assumed the range of QScreen::orientation() was
defined by the enum, such as the paintedwindow example.

The listener now ignores the two unsupported orientations, which leaves
us at the previous orientation. For the conversion function, we still
have to support all UIDeviceOrientations, so we fall back to portrait
for the two unsupported orientations. In the future we should consider
caching the previous value explicitly, or fall back to the interface
orientation.

Change-Id: Ic19d0ce86b4ddea250ea927d5e8664396b2b68fd
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-04-30 23:30:56 +02:00
Tor Arne Vestbø
02e406ac50 iOS: Don't pretend like our OpenGL context is single-buffered
Internally iOS double-buffers its rendering using copy instead of flipping,
so we reported that our context was single-buffered so that clients could
take advantage of the unchanged buffer. This failed when clients (such as
Qt itself) then assumed that calling swapBufferes() was not needed.

We now properly report that we're double-buffered, and we'll have to find
another way to report the way double-buffering works if that's still an
optimization we'd like to provide to clients.

Change-Id: Id2e4faa68ed3b837ad01d6f22b2927fc9c9769c2
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-04-30 23:30:52 +02:00
Gabriel de Dietrich
c904860669 Cocoa: Port QCocoaTheme::fileIconPixmap() to Cocoa
Task-number: QTBUG-30907
Change-Id: Ie460db63413ab9c8e0fb5fb85af907e1c7f12759
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2013-04-30 19:23:05 +02:00
Paul Olav Tvete
6c719079ec Android: don't crash on exit
We have to call DetachCurrentThread() for each time we call
AttachCurrentThread(). Fortunately we have this convenience
class that we prepared earlier.

Task-number: QTBUG-30847

Change-Id: I5ffb94b336d3787a3bae197bab22b91770d58848
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-04-30 17:21:21 +02:00
Tor Arne Vestbø
299154bd65 iOS: Simplify context format setup
Change-Id: I6a6a025410298cecd5f62abd08388a7379359af7
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-04-30 12:45:30 +02:00
Shawn Rutledge
542e3be40d don't customize dialog buttons if GTK version is too old
gtk_dialog_get_widget_for_response was introduced in GTK 2.20

Task-number: QTBUG-30610
Change-Id: I30510f132c1d81c5d44863b3efddbc5e50771362
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2013-04-30 12:45:30 +02:00
Shawn Rutledge
124da0f5e6 Fix possible segfault when setting up window's transient parent
tp->handle() can be null.

Task-number: QTBUG-30919
Change-Id: Ie18b70d4cc6916d2e821a71d00d1bf99956b0632
Reviewed-by: Liang Qi <liang.qi@digia.com>
2013-04-30 12:45:30 +02:00
Tor Arne Vestbø
62eb4d7f3d iOS: Don't resize backing store twice in beginPaint()
The first call to resize() was a left-over from before we had retina-support.

Change-Id: I637e8d40f443f81fe7cfc367650bb28b917da2bc
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-04-29 16:56:58 +02:00
Eskil Abrahamsen Blomfeldt
d59e9af592 Make sure window is updated on resize event
After 475d1ed4f6a21686828fbd018542b469a8b2dbcd in qtdeclarative,
orientation changes on Android were broken, because the resize
event no longer implicitly causes an expose event. So we need
to post both when doing the resize.

Task-number: QTBUG-30909
Change-Id: I87c8c38e14d96a03b3409ef6439c3ac6ef432005
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-04-29 14:50:49 +02:00
Frederik Gladhorn
85e3c53e5c Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I2a54058b64ac69c78b4120fdaf09b96e025a4c6c
2013-04-29 14:17:09 +02:00
Paul Olav Tvete
53ac80c50c Android: fix crash on exit
QTouchDevice is already automatically deleted at shutdown.

Task-number: QTBUG-30847
Change-Id: Id6a407083efed849a34ccb1caa315204fc5a5891
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-04-26 21:19:23 +02:00
Richard Moe Gustavsen
f46a732a4f iOS: remove setMouse/keyboardGrabEnabled warning
Setting mouseGrabEnabled means that the window should continue
to receive mouse events even when the mouse is not over the
application. This is not an issue on iOS, but the warning is
still annoying.

Change-Id: I0dd7c3828bcb1a51a4eae534aca1da5bfa258f03
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-04-26 16:21:35 +02:00
Richard Moe Gustavsen
08f0b5dbc4 iOS: stack true popup windows ontop of tool windows
The current implementation would never hit the Qt::Tool case, since
a tool is also a Qt::Popup. This patch fixes that by making the
logic more explicit.

Change-Id: I0e6898081a18289e1007c8a168b374740915b3ff
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-04-26 16:21:35 +02:00
Richard Moe Gustavsen
ff9b3fcf69 iOS: add convenience functions for getting window type
Change-Id: I971df06dd348d1da68578e04076a02e85866e141
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-04-26 16:21:35 +02:00
Jørgen Lind
fca94fa5ed Add QXcbWindowEventListener
This makes it possible to listen for events on xcb_window_t which are
not platformwindows inside the xcb plugin

Change-Id: Ic9ec17ed757a7f9a5302ef2759c119a72bac573c
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-04-26 14:18:16 +02:00
Jørgen Lind
7288625c52 Moving logic from Qt4 for grabbing the X server
Basically you don't want to grab the X server while your debugging.
Also added an environment variable which lets you force to not grab
the X server

Change-Id: Iba03f11c8f486ce71c55fac7716bffcb7cc8cb98
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-04-26 14:18:16 +02:00
Morten Johan Sørvig
f8e2a8469f Don't crash on null QCoocaMenuItem.
Change-Id: Ia70f616983141134afe874b69a5957e31f6f5ed9
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-04-26 14:18:16 +02:00
Josh Faust
c90d9b697f Fix ignoring close events on OSX
QNSWindowDelegate was not handling windowShouldClose, which is how you
can tell Cocoa that your window should not close if the close button is
pressed. This change moves the close handling from windowWillClose to
windowShouldClose, and adds an optional "accepted" pointer to
QWindowSystemInterface::handleCloseEvent so that QNSWindowDelegate can
return a true/false value for whether the window should actually close

Task-number: QTBUG-28965
Change-Id: I67c6296ad42cbeeb71413e05411467d4e558adb4
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-26 14:18:16 +02:00
Shawn Rutledge
9f1b64766b Don't use the SubWindow flag for windows embedded in foreign windows
Instead, add QCocoaWindow::setEmbeddedInForeignView which can be called
via QPlatformNativeInterface::NativeResourceForIntegrationFunction

Task-number: QTBUG-30805
Change-Id: I05861e80ca664ddb430216388cf0fec573a4d32b
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-26 12:08:24 +02:00
Morten Johan Sørvig
2e69015d74 Increase the loopLevel when activating menu items.
Apply 0293aff5c44202e5c62e229b74d8bd0bf9206185
from Qt 4.

Without this, calls to deleteLater() may create delete
later events with a loopLevel of 1. Those events will
not be processed until QApplication::exec() returns.

Add a QScopedLoopLevelCounter that increases the loopLevel
for the duration of the activated() call.

Task-number: QTBUG-30660

Change-Id: I7ab3bb3a53243691b8f7f64e025150e5cc7da2c8
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-04-26 12:08:24 +02:00
Frederik Gladhorn
08585f02dc Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-04-26 09:45:55 +02:00
Frederik Gladhorn
4ca105b9bb Fix shortcut override for menus
Since we use native Cocoa menus, we cannot rely on the
normal shortcut handling. Shortcuts can be overridden by
the currently focused object in Qt.
In order to make that possible we need to send a
QShortcutOverride event before accepting any key event.

For menus the key event goes from the NSApp directly to
the menu, so the shortcutOverride would not work.

This is mostly an adaptation of the Qt 4 code.

Task-number: QTBUG-30695

Change-Id: Icb4979309d2d6f9606eb9c8abc4130dc79926593
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-04-26 09:42:34 +02:00
Andy Shaw
b06b519759 Respect the hotspot when creating the cursor in Cocoa
The hotspot was not taken from the QCursor so if one was set then it
was reset to 0x0.

Change-Id: Ie81f1c2ac15a16f10436738367e612c44dc42d38
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-25 19:59:16 +02:00
Friedemann Kleint
3860848674 Windows: Update transient parent in show().
Similar to XCB.

Task-number: QTBUG-30707

Change-Id: I6dd7aa370891a46aa5a2243528692180d8366486
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-04-25 17:56:26 +02:00
Gabriel de Dietrich
220b2b92b6 Cocoa: Improve text heuristic menu item syncing logic
Don't try anything after the original syncing, particularly after
changing the menu item's text. Also, don't try anything if the menu
item cannot be linked up to a menubar (see QTBUG-30756). This latter
point requires extra syncing after adding a menu in the menubar.

Finally, to be able to find the menubar, we need to clean the code for
moc's eyes.

Task-number: QTBUG-30756
Task-number: QTBUG-30812
Change-Id: I88fad663f1c35d03a0cb167d1723d16f590918c0
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-25 17:56:26 +02:00
Gabriel de Dietrich
370e89f064 Cocoa: Reflect menu hierarchy in QCocoaMenu* objects
QCocoaMenu is child of either a QCocoaMenuBar, a QCocoaMenuItem as a
submenu, or nothing as a standalone menu. QCocoaMenuItem is child of
its containing QCocoaMenu.

The parent is set during insertion and cleared during removal.

QMenu needs to be updated to avoid double deletion and leaking its
own platform menu.

Change-Id: Iadf60d8062d7466fa616f84f3761fe322fc9aa2e
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-25 17:56:26 +02:00
Gabriel de Dietrich
7a1cdac052 Cocoa: Remove dead code in QCocoaMenu*
Change-Id: I56136594f073295ced645d06f657187a54e84384
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-25 17:56:26 +02:00
Friedemann Kleint
42760e43ea Windows native save file dialog: Do not append suffix afterwards.
Instead, set the currently selected filter's suffix as
default suffix of the dialog unless another default suffix
has been set.

This emulates the behavior of Qt 4 behavior which would set
the selected name filter's suffix as default suffix in
QFileDialog::getSaveFileName().

Task-number: QTBUG-30748
Change-Id: I111cd6190ddab8775a0fa72b94b3c728dd411c5e
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2013-04-25 17:56:26 +02:00
Jan Arve Saether
b9db3e4785 Do not include the treeview header if its hidden
Previously, accessibleTree->child(0) would return an interface for the
header even if it was hidden.

Also, the assertion was wrong since the index would be 0 if both row
and column were 0. The assertion was actually found while using the
project explorer of Qt Creator (2.7)

Change-Id: I9f3cc2c13b6887569d10c4e062a64552f898231a
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-04-25 17:56:26 +02:00
Gunnar Sletta
2e0575ce89 Fix windows expose logic
Make sure the value of QWindowsWindow::isExposed is in sync
with regions we expose.

This provoked a couple of existing issues in the qwidget test.

setWindowGeometry tested that windows with invalid sizes got
exposed on screen. They didn't, but because the plugin sent
bogus events, these used to pass. Same with windowMoveResize.

The expect fails are also rather bogus. Showing invalid-size
widgets could be considered undefined behavior. The Window
manager could resize it, choose to not show it at all, etc,
but they now pass on windows.

resizeEvent has been broken since 5.0.0, but the test didn't
spin the event loop so the second event didn't get delivered
before the test completed.

Task-number: QTBUG-30744
Change-Id: I3a9efcd095f366126a87739f4248185b6c81d407
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-04-25 15:41:54 +02:00
hluk
b43609404c Fix segfault while handling system-wide shortcuts with xcb
Change-Id: I8485031edc623f99b4b858d4f777be43f4bc3264
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-04-24 18:30:33 +02:00
hluk
9e035d9de2 Use Qt::Key_unknown for unknown keys instead of -1 with xcb
Task-number: QTBUG-3515
Change-Id: I9875437744455a2cce2da075c1fa6e2a91f55b63
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-04-24 17:15:49 +02:00
Jan Kundrát
78fc0d4872 Respond to the _NET_WM_CONTEXT_HELP WM_PROTOCOLS message
This change restores a proper function of the "(?)" button in the window
decorations which is used as a clue for the user to check what a particular
widget is supposed to do. The change is only implemented for QtWidgets because
the underlying QWhatsThis is inherently widget-specific -- which is why it sends
an event to QGuiApplication, but only processes it in the QtWidget-specific
QApplication.

Thanks to Alberto Mardegan and Gunnar Sletta for their feedback on this patch.

Change-Id: Ibb912e3960f1e9aec54c5ed77ade1c6744d6ca23
Reviewed-by: Alberto Mardegan <mardy@users.sourceforge.net>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-04-24 16:24:40 +02:00
Konstantin Ritt
affdd9d00c Improvements for DirectWrite font engine
- don't check if m_directWriteFontFace is not null, it MUST be initialized
  just in the constructor;
- fix support for surrogate pairs in stringToCMap();
- reorder some affected code for better readability.

Change-Id: Ibdcf7b50f06910e95cefe074f33932b8fbcdcfe1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2013-04-24 14:12:41 +02:00
Tor Arne Vestbø
4afb128d31 iOS: Don't try to set screen orientation before QApplication startup
We create our QIOSViewController in didFinishLaunchingWithOptions,
and schedule a timer to run the user's main. If the device is
placed in landscape orientation at startup, we will receive a
willRotateToInterfaceOrientation message before the timer is
triggered to run the user's main, which means we do not yet
have a QApplication.

To fix this crash we exit early, but we might have to store the
new orientation for later, and make sure the initial QScreen is
then created with the correct orientation.

Change-Id: I0cc02f0d36b992d190736e98858dc7d002d595b7
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-24 13:36:53 +02:00
Friedemann Kleint
ded4613ae4 Windows: Position full screen windows on the correct screen.
Find effective screen by searching the virtual sibling that
contains the center as does QDesktopWidget::screenNumber().

Task-number: QTBUG-30724
Change-Id: I8441ab4f3e5ee8169613a82f150d1a4f1777b662
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-04-24 11:10:02 +02:00
David Faure
1ea1abeb91 Implement startup notification spec again.
This functionality was in Qt4's qapplication_x11.cpp and was missing
from the XCB QPA plugin. Ported the code from xlib to xcb.

This code was actually tested (with plasma), unlike the Qt-4.8 code which
skipped every other character...
    for (uint i = 0; i < 20 && i + sent <= length; i++)
        xevent.xclient.data.b[i] = message[i + sent++];

Provide a QPA native-function for accessing the startup id, for cases where
an application doesn't show a window, but starts another app instead, or asks
a running app to show the window on its behalf.

Change-Id: If392179efddd70a51c45a8fab4fb9d753913094a
Reviewed-by: David Faure (KDE) <faure@kde.org>
2013-04-23 21:02:50 +02:00
David Faure
71a1ff39bc qxcb: output clear error message when running on an 8-bit display
Currently, running a Qt5 widget app in Xvfb (with its default setup, 8 bit color depth)
outputs a stream of error messages, starting with:
QWidget::paintEngine: QWidget::paintEngine: Should no longer be called

Better output clearly the reason why we end up in that method: painting
on a null image, due to the unsupported image format.

Maybe this should even be a qFatal...

Change-Id: Iae8f1b057518c146bf8e034999c1b5e67ce6ef5e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-04-23 21:02:50 +02:00
Konstantin Ritt
3821047e6c Fix memory access violation
The pointer returned by unicode() was deleted right afterwards.

Change-Id: I7cef72386d02c7be42e71134f616926506d37ea6
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2013-04-23 21:02:50 +02:00
Gabriel de Dietrich
38bf6da7dd Cocoa: Fix disabled minimize button on main windows
Task-number: QTBUG-30775

Change-Id: Idec64f2cc6181e6889498171ead676d33c66e537
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-04-23 18:57:45 +02:00
Morten Johan Sørvig
56cc59110a Don't crash on a null window pointer.
Task-number: QTBUG-30731

Change-Id: Id256b915012b43d1eb85bba62cbc1d42cfb58b34
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-04-23 18:57:45 +02:00
Gabriel de Dietrich
f2fa65e4bf Cocoa: Add setAlertState(), isAlertState(), beep() functions
Also, fix operator precedence error in QApplication::alert().

Change-Id: I140ccfba29638d24bc1c97f5f9a9611f66eb6b8f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-23 18:57:45 +02:00
Friedemann Kleint
ad3b61554b Move Mac translations to .cpp file for lupdate to pick them up.
Task-number: QTBUG-30125

Change-Id: I4e56fd3021b4ef5f344d4d36ae594dd88e2aa1bd
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-04-23 18:57:45 +02:00
Frederik Gladhorn
9c47a273ff Accessibility: Ignore negative child indices in main window
Change-Id: I6b3d0b066bf20a09b43d6d80255fb8d428d38df1
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-04-23 14:10:05 +02:00
Frederik Gladhorn
a7ce34dba4 Accessibility: Menu item should keep track of owner being valid
The QAction may stay around while the parent/owner gets deleted.
This is for example the case for some dynamically created menus.

This is required for fixing QTBUG-30792

Change-Id: I7b6122edec6def69aed77502403134e1568e21c9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-04-23 13:11:22 +02:00
Morten Johan Sørvig
3f58fc00c9 Guard usage of m_cocoaPlatformWindow.
m_cocoaPlatformWindow is cleared when Qt is "done"
with the QNSWindow or QNSPanel to prevent messages
from Cocoa calling into possibly stale pointers.

Change-Id: Id42b794fedbd3e597a0c4b50584cca976ba74c0f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-04-23 07:45:03 +02:00
Morten Johan Sørvig
f9ecaa8825 Return GroupRole for unknown accessibility roles.
UnknownRole draws attention from the screen reader
and makes it focus on the unknown item. GroupRole
is ignored and passes focus to child items.

Change-Id: If7b4cd9ec02b1890929a709b84d897f452c39587
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-04-23 07:44:20 +02:00
Frederik Gladhorn
e5e54a9ceb Accessibility Windows: always check for negative child ids
Some screen readers will pass in child id's that are negative
as response to notifications.
We should always check for negative id's on incoming calls.

Task-number: QTBUG-30792
Change-Id: Idaba3d1931d35ed068cfd9f20e70aa26da427616
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-04-22 18:35:52 +02:00
Frederik Gladhorn
d257e69a79 Accessibility Mac: Implement accessibilityFocusedUIElement
Change-Id: I17b5b1f741a8b340d8f4b16f4ec39cc9a8159bfa
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-04-22 18:35:52 +02:00
Eskil Abrahamsen Blomfeldt
241ee2ee42 Read correct font hinting config on Gnome/Unity
Fixes regression against Qt 4. This tries to recreate the logic
from 5c46d9a4c85abbcc0b5db2bbbafded3efd784cd9 in Qt 4, where we
on Gnome would override the default hint style specified in
FontConfig with Xft.hintstyle settings. This is the configuration
used for changing the hint style in the Gnome Tweak Tool.

Task-number: QTBUG-29582
Change-Id: I6b9fe2c8ff55ff080d034e5a53fc8cbb49f7651f
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-04-22 18:35:52 +02:00
Frederik Gladhorn
4c231d5df3 Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I059725e3b7d7ffd5a16a0931e6c17200917172b5
2013-04-22 16:35:43 +02:00
Morten Johan Sørvig
353f7340a1 Revert "Don't warn on 0x0 sized windows."
This reverts commit 88272d6c04,
which accidentally re-introduced a crash.

Change-Id: Ie60bcf55f940b24f982eed4f20c6af3320b040a7
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-04-22 14:53:39 +02:00
Richard Moe Gustavsen
8a00a42d0d iOS: don't delete m_touchDevice, QPA takes ownership
When registering m_touchDevice with QWindowSystemInterface, it
will also transfer ownership to it. It will eventually be
deleted in clenupDevicesList on qtouchdevice.cpp.

This patch will also stop the app from crashing when telling it
to quit.

Change-Id: I97070efdf16b4db7d076935fbec62e60f094a7df
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-04-22 14:38:28 +02:00
Andy Shaw
d672ef0768 Convert the CGImage into a QPixmap after reading from clipboard
Now that the relevant function is available we can do the conversion
inside QMacPasteboardMimeTiff when obtaining an image from the clipboard

Change-Id: Ie41b0fffedf4dd3f8ef49431482bd075a69722b1
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-22 08:57:48 +02:00
Friedemann Kleint
155ff13bb6 Implement QApplication::beep().
Invoke slot "beep" on QPlatformNativeInterface. Implement for
Windows and X11.

Task-number: QTBUG-30416

Change-Id: I2be651165b899e5147818a012001d354827bb090
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-04-19 20:10:46 +02:00
Friedemann Kleint
da01deb0ac Implement alertion state for windows.
Add QWindow::alert() and QPlatformWindow::setAlertState().
Add logic to clear alertion state when the window becomes
active. The platform plugins then only need to implement a setter
and a cheap getter and need not handle activation.

Prototypically implement X11 and Windows.

Task-number: QTBUG-30416
Change-Id: Ia70c4722d812462a21f4034b7d52735c9f2bc49c
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-04-19 20:10:46 +02:00
Gabriel de Dietrich
926086b9e3 Cocoa: Disable QTBUG-30266 hack in full screen
That would set the full screen window in a weird state, where is was
full screen (but unable to exit that mode) and showing the title bar
at the same time.

Change-Id: I3ac913876f3b326504dd5af18c34181d002509d0
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-04-19 20:10:46 +02:00
Frederik Gladhorn
0d57da067b Let platform plugin decide if accessibility is active
Change-Id: I881a8ff3fedf3db73ee37046a4363c70960a92a6
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-04-19 17:52:45 +02:00
Richard Moe Gustavsen
5ea3845bd0 iOS: use an explicit pointer to qiosViewController
As it stood, we always relied on the root view controller
being a QIOSViewController if isQtApplication() returned
true. For mixed application, this might not always be true
as native code can choose to replace the root view controller
at times, or even rip it out, and place it as a child of
another (e.g UISplitViewController).
This change will give an extra protection against that.

Change-Id: I0cb85796a8b82f9037c32f9e85e04e1dc7aad8e2
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-04-19 12:03:36 +02:00
Tasuku Suzuki
02713994bf Make qtbase compile with QT_NO_DRAGANDDROP
Change-Id: Id1a74c6b22b388d20103b4e73f83c8345ec70ba6
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2013-04-19 09:57:09 +02:00
Mitch Curtis
f3612f39ff Make password mask characters themeable.
Task-number: QTBUG-29871

Change-Id: I3cf739a321d7917f8f8431992e29bba0871b1934
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-04-19 09:57:09 +02:00
Richard Moe Gustavsen
e9b2d029f9 iOS: QIOSBackingStore: enable FBO depth and stencil buffer
Unless we enable those buffers for the FBO that backs the
backingstore, setting a clip region on an associated QPainter
will not work.

One apparent bug from this was the menubar. Without this patch
it appeared to never be drawn. The reason was that we ended up
drawing the menubar background over the whole menubar instead
of inside the clip region.

Change-Id: I25660cec6ce9e43fe4cd693127dca6afeb8dcf65
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-04-19 09:57:09 +02:00
Friedemann Kleint
b3bed2c8de Fix format for alpha drawing.
Task-number: QTBUG-28531

Change-Id: Ie97953950cad26776724848adc5751c861903cf7
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-04-18 22:02:18 +02:00
Morten Johan Sørvig
8ddcc18ac1 Remove nativeResourceForWindow warning.
The warning is useful for pointing out the the return
value will be null. However, code that correctly
checks the return value (such as qt_macWindowIsTextured),
still causes the warning to be printed.

Change-Id: I3828992b3d5e7b08451cf0e051b937fa9d9536d3
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-04-18 15:33:38 +02:00
Gabriel de Dietrich
b381581579 Mac: Fix various memory leaks
Change-Id: Id554be11ffcf9a506c217b0dc5b96cb37c4dd57c
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-18 15:31:29 +02:00
Gabriel de Dietrich
2bd846f8da Cocoa Menu: Remove unnecessary retain, release/retain in the right order
Also, make sure platform menu item is deleted on ActionRemoved event.

Change-Id: Ic07a81cb77833bdffd1464abf1c81ebdee4d16e9
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-18 15:31:18 +02:00
Eskil Abrahamsen Blomfeldt
eb95685556 Android: Don't crash when displaying multiple top-levels
While the raster platform plugin supports multiple top
level windows, this is not supported on the GL plugin,
so if you use GL or QtQuick2 in your app and use several
top levels, the app would crash with an error message.

A problem is that the top-level SurfaceView is a special
overlay View and does not support being stacked in a
layout. So instead, we let all windows share the same
GL surface and draw on top of each other. This works
fine for simple use cases.

We implement a new platform capability to make sure no
top level windows (even combobox popups and dialogs)
get non-fullscreen geometries. That has never
worked properly with the eglfs plugin.

Task-number: QTBUG-30473
Change-Id: Ia1438019638fc739cc93ffe79b46b81631254df2
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-04-18 09:18:43 +02:00
Gunnar Sletta
7c791171a1 Calling wglMakeCurrent on an already current context gives 100% cpu load
The problem occurs at least with nvidia cards when vsync is enabled
in the control panel.

Task-number: QTBUG-29686
Change-Id: I6fd2a3560a5baeeac7c3fe0440db85904c45026d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-04-18 07:09:09 +02:00
Friedemann Kleint
333817b9cf Do not send clipboard message to application under debugger.
Fix Qt Creator hang when copying a stack trace from an
application showing a runtime assert.

Change-Id: I874bd48643ebce1a3551644dc850cb7cf5869522
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-04-17 22:14:19 +02:00
Friedemann Kleint
9a89d614f2 Windows: Fix compile with -directwrite.
Task-number: QTBUG-30643

Change-Id: I3a2a0e767a92bc2ff9d7d241dfad6771034e6ad4
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-04-17 22:14:19 +02:00
Cyril Oblikov
9557cc6536 Correct dir entries caching in QFileDialog
Using QFileSystemWatcher to update cache when directory is changed. It is
needed to correctly filter files created after the dialog opening.

Task-number: QTBUG-30604

Change-Id: I5479f9a54095de59ca2ba36b2bd4906de0907ac8
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-17 12:31:42 +02:00
Frederik Gladhorn
94758589fe Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-04-17 10:28:21 +02:00
Sergio Martins
893deb1a93 QNX: Fix filenames returned by the file dialog.
QUrl prefixes like file:// should be used. QFileDialog will use
QFileInfo later on, and that doesn't support QUrl prefixes.

Change-Id: I8f6d2fb9a4f502cff030a1cdd43b047b8ed5a120
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2013-04-17 02:22:50 +02:00
Sergio Martins
d42e54c862 Fix typo in qWarning()
Change-Id: I17aa0a1985c2da889bc602fd76dc07c890ed6f6b
Reviewed-by: David Faure (KDE) <faure@kde.org>
2013-04-17 02:22:28 +02:00
Gabriel de Dietrich
2dbb73b54b Cocoa: Fix menu popup, again
This time, popUpContextMenu:withEvent:forView: wouldn't respect the
menu's minimum width setting.

Change-Id: I7731851f2cf45d596d45a24dab5abe7b9239f07f
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-16 19:45:11 +02:00
Gabriel de Dietrich
21f6ab2860 Cocoa: Make sure no invisible proxy icon button is created
If the icon is null, don't force creation.

Task-number: QTBUG-30064
Change-Id: If639714f667fedfcc67a3393a7d75111a7dbff3f
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-16 19:45:11 +02:00
Andreas Holzammer
0d1ab4e667 [QNX] Fix build/runtime if QT_NO_OPENGL defined
Change-Id: I38d511ac0a53b65abfe47baaa6333629df5b578d
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2013-04-16 19:45:11 +02:00
Frederik Gladhorn
ae6f9d00a6 Accessibility Mac: Enable ignoring of children
The ignored children do not show up in the
hierarchy, this should improve performance
significantly.

Previously the code would ignore the grouping
property which seems to break QGroupBox.

Change-Id: I4535af9c95bce76ded65f6d40fe07f17f3acffad
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-16 16:50:59 +02:00
Eskil Abrahamsen Blomfeldt
aec1bcf6a3 eglfs: Make sure virtual functions are not called from ctor
We want to override some of them in a subclass.

Change-Id: Ic7a22d7bc4589199b3f764157125094a4ff6ec28
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-04-15 15:32:40 +02:00
Eskil Abrahamsen Blomfeldt
2b4dff8dc1 Make surface and window accessible to subclasses
We need to access these in the Android plugin.

Change-Id: I8c7f279bbe0b7087260cceb1f965c833c0097984
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-04-15 15:32:40 +02:00
Eskil Abrahamsen Blomfeldt
c1ac77b34c Remove code for Android API level < 9
We don't support API levels < 9, so we can simplify this code
a little.

Change-Id: I9823d4c5a44d265e03dec0ceedeeb3c34a1e1eab
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-04-15 13:20:17 +02:00
Morten Johan Sorvig
27d40fce12 Add autorelease pool for cocoa plugin creation.
Prevents mem leaks at startup on 10.6.

Change-Id: I5f8b72c54ab396ee0ec2e47320163a6a342b78f1
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-04-15 13:17:26 +02:00
Morten Johan Sørvig
6a0bb4206a Add autorelease pools needed by Qt Creator.
With these Qt Creator startup is now warning-free
on 10.6.

Change-Id: Ie29d360611c0e516258920163e4e94d174217299
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-04-15 13:17:26 +02:00
Gabriel de Dietrich
61b71b2baf Cocoa: Fix unresponsive main window after running more than one modal session
For some reason, we postpone clearing the stack of modal sessions until we call
processPostedEvents() again. However, it also means that when we clear the second
modal session, that session keeps running although we just closed its window. The
reason why it isn't stopped is because it wasn't the topmost modal session in the
stack.

This patch fixes the issue by stopping a modal session if any session above in the
stack has been stopped. This makes it less problematic if we don't call
processPostedEvents() in between ending modal sessions.

Task-number: QTBUG-30504
Change-Id: I9f898250ae629947d066647f9d5a0b9f75cf0070
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-04-15 13:17:26 +02:00
Morten Johan Sørvig
88272d6c04 Don't warn on 0x0 sized windows.
I don't think this is an user error. If it is then
the warning should be in a cross-platform code path.

Change-Id: I4c615d9b2372660bb03b17ccb25204b2a8d17b1a
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-04-15 10:34:53 +02:00
Gabriel de Dietrich
e5e0ec42bb Cocoa: Fix popup menus on modal windows
Previously, we used -popUpMenuPositioningItem:atLocation:inView: but
this turns out not to work with modal windows. This can actually be
reproduced in Cocoa.

Change-Id: I9b750d1f97637f0cc30329d3da3acf5200f62206
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-15 10:34:06 +02:00
Morten Johan Sørvig
11fdd8edcd Cocoa: Create QCocoaWindow when enabling touch.
The ref-counting and (native) touch enabling is
implemented in QCocoaWindow.

Change-Id: I4f3f5e16db59afec7dd7dd2f8360dd60b90bfe6d
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-04-15 10:28:23 +02:00
Morten Johan Sørvig
2da29c9736 Cocoa: Enable touch on 0->1 counter transition.
Change-Id: I9d8fb84851a866c3020cbbca13d5b2dc297cfe65
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-04-15 10:28:14 +02:00
Morten Johan Sørvig
cea58f4b77 Add devicePixelRatio metric to QPaintDevice.
Previously QPainter computed the devicePixelRatio
based on the physical and logical dpi, and expected
that the ratio between them would be either 1x or
2x.

This was problematic for paint devices like printers
where the physical dpi can be much higher than the
logical dpi, and also for QScreen where the physical
dpi would have to be defined as a multiple of the
logical dpi.

Add QPaintDevice::PdmDevicePixelRatio and QPaintDevice::
devicePixelRatio() getter and implement it for the
QPaintDevice subclasses. Use it when calculating the
highdpi scale transform in qpainter.cpp and when scaling
the clip rect in qwidget.cpp.

Remove physical dpi scaling for QImage, QPixmap and
QOpenGLPaintDevice, reverting to the old behavior.

Change-Id: I6c97510613196d4536ff39d08e9750b8782283d4
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-04-15 07:55:52 +02:00
Konstantin Ritt
1f3a67e870 QFontEngine: Fix cache_cost might be not initialized
Change-Id: I4cf4de5797e6623a71593e8f382496188e3abac8
Reviewed-by: jian liang <jianliang79@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-04-14 14:28:07 +02:00
Konstantin Ritt
112b31bed6 QWindowsFontEngineDirectWrite: Fix resources leaking
fontFamily has been acquired by IDWriteFont::GetFontFamily() and thus
must be released with IDWriteFontFamily::Release().

Task-number: QTBUG-26861

Change-Id: I314153f97b8b59c9ba728220f93b493b13337039
Reviewed-by: jian liang <jianliang79@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-04-14 14:27:58 +02:00
Frederik Gladhorn
aa3754d105 Merge remote-tracking branch 'origin/stable' into dev
Change-Id: Iee73c93067c5822d8dd51a8692e6da9df4ba49f5
2013-04-12 12:53:13 +02:00
Tobias Hunger
47ce14cf74 s/uint32_t/quint32/
uint32_t is in C++11, which we can not rely on being present. It is also
in C99, but some compilers do not support that in C++ mode.

Change-Id: I29bada724f5646a0a0562b3ab133cb49cf928d6d
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-04-12 11:46:01 +02:00
Friedemann Kleint
f8a047d843 Fix Windows CE compilation.
Breakage introduced by 11e9f1368b .

Simplify #ifdef-blocks.

Task-number: QTBUG-30063
Change-Id: I0710915ff7b0ad5947935904c43ff9b621f638f2
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com>
Reviewed-by: Janne Anttila <janne.anttila@digia.com>
2013-04-12 09:31:51 +02:00
Fabian Bumberger
b7891514ab Do not build QQnxScreenEventThread when not needed
Change-Id: I07525ac45a610f56f2bc72731379073f4aa67f7b
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2013-04-11 13:41:43 +02:00
Andy Shaw
ac4474900c Call QString::normalized when it is constructed via the native API
When a string comes from the native APIs then it may need to be
normalized.

Task-number: QTBUG-14787
Change-Id: I5164e80efcd1d99a50263c72bcf97d7fb31b38f7
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-11 10:41:14 +02:00
Konstantin Ritt
c0300eed19 QFreetypeFace: Fix getFace() uses UTF-8 paths on non UTF-8 locales
QFontEngine::FaceId::filename is intended to be local8Bit-encoded
but QFreetypeFace::getFace() always treats it like UTF-8-encoded.
Also replace explicit (to|from)Local8Bit and toLatin FaceId::filename
conversions with QFile::(en|de)codeName, where appropriate.

Change-Id: Ic7beabf0a160f2f02f1667bcb8e6067adaba1c16
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-04-11 00:03:32 +02:00
Jens Bache-Wiig
b5b6d6f5fc Windows: Dont use black as clear color on opengl windows
Perhaps this made sense when all our open gl examples were black,
but with components and I would assume the majority of use cases
we should use the default window background color to fill exposed
window background during a resize.

Change-Id: Ia439a7c3919243efa6026e2e07bee62c25557df0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-04-10 17:51:36 +02:00
Rafael Roquetto
f0425e115e QNX: Adjust rotation according to initial orientation
Task-number: QTBUG-29201

Change-Id: I37e82904e0f3d8b372b31ee7d1379e61c788c622
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
2013-04-10 17:51:36 +02:00
Sergio Ahumada
90297a64f2 Merge branch 'stable' into dev
Change-Id: Icff019d74ae04c628a80f66aa478e4db40fae464
2013-04-10 15:42:22 +02:00
Kai Koehne
0eefbf8376 Fix access to invalid memory
QString::toLatin1() creates a temporary QByteArray.

Task-number: QTBUG-30578
Change-Id: I17c60bbade1486399f745c7e9878c6467971e6cc
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-04-10 13:23:13 +02:00
Liang Qi
1d6325e4f1 Mac: Ensure the native filedialog sets file name when saving
The name field string was not set in native dialog when one was present.

The previous fix is not correct. In the doc of setNameFieldStringValue,
it said "The value must not be nil".

Task-number: QTBUG-28342
Change-Id: I847fb7472b8fecc0303433d8bf72b6a5bd7da72b
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-09 20:10:59 +02:00
Shawn Rutledge
4bcec703c4 OSX window: set QWindow geometry after native window is created
Initial window position is at 0,0 by default, then it's corrected
in createNSWindow (by calling initialGeometry).  After window
creation, QNSWindowDelegate will receive the windowDidMove
notification and call QCocoaWindow::windowDidMove() which then
calls QNSView::updateGeometry().  It will not call
QWindowSystemInterface::handleGeometryChange() because the window
is still being constructed.  So we can fix this by directly
setting QWindow::geometry in the QCocoaWindow constructor.

Task-number: QTBUG-30382
Change-Id: I3db7a6e83693e5787ae82dcab1767de938d2e5d1
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-04-09 20:10:59 +02:00
hjk
34fadcfeb1 Mac: Return Qt::Key_F9 for F9, not Qt::Key_F8
Task-number: QTBUG-30520
Change-Id: I7006e43ea638796045925e753a2ef8f9d0a066e9
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-09 20:10:59 +02:00
Gabriel de Dietrich
6db10834b0 Cocoa: Properly clean window mask data
Also, get rid of qt_mac_toCGImage and QPainter warnings.

Change-Id: I9e2a0e93d74c318d99651de9222994615e082ac9
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-08 17:23:15 +02:00
Frederik Gladhorn
8307ab784e Make QTextCursor accessibility boundary finder available
This allows re-using the function in QtQuick.
In addition TextBoundaryType is moved to QAccessible
and QAccessible2 as namespace ceases to exist.

Change-Id: I184bc2c181a22ca51ac4db4e5a080dc26d4acfe0
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-04-08 11:35:44 +02:00
Shawn Rutledge
53cee4a37a Mac: a dialog should have a titlebar by default
Change 595deca5 for QTBUG-22316 resulted in having titlebars only on
modal dialogs.

Change-Id: Ic23c957e0e95cf567d90831e105cc402465df982
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-04-08 09:30:19 +02:00
Paul Olav Tvete
439a6fec84 Android: set logicalDpi based on DisplayMetrics.scaledDensity
The mathematically correct way would be to set logicalDPi to
160*scaledDensity, but then a 12 pt font would be gigantic. On
iOS, we use a factor of 72 to be compatible with the native APIs,
but that means that a 12 pt font is very small.

A factor of 100 means that desktop apps look reasonable by default.

Task-number: QTBUG-29674

Change-Id: I607f110150fb95685a6980b92f6f92f2b489f959
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-04-05 16:26:07 +02:00
Paul Olav Tvete
a658d26d84 EglFS: allow the hook to override logicalDpi()
Task-number: QTBUG-29674

Change-Id: Id88a8735ceb7f5bcb63344b3b0653486a6caa70d
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-04-05 16:25:59 +02:00
Friedemann Kleint
9b7c66ac7f Windows: Ignore mouse events generated by Windows.
Task-number: QTBUG-29946

Change-Id: Idef0e7cc8bc407377e60e4a9d67c3ba78b347b76
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-04-05 15:05:24 +02:00
Friedemann Kleint
653e690923 Windows: Do not use native dialogs for non-modal dialogs.
Windows file dialogs are always modal (inheriting IModalWindow).
As the QtQuick dialog plugin has a widget-based fallback now,
there is no need to use native dialogs for the non-modal case.

Task-number: QTBUG-30513

Change-Id: I8b62af86fde34e8c0cf5e917d2e62260e16c82fb
Reviewed-by: David Faure (KDE) <faure@kde.org>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-04-05 11:20:01 +02:00
Gunnar Sletta
fdf10003b6 The default behavior should be double buffered, not singlebuffered
Without this, it is not possible to do vsync drawing on NVidia
GeForce 210 on Windows 7.

Change-Id: I6064826eaa55266344393f50cdf5d17113350255
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-04-05 11:05:25 +02:00
Tor Arne Vestbø
8d92244d80 iOS: Fix build on case sensitive file systems
Change-Id: I920e7320e429006aef9433db3e942dc257dc72eb
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-04-04 23:50:12 +02:00
Frederik Gladhorn
4b069486cb Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-04-04 14:45:28 +02:00
Tor Arne Vestbø
127f19c7e3 iOS: Handle UIDeviceOrientation vs UIInterfaceOrientation
The former represents the physical device orientation, the latter the
UI orientation. We need to explicitly cast between them, as they are
different enums, but with compatible values for the subset we use.

Change-Id: I2926068802f35680cb6de5ced6dcf286014fdb2e
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-04-04 13:12:32 +02:00
Frederik Gladhorn
132348a864 Fix warning: qt_setDockMenu not found
qcocoanativeinterface.mm:196:5: warning:
 instance method '-qt_setDockMenu:' not found
 (return type defaults to 'id') [-Wobjc-method-access]
    [NSApp QT_MANGLE_NAMESPACE(qt_setDockMenu): menu];

Change-Id: I80838d0098e7f172d9b8124f04e91dba64764318
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-04-04 12:49:09 +02:00
Paul Olav Tvete
d9170e650c Android: Don't show '&' character in menus
Strip out shortcut indicator before showing the text.

Task-number: QTBUG-30507

Change-Id: I8fa2ef8a2052f4c43d14b3babfd5aca0a08e29d5
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-04-04 12:49:09 +02:00
Andreas Holzammer
0f532b29bb [QNX]Add an option to not run fullscreen
Add commandline option to set the default for
fullscreen option.

Change-Id: Ieaf2be3858082fb0e572c8fbaabfd38a698f14f6
Reviewed-by: Frank Osterfeld <frank.osterfeld@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
2013-04-04 10:41:03 +02:00
Konstantin Ritt
680d8aa6c5 QPA/Mac: Fix resources leaking
Having static QFont instance leads to a resources leaking, since QFontCache
is unable to clean-up font engines when the application exits.

Relates to QTBUG-25434

Change-Id: I71d91094de27c07ab2434c415e4c28b6acab3646
Reviewed-by: David Faure (KDE) <faure@kde.org>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-04-03 18:03:26 +02:00
Frederik Gladhorn
8b99445755 Merge "Merge remote-tracking branch 'origin/release' into stable" into refs/staging/stable 2013-04-03 17:42:03 +02:00
Frederik Gladhorn
a4121a21c0 Merge remote-tracking branch 'origin/release' into stable
Change-Id: Icedabda08961326a0a447ec71f1b0f0f5df075eb
2013-04-03 15:43:39 +02:00
Frederik Gladhorn
814f713f01 Merge remote-tracking branch 'origin/stable' into dev
Change-Id: Id96d4076610366a7cc66c8d8382ca25c33eaa71d
2013-04-03 14:40:26 +02:00
Andy Shaw
555a5ca61b If the menu item is merged then we should not release it
When a menu item is merged then we do not want to release it as it will
cause a problem with the Application menu. Therefore we just hide it
instead.

Change-Id: Ia9f7acfe063001111769841c9a360cac369f7ed7
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-03 13:14:52 +02:00
Robin Burchell
6060716066 Correct location of mtdev define.
evdevtouch moved to platform support, so the location in the plugin is now wrong
(as was the file name)

Change-Id: I976f5d7ee68f5da5ed1f61773b3d5da683e12c6f
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-04-03 00:37:48 +02:00
Andy Shaw
406c8ef6e6 Move the dbmstype to QSqlDriverPrivate so it can be used for all drivers
By moving it to QSqlDriverPrivate we make it easier to check what
database is actually connected which is particularly useful for the
autotests.

Change-Id: I54d1c2c998919c1d54efb1b6ac9303070ece54aa
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2013-04-02 19:02:26 +02:00
Frederik Gladhorn
b2ec0da956 Cache QAccessibleInterfaces.
Since there already is a one-to-one relationship
between QObject and QAccessibleInterface it makes
little sense to create and destroy the interfaces
on each call to queryAccessibleInterface.

Add a cache and keep created interfaces around for
the lifetime of the corresponding QObject.

This changes the memory management rules: accessible
interfaces must no longer be deleted. If you get an
QAccessibleIntrface pointer that pointer will stay
valid as long as the corresponding QObject is not
deleted.

This also re-enables accessibility for Mac.

We limit the range of the IDs so that they are
useable for Windows directly.
That means we can get rid of the event cache there.

This is based on: Iebf2f374916fc70a9dd29e95f45a6444b85f6cee

Change-Id: I9fe6531812c0dbc5b41101ac05830a6dd75e13a3
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-02 14:32:25 +02:00
Gunnar Sletta
35a51de5b4 Let EglFS pick up a platform input context if installed
Change-Id: Ia3765997682f8f90c7f7da712527beea365e01ed
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-04-02 08:29:43 +02:00
Konstantin Ritt
03875c0ba5 Fix reporting writing systems for non-TrueType fonts
According to EnumFontFamExProc docs:
> The ENUMLOGFONTEX structure includes the localized name
> of the script (character set).

lfCharSet ENUMLOGFONT's member must be used instead of comparing
these names to non-localized ones.

Also, when the font supports more than a single charset,
EnumFontFamExProc callback is called for it once per charset; thus,
we shouldn't "unsupport" writing systems in a subsequent call.

Task-number: QTBUG-30448

Change-Id: I58fcf32958490cf5a3e873db8335e71a39a9c518
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-04-01 21:33:29 +02:00
Rafael Roquetto
eb42513a50 BlackBerry: fix compilation
Remove a leftover #endif from the merge with stable

Change-Id: Idd0509d2ddcc3e8e7914aaa59beabc8036f45fff
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-04-01 20:42:52 +02:00
Konstantin Ritt
0fcadcca3d QFontConfigDatabase: fix fallbacksForFamily() for CJK languages
For Han Unicode script, the language couldn't be determined algorithmically,
the only way is guessing based on the user's locale.

The is a regression introduced in 9b0fab6b62

Change-Id: I84645885a825fdfb6c268edaf10185bf5e447eb5
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-04-01 12:03:55 +02:00
Tor Arne Vestbø
d817da8797 iOS: Specify framework dependencies in the right place
Instead of unconditionally linking to Foundation, UIKit, and QuartzCore,
we leave the dependencies for the iOS platform plugin, where the libs
are actually used.

Change-Id: Ie8cfad2c8230d1f1af6933b831e443fecb0c93f1
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-03-31 23:46:37 +02:00
Gatis Paeglis
21c23ca539 Remove unused header file.
As Thomas Senyk found out, the compose input context
plugin had a redundant include for the X11 keysym header file.

Change-Id: Iad603b545803867d02d915acffe27991bb0b7ee4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-03-30 08:49:36 +01:00
Gabriel de Dietrich
6c10f5203b Mac style: Fix disabled menu item palette entry
Also, removed an "magic color" form the style implementation.

Change-Id: Iefd3ddc0d9d651d2b87f20eb1f9990a214b651df
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2013-03-29 13:06:40 +01:00
Morten Johan Sørvig
fc8759064c Make qt_setDockMenu work and call it.
The application delegate code from Qt 4 implements
a non-working qt_setDockMenu. Correct the signature
of the applicationDockMenu method.

Change-Id: I6f531a78f91e0550b0e66cc4f2fa072006a030f4
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-03-29 13:06:40 +01:00
Morten Johan Sørvig
c0065187d7 Remove QMacQuartzPaintDevice.
Not used in Qt 5.

Change-Id: Ia0e14414afa524c5cc04151d20c168d93d8dcadb
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-03-29 13:06:40 +01:00
Bernd Weimer
6b413dc32c QNX: Added warning when low memory event is received
Low memory warning has been added for debug purposes.

Change-Id: I3ca4f1e68cec0914ce8d77b5bed4cde210c031fa
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2013-03-28 23:22:19 +01:00
Frederik Gladhorn
ad809526d6 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/plugins/platforms/qnx/qqnxtheme.cpp
	src/widgets/dialogs/qfileinfogatherer.cpp
	src/widgets/dialogs/qfilesystemmodel.cpp

Change-Id: Ifa536969c4beafcdfeebbf6beda1674b86750be8
2013-03-28 12:33:32 +01:00
Gabriel de Dietrich
4ea11e82ec QCocoaScreen: Properly align secondary screens w.r.t. primary screen
When using different resolution screens, one can arrange them around
the primary screen. However, the vertical offset has to take into account
the fact that NSScreen origin is bottom-left, whereas QScreen origin is
top-left. This usualy impacts the geometry's y coordinate, and can result
in popups showing in the wrong screen.

Task-number: QTBUG-30348
Change-Id: I159e6be2b590bd2d9a31f3f36c3785afcc62123e
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-03-27 17:16:37 +01:00
Rafael Roquetto
5d12417c94 BlackBerry: Native BB10 QFileDialog support
Change-Id: I4e83fbc6ba425d237b08056b45f9bcf47751bfce
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Tobias Koenig
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2013-03-27 03:54:59 +01:00
Michael Brasser
bb4e2e4faf Allow tslib to be specified at configure time.
Change-Id: I0ebf0eeea7e6a0b8136fb805f34f04082bc58c5e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-26 21:44:15 +01:00
Morten Johan Sørvig
03d057ff01 Cocoa: Make touch events work again.
Bring back the ref-counted enable on enter/leave
workaround we had in Qt 4: If any widget in a
window sets WA_AcceptTouchEvents then that window
will start processing touch events.

Enabling touch events has implications for delivery
of other events, for example by causing scrolling
event lag.

Change-Id: I307488937f417612eff624bf9892b82a7f69c1b7
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-03-26 19:22:01 +01:00
Morten Johan Sørvig
b2c73c73cd Cocoa: Correct enter/leave event handling.
Make top-level windows generate enter/leave events
for sub-windows. Keep track of the current "under mouse"
window in mouseMoved and send EnterLeave events when
it changes.

mouseEntered/mouseExited handles enters and leaves
from the top-level window.

Add tests/manual/cocoa/nativewidgets.

Task-number: QTBUG-27550
Task-number: QTBUG-29751

Change-Id: If4b9f9e0f39d9fb05fdab45a100ffdcf107965ad
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-03-26 19:21:38 +01:00
Rafael Roquetto
6131f79e4e QNX: Code cleanup: normalize 'if' macro usage
Always use "if defined" instead of "ifdef". The same is valid for
"ifndef" macros

Change-Id: I8e8f65e36dc636c10b3d656ce9a89ab3a664a80b
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2013-03-26 18:55:11 +01:00
Friedemann Kleint
11e9f1368b Windows: Fix reported screen metrics.
A call to SetProcessDPIAware() is required in some cases.

Task-number: QTBUG-30063
Change-Id: Iba0203d76c8e7068bf9fd4581770c1aca76a4708
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2013-03-26 09:49:22 +01:00
Cyril Oblikov
e90ce866fa Fixed shortcuts for some (e.g. Russian) layouts
If CMD modificator is active [nsevent characters] is used now to get
keyCode. In this case for example English "X" is returned instead of
Russian "Ч" even if Russian input source is selected.

Task-number:  QTBUG-30306

Change-Id: I93cd292633e68327df0c580ed74fe8ad1c9ed27d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-03-26 07:31:12 +01:00
Friedemann Kleint
23051ff7ec Clean up touch window registration.
Stop processing for Qt::Desktop windows (which caused
RegisterTouchWindow() to fail with access denied) and set a
flag to cleanly unregister.

Change-Id: I3d10c93ec92536d3ab1c0503f088c40b0c08a01f
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2013-03-25 10:42:01 +01:00
Shawn Rutledge
5c6b2ede3b OSX: WindowTransparentForInput QNSView pass events to next responder
The default implementation (in the super class) passes the event
to the next responder.  This seems to be one valid way to handle
the Qt::WindowTransparentForInput flag.  So if a non-alien widget
for which a native NSView is created has the flag
WA_TransparentForMouseEvents, that means the window will have
Qt::WindowTransparentForInput, and the NSView which is created
on its behalf will pass on each event so that other NSViews have
a chance to handle it.  (It will also try to reject becoming
first responder, but that doesn't seem to be enough for the following
events to be passed on.)  This is a followup to
I979be9f72f7d225d7b960fc5db4c3956d2749982 which purported to
obey the WindowTransparentForInput flag, but actually doesn't.

Change-Id: Ia72a3573c2e3cbfa7ede70bee41ac36df6924598
Task-number: QTBUG-28816
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-03-24 18:00:44 +01:00
Morten Johan Sørvig
7b5ad88489 Guard usage of [NSApp setDockMenu].
setDockMenu is not documented an may disappear.

Closest documented replacement seems to be
[NSApplicationDelegate applicationDockMenu:]. It can't
be used as a direct replacement since it's a "virtual"
getter that the application delegate implements.

Change-Id: Id161196018057b75cbe7d6f6d2610c0932345c5f
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-03-24 03:42:49 +01:00
Morten Johan Sørvig
5ad615ae8c Use [NSSavePanel directoryUrl].
[NSSavePanel directory] is deprecated.

Change-Id: I3515b565a25028dc5b7c966481707e001e44a077
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-03-24 03:41:45 +01:00
Morten Johan Sørvig
73d4fc6219 Call [m_qtView hasMask]
hasMask is a function on QNSView, m_contentView can
be any NSView subclass.

Change-Id: I88b5acbb8aad9aa4664e0f71f37add9dfa64f1b7
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-03-24 03:41:13 +01:00
Morten Johan Sørvig
4a1116af25 Remove unused variables in the Cocoa plugin
Change-Id: I7cdd369e2fbab02954da6ba3c05b31d93f1e7995
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-03-24 03:40:20 +01:00
Frederik Gladhorn
5147b1d410 Accessibility: Fix crash when updating in dtor
This happens for example when running several tests.
Widgets in destructor should be treated as invalid
since their window pointer and other properties are
no longer valid.

When deleting a window containing only a table view
there would be a table model reset update comming from
the window being destroyed.

Change-Id: Ia387c814333ce373fe132b189fc180787e36cdd5
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-03-23 14:42:45 +01:00
Frederik Gladhorn
fe52d1853e Accessibility: Fix crash in windowHelper
When accessing the parent, we cannot be sure
that the parent interfaces are all valid.
Invalid parents can happen during destruction.
Another cause is unusual hierarchies, the
QAbstractItemView::columnDelegate test triggers
a situation where this used to crash.

In addition to the actual problem, add
checks for every parent() call.

Change-Id: I70b2bf7bc3c02b0f33e22b81023fd24519adeba9
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-03-23 11:48:33 +01:00
Frederik Gladhorn
6d9541ae96 Do not update accessibility for invalid interfaces
Change-Id: I8dc29ea51393406e529c76f25bf2f8cf426e26cf
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-03-23 11:43:39 +01:00
Paul Olav Tvete
0c645f1345 Inform android input method when cursor is moved
Google Japanese Input Beta keeps track of the cursor position, and
bails out if the cursor is not where it thinks it should be. We
have to tell the IM every time we move the cursor, not only when
we are composing.

Change-Id: I9cdb28f81c76e76d3b0125d08bf0595616ca443f
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-03-22 19:52:26 +01:00
Eskil Abrahamsen Blomfeldt
ab18bb84e4 Remove QtWidgets dependency from Android platform plugin
The setFullScreen() function was never called from anywhere, so
it was just removed. The update() loop for top level widgets has
been replaced by a loop sending expose events to top level
windows.

Task-number: QTBUG-29313
Change-Id: Ic31a05ad3a0693f1d3f61457cee9d78f6b334b4d
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-03-22 19:52:26 +01:00
Frederik Gladhorn
4e07286a30 Only instantiate QAccessibleWidget after trying inherited classes
The plugin should try each class name from the meta object
in succession instead of giving up right away and just using
QWidget.

This improves the handling of the itemviews and makes many sub-classes
of QWidget outside of Qt work.

Change-Id: Id81017c648fe229c3eb85d6d9ae6696d5f16a1ef
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-03-22 17:11:17 +01:00
Morten Johan Sørvig
a8283fe4d9 Implement [QNSView isOpaque]
Re-use the QCocoaWindow implementation.

This gives a small performance boost since NSWindow
can skip drawing the background if it knows that the
content view will fill with opaque pixels.

Change-Id: I4a9a14135d890e9132dd1cb0af5a1c1a769d7e2f
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-03-22 07:16:25 +01:00
Dmytro Tyshchenko
b5a388192c Add qMenuToNSMenu() and qMenuBarToNSMenu() to QCocoaNativeInterface.
Preparing the addition of toNSMenu() functions to QtMacExtras which
will expose the native handle of a QMenu or QMenuBar.

Task-number: QTBUG-28869
Change-Id: Ib07712f5da0758addbbf8a84d6881297420e7ac8
Reviewed-by: Harri Porten <porten@froglogic.com>
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-03-21 15:26:47 +01:00
Gatis Paeglis
24c10b0b8d Introducing QComposeInputContext
When switching from Xlib to xcb platform plugin it was agreed that
XIM is deprecated. Users should be using QT_IM_MODULE to load input context
plugin for a more advance input method framework support.

The proposed solution is to parse the compose file directly from Qt. This
approach removes the overhead of communication protocols used in Xlib and/or IBUS.

TableGenerator class follows [1].

The compose file is searched for in the following order:

1) If the environment variable $XCOMPOSEFILE is set,
its value is used as the name of the Compose file.

2) If the user’s home directory has a file named
.XCompose, it is used as the Compose file.

3) The system provided compose file is used by mapping the
locale to a compose file from the list in
/usr/share/X11/locale/compose.dir.

Regarding step 3 - TableGenerator searches in hard-coded locations for
system-provided compose files. Here I have introcuded a new environment
variable QTCOMPOSE which can be used to prepend an extra location
to be searched.

[1] http://www.x.org/archive/X11R7.7/doc/man/man5/Compose.5.xhtml

Task-number: QTBUG-28183
Change-Id: I76dcfd454f3acc23db98192a3673c1ab2af4425f
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-03-21 15:26:24 +01:00
Sergio Ahumada
fb9cff6e88 Merge "Merge remote-tracking branch 'gerrit/release' into stable" into refs/staging/stable 2013-03-21 15:26:18 +01:00
Samuel Rødal
2ab9b747fc Merge remote-tracking branch 'gerrit/release' into stable
Conflicts:
	configure
	mkspecs/features/qt_module_headers.prf
	mkspecs/features/qt_tool.prf
	src/angle/angle.pro
	src/tools/bootstrap/bootstrap.pro
	tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp

Change-Id: Ide5759fe419a50f1c944211a48f7c66f662684e0
2013-03-21 08:49:01 +01:00
Gunnar Sletta
f7dfbb4bb2 Send expose when we get a geometry change.
Change-Id: I4c0c5130e6513fb4031e847be01feff3653f256e
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-03-21 07:53:04 +01:00
Shawn Rutledge
750899660a window should not be resizable while its transient popup is open
If a popup is transient for another window, the other window should
not be resizable while the popup is open.  (Resizing didn't close the
popup, either.)  The popup is emulated with an NSPanel rather than
being a native popup, so we don't get this behavior for free.

Task-number: QTBUG-30266
Change-Id: I49d04a095b428d169fe36ae1768c889578c3c054
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-03-21 07:41:41 +01:00
Gabriel de Dietrich
613cef516c qtbase: Fix duplicate symbol errors in static build on Mac
There is some code duplication between QMacStyle anf the Cocoa QPA
plugin regarding painting and bridging with Cocoa.

Task-number: QTBUG-29725
Change-Id: I347407a9bca47b6fccd77fb924688bd35135d96b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
(cherry picked from commit 5f948eb62d)
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2013-03-20 15:47:31 +01:00
Oswald Buddenhagen
76c0be34cd Merge branch 'dev' into stable
This starts Qt 5.1 release cycle

Conflicts:
	src/gui/text/qfontdatabase.cpp
	src/gui/text/qharfbuzz_copy_p.h
	src/widgets/kernel/qapplication.cpp
	src/widgets/kernel/qcoreapplication.cpp

Change-Id: I72fbf83ab3c2206aeea1b089428b0fc2a89bd62b
2013-03-20 13:49:28 +01:00
Friedemann Kleint
426f2ccafc Windows native file dialogs: Split suffix list correctly.
Task-number: QTBUG-30185

Change-Id: I9a3d16eafb5417d6720a702af662fb219487549d
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-03-20 13:12:12 +01:00
Chris Meyer
d1f2309166 Fix duplicated application menu items on Mac OS
Added code to check to see if the menu item already exists in the
application menu before adding it.

Change-Id: Ie0a5eab3c61d5a3413a834d2e57bab40660f6802
Task-number: QTBUG-27202
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-03-20 07:54:14 +01:00
Konstantin Ritt
36cb3f3f65 Fix the font engines leaking
1. when there were some engines with ref > 1 in the cache, prior to calling
   QFontDatabase::{add,remove}ApplicationFont()/removeAllApplicationFonts()
   (QFontCache::clear() has never decreased engine's cache_count);
2. when the QFontEngineData's engine is not in cache i.e. the Box or Test font engine
   (~QFontEngineData() didn't free engines it keeps).

Instead of using the font engine's (external) "cache_count" counter,
QFontCache now references a given font engine every time it is inserted to
the cache and dereferences exactly that number of times in clear().

Change-Id: I87677ebd24c1f4a81a53526f2e726e596b043c61
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-03-20 07:02:29 +01:00
Rafael Roquetto
67faba073d BlackBerry: implement QWidget::showMinimized()
Add window minimization capability on the plugin.

Change-Id: I4539d29b8ebbef935213edde634f0a85b6a21766
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2013-03-19 19:06:46 +01:00
Frederik Gladhorn
1148da5aa8 Fix crash when trying to access accessible parent in dtor
Change-Id: I36a065facc0ea80b3a155eaf646613cbd86fdfac
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-03-19 18:28:43 +01:00
Shawn Rutledge
bd8630763c OSX: a window which has WindowDoesNotAcceptFocus isn't first responder
Change-Id: If02ce190d93fcae18f1e1b41bc73c83b3226d4e7
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-03-19 10:46:19 +01:00
Shawn Rutledge
79e729e111 OSX: obey the Qt::WindowTransparentForInput flag
Ignoring the mouse means you don't get window enter/exit events for
that window either.

Task-number: QTBUG-30122
Change-Id: I979be9f72f7d225d7b960fc5db4c3956d2749982
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-03-19 10:44:55 +01:00
Tor Arne Vestbø
f8624b188b iOS: Use didFinishLaunchingWithOptions to support iOS < 6.0
UIApplicationDelegate's willFinishLaunchingWithOptions message was
introduced in 6.0. For now we don't need to distinguish the two, so
no need to use willFinishLaunchingWithOptions on iOS >= 6.0.

Change-Id: Ic6c2c9d2901def5a5500b186ed57fbe8b8c556d1
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-03-19 10:36:10 +01:00
Thiago Macieira
d1b4857d17 Make sure that we #include qconfig.h before testing for features.
This is mandatory in public headers (qiodevice.h, qopengl*, etc.), but
it's a good idea even in private headers, in case someone includes
that header first somewhere. In particular, all platformsupport API is
private.

Change-Id: If287baa5d9ed14e93c1666efa0e6332c4c1cd9a4
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-19 07:02:57 +01:00
Friedemann Kleint
2fa3d365ac Windows: Fix class name generation for Qt Quick Controls.
New combinations of settings need to be handled (for example,
GL + drop shadows for menus). Generate the class name depending
on style settings. Introduce new dynamic property for drop
shadows.

Change-Id: I438f7bdd87f09d3c99076ebf825a12d862948ec1
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-03-18 21:59:43 +01:00
Axel Waggershauser
b11317a643 Whitespace cleanup: remove trailing whitespace
Remove all trailing whitespace from the following list of files:
*.cpp *.h *.conf *.qdoc *.pro *.pri *.mm *.rc *.pl *.qps *.xpm *.txt *README
excluding 3rdparty, test-data and auto generated code.

Note A): the only non 3rdparty c++-files that still
have trailing whitespace after this change are:
* src/corelib/codecs/cp949codetbl_p.h
* src/corelib/codecs/qjpunicode.cpp
* src/corelib/codecs/qbig5codec.cpp
* src/corelib/xml/qxmlstream_p.h
* src/tools/qdoc/qmlparser/qqmljsgrammar.cpp
* src/tools/uic/ui4.cpp
* tests/auto/other/qtokenautomaton/tokenizers/*
* tests/benchmarks/corelib/tools/qstring/data.cpp
* util/lexgen/tokenizer.cpp

Note B): in about 30 files some overlapping 'leading tab' and
'TAB character in non-leading whitespace' issues have been fixed
to make the sanity bot happy. Plus some general ws-fixes here
and there as asked for during review.

Change-Id: Ia713113c34d82442d6ce4d93d8b1cf545075d11d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-16 20:22:50 +01:00
Mitch Curtis
40236c35a6 Fixed crash when VNCing and trying to use non-present XFixes extension.
Task-number: QTBUG-29978
Change-Id: I1a6759bafaac7a1d2b598412f0d32077a42192a4
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-03-15 10:45:11 +01:00
Alberto Mardegan
1a60bfdcd1 XCB: don't map hidden windows
This bug was introduced by the XEMBED implementation (carried over from
Qt4, but there it applied to QX11EmbedWidget only): the _XEMBED_INFO
property is used to inform the *embedder* whether the embedded window
should be mapped when embedded.

Task-number: QTBUG-30084

Change-Id: I8d1c467874bdee3300a1b18b8174b2d62f498713
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-03-15 08:24:16 +01:00
Konstantin Ritt
a8e933a74c Fix build on MinGW, Win<7
/* broken by 26149d057a */

Change-Id: I63f4d70e2a6fc1f8f1b302d188cf34d1abb0699c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-03-14 19:49:38 +01:00
J-P Nurmi
94d1d84861 GTK+ platform theme: cleanup coding style
Change-Id: I5db283d7ed42346d9c2b90acbc342336b450aa97
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-03-14 19:49:38 +01:00
Frederik Gladhorn
d1d0df8fb6 Make qaccessible2.h internal.
This should have been done right from the start,
instead we only made the documentation internal.

Also remove the classes from the BIC data.

Change-Id: I238a7a7cc5d26980b23931c78e7e5a4477d46920
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-03-14 19:49:38 +01:00
Irfan Omair
ba75f60449 Set StyleMask to NSBorderless if FramelessWindowHint is set.
Task-number: QTBUG-29815

Change-Id: Idb93843a2ad8332c81587c245fe73aa2bf5cc661
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-03-14 07:31:00 +01:00
Stephen Kelly
2a388e503f Merge "Merge remote-tracking branch 'origin/release' into stable" into refs/staging/stable 2013-03-13 23:35:18 +01:00
Shawn Rutledge
846cf1a13f Fix sluggish resizing for opengl windows on X11
Disable sync protocol for OpenGL surfaces in the XCB plugin.

Task-number: QTBUG-29304
Change-Id: I4cb47b04637e15e012758d3b0840abd13d27df69
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-03-13 19:11:12 +01:00
Friedemann Kleint
bad1918cb4 Fix build with Windows SDKs pre 7.0.
Check whether the IShellLibrary interface exists.

Task-number: QTBUG-29447

Change-Id: I93fc54a1e6d5c090f7c1768c756571ba57a7b2d2
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-03-13 14:55:53 +01:00
Konstantin Ritt
0194fa135b Hide Harfbuzz from the outer world
Don't export, don't generate private headers, don't mention HB in API.

Change-Id: I048ebd178bf4afaf9fda710a00933b95274cf910
Reviewed-by: Josh Faust <jfaust@suitabletech.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-03-13 14:46:26 +01:00
Rafael Roquetto
ef7c25e848 QNX: Fix build error
This error was caused by a merge

Change-Id: I937ab6ac905ba3a729669060285df6d0c3d5be2f
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Tobias Koenig
Reviewed-by: Wolfgang Bremer <wbremer@blackberry.com>
2013-03-12 18:13:37 +01:00
Giuseppe D'Angelo
bf3adbcdf5 XCB: support creation of OpenGL ES profiles
The GLX_EXT_create_context_es2_profile extension allows us to create
OpenGL ES profiles even under a desktop OpenGL implementation.
Therefore, if a OpenGL ES renderable type is requested, and we have
that extension, we can fullfill the request.
We also strenghten the renderable types that the XCB plugin
supports (default, OpenGL, OpenGL ES).

Change-Id: I94ecbbaa910ab4c6d71185a69640e79594cb7bdc
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-03-12 16:02:43 +01:00
Konstantin Ritt
06a65b053e Get rid of qt_determine_writing_systems_from_truetype_bits()
Move this code to QPlatformFontDatabase and get rid of all dups of it.

Change-Id: Idea6c84819039bf3b345b1305305951ade8d1ac4
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-03-12 16:01:35 +01:00
Caroline Chao
a410273fab Fix wrong initial position
If the widget is larger than the screen,
its title bar top left corner will be shown
inside the screen.

Task-number: QTBUG-30142

Change-Id: Id93773874be3616b3ef4b9bee6e1bb751c541d7b
Reviewed-by: Caroline Chao <caroline.chao@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-03-12 15:59:21 +01:00
Giuseppe D'Angelo
381566445e Reset the X error handler after initializing GTK
It turns out that we were setting the error handler to a dummy one in
qxcbconnection.cpp, but GTK then overrides it to an handler that calls
exit(1) on errors. This causes problems as we are relying on the
glXCreateContextAttribsARB call to fail when creating an OpenGL context,
so we need to reset the handler after GTK initialization.

Change-Id: I9bc3eb2480abfd3740884cb0000b9180d2cf37a5
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-03-12 09:16:42 +01:00
Andy Shaw
39a902c008 Add support for setting/getting the paper name on the QPrinter
This adds support for specifying a paper name which will be set on
the printer if it is available for the driver.

Change-Id: Id7fd0c8cf68745db3d7a8de7e2ac98d3e2ba9b79
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
2013-03-12 09:16:42 +01:00
Friedemann Kleint
da672eba99 Windows: Use arrow cursor for toplevels with no cursor set.
Fixes unsetting the cursor in Qt Quick Controls.

Task-number: QTBUG-28879

Change-Id: I049beafaa723f6e782df872f14c09b7f927e70ac
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-03-12 09:16:42 +01:00
Eskil Abrahamsen Blomfeldt
638d9d3831 Fix multi-touch input on Android
The touch events were collected but then thrown away because of
a missing port of he handleTouchEvent() function call.

Task-number: QTBUG-29126
Change-Id: I02f7380945be04a36da14a89f2f3ff9429b17cbc
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-03-12 09:16:42 +01:00
Frederik Gladhorn
72e5124b85 Merge remote-tracking branch 'origin/release' into stable
Conflicts:
	tests/auto/opengl/qgl/tst_qgl.cpp

Change-Id: I3c601351c984c1f4b00478d3c47ac9eeb021e892
2013-03-08 16:11:33 +01:00
Gabriel de Dietrich
083c8ce840 Cocoa: Pick right rectangle when rendering window mask
Ususally, the object setting the mask knows better than the window,
since the latter may not have had its size set by then.

Task-number: QTBUG-29856
Change-Id: Ib24d452a98a76b57f5d9236d5fa1ba4755cf0840
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-03-06 20:07:41 +01:00
Gabriel de Dietrich
544f1cbe27 Cocoa: Fix shadowless popups
The window shadow was never invalidated after setting the transparency
mask. We now do it right after the first draw after setting the mask.

Change-Id: Icc5c6002d25abeb25d58ee4d1f868e928121ae9b
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-03-06 20:07:41 +01:00
Gabriel de Dietrich
5f948eb62d qtbase: Fix duplicate symbol errors in static build on Mac
There is some code duplication between QMacStyle anf the Cocoa QPA
plugin regarding painting and bridging with Cocoa.

Task-number: QTBUG-29725
Change-Id: I347407a9bca47b6fccd77fb924688bd35135d96b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-03-06 19:04:31 +01:00
Alberto Mardegan
b5bdd31de4 Implement XEmbed protocol
Add a static QWindow::fromWinId(WId id) constructor which can be used to
create a QWindow object representing windows created by other processes.
Then, QWindow::setParent() can be used to embed a window into a foreign
window socket and QWindow::setTransientParent() to stick the current
window on top of a foreign window.

The changes in the QtWidgets module ensure that the focus chain (TAB
navigation) correctly works when a QtWidgets-based window is embedded
into another application.

As far as the platform implementation is concerned, this commit only
implements the embedding functionality in the XCB plugin. So, this is
roughly equivalent to the Qt4 QX11EmbedWidget functionality.

Change-Id: Iff8f7b9ee974d33fb30f36056f7838b433a413c7
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-03-06 18:59:07 +01:00
Gabriel de Dietrich
4520cb9865 Mac: Fix inactive window appearance
The inactive palette values were set to be the same as the disabled
palettte whereas, on Mac, they are the same as the active palette.

Also, some of the logic to draw inactive looking widgets was a bit
dubious. Add to that the fact that HITheme is not responding to
kThemeStateInactive as expected, or so it looks.

Task-number: QTBUG-29860
Change-Id: I5d67765a9411a40449a8a4440276b2fad167f7c4
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2013-03-06 17:24:31 +01:00
Frederik Gladhorn
49a2ec05b4 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/plugins/platforms/qnx/qqnxscreen.cpp
	src/plugins/platforms/windows/qwindowsdialoghelpers.cpp

Change-Id: Ib64f21c077b54f2291d19187590bfe869b98477a
2013-03-06 14:38:07 +01:00
Morten Johan Sørvig
7ee4ab1463 Cocoa: Improve expose event handling.
Send expose events on window and view show/hide
notifications. Implement QCocoaWindow::isExposed.

Close all windows on quit. This allows sending (de-)expose
events for those windows while the event loop is running.

Remove the flushWindowSystemEvents call in setVisible.
This function is called from application code. Flushing
window system events here is wrong since it can lead
to events being processed in the middle of the user
code call stack. flushWindowSystemEvents should only
be called as a result of (native) window system activity.

Skip one of the tst_qtooltip tests which becomes unstable/
fails in the CI system as a result of this change.

Task-number: QTBUG-29583
Change-Id: I3fb8b3f77e2b2e19dfeafba5d7dfcef602891d37
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-03-06 11:43:22 +01:00
Frederik Gladhorn
b861063873 Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-03-06 00:11:52 +01:00
Fabian Bumberger
15768381ad Delete the reference of the QNX screen in child windows on deletion
Change-Id: Ic3e5deaeabe282ff44400aba80f8746067473030
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2013-03-05 21:56:52 +01:00
Tor Arne Vestbø
d28073d9eb Distinguish between 'mac' and 'macx' qmake scopes
The former applies both on Mac OS X and iOS, but 'macx' is specific to
Mac OS X.

ios.conf and macx.conf now share most of their settings in the common
mac.conf. We set the default QMAKE_MAC_SDK before loading mac.conf, so
that any overrides in the device config will apply afterwards. This
means configure's mkspec parsing will be able to read the QMAKE_MAC_SDK.

Change-Id: I0c7e26a6a0103e19b23ef152aa9e4ab461cee632
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-03-05 20:59:45 +01:00
Frederik Gladhorn
5e8ae03578 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	configure
	qmake/generators/mac/pbuilder_pbx.cpp
	src/corelib/kernel/qtimerinfo_unix.cpp
	src/plugins/platforms/cocoa/qcocoabackingstore.mm
	src/plugins/platforms/cocoa/qcocoawindow.mm
	src/plugins/platforms/windows/qwindowswindow.cpp
	src/plugins/platforms/xcb/qglxintegration.cpp

Change-Id: I8d125fe498f5304874e6976b53f588d3e98a66ac
2013-03-05 13:42:11 +01:00
Friedemann Kleint
9100a68221 Windows: Print size constraints in geometry warning.
Change-Id: I0f8f82e975bfe7e9b00c48741b2a0317fac5f839
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-03-05 08:31:23 +01:00
Friedemann Kleint
f4933eba54 Windows: Take custom margins into account for size constraints.
Fix a warning unearthed by the task's code example. The minimum
size of the window would be too big since it did not take the
negative custom top margin into account.

Task-number: QTBUG-29904

Change-Id: I8b71a39f0724bdd1b9359676ce1d86ef5384d685
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-03-05 08:31:23 +01:00
Paul Olav Tvete
97fcf3bc98 Introducing the Qt Android port
Based on the Necessitas project by Bogdan Vatra.
Contributors to the Qt5 project:

BogDan Vatra <bogdan@kde.org>
Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
hjk <hjk121@nokiamail.com>
Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Paul Olav Tvete <paul.tvete@digia.com>
Robin Burchell <robin+qt@viroteck.net>
Samuel Rødal <samuel.rodal@digia.com>
Yoann Lopes <yoann.lopes@digia.com>

The full history of the Qt5 port can be found in refs/old-heads/android,
SHA-1 249ca9ca2c7d876b91b31df9434dde47f9065d0d

Change-Id: Iff1a7b2dbb707c986f2639e65e39ed8f22430120
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-03-05 08:31:23 +01:00
Irfan Omair
d903b2aac4 Avoid setting initialNameFilter when mode is Directory
Task-number: QTBUG-30001

Change-Id: I5e854ce99137bd9d718cb2052f2c8dc1fb92b78f
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-03-05 08:06:22 +01:00
Friedemann Kleint
bc741b867c Windows: Repaint when switching off layered windows by opacity.
Task-number: QTBUG-29010

Change-Id: I565a800e5a5b4870bd3ee2e3fb3f55523334425f
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-03-04 17:41:15 +01:00
Konstantin Ritt
c63e7f5766 Fix selection of fonts that require OpenType features
HB_Face's supported_scripts[] expects HB_Script, so QChar::Script should
be remapped via script_to_hbscript().

Change-Id: Ib068c35ab76567fe9a61da7d8ab01133a6f58bc0
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-03-04 14:54:57 +01:00
J-P Nurmi
078b3419bd QGtk2Theme: use GtkSettings to fetch the icon theme name
Change-Id: Ib486d65276512a94299650adfbf3d87108ae5845
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2013-03-02 23:24:04 +01:00
Morten Johan Sørvig
8238acccf0 Cocoa: Don't send duplicate mouse move events.
We now use tracking regions to generate move events,
setAcceptsMouseMoveEvents will generate duplicates.

See also commit b077e67f.

Change-Id: I750e33766e66693ce899380c5cd9715baa9aa241
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-03-01 13:05:11 +01:00
Irfan Omair
3ef2daf6ce Fix Alt key capture issue with mouseWheel
Task-number: QTBUG-29820

Change-Id: I8932b7bcadd6495debda6cdf0a576f83a0ccad47
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-03-01 09:01:45 +01:00
Tor Arne Vestbø
0520631b2b Merge "Merge branch 'ios' into dev" into refs/staging/dev 2013-02-28 19:22:05 +01:00
Rafael Roquetto
439002cdde BlackBerry: handle window state navigator events
Change-Id: I925b1c53c5e251111469501056ee162a23e36faf
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2013-02-28 19:22:05 +01:00
Rafael Roquetto
9fbecf11c7 QNX: QQnxCursor implementation.
Implementation of QQnxCursor, a QPlatformCursor subclass. Due to the lack of a
proper cursor API from the underlying OS, this class only caches the current
cursor position to make sure that the QCursor class works properly.

This is a backport of 290ed7f8fa.
At the time there weren't any known bugs regarding this, so it was committed
to "dev" branch as a feature.

Now we needed it in "stable", otherwise menus don't work correctly, due to
QCursor::pos() being bogus.

Change-Id: I5a4217c92a0aaed0b22b45ca3c4e0fad882e810f
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2013-02-28 17:31:12 +01:00
Eskil Abrahamsen Blomfeldt
dedec0b305 EGLFS: Enablers for Android plugin
These are some changes that are needed to make the Android
plugin as a subclass of the EGLFS plugin.

Change-Id: I7c77931f311d8a07f9292715d2abc256c5d552d8
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-02-28 17:10:55 +01:00
Friedemann Kleint
42507173bd Fix automatic hiding/restoring of transient children.
Task-number: QTBUG-28408

Change-Id: I31382c4edc213961dfb132af3bf5202e178e7a57
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-02-28 10:36:22 +01:00
Fawzi Mohamed
a243251091 qcocamenubar: force update after destructor
Task-number: QTCREATORBUG-8785
Change-Id: I1e782cab36f4fea331561f016ea67a73deb63c37
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-02-28 10:36:22 +01:00
Richard Moe Gustavsen
75a7dc7a57 iOS: Remove debug output noise
This debug information is not needed anymore, and only causes noise
when trying to debug other stuff.

Change-Id: I076826e251b84a3883e63aa7669f6e1bb55a0d1f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-02-27 23:56:11 +01:00
Richard Moe Gustavsen
76e4b6d2f2 iOS: Add QIOSIntegration::hasCapability function
Add the missing override, and report that we support
OpenGL (and multiple windows).

Change-Id: If95138cab9099b547d12d3dfed008bd63b6d2acf
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-02-27 23:56:11 +01:00
Morten Johan Sørvig
aa5528b050 iOS: Implement socket notifiers.
Create the QCFSocketNotifier class in platform support
which contains shared socket notifier support for
the Cocoa and iOS plugins. Remove the old code from
the Cocoa plugin.

The Cocoa code had one QCocoaEventDispatcher-specific
call: maybeCancelWaitForMoreEvents. Create a forwarding
function that is passed to QCFSocketNotifier.

Change-Id: Ibf9bd4745ba4f577a55f13d0cc00f5ae04447405
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-02-27 23:56:10 +01:00
Morten Johan Sørvig
fecc155408 iOS: Enable autorotate on startup.
The qobject_cast to QGuiAppplication will always
fail at startup since QGuiApplication is not ready
yet.

Return YES in that case. Allowed orientations can then
be controlled by setting "Supported Interface Orientations"
in Xcode or the Info.plist file.

Change-Id: Ifd86bbcedabc716e63563bbb7cb0c1c6833fd6c7
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-02-27 23:56:10 +01:00
Morten Johan Sørvig
c75bc5b532 iOS: Don't crash on landscape mode startup
fromPortraitToPrimary is called from the QIOSScreen
constructor. This is probably to early to call QGuiApplication
functions.

Change-Id: I882304fd641df13dc530491990245ba9ad495377
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-02-27 23:56:09 +01:00
Morten Johan Sørvig
11d50be6dd iOS: Set touch point position in screen coords.
Previously the position was set in window coordinates,
which would break for non-fullscreen windows.

Change-Id: Iefa2f590c6d62b09fc3e7fe60a882c1acd33e029
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-02-27 23:56:09 +01:00
Richard Moe Gustavsen
3eeb388b42 iOS: Skip flushing child windows in QIOSBackingStore
We skip flushing raster-based child windows, to avoid the extra cost
of copying from the parent FBO into the child FBO. Since the child
is already drawn inside the parent FBO, it will become visible when
flushing the parent. The only case we end up not supporting is if the
child window overlaps a sibling window that's draws using a separate
QOpenGLContext.

Change-Id: Ib10414f4494747e5fe67f84b06575fe16ffddf96
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-02-27 23:56:09 +01:00
Richard Moe Gustavsen
029029fa97 iOS: QIOSWindow::setParent()
Change-Id: I1a413d898d10b55a4d0653eae719f5bd909a01ec
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-02-27 23:56:08 +01:00