Commit Graph

568 Commits (7ff5fb610c665d8aa5eb5be431e96540caeb75ef)

Author SHA1 Message Date
Jason McDonald d6ad749e8f Remove Qt 5 to-do comments from qgraphicslayoutitem.h.
Neither of these comments will be actioned for Qt 5: the first because
would be source-incompatible with Qt 4, the second becuase it would be
a significant behavioural change.

Task-number: QTBUG-25090
Change-Id: I5f8f7cce3007c3188b2f0184138fa8e55a165654
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-04-11 19:14:43 +02:00
Friedemann Kleint ce84af7c9b Propagate window state changes to QWidget.
Apply the state in QWidgetWindow and send an event to
the widget unless the code is triggered by
QWidget::setWindowState().

Change-Id: Ibf2f4e730384e41636841b9216eecfdff35b7bcb
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-04-11 19:14:43 +02:00
Bradley T. Hughes 9839474e19 QWidget: allow modal top-levels to have WA_DontShowOnScreen
If a modal top-level widget has WA_DontShowOnScreen set, we need to call
QGuiApplicationPrivate::showModalWindow() and hideModalWindow()
ourselves, since we will not be calling QWindow::setVisible() (which
would normally do the call for us).

Change-Id: I1b22dd177c5956a2290f3ee031c95ab50d88f153
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-04-11 16:18:15 +02:00
Bradley T. Hughes ad1bd1563f Implement window modality in QtGui
QWindow already has windowModality() and setWindowModality() as part of
its API from commit 516f4e283b. Platform
plugins can use this already to setup modality hints on windows that
they create, but it's not enough to implement modality fully.

QGuiApplication gets a modalWindow() static method, which is similar to
QApplication::activeModalWidget() in that it returns the last modal
window to be shown.

The modal window "stack" moves from QApplicationPrivate to
QGuiApplicationPrivate. The enterModal*() and leaveModal*() functions in
QApplicationPrivate are removed and replaced by
QGuiApplicationPrivate::showModalWindow() and hideModalWindow(), which
are called by QWindow::setVisible() just before calling
QPlatformWindow::setVisible().

The virtual QGuiApplicationPrivate::isWindowBlocked() will tell us if a
window is blocked by a modal window (and tell which modal window for any
interested callers). The default implementation works on the QWindow
level. QApplicationPrivate reimplements isWindowBlocked() and adds popup
and WA_GroupLeader support.

QGuiApplication uses the state set from isWindowBlocked() to block
user-input events: mouse press, mouse move, mouse release, wheel, key
presses, key releases, enter/leave events, close events, and touch
begin, update, and end events.

Note also that the modality helper functions in QtWidgets and
QApplicationPrivate are left in place and working as they always have.
The behavior of QWidget in the presence of modal windows/dialogs should
not change.

Change-Id: I2c89e6026d40160387787a6e009ae1fdc12dfd69
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-04-11 16:17:59 +02:00
Qt4iOS 62cda62c0c Modified project files to be iOS compatible.
Removed some MacOS source code files from iOS build. Use unix standard
paths for now (iOS-specific implementation will come later).

Change-Id: I8b2731b431b3a379a1ec4ec07d227e886209e3e9
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-04-11 15:42:14 +02:00
Thorbjørn Lund Martsum e8b098b636 QHeaderView - remove some (nearly) unused span functions
This removes a couple of functions. Two of them are unused and the
last one has its (now) very simple implementation inlined in the
only caller. The last function was called something with spans and
we would like to get away from using the word 'span' since we no
longer uses spans.

Change-Id: Icef95166289d52bd958400cba70daceb6fa75913
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-04-11 01:42:12 +02:00
Thorbjørn Lund Martsum 699f2424eb QHeaderView - rename many spans classes and variables
In (SHA) b800d8b94a the span model
was replaced with a plain section model. The code however still has
variables and classes called someting with spans which would be
confusing for possible new readers of the code.

This patch cleans up most of it. It only renames classes,functions
and variables (and not any semantics or the public API).

Change-Id: I6ceb068c7317223f0d8e37f8032197f518d0174c
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-04-11 01:42:12 +02:00
José Millán Soto 784076fccb Made qt_accStripAmp handle "&&"
Changed qt_accStripAmp implementation to handle texts which contains
pairs of ampersands representing a single ampersand.

In order to do that, a new static function called qt_accAmpIndex was
created.
This function is based on the code of qt_accHotKey, which was changed
to use qt_accAmpIndex.

Change-Id: Idcc5d07581d7fb3251c30399b189740ca8071104
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
(cherry picked from commit f864f8f79b88bbc3cc9007d2a92b08ca4b5cb871)
2012-04-11 01:42:12 +02:00
Jason McDonald 880cbf6027 Bump some Qt 5 to-do's to Qt 6.
Source-incompatible changes are no longer desirable for Qt 5, so these
items must wait until at least Qt 6.

Task-number: QTBUG-23524
Change-Id: I0b9ae5f6f3a792e0169a4b0d3aefbdcb744acd2f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-04-10 22:47:37 +02:00
Friedemann Kleint b1a02ce010 Windows Vista: Fix painting of item view items.
The old QWidget-based treeViewHelper() function silently failed
since the widget no longer had a HWND.
Use a native Window handle instead.

Change-Id: I6902677c565bb165f29b9d1c6fd0d28d9870d567
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-04-04 18:10:11 +02:00
Friedemann Kleint 58b8ea7161 Windows: Replace QString keys of XP themes by an enumeration.
Change-Id: I5323e9ed5bc3fe73f278d167acae6fa744b0a299
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-04-04 18:10:11 +02:00
Jason McDonald eb04862920 Remove duplicate non-const methods from QProgressBar.
Task-number: QTBUG-23524
Change-Id: I80f7eecb9f892fcd026b3c3f9159958fc99cfe23
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-04-03 21:02:32 +02:00
Friedemann Kleint fd4f165eb7 Fix warnings about unused variables.
Fix MSVC warnings about unused q, d where only static functions
are used.

Change-Id: I239d6fc3c851b0a62434cb09fc0e1967f2e6d031
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-04-03 21:02:32 +02:00
Jason McDonald 10b39adf34 Remove redundant virtual method reimplementations from QToolBar.
Task-number: QTBUG-23524
Change-Id: Ib682d2e2c2ea1078524e2c90cdb10bfec113d259
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-04-02 16:56:48 +02:00
Pekka Vuorela 1f5e058f79 Testability for password mask delay
Unit test to override mask delay value so running it is not dependent
on platform style hint.

Change-Id: Ic5cc12d32cf97e64729b3af54250bdc05c0c95ad
Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com>
2012-04-01 20:13:51 +02:00
Friedemann Kleint c039ad21b5 Fix inputMask accessor of QLineControl.
Do not append blank character if it is the default.

Task-number: QTBUG-20834
Change-Id: I17f6ac4058f295f25ff49f33c41bd9ee40b75811
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-03-31 21:27:19 +02:00
Debao Zhang 1b29481f3b Documentation cleanup
They are comments of Qt3 support members which have been removed already.

Change-Id: I4b3dfaac1e5e1c3c13b83e41d0505dd16a4b6a8e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-03-31 08:43:34 +02:00
Marcel Krems 131a5ab543 Fix QWheelEvent::angleDelta() returning QPoint().
Change-Id: I29460bd5a3f485dcd460edc52239d748e7faf6e0
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-03-30 12:21:18 +02:00
Morten Sorvig 4bafdc940b Cocoa: Fix combo box flicker on show.
Replace Q_WS_MAC -> Q_OS_MAC, restore Qt 4 behavior
that does not disable updates on first show.

Change-Id: Ibc7f58add2a44c95879bd3c4772cea36dd7905fa
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-03-30 12:20:39 +02:00
Andy Shaw 3ec88b355b Plug memory leak when gestures are grabbed but never triggered
When a gesture is grabbed by QAbstractScrollArea but never triggered
then the deletion of the QAbstractScrollArea would mean that the gesture
created for it would not be deleted.  This ensures that it always
deletes the gestures waiting to be deleted even if no gesture event is
triggered

Task-number: QTBUG-25011

Change-Id: I36118b82baaa60ac4e014896159060e1af76b2d2
Reviewed-by: Denis Dzyubenko <denis.dzyubenko@nokia.com>
2012-03-30 07:27:19 +02:00
hjk 6d13e9f295 Use "qt-project.org" instead of "trolltech" in the resource system
Task-number: QTBUG-23272

Change-Id: Idcdb9620910577b3c0fc9a792a0446665bd2eab6
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-03-28 07:50:06 +02:00
Stephen Kelly 1ec383d01b Remove Qt5 TODO to change QListView semantics.
The comment was written before Qt5 was planned, so it might have
seemed like a good idea to change the semantic with Qt 5.0.

However, as Qt5 is intended to be close to Qt4 in behaviour, this
isn't really a 5.0 change. It can be done any time, but only
optionally and while retaining backwards compatibility.

Change-Id: I8c5c497d13a7ec6574e1cdb6bd411e8b28db876b
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2012-03-28 00:51:32 +02:00
Orgad Shaneh a4d0c56a59 Fix keyboard navigation order for buttons with RTL layout
On RTL layout, right key should move to previous button, and left key should
move to next button.

Task-number: QTBUG-15790
Change-Id: If0753f9082b3a3624b95276840f5f3799b5e14bf
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-03-27 17:12:47 +02:00
Pekka Vuorela 0ee1b4a1de Reverted use of tentative commit use in QWidget editors
Feature to be reimplemented simplified. Cases when input method
needs to be reset with possibility to commit use
QInputMethod::commit() again.

Change-Id: Ibfe7aecc0799e7a76c7ac4f5d860971cfe6e97ca
Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com>
2012-03-27 12:51:38 +02:00
Pekka Vuorela bc0b37d6b6 Password editor mask delay stylable by platform plugin
Replaced hard coding as QT_GUI_PASSWORD_ECHO_DELAY with
a style hint.

Change-Id: I0b78ebad723dbe19d9b9496583203e31545874e2
Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-03-26 11:41:07 +02:00
Bradley T. Hughes b2363a935c Fix QGuiApplication::keyboardModifiers()
Make sure that the keybaord modifiers are maintained properly when
handling window system events.

Change-Id: Ie75cbe5eb509c29e3d2291694f2de509fbf3098a
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-03-26 08:47:48 +02:00
Frederik Gladhorn cea1a6bcd5 Make sure windows send accessibility activated updates.
Both QWindow and QWidgetWindow should update with the
active state signal.

Change-Id: I0219f803aa0fb109765f0faa0aedb120c2a439f0
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-03-24 17:07:52 +01:00
Frederik Gladhorn f195a8e2b6 Added QAccessibleGroupBox
Added a new accessible interface for QGroupBox, as QAccessibleDisplay
is not good enough when the QGroupBox is checkable.
AccessibleFactory was modified to return a QAccessibleGroupBox when
the accessible interface of a QGroupBox is requested.

Created tst_QAccessibility::groupBoxTest

Port to Qt5 of the patch by José Millán Soto <fid@gpul.org>

Change-Id: I6c23dcf5562b3ea269b04102e78463b65827188a
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
(cherry picked from commit c03ceb203c65d9e3485fad848bfc0c4b6ee3e9aa)
2012-03-24 15:10:00 +01:00
Friedemann Kleint b895dfd641 Fix warnings in qtbase.
Change-Id: I981e08872440e35eb9bfad32b20543cfce8439c9
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-03-24 02:46:33 +01:00
Friedemann Kleint 3b69fa6bc7 Implement QSystemTrayIcon for X11.
Reimplement using a QWidget. Use X

Change-Id: I7f8326598fb7210d59bc1d682cdada4526d5b6dd
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-03-23 11:45:25 +01:00
Pekka Vuorela 337eedb316 Fixed QLineEdit to emit selectionChanged
Was not emitted when removed by input method event.

Change-Id: Ia2c0dcb09d42826188d4612f4c1705a41874a31d
Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
2012-03-23 00:41:38 +01:00
Donald Carr 82c974f753 Deprecate QApplication::setGraphicsSystem
The QApplication::setGraphicsSystem() call is entirely vestigial after the
QPA rearchitecting of Qt. Deprecate it to give people a heads up that their
original intent no longer has any impact on their application.

Change-Id: I21838431db1057f7f7858b4a434ae0eebd2317de
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-03-22 21:03:13 +01:00
Joerg Bornemann 1a414cbc26 Fix QSysInfo::WindowsVersion checking (QSysInfo::WV_NT_based is a mask)
Manual merge of the original fix 1ef309e9 in the Qt 4.8 repo.

Task-number: QTBUG-20480
Change-Id: Id08500c2dd16965af3942e65cff1f4afa24180b0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-03-22 16:13:21 +01:00
Pekka Vuorela 7e90df7bf5 FocusAboutToChange event to be send before focus changes
Focus change happen as: FocusAboutToChange event -> focus change
-> FocusOut event -> FocusIn event.

Input method need to have focus when calling commit(). Notification
on focus about to be lost allows QWindow implementations to commit in
time.

Also changes QWidget documentation to match code reality.

Change-Id: I17a8a374a33dd700909f79e370b42348869261a6
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-03-22 16:13:21 +01:00
Frederik Gladhorn 3ed12e4b26 Remove Q_WS_X11
The define is removed and only adds includes.

Change-Id: Id6cc32aa22536f78bb5de10cb779a3168e79441a
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
2012-03-21 15:51:42 +01:00
Pekka Vuorela a80d2c73c1 Fix QWidgetTextController issue when used with QtQuick1 TextEdit
Calling QInputMethod::invokeAction() was not checking for proper event
type and was requiring context widget unnecessarily.
Fixes some parts of QTBUG-24035

Change-Id: I51fe9ed02a018ced36319eb672a088503649b275
Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
2012-03-21 12:33:49 +01:00
Thorbjørn Lund Martsum fcc01e6c37 QHeaderView - minor fix to setDefaultSectionSize
This fixes a situation where we (wrongly) assume that
a section with size 0 is hidden. However a hidden
section should be one that we have called hideSection
(or setSectionHidden) on.

Change-Id: Ic14eded2666022f27434dc55927323a74910549c
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-03-20 11:44:09 +01:00
Thorbjørn Lund Martsum 07ff7fe52c QHeaderView - minor fix to createSectionSpan
I am unsure if this is only theoretic - but if/when we have added
sections here - we must ensure that we recalculate startpositions.

Change-Id: I70bf55209f1a1a885cb49748b65218879bc68776
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-03-20 11:44:09 +01:00
Olivier Goffart c4ac14fae1 Fix KDE palette.
In QKdeTheme We want to load every color.
Else, only the first color is loaded, and the rest of the palette is
just black making the applications basicaly not usable.

But KDE only put in its config files the colors that are different from
the default colors.  This is the reason why we need to resolve against
the style's default palette.

We need to make sure the resolve_mask is 0 for an empty palette, even
before the application palette is set. This was not required in Qt4
because the system palette was initialized differently.

I realize this will only work with QApplication (and not with a single
QGuiApplication) but it was not working before either.

Change-Id: Ifb3c2c1358ef6d83a1ca5aa8fac3d2d4ea712b94
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-03-20 09:32:34 +01:00
Frederik Gladhorn c2e8db5841 Remove QAccessibleEvent child parameter.
This makes the api cleaner and generally the child should not be there.
It is only sometimes more convenient not to create a QAccessibleInterface
instance, so the functionallity is kept.

Change-Id: I26018a6d3e0549f4d79856775b4167c5660e229d
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-03-19 23:00:10 +01:00
Frederik Gladhorn 477c43260e Accessibility: add text update events
Change-Id: Iece9d100b3f5a379d7d8e29dea67a10d0c918c06
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-03-19 18:07:30 +01:00
Debao Zhang 478658fd41 QtWidgets: cleanup several Q3* items
Change-Id: I0812cdd74f19b4c98336724ea722807d4c68cf7d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-03-19 18:02:47 +01:00
Debao Zhang ab84aa53af QWidget: update documents of mouseDoubleClickEvent()
Double click behavior has been changed.
see SHA: b371f3f943

Change-Id: Ibd921d01fb25b8c31f75105a4ff63c42bf00c335
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
2012-03-19 17:37:02 +01:00
Bradley T. Hughes 7c7e47493e Replace Q_WS_MAC with Q_OS_MAC in qshortcut.cpp
This re-enables shortcut context matching for menubar actions.

Change-Id: I0d9f2b3d4316a4611afe96eb1a2cf29cb9e91851
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-03-17 07:06:44 +01:00
Arnt Witteveen 437da962c2 Fix bug showing folder icons for files
Fix an issue where the cache was updated with the folder icon,
even though this is never used from the cache. This caused
files to sometimes be shown with a folder icon: If a folder
has an extension (e.g. a folder named 'folder.ext'), this
means the folder icon will be written to the cache for the
'ext' extension, and from that point on all .ext files will
be shown with the folder icon.

The fix is to not save an icon in the cache for those cases
where it will not be used from the cache anyway, by using the
same condition for updating the cache as for reading it (which
is in line 8 of the same function).

Change-Id: I9ce8fca0718b2b62b9390fa64989acd54952a88e
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-03-17 01:52:17 +01:00
Frederik Gladhorn e2b6bebbed Remove Q_WS_X11
The define is removed and only added an include.

Change-Id: I85090023cb9eb33f83ccc7fe2ab69556b4ff89fb
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2012-03-15 15:29:17 +01:00
Jonathan Liu e3726609d6 QSystemTrayIcon/Win: Fix compilation on MinGW
Define NOTIFYICON_VERSION_4 if it is not already defined.

Change-Id: Ic432cbebf18f8b1e8b4727659dcedd7063e126ee
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-03-15 15:21:10 +01:00
Jerome Leclanche 006a49b19a Fix compiling with --no-accessibility
Adds missing QT_NO_ACCESSIBILITY checks where required to build
without accessibility support.

Change-Id: Id98ecdcb9b351289b21dc2d382100d0b63857db9
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-03-15 14:51:47 +01:00
Frederik Gladhorn a17907829e Use pointers for QAccessibleEvent.
At least on mac g++ badly wants to copy the event and
cannot use the copy ctor. The sensible solution is thus
to use pointers. This is in line with QCoreApplication::sendEvent.

Change-Id: Icb58852be351ab04ffa17069989d7a07d4b377da
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-03-15 11:40:50 +01:00
Bradley T. Hughes 7e3c632e96 Port QMacPrintEngine and QCoreGraphicsPaintEngine from Qt 4 to Qt 5
Copy qprintengine_mac_p.h, qprintengine_mac.mm, qpaintengine_mac_p.h,
and qpaintengine_mac.cpp (as qpaintengine_mac.mm) from src/gui/painting/
in the 4.8 branch of http://git.gitorious.org/qt/qt.git at commit
e6bd33d4aef0e4538d7918e7ab130624c911b553.

The following changes are necessary to port these files to the Qt 5 API:

- The copyright notice on these files has been updated to match the
  header.LGPL template.

- Fix #includes for qprintengine_mac* and qpaintengine_mac*, as some
  headers have moved in Qt 5.

- Remove extern forward declarations for functions that no longer exist.

- Remove friend declarations for classes/functions that are not part of
  the Cocoa platform plugin.

- Remove QT_MAC_USE_COCOA blocks. Qt is always using Cocoa now, there
  is no need to keep the non-Cocoa code paths anymore. The
  QMacPrintEngine::shouldSuppressStatus() method was also removed,
  since it is no longer used.

- Do not use Qt::UniteClip, it was removed in commit
  01b72952c3

- Use QCocoaAutoReleasePool in qprintengine_mac.mm

- Use QPlatformPrintSupport::convert*() functions in QMacPrintEngine,
  since we cannot use non-exported functions from QtPrintSupport in the
  Cocoa plugin.

- Use qt_mac_image_to_cg_image() to convert QPixmap to CGImageRef. First
  convert QPixmap to QImage (cheap, since the Cocoa platform plugin
  uses QRasterPlatformPixmap), and then convert the QImage to CFImageRef
  using the existing helper function.

- Copy qt_mac_cg_context() to the Cocoa platform plugin from
  qmacstyle_mac.mm, adding a note at each location about the
  duplication.

- Add qt_mac_QRegionToHIMutableShape() helper. Adapt the Qt 4.x code for
  QRegion::toHIMutableShape(), and use this in QCoreGraphicsPaintEngine.

- Add qt_mac_drawCGImage() and qt_mac_get_scalefactor() helper. These
  functions are copied directly from the 4.8 branch of
  http://git.gitorious.org/qt/qt.git at the same revision shown above.

- Add qt_mac_create_imagemask() helper in qpaintengine_mac.cpp.  This
  helper is based on the function with the same name from the 4.8
  branch of http://git.gitorious.org/qt/qt.git at the same revision
  shown above. The correctness of the implementation has not yet been
  verified.

Since these files use the QPrinter API from QtPrintSupport, the Cocoa
plugin now needs to link to that library as well.

Change-Id: I90b9bbe201327489ef9e1b3294e68e91ddda27bd
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-03-15 09:50:18 +01:00