Commit Graph

5534 Commits

Author SHA1 Message Date
Bradley T. Hughes
4f246bceb5 Add a QPlatformPrinterSupportPlugin for Cocoa
This is used to create the actual QPrintEngine and to query the system
about printer information.

The QCocoaPrinterSupport actually lives in the Cocoa platform plugin,
so the QCocoaPrinterSupportPlugin uses the
createPlatformPrinterSupport() function in the QPlatformNativeInterface
(since the latter is a QObject). This is done to avoid adding a printing
related virtual function to QPlatformIntegration (since we have plans
to do a new printing API in the future).

Change-Id: I8bf9be668ff8ae1d07840e2af1e0846dc3299334
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-03-15 09:50:18 +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
Harald Fernengel
cad51669d8 Remove QtWidgets dependencies
Remove references to libQtOpenGL, and use QGuiApplication instead of
QApplication

Change-Id: If8f652223492cf758175a260c27b687f3af1c4ad
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-03-15 09:50:18 +01:00
Mark Brand
6d67ff4061 improve processing stylesheet properties
By scanning the properties in reverse order we don't have to save
properties in the list only to remove them later when the occur
again. It's also unnecessary to cache the values since they can
be easily plucked out of decls. Various other tests can be done
once per property instead of once per property occurence in decls.

Change-Id: I81cf60c59efaeed57fc9c12df98279d6cae116cd
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Rick Stockton <rickstockton@reno-computerhelp.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: John Brooks <john.brooks@dereferenced.net>
2012-03-15 09:50:18 +01:00
Gunnar Sletta
96fe217467 implement virtual destructor in QPlatformSurface
Change-Id: Iaadd9c3cd7c2e2022066ca859cbe1e912050c561
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-03-15 07:55:55 +01:00
Johannes Zellner
91752c43b8 Add new plugin metadata description and eglfs.json file
Change-Id: Ia594c18ba24e5fccf9fa59b9be6efcbeae00fad6
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-03-15 07:54:45 +01:00
Jason McDonald
07764b9c15 Verify expected warnings in QSettings autotest.
Use QTest::ignoreMessage() so that the warnings don't appear in the test
output and so that the test will fail if the warnings are not produced.

Change-Id: I418d78819fc9dbfd7da2a8b6c0a1ebfa967347e2
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-03-15 06:00:52 +01:00
Johannes Zellner
8a79e8b645 Remove unmaintained and broken VNC platform plugin
Change-Id: Ie0a07c3a6822870b095a20d997b63fb1635f20be
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Robert Griebl <robert.griebl@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-03-15 02:45:31 +01:00
Rohan McGovern
329469d5a1 headersclean: omit -Wcast-align also on MIPS
These issues are permitted to go unfixed for ARM and MIPS, for the time
being.

Change-Id: Ibdf33dc42e3de19ef20e9dc50f12f451ea6dbf23
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-03-15 00:50:47 +01:00
João Abecasis
0147ee75dd Use strlen to determine length of returned path
Change-Id: I8603f032bacdbb060be043f8720bd2b8c34d7ec6
Reviewed-by: David Faure <faure@kde.org>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-03-15 00:50:47 +01:00
Rohan McGovern
aac68052af Mark tst_qtimeline as insignificant on Windows
This test has been repeatedly unstable.

Task-number: QTBUG-24796
Change-Id: I603965c0189ad6da0cdf48527c4919c55e1918b4
Reviewed-by: Toby Tomkins <toby.tomkins@nokia.com>
2012-03-15 00:50:47 +01:00
Harald Fernengel
cdec3b376f Use the LSB linker to link
Fixes those cases where things would magically link, although they were
everything but LSB compliant.

Also fix a linker error, it seems we need to explicitly link to -lrt,
otherwise, the non-LSB compliant system lib will be taken into account.

Change-Id: I40e278f1c4d2e02084c4c5f15b9bbff8c5901d32
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-03-15 00:50:47 +01:00
Harald Fernengel
f282629224 LSB requires an explicit header include
Makes the plugin build in the LSB environment

Change-Id: Ic9a54b984f7fc1f393853ec01e32886f49a041c6
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-03-15 00:50:47 +01:00
Harald Fernengel
7794928ebb Compile in the LSB env
madvise is not part of the LSB, use posix_madvise instead

Change-Id: I661e8c5aece5a764a2a9032fcfab49241ab96dd8
Reviewed-by: Giuseppe D'Angelo <dangelog@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-03-15 00:50:47 +01:00
Casper van Donderen
6a1b5a88f6 Rename qdoc index file to qdoc-index.html
Change-Id: I74fcbce7d2929c31031db379d5e0b4b0d2f48800
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-03-15 00:50:47 +01:00
Casper van Donderen
e164353d85 Rename all occurences of qdoc3 to qdoc in the qdoc manual.
Change-Id: I84cfab5a7130aff9ed8a6eb568d78f29167e1ac8
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-03-15 00:50:47 +01:00
Martin Smith
33ea784aa8 qdoc3: Change suffix of DITA files to .dita
The files output by the DITA XML generator now
have .dita on the end instead of .xml, but the
ditamap files still use .ditamap .

Task-number:  Mzilla bug - 7291
Change-Id: Idb8b70c5d3f2ac2c4fdf195e385393f7ac68b7ba
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-03-15 00:50:47 +01:00
Harald Fernengel
44159a0b3b Build with the LSB build env
LSB doesn't define some functionality that we expect on Linux, so
fall back to the generic code.

Change-Id: I19e09908b9e9002140535f159ae0745d7ca80b70
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-03-15 00:50:47 +01:00
Jørgen Lind
d29d4c2afa Add a way to query for global handles in QPlatformNativeInterface
Change-Id: I4f29f40a3d6d4237f7da092bb34b8e596321b47d
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-03-15 00:50:47 +01:00
Martin Petersson
d1a5bb55d9 QHttpNetworkConnectionChannel: Warn if bytesAvailable and no reply
If there are no bytesAvailable and no reply then the channel
can be closed without any need for this warning.

Task-number: QTBUG-9315
Change-Id: Ifbb1f4732d3173a7807ac5bd0dc78fb5144faaf3
Reviewed-by: Markus Goetz <markus@woboq.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-03-15 00:50:47 +01:00
Mark Brand
9e87104295 QTableView: call model->submit() on row change
QTreeView already does this in the exact same way. It's necessary to
call submit() so edit strategy OnRowChange in QSqlTableModel will
work as expected.

Change-Id: Ib430143e8a71f3b0bcd842fcc772cc7ee4525f0a
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-03-15 00:50:47 +01:00
Mark Brand
273508205c QSqlTableModel bugfix: consider uncached rows submitted
Change-Id: I7ec0529b88fd8e3ae0cf8dadfcb5899579e52745
Reviewed-by: Honglei Zhang <honglei.zhang@nokia.com>
2012-03-15 00:50:47 +01:00
Friedemann Kleint
f7957f3993 Refactor theme plugin loading.
In the old implementation, the QPlatformIntegration was asked
for the theme first, so there was no way of overriding that
by a custom plugin. Also, there was a memory leak in case
the platform theme was actually created by a plugin.

QGuiApplication now asks the QPlatformIntegration for a list
of potential theme names first, tries to load them using
the plugin loader and finally invokes a factory method of
QPlatformIntegration in case that fails. The theme is now
owned by QGuiApplication.

In the XCB plugin, the environment variable DESKTOP_SESSION
is queried and appended to the list of themes, making it possible
to load plugins for other session types.

Change-Id: I1a4b4e061815bca16c65b23e591bb7563a3e44e2
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-03-15 00:50:47 +01:00
Jędrzej Nowacki
d295b9b9cf Simplify QMetaObject::newInstance
To create space on stack for a QObject pointer QVariant is not really
essential.

Change-Id: Iaf04a4f77005e33823f0e14bfdc6fe927cb59867
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
2012-03-14 23:04:57 +01:00
Jędrzej Nowacki
dfba10441e Reimplement QMetaType::create method.
The method was reimplemented using QMetaTypeSwitcher. That should
reduce maintenance costs, because types list is populated automatically
now.

Change-Id: I6637f7b928218ce60b2ec7436079a44089f0e00f
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-03-14 23:04:18 +01:00
Morten Johan Sorvig
d6311a0651 Cocoa: Improve basic window handling.
Refactor NSWindow creation into createNSWindow and
setNSWindow. This is necessary to support QMacNativeWidget
where we re-use an already created window.

Implement popup window handling. Make sure the window
is displayed correctly and closes when it should.

Take control over window activation in order to prevent
infinite loops involving the QtCreator "cmd-k" window.
Activation events are for now not sent to popup-type
windows.

There is now a different set of test failures: add
and remove some QEXPECT_FAILs.

Change-Id: I229761b59f90c9815b968eacc2cbc9c20cc5047e
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-03-14 23:02:12 +01:00
Jędrzej Nowacki
439a789745 Fix a memory leak in QMetaObject::connectSlotsByName function.
QObjectPrivate::Connection time life should be controlled by
QMetaObject::Connection handle.

Change-Id: Ie7fcd950082a3e6cebc29ecc0622007470914edb
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-03-14 18:45:28 +01:00
Friedemann Kleint
087d6c21b8 Fix compilation of the Windows accessibility code for MinGW.
Temporarily disable the code for MinGW.

Change-Id: I435305167e06af05b9a78901e6e3a35347c5c3f5
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-03-14 18:36:05 +01:00
Friedemann Kleint
259332e655 Add QGuiApplication::platformName.
Store the name of the QPA plugin as platformName.

Change-Id: Id87cab2a189743c0dd727c86080f7d4595a852bb
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-03-14 18:35:25 +01:00
Donald Carr
7f09f36873 Explicit use of null namespace breaks namespaced build
These changes are currently required to successfully build Qt when it is
configured with a namespace via the configure -qtnamespace argument

Change-Id: I9f3ab30579c16085c4d3d05705336b810466c331
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-03-14 18:31:31 +01:00
Sergio Martins
a3420b127e Remove unused forward declaration.
Change-Id: Ib207e0036226dd7131195244bf49bbfae142cd22
Reviewed-by: Sean Harmer <sh@theharmers.co.uk>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Harald Fernengel <harald.fernengel@nokia.com>
2012-03-14 18:24:38 +01:00
Giuseppe D'Angelo
f57190fb82 bootstrap: remove QtXml dependency
Only qdoc is now using QtXml classes, so just add them to qdoc.pro
and drop them from the bootstrap library.

Change-Id: I821839396141d1d7a2ada565a513aa46c54c9620
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-03-14 18:24:32 +01:00
Friedemann Kleint
c8ba6a49da QStyleSheetStyle: Fix icon properties.
Convert icon structure returned by the CSS parser.

Change-Id: I19b846c6cb0ec19045b6d07b3caa5ecfac75ca86
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-03-14 11:37:18 +01:00
Thorbjørn Lund Martsum
39e0d35fe9 QHeaderView - documentation update. Prefer hideSection over 0-resize.
There is a different behavior on 0 sections and hidden sections
e.g with scrollbars. Normally people want to use hideSection.

Change-Id: Id99de30ea46906bb4ef7720ed12d4ac9615c9743
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-03-14 11:37:18 +01:00
kb
fae4a2555a Disconnect slots from the old sourcemodel in QIdentityProxyModel
When setting a new sourcemodel QIdentityProxyModel::setSourceModel
tries to disconnect from signals belonging to the NEW model instead of
from the existing sourceModel(). QIdentityProxyModel thus receives
signals from both the old model(s) and the new model. This results in
ASSERTS triggering in various slots, for example:
"Q_ASSERT(topLeft.isValid() ? topLeft.model() == model : true);"
in QIdentityProxyModelPrivate::_q_sourceDataChanged.

Change-Id: Ic6f65a9ee10981d00206335f2edef78272fadc1a
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-03-14 11:37:18 +01:00
Sergio Martins
62dfed9a7f Use QRect::united(), QRect::unite() is deprecated.
Change-Id: Ia7aac74596c2f251c96fecf157d2aa4a935cf602
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-03-14 11:37:18 +01:00
Thorbjørn Lund Martsum
b64426248d QHeaderView - renaming functions in Qt5
This patch renames the functions in Qt5 according to the
notes. It also renames resizeMode to be consistent.

The old functions are both marked with both QT_DEPRECATED
and '### Qt 6 - remove'

All usage of the function within the qtbase are also
changed to use the new functions.

Change-Id: I9e05fa41d232e9ca43b945fcc949987017f3aedd
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-03-14 11:37:18 +01:00
Harald Fernengel
7220d7f365 Fix LSB build
Fix compliation in LSB by removing legacy calls and adding an explicit
header.

Change-Id: I13a73211c07457195b5d5aad0854643da1e25f9b
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
2012-03-14 11:37:18 +01:00
Thorbjørn Lund Martsum
8c3e5700a1 Add two (forgotten) since 5.0
SHA for QWidget::hasHeightForWidth change:
466107107a

SHA for QAbstractItemDelegate::destoryeditor change
15f253a46a

Change-Id: Ic7e38c15f62eef22ab95414fad6e7b6c9c7d4f59
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-03-14 11:37:18 +01:00
Pierre Rossi
f254c5c8bf Use the lazily-queried families for all QPA multi font engines.
This is the approach introduced together with the  WebKit "backdoor"
that lets us use QRawFont with QTextLayout. We could use it all
over the place and share more code.

Change-Id: Ie1963679755f37ba9204d67554a163f1d1115604
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-03-14 11:37:18 +01:00
Giuseppe D'Angelo
8b6338be4a QRegExp: remove docs about RegExp2 being default in Qt5
Change-Id: I37f4086d53ce6f2d6774ab204808d0d678a68349
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2012-03-14 11:37:18 +01:00
sh kim
ba061da5f0 Fix build error when QT_NO_FILESYSTEMWATCHER is set
QPollingFileSystemWatcherEngine inherits from QFileSystemWatcherEngine.
This class should be covered by !QT_NO_FILESYSTEMWATCHER.

Change-Id: I053a873018cf3c9c443435c9b3f44240b0965c24
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2012-03-14 11:37:18 +01:00
jian liang
255079124a build fix for -no-freetype in Windows
Don't use QWindowsFontDatabaseFT::systemDefaultFont() and
QWindowsFontDatabaseFT::LOGFONT_to_QFont() in qwindowsfontdatabase.cpp and
qwindowstheme.cpp because it is not available when building with
-no-freetype.

Change-Id: I11075475ff435c55b0c641540f95a4d3861b79da
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-03-14 09:45:07 +01:00
Samuel Rødal
9a68dd0156 Made sure first created xcb window still receives focus.
Change 50ca45f059 caused mapped windows to not receive focus by
default. The _NET_WM_USER_TIME spec says that if the user time is set to
0 (or CurrentTime), the window will not be initially focused. Thus, if
the connection time has not yet been set, we skip this part to restore
the old behavior.

Change-Id: I19de3602c78629ad2bc65f5e1976313949c82c4c
Reviewed-by: Jan Arne Petersen <jpetersen@openismus.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-03-14 09:45:07 +01:00
Jędrzej Nowacki
22494ea8e8 Unify QMetaType::TypeFlags detection.
Duplicated code was removed. As an side effect:
- one runtime flag check was replaced by a compile time check.
- is enum flag can be used together with built-in types.

Change-Id: I54173e7b07ce7e487d3cc21ba24dcccd28b5d049
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-03-14 09:45:07 +01:00
Giuseppe D'Angelo
e92ceba13d Add bin/qdoc to .gitignore
Changing .gitignore to match qdoc* instead of qdoc3*.

Change-Id: I94e41e6e4371c40e0dbc33639ca02523986149b0
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-03-14 09:45:07 +01:00
Johannes Zellner
3a47c13fa6 remove obsolete qudevhelper and adopt mouse and touch plugins
The QUDevHelper class is now replaced by QUDeviceHelper class.
All evdev input plugins are using the new udev helper now to enable
hotplugin for keyboard and mouse input.

EvdevTouch plugin still only uses the first detected device by udev,
this cannot be tested on my side, due to the lack of multiple touch input devices.

Change-Id: I01a4cfe1a80000bfb27c67a2f53faf560906b73c
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
2012-03-14 09:45:07 +01:00
Jason McDonald
f4dfb55243 Uncomment disabled code in QResourceEngine autotest.
Resource files are expected to be readable.

Change-Id: Ife2b624e69b58e2fb996bc3e210a6e6c5c6852fe
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-03-14 07:51:45 +01:00
Jason McDonald
16045184e3 Tidy the QSettings autotest.
- remove unnecessary includes
- remove undefined private functions
- remove commented-out test function
- fix indentation
- clarify why part of tst_QSettings::setValue() is commented-out

Change-Id: I09e1a33896536e702f7ba65f266415536b4f9e0b
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-03-14 07:51:45 +01:00
Jason McDonald
360e5e0c08 Remove commented code from qtconcurrentmap autotest.
The removed code was already commented out when the test was added to
the Qt repository and does not compile when uncommented as it calls
non-existant overloads of QtConcurrent::FunctionWrapper1::operator().

Change-Id: I5a02efae4b89e2815b077474aa7cd0192dcb2730
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-03-14 07:51:45 +01:00