Jędrzej Nowacki [Fri, 16 Mar 2012 16:28:47 +0000 (17:28 +0100)]
Crash fix in ~QVariant
QVariant handlers can not be unregistered. We are not able to guarantee
that such operation is safe and we do not want to.
Change-Id: Id9a12e6a8c750110e4a08eab1de3e07e5c408675
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Thorbjørn Lund Martsum [Tue, 20 Mar 2012 07:47:57 +0000 (08:47 +0100)]
QCoreApplication - add return type bool on install/remove translator
This add a bool as return value on QCoreApplication::installTranslator
and QCoreApplication::removeTranslator. It returns true on success.
Before it was very clumsy to detected this. It was needed to react
on the signal and mark a success - just to provide an error message
on failure.
This is 99.99% source compatible - only if someone grabs a function
pointer to this - it will break the code - but it seems to be very
theoretic.
Change-Id: I947fcee1352f530e559bb177a90c10d84eed1aec
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Jędrzej Nowacki [Fri, 16 Mar 2012 15:32:38 +0000 (16:32 +0100)]
Fix qDebug stream for an invalid QVariant.
This patch changes invalid QVariant qDebug stream value from
"QVariant(, QVariant::Invalid)" to "QVariant(Invalid)"
New tests were added.
Change-Id: Ia57d4fc2d775cc9fce28e03eba402c2173845b35
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
João Abecasis [Thu, 15 Mar 2012 10:37:02 +0000 (11:37 +0100)]
Use clang's builtin is_enum, if available
Change-Id: Ie0c32b8fd6d3bb02cf6c6b626bb31d57cdcdf497
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Glenn Watson <glenn.watson@nokia.com>
Kent Hansen [Tue, 20 Mar 2012 18:45:00 +0000 (19:45 +0100)]
Use the new QMetaMethod API in QtDBus
Use QMetaMethod::name() instead of parsing the signature.
Use QMetaMethod::returnType() instead of resolving the type id
via the type name.
Change-Id: If5d0198c5f1329fd9d9340acd58bd4a36933d960
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Kent Hansen [Thu, 15 Mar 2012 20:30:55 +0000 (21:30 +0100)]
Add QtJson types to meta-type system
Make QJsonValue, QJsonObject, QJsonArray and QJsonDocument
first-class meta-types.
This is an enabler for a lightweight integration with QML.
Change-Id: I4725efdd2746cf97fd26d3632a99e8eee849f834
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Stephen Kelly [Tue, 20 Mar 2012 18:20:33 +0000 (19:20 +0100)]
Fix cross-compilation of qdbus bootstrapped tools.
Change-Id: Ib40fc1c1743ff23a259cabbf26d91956398c3239
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Stephen Kelly [Mon, 19 Mar 2012 11:16:12 +0000 (12:16 +0100)]
Reserve a virtual method for use with a feature in Qt 5.1.
The view will query the delegate for roles which are relevant to
the particular delegate. For unrelated roles, the delegate
will not have to repaint when the data changes.
Change-Id: If8f1ba4c2bce7dbcf70de344b984aea1deca0edd
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
Reviewed-by: David Faure <faure@kde.org>
Stephen Kelly [Tue, 20 Mar 2012 18:16:22 +0000 (19:16 +0100)]
Forward declare QMetaObject as a struct.
Fixes compiler warnings with clang and others.
Change-Id: I726d4c10644287bb642c8b5dd28172afe8c4d1ea
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Stephen Kelly [Mon, 19 Mar 2012 11:21:11 +0000 (12:21 +0100)]
Reserve the virtual viewportSizeHint method in QAbstractScrollArea.
The virtual method will be used to implement
the patch at http://codereview.qt-project.org/#change,11763
Change-Id: I6d6ffbb8aaaba73e5c769f3435cc60323c77b75a
Reviewed-by: Christoph Schleifenbaum <christoph.schleifenbaum@kdab.com>
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Stephen Kelly [Mon, 19 Mar 2012 12:03:41 +0000 (13:03 +0100)]
Add API and reserve space for storing the QMetaObject with the QMetaType.
In Qt 5.1, http://codereview.qt-project.org/#change,19113 can be rebased
on top of this change in a compatible way.
Change-Id: If7ac0481a3b2a874528de4ef6ea7535501a4ac71
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Stephen Kelly [Tue, 20 Mar 2012 10:30:53 +0000 (11:30 +0100)]
Generate a forwarding header for QStringBuilder.
This should fix the declarative build.
Change-Id: I32dd5b7783995759f27d016c801ae6dfb3d44733
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Debao Zhang [Sat, 17 Mar 2012 10:18:12 +0000 (03:18 -0700)]
QtWidgets: Cleanup Q3* items
Clear all the Q3* items away,
expect QStyle::SH_Q3ListViewExpand_SelectMouseType which is still used
by QTreeView. So simply removed Q3 from its name.
Change-Id: Ia79f0283137b6751ba68791ae55df1d8bd7ea74a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Stephen Kelly [Wed, 29 Feb 2012 11:25:01 +0000 (12:25 +0100)]
Add a base class with specialization to QStringBuilder.
This will allow separation of API that should work with QString
results, and API that should work with QByteArray results.
Change-Id: I5be398188abd421bb5056cea2658ea85fc03aa4f
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Stephen Kelly [Thu, 15 Mar 2012 14:32:36 +0000 (15:32 +0100)]
Fix up the QEventLoopLocker documentation.
Change-Id: If5bf8c2703f094023a614b3efcbd8489560694d9
Reviewed-by: Richard J. Moore <rich@kde.org>
Jędrzej Nowacki [Fri, 16 Mar 2012 14:15:08 +0000 (15:15 +0100)]
Remove a dead code from QVariant.
Remove some "safety" code, but essentially it was a dead code.
Change-Id: Ie19c29d4cce8b72be5dbaca53c03adc63e8c3dc5
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
Kent Hansen [Mon, 19 Mar 2012 09:03:48 +0000 (10:03 +0100)]
Merge master into api_changes
Conflicts:
src/corelib/tools/qvector.h
tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp
Change-Id: I877256e95f3788e617437f4e9661a88047f38cd6
Lincoln Ramsay [Mon, 19 Mar 2012 03:32:31 +0000 (13:32 +1000)]
Set RPATH_FLAGS on Mac too
Without this, QMAKE_RPATHDIR is empty and qt_module.prf's logic to turn
on absolute_library_soname fails, causing some modules to build without
absolute paths (eg. qtjsbackend's QtV8 framework).
Change-Id: If03136ca60a5d8a96a589e2d1034e5884fd6a1ac
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
Kurt Korbatits [Mon, 12 Mar 2012 04:24:02 +0000 (14:24 +1000)]
Fixed benchmarks to work from install directory
- Changed benchmarks to use TESTDATA and QFINDTESTDATA
- Fixed up targets all use tst_bench_ syntax
Change-Id: I5c2936702e248478f5df225ce38893158ee22d7f
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Frederik Gladhorn [Mon, 12 Mar 2012 14:36:31 +0000 (15:36 +0100)]
Make copy and assign private for QAccessibleEvent.
Also make the handling of events in the test pointer
based since mac-g++ doesn't seem to like const
references the way they were before.
Change-Id: I7fe39978d4729b8e586be30978b74aa51ca7cfe6
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
Kent Hansen [Thu, 15 Mar 2012 20:05:01 +0000 (21:05 +0100)]
Add autotests for QMetaType::load() and save()
These were not covered at all by tst_qmetatype.
Change-Id: Ic957470ac78b2c15fe449efe17e1f178a41c3690
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
Kent Hansen [Fri, 16 Mar 2012 14:05:48 +0000 (15:05 +0100)]
Ensure that moc doesn't resolve the qreal meta-type id
When cross-compiling, the qreal type can be different on the target
than on the host (e.g. double on host, and float on target). moc is
a host binary, so it shouldn't try to resolve the type id of qreal,
but instead always output "QMetaType::QReal" (which is just an alias
for QMetaType::Double or QMetaType::Float, depending on the target).
This was a regression introduced in commit
f95181c7bb340744a0ce172e8c5a8fcdc2543297 (new meta-object format);
the special-casing for qreal should have been kept.
Moved the code that generates the type info into its own function so
the logic is shared by generateFunctions() and generateProperties().
Change-Id: I2b76cf063a08ba95a7e6033549452355f67283ac
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
Girish Ramakrishnan [Sat, 17 Mar 2012 17:49:36 +0000 (10:49 -0700)]
configure: Fix iconv detection
Makes no sense to disable iconv based on QPA. This change will
make iconv as the "system" codec i.e the codec used for 8-bit
locale dependent conversions.
Change-Id: I4469e9c226b2411ac1338f61dabb84ec9c2ec603
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Bradley T. Hughes [Fri, 16 Mar 2012 11:32:37 +0000 (12:32 +0100)]
Cocoa: Fix function key handling
Cocoa sends function keys (e.g. arrow keys, backspace, F1-F35, etc.) as
Unicode characters in the U+F700-U+F8FF range. Do not deliver text for
events that contain a single control character (to match Qt 4 behavior).
With this fix, keyboard navigation works again in Qt Creator when
running against Qt 5.
Change-Id: I5854bf713c2855dbc5ee491bace2f9dc1acd9426
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Bradley T. Hughes [Wed, 14 Mar 2012 14:06:39 +0000 (15:06 +0100)]
Fix shortcut handling in the Cocoa plugin
KeyPress events could be shortcuts or deadkeys, but we don't know which
until we try. Shortcuts take precedence over deadkeys, so send them
through QWindowSystemInterface::tryHandleSynchronousShortcutEvent()
before passing it onto the input method.
Change-Id: I479a3a7ff1c35e7c5692e8a17fb2173576dd0a29
Reviewed-by: Tasuku Suzuki <tasuku.suzuki@nokia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Stephen Kelly [Wed, 14 Mar 2012 13:09:27 +0000 (14:09 +0100)]
Move CMake macros and tests for dbus tools from qttools.
Change-Id: I9d589a2d33eb8fcac63443565bb3e2319be3e04f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Stephen Kelly [Thu, 8 Mar 2012 22:43:28 +0000 (23:43 +0100)]
Bootstrap qdbuscpp2xml.
This involves invoking the Moc classes directly and using the data
structures it provides instead of invoking the moc exectutable and
parsing the generated code.
Change-Id: Ia5c654e8ef58d52d0d3376252c13e13885f80da3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Stephen Kelly [Thu, 8 Mar 2012 22:34:20 +0000 (23:34 +0100)]
Add qdbuscpp2xml.
This is the pristine version from qttools at
a0e2b3e96be934438974b175d0e640ed30f4efcb.
Change-Id: I38eafde3f4b909bb63988f855672a908cae41d2c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Stephen Kelly [Thu, 8 Mar 2012 18:14:07 +0000 (19:14 +0100)]
Bootstrap qdbusxml2cpp
Change-Id: I06856b169d5ee4f99fcf9c87ce88cb5ac34568e8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Stephen Kelly [Thu, 8 Mar 2012 22:20:37 +0000 (23:20 +0100)]
Add qdbusxml2cpp.
This is the pristine version from qttools at
a0e2b3e96be934438974b175d0e640ed30f4efcb.
Change-Id: I4dc7c7fd98637cecfc57a9be61063d351b660e72
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Marius Storm-Olsen [Fri, 16 Mar 2012 17:59:09 +0000 (12:59 -0500)]
Win32: Compile qmake when shadow-building
Change-Id: I803c733f744372701c51e4d629ff797c6648f833
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Jędrzej Nowacki [Thu, 8 Mar 2012 14:49:55 +0000 (15:49 +0100)]
Add new test cases to tst_QMetaType.
Change-Id: I405ab5df9d9de3a0a0a71276b172a27ee01392e3
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Debao Zhang [Fri, 16 Mar 2012 23:05:09 +0000 (16:05 -0700)]
QPointer: update its document and changes-5.0.0
QPointer has been un-deprecated and one behavior which slightly different
from Qt4 has been fixed.
see SHA:
b8773165d76e0d5d46287d92f9d6bdbbd2110180
and SHA:
497622cafe235eadb5dd5056b196d8451ee89071
Change-Id: I4bae2cce3ebfebd8f59b18b5a6a7a7226b8353b9
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Bradley T. Hughes [Thu, 15 Mar 2012 11:01:07 +0000 (12:01 +0100)]
Add QWindowSystemInterface::tryHandleSynchronousShortcutEvent()
This function sends a shortcut override through the shortcut system and
returns the result of the event. This will be used in platform plugins
(such as the Cocoa plugin) to make sure that shortcuts work when the
user presses a dead-key combination that normally would go through an
input method to produce text.
An extended overload taking native scan code, virtual key, and modifiers
has also been added.
Change-Id: Ia3836229ab0c66d2fb6f310e72b6f4d6dfa9ead9
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Stephen Kelly [Fri, 16 Mar 2012 11:25:24 +0000 (12:25 +0100)]
Include geometric variants when bootstrapping.
They are needed by the qdbus tools.
Change-Id: Ia1994f6a9bfa2ce1d526fd3e49370fd188ce5972
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Marius Storm-Olsen [Thu, 8 Mar 2012 02:51:27 +0000 (20:51 -0600)]
Add support for ICU on Windows
Needed by QtWebKit now.
Change-Id: I177d8dcf6063a14501f7ba3081b43a29a48661c7
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Lincoln Ramsay [Fri, 16 Mar 2012 02:08:51 +0000 (12:08 +1000)]
Don't reject plugins that have empty meta-data
Having an empty Json object ({}) should be valid meta-data but this
check means that there needs to be at least one key-value pair or
the plugin will be rejected.
Change-Id: I578ccc35016af16fd30b3807e796fa63c0282f30
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Olivier Goffart [Fri, 16 Mar 2012 16:59:43 +0000 (17:59 +0100)]
Compile QLatin1String with C++11
qstring.h: In constructor ‘QLatin1String::QLatin1String(const QByteArray&)’:
qstring.h:667:129: error: ‘const char* QByteArray::constData() const’ is not ‘constexpr’
QByteArray has a destructor and therefore cannot be used in constexpr,
so do not mark it as constexpr
Change-Id: I037e9ae73a244660923eac791cc3e0082d1d7a63
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Marc Mutz [Mon, 29 Aug 2011 15:49:48 +0000 (17:49 +0200)]
containers: add C++11-style c{begin,end}() as alias for const{Begin,End}()
C++11 adds cbegin()/cend() functions for the same reason Qt has
constBegin()/constEnd(). This patch adds these functions to the
Qt containers with the same implementation as constBegin()/constEnd().
It also fixes the return types in the documentation of existing
constFind() functions (documentation only).
C++11 only adds cbegin()/cend() (and crbegin()/crend(), which Qt doesn't have).
In particular, it doesn't add cfind(), so I didn't supply these, even though
Qt comes with constFind().
This is a forward-port of https://qt.gitorious.org/qt/qt/merge_requests/1365.
Change-Id: Ida086b64246b24e25254eafbcb06c8e33388502b
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Bradley T. Hughes [Wed, 14 Mar 2012 13:55:08 +0000 (14:55 +0100)]
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>
Morten Johan Sorvig [Fri, 16 Mar 2012 12:05:37 +0000 (13:05 +0100)]
QCocoaClipboard: Make QClipboard::clear() clear.
Change-Id: Ifb235d015f7831b335a9c3db92515a8d1cd49311
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Arnt Witteveen [Wed, 14 Mar 2012 13:53:32 +0000 (14:53 +0100)]
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>
Martin Smith [Fri, 16 Mar 2012 08:50:39 +0000 (09:50 +0100)]
qdoc: Structure the DITA map with a root node.
Use the title from the index.html page for the
navtitle, if there is a title on the index.html
page. Otherwise use the project as the navtitle.
Task-number: Mzilla bug - 7229
Change-Id: I25fc1f09b0bdff58c6340cec7d9d8a43d95845a2
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Samuel Rødal [Fri, 16 Mar 2012 08:01:50 +0000 (09:01 +0100)]
Updated changes-5.0.0 with some information on the new QtGui classes.
Change-Id: Idcdfdb506e75d74b3a89e6c2e914802ddfc11031
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Gareth Stockwell [Fri, 16 Mar 2012 14:14:53 +0000 (14:14 +0000)]
Ensure QMAKE_RFLAGSDIR is set correctly
This patch ensures that additional runpaths passed to configure via
the -R switch are added to the QMAKE_RFLAGSDIR variable.
Previously, although runpaths provided in this way were appended to the
linker options when building Qt itself, they were not appended to
the QMAKE_RFLAGSDIR value written to mkspecs/qconfig.pri. This meant
that the DT_RPATH attribute was set incorrectly in binaries built from
projects other than Qt itself.
-----------------------------------------------------------------------
Configure flags Expected value Value before this fix
-----------------------------------------------------------------------
<none> DEFAULT_RPATH DEFAULT_RPATH
-no-rpath <empty> <empty>
-R X DEFAULT_RPATH:X DEFAULT_RPATH
-no-rpath -R X X <empty>
-prefix Y Y/lib Y/lib
-prefix Y -no-rpath <empty> <empty>
-prefix Y -R X Y/lib:X Y/lib
-prefix Y -no-rpath -R X X <empty>
-----------------------------------------------------------------------
DEFAULT_RPATH = /usr/local/Qt-${QT_VERSION}/lib
Change-Id: Iaf1809b528ebd249694cf41e004173e881ca48ad
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Olivier Goffart [Sun, 26 Feb 2012 14:20:24 +0000 (15:20 +0100)]
Build qmake with QStringBuilder.
QStringBuilder will be enabled by default so qmake should build with it.
qstringbuiler.cpp has to be compiled in just for the convertFromAscii
(The alternative was to build with QT_NO_CAST_FROM_ASCII, but that would
be too much work)
Change-Id: I1fbeed7ed8a9d3bc38ef591a687c50644980e2fd
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Girish Ramakrishnan [Fri, 16 Mar 2012 06:20:53 +0000 (23:20 -0700)]
Install fonts when not using fontconfig
When built without fontconfig support, the basic unix font database
relies on fonts installed in libs/fonts to populate the database.
Change-Id: Id1e54c5b032095470049210bb831cfe4c79b3569
Reviewed-by: Johannes Zellner <johannes.zellner@nokia.com>
Reviewed-by: Donald Carr <donald.carr@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
João Abecasis [Wed, 1 Feb 2012 10:06:52 +0000 (11:06 +0100)]
Don't treat QByteArray(0, char) as null
This also changes behavior for negative sizes, but those cases could be
viewed as errors on the client side, anyway.
Change-Id: I9e56f2ba53b1edcd9f2faa5384c7d77f6823e24a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Marc Mutz [Tue, 6 Mar 2012 07:37:33 +0000 (08:37 +0100)]
QSharedPointer: add reset() member functions
These have been added for std::shared_ptr compatibility,
but in particular to allow tst_qnetworkreply && friends
to drop the implicit conversions added to QSP by
inheritance, so QSP can become final.
Change-Id: I0f0401b02125d65622e52393b40a3b10bd9a850c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Oswald Buddenhagen [Fri, 16 Mar 2012 11:17:26 +0000 (12:17 +0100)]
allow the unix generator to run in windows host mode
this is a complete bastardization of the concept and breaks the (unused)
debugging feature to create proper unix makefiles under windows, but
apparently it permits cross-compiling unix targets under windows.
Change-Id: I4ee95a20e7d6a6b2063ec7aa22f52c1a97d78a77
Reviewed-by: Oliver Wolff <oliver.wolff@nokia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Olivier Goffart [Fri, 2 Mar 2012 11:41:43 +0000 (12:41 +0100)]
moc: test signature with (void)
Change-Id: Id63ed21e9f5e7447ced877ec19a2786d20f439f0
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Stephen Kelly [Thu, 15 Mar 2012 20:47:59 +0000 (21:47 +0100)]
Fix comparison type warning.
Change-Id: I4051c5bc204215f368e4381e508dd870be240f8f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Miikka Heikkinen [Fri, 16 Mar 2012 09:13:55 +0000 (11:13 +0200)]
Fix font cache check in QFontEngineFT::recalcAdvances()
Cached font was used regardless of the format, resulting in incorrect
advance in some cases when default format differed from the cached
format.
Task-number: QTBUG-24188
Change-Id: I39e4156bd9ba743afa7e106e934c90227fbf2b8b
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
Wolf-Michael Bolle [Thu, 15 Mar 2012 14:56:14 +0000 (15:56 +0100)]
Removed move constructor.
All C++-2011-specific constructors, operators and methods may be inline
only in Qt. Since an implementation in the header file does not seem to
be possible for QMimeType without breaking backward compatiblity the
move constructor has to disappear altogether.
See also the discussion at
http://codereview.qt-project.org/#change,19150
Change-Id: If07347a51a1ae5bd4c2d292dac835592ede4b370
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Wolf-Michael Bolle [Thu, 15 Mar 2012 15:03:12 +0000 (16:03 +0100)]
Removed move constructor.
The provided implementation breaks backward compatiblity, and therefore
has to disappear altogether.
See also the discussion at
http://codereview.qt-project.org/#change,19150
Change-Id: Idf6e4a2c4b623458217541485e4aab0837909d66
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Morten Johan Sorvig [Fri, 16 Mar 2012 09:15:10 +0000 (10:15 +0100)]
Cocoa: Fix menu item activation.
Handle the action message on the application delegate.
Change-Id: I23686fd6e936a4dbbb141da3dd04a64cbf6a051a
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Charles Yin [Fri, 16 Mar 2012 05:09:18 +0000 (15:09 +1000)]
Fix broken qWaitForWindowShown() behavior
qWaitForWindowShown() should check window->isActive() instead of
window->isExposed() and return false if timeout.
Add two new qWaitForWindowActive() and qWaitForWindowExposed()
functions.
Change-Id: Idd9601805c2e84b0d36ddd5471031b627d289953
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Kent Hansen [Fri, 16 Mar 2012 09:01:29 +0000 (10:01 +0100)]
Merge master into api_changes
Conflicts:
src/corelib/kernel/qmetatype.cpp
src/gui/kernel/qplatformsurface_qpa.cpp
tests/auto/corelib/tools/qtimeline/qtimeline.pro
Change-Id: Iff3fff34eeeb06f02369767ddfce44cfde505178
Giuseppe D'Angelo [Thu, 15 Mar 2012 12:52:49 +0000 (12:52 +0000)]
QRegularExpression: various documentation improvements/fixes
Change-Id: I683afb24f888ab6cf3c543fba8cd193a730709af
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Holger Hans Peter Freyther [Thu, 15 Mar 2012 16:42:07 +0000 (17:42 +0100)]
arch: Undefine possible architecture defines
Some compilers define the architecture to one leading to detecting
'1' as target architecture. Always undef the architecture name.
Compilers:
gcc version 4.6.3 (Debian 4.6.3-1) has '#define i386 1'
gcc version 4.5.3 (Broadcom stbgcc-4.5.3-1.3) has '#define mips 1'
Change-Id: I7af1bb743579be472467c74e6c08638648823ef3
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Donald Carr [Fri, 9 Mar 2012 00:22:27 +0000 (00:22 +0000)]
Add deliberately non-documented qpa platform guard opt out
Change-Id: Ia494976d3cd3c3983d455f130fdf5ab36591aba2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Stephen Kelly [Thu, 15 Mar 2012 16:47:31 +0000 (17:47 +0100)]
Undeprecate operator casts on QByteArray.
This reverts part of commit
8397a44bedf542b53284674c87268819f4911d31.
Change-Id: I1d2ec018167faeb23a9343b209bb0ff2d8db311d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Robin Burchell [Thu, 15 Mar 2012 19:11:04 +0000 (20:11 +0100)]
Un-deprecate QPointer per mailing list discussion.
Now that QPointer is implemented in an efficient manner, there is really no need
to avoid it, deprecating it just adds a large amount of churn.
Change-Id: I32116faf14c3b07631d59ba9585f9ce422531646
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
João Abecasis [Wed, 7 Mar 2012 13:09:45 +0000 (14:09 +0100)]
Fix invalid read, detected by valgrind
Commit
3fe1eed0 changed the QVERIFY in line 1354 to QCOMPARE. This was
done to work around a (not yet understood) compiler issue. That however
was wrong, as char pointers in QCOMPARE are assumed to point to
'\0'-terminated strings and will get dereferenced.
In this case the intent was to compare the actual pointer values, as the
pointers point past the end of the array and should not be dereferenced.
Explicitly casting to (void *) and using QCOMPARE will not only keep the
intent, it will hopefully also provide meaningful output on failures. As
such the fix was applied throughout the test.
Change-Id: Ib0968df492ccc11d7c391bb69037cd7241e55493
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Debao Zhang [Wed, 14 Mar 2012 21:39:02 +0000 (14:39 -0700)]
QSharedPointer: remove two emtpy functions.
As the comments says:they are broken by design, and replaced with other
functions. The purpose of their existence is for BIC with Qt4.5.
Change-Id: I9453f816a7b7c6812499b89b7c60f0fd99dea27c
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Laszlo Agocs [Thu, 15 Mar 2012 11:31:00 +0000 (13:31 +0200)]
Add a note to QTouchEvent docs about empty touchpoint lists
Change-Id: I65e9e3ed2069d9194f5e70fb9731d605e0979e6d
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Stephen Kelly [Thu, 15 Mar 2012 11:57:25 +0000 (12:57 +0100)]
Make more of QDBus bootstrapping-ready.
The DBus metatype system and marshaller is required for determining
the dbus-signature of built-in Qt types, for example QPoint.
Change-Id: I8860ab3b88827aeb8063dfb79c4a9b28c0a20c0f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Shane Kearns [Fri, 2 Mar 2012 11:18:43 +0000 (11:18 +0000)]
Revert "Disable 'check' target generation for network autotests for Windows."
Too broad disabling, will disable more selectively
This reverts commit
3efb0d50e590f6a1e8d67d0136a648cd3b97c37d.
Change-Id: I29e25816646194b6a4b7d8ff69e0c0d074ac2a19
Reviewed-by: Sergio Ahumada <sergio.ahumada@nokia.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Shane Kearns [Mon, 12 Mar 2012 18:46:21 +0000 (18:46 +0000)]
Fix QDnsLookup autotest failure in CI environment
The DNS server can legitimately include NS and A records for
the authoritative name server in addition to the DNS records
that were requested.
These are now ignored when checking the reply (we only check
results that match the query, rather than failing if a result
is for a different host name than the query).
Task-number: QTBUG-24698
Change-Id: I327f31d58cdca50c7df6b32b275d7f28b56405f0
Reviewed-by: Jeremy Lainé <jeremy.laine@m4x.org>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Shane [Wed, 14 Mar 2012 13:18:20 +0000 (13:18 +0000)]
Fix QUdpSocket bindMode autotest regression
When binding with the DefaultForPlatform bindmode, then don't set
options on the socket related to sharability, leave them at the
platform default.
This restores compatiblity with Qt 4
Change-Id: I612a3acb976f08446b4eef03ccdcdf84b3477c3c
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
Xizhi Zhu [Thu, 15 Mar 2012 15:24:25 +0000 (16:24 +0100)]
Add missing private headers to .pri.
Change-Id: I7ba23f23c1e7cb19152f2c0cedec3549ddfb11c9
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
Samuel Rødal [Thu, 15 Mar 2012 14:55:46 +0000 (15:55 +0100)]
Added missing \since 5.0 and tweaked some docs in QtGui.
Change-Id: I91564f7a61962f97b9fb78c96d94d5695a3924db
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Martin Smith [Thu, 15 Mar 2012 12:55:37 +0000 (13:55 +0100)]
qdoc: Structure the DITA map with a root node.
The root topicref is now always index.dita, unless
there is no index.dita. But there is always a root
topicref that has the project name as its navtitle,
even if there is no index.dita file to map it to.
Task-number: Mzilla bug - 7229
Change-Id: I0c9fdf1a2e3ba847fe8975a0745667189a77a755
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Mark Brand [Thu, 15 Mar 2012 10:23:27 +0000 (11:23 +0100)]
QSqlTableModel::removeRows() enforce edit strategy
For OnFieldChange and OnRowChange, we don't want more than one row in
the cache with uncommitted changes. This could happen if deletion in
the database fails while other changes are pending.
Chosen solution is to return false if other rows have pending changes.
Also, we only allow 1 row removed at a time.
Updated test, changes and documentation.
Change-Id: I68baf6d221789b4754e891535070011c759a2155
Reviewed-by: Honglei Zhang <honglei.zhang@nokia.com>
Mark Brand [Tue, 13 Mar 2012 00:28:35 +0000 (01:28 +0100)]
QSqlTableModel::setData(): no longer autosubmit for OnRowChange
The model can never do a good job of knowing when user moves to a
new row in the view. Faking it by detecting when another row
is changed was not a good solution because it cannot detect
when the last edited row is left.
Either the view should automatically submit when the user leaves
a row or the application should provide a way to submit.
This change made it possible to reuse the logic of flags() in
setData().
Change-Id: I2550e5b113bceba1a852fc21203babeca07c5748
Reviewed-by: Honglei Zhang <honglei.zhang@nokia.com>
Mark Brand [Wed, 29 Feb 2012 00:51:23 +0000 (01:51 +0100)]
QSqlTableModel: disallow insert if changes are pending
For OnFieldChange and OnRowChange, inserting rows should not be
allowed if there are pending changes in cache.
Change-Id: Ia794332959a35a1de87e798ba1a74ace3dfae68f
Reviewed-by: Honglei Zhang <honglei.zhang@nokia.com>
Mark Brand [Tue, 28 Feb 2012 22:41:31 +0000 (23:41 +0100)]
QSqlTableModel::setData()/setRecord(): fix incorrect row
For OnFieldChange and OnRowChange, before submitting new changes,
setData() and setRecord() attempt to submit pending changes and
revert them upon failure. However, they fail to consider that
reverting pending insertions removes rows from the model. As a
result, the new change can be applied to a row higher than intended.
One possible solution would be to adjust the targetted index for the
removed rows, so that the intended row is affected by the new change.
But this still causes the strange editing experience as rows jump
up just as they are being edited.
It does not seem right in the first place for the model to initiate
reverting changes. It should be up to the application to decide what
to do when data cannot be committed. In particular, setData() and
setRecord() should not have the side effect of reverting already
pending changes.
The chosen solution is simply to refuse new changes that don't make
sense for the edit strategy. For OnFieldChange, flag() will
indicate read-only when editing is blocked by a pending change.
Since setData() and setRecord() submit data immediately for
OnFieldChange, it no longer makes sense to resubmit changes
automatically before a new change.
For OnRowChange, setData() keeps the behavior of automatically
submitting a pending row before starting on a new row. This is
historical behavior and is probably motivated by the fact that
QTableView does not automatically call submit() when editing leaves a
row. The obvious shortcoming of this is that the last row to be edited
will not be submitted automatically. It also prevents us from flagging
rows other than the pending row as read-only.
For OnRowChange, setRecord(), being row-oriented by nature, should
submit the change immediately rather than waiting for the next call
to setRecord(). This makes setRecord() consistent with insertRecord().
Change-Id: Icb4019d8b7c53a7ee48f8121a7a525e8bc35d523
Reviewed-by: Honglei Zhang <honglei.zhang@nokia.com>
Frederik Gladhorn [Thu, 15 Mar 2012 14:15:07 +0000 (15:15 +0100)]
Remove Q_WS_X11
The define is removed and only added an include.
Change-Id: I85090023cb9eb33f83ccc7fe2ab69556b4ff89fb
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Jonathan Liu [Thu, 15 Mar 2012 14:10:02 +0000 (01:10 +1100)]
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>
Donald Carr [Fri, 9 Mar 2012 01:07:26 +0000 (01:07 +0000)]
Remove all QWS centric examples
Change-Id: I1bd9c40c7cc70e088a23283d1c3e89d12c1c5f7d
Reviewed-by: Donald Carr <donald.carr@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Anselmo L. S. Melo [Thu, 8 Mar 2012 23:01:24 +0000 (20:01 -0300)]
Make QWindow::isActive return false when the application loses the focus
In QTBUG-24807 there is a test case that shows a case when a segmentation
fault happens inside isAncestorOf. When the whole application loses the
focus, e.g. when it is minimized or other application receives the focus,
QGuiApplication::focusWindow() returns a null pointer, so we need to
do a check before proceed inside of isActive.
Task-number: QTBUG-24807
Change-Id: I732c92bb9f236804ede5e89592f6e6609a4711b9
Reviewed-by: Jesus Sanchez-Palencia <jesus.palencia@openbossa.org>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Friedemann Kleint [Thu, 15 Mar 2012 13:08:54 +0000 (14:08 +0100)]
UTF8-Codec test: Fix compilation with g++/C++0X.
Change-Id: I704f8d1b07ca371c36e4eecc52c80ac783e3da3c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Jerome Leclanche [Thu, 15 Mar 2012 00:41:15 +0000 (00:41 +0000)]
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>
Morten Johan Sorvig [Mon, 12 Mar 2012 11:07:51 +0000 (12:07 +0100)]
Implement cocoa clipboard support.
Add QCoccoaClipboard which wraps the existing
QMacPasteboard implementation. Remove unused
QClipboard integration code from qmacclipboard.mm
Change mime type cleanup from using qAddPostRoutine
to using an explicit call to destroyMimieTypes in
the cocoa platform integration destructor. This is
necessary to ensure cleanup happens in the correct
order on app shutdown.
Change-Id: Ief0e0d996b04c8e84e9fd2cd3a17fb5bd73bb761
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Debao Zhang [Tue, 13 Mar 2012 17:46:39 +0000 (10:46 -0700)]
tst_qsharedpointer: Fix auto test fail under Windows 7
The tst_QSharedPointer generate another Process to test some invalid
codes, and it expect that the prcoess will crash and return a non-zero
value.
The process which is a console application was linked to windows
subsystem, and QProcess seems can not get its return value. This
cause the unit test fail.
In addition, when the process crash under debug mode, a debug error
report-dialog will appear, which is very annoying, so I suppress it too.
Task-number: QTBUG-24160
Change-Id: Ia1c872d4515c83b0aa516bcfe3783f59797d2d49
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Xizhi Zhu [Thu, 15 Mar 2012 09:26:39 +0000 (10:26 +0100)]
Make sure QGlobalNetworkProxy is created for QNetworkProxy.
Otherwise, you don't have any socket engine handler created when
directly setting a proxy to a socket.
Change-Id: I35cd7f52331672a6d3e7bcdf817c0fe1fd1e7de3
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
Samuel Rødal [Thu, 15 Mar 2012 09:18:27 +0000 (10:18 +0100)]
Fixed incorrect reporting of child window geometry in xcb plugin.
We should only query the position for top levels, otherwise trust the
position given in the event.
Change-Id: Ic29f25983af3e2c2f27eeb527c08069435ac938c
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Donald Carr [Wed, 7 Mar 2012 00:11:44 +0000 (00:11 +0000)]
Add Qt Widgets opt out support to build system
There should be a clear QWidget free path for people with no interest in
legacy QWidget functionality. Adding this option to configure makes this
path readily accessible and hence testable.
Change-Id: If87c1063fcf4c46f5280836126c11999feaa9f8a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Johannes Zellner [Wed, 14 Mar 2012 13:11:28 +0000 (14:11 +0100)]
Remove unmaintained and broken uikit platform plugin
There was no development done to make this working on Qt 5
Change-Id: Ia08d53c6680a65cb1e60a30e55caa992eaa54bc7
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Samuel Rødal [Wed, 14 Mar 2012 11:16:45 +0000 (12:16 +0100)]
Improved qWaitForWindowShown().
Made faster by actually waiting for the window to be exposed, using
similar waiting logic as qWait(). Should speed up autotests that use it
quite a bit.
Change-Id: I628c6110a554fdbbf5bed7e91f57c2fe341113ed
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Frederik Gladhorn [Thu, 8 Mar 2012 15:10:10 +0000 (16:10 +0100)]
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>
Marc Mutz [Tue, 6 Mar 2012 21:47:33 +0000 (22:47 +0100)]
QPlatformSurface: add missing virtual dtor
Change-Id: Ia7630cf33380badfe4ec7bdb59a9b86320257978
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Honglei Zhang [Wed, 14 Mar 2012 10:05:03 +0000 (12:05 +0200)]
Update QtSql module name according to the new naming convention
According to the new module name convention, QtSql should be replaced
with Qt SQL in documentation.
Task-number: QTBUG-24775
Change-Id: I712ef17c8245d30fe5e3cf879ef6e3e6aa2ff75c
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Bradley T. Hughes [Mon, 5 Mar 2012 14:01:55 +0000 (15:01 +0100)]
Re-enable native print/pagesetup dialogs on Mac OS X
Since QtPrintSupport does not have access to the internals of the print
engine on Mac OS X (it lives in the platform plugin). We instead use the
NSPrintInfoFromPrintEngine() invokable method in
QPlatformNativeInterface to return an NSPrintInfo* that we can use where
needed, or we use QPrintEngine::property()/setProperty() to communicate
with the engine.
This commit disables the generic UNIX dialogs and CUPS support on
Mac OS X, ensuring that the default format on Mac OS X is the
QPrinter::NativeFormat (previously qprinter.cpp would force PdfFormat as
default on Q_OS_UNIX which is also defined on Mac OS X).
The rest of the changes are straight forward porting. The methods:
extern void macStartInterceptWindowTitle(QWidget *window);
extern void macStopInterceptWindowTitle();
don't exist anymore, so don't use them. QMacCocoaAutoReleasePool also
doens't work, so use NSAutoreleasePool directly.
Change-Id: I341609e5efa53cadf8d174e4b282cbcae93e39e8
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Bradley T. Hughes [Mon, 5 Mar 2012 13:42:53 +0000 (14:42 +0100)]
Add method to get NSPrintInfo* from QPrintEngine in Cocoa plugin
Add an invokable method that takes the QPrintEngine (which will
always be a QMacPrintEngine) and return the NSPrintInfo* from the
QMacPrintEnginePrivate. This will be used by the native dialogs in
QtPrintSupport to get/set printer settings.
Change-Id: If1e49027e8f0d505656db51be1f40a23f60e8e57
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Bradley T. Hughes [Mon, 5 Mar 2012 13:40:00 +0000 (14:40 +0100)]
Don't keep PMPrint* state separate from NSPrintInfo
When we need to use PMPrintSession, PMPrintSettings, and PMPageLayout,
get these directly from the NSPrintInfo when needed. This avoids us
needing to keep the settings in sync. The native dialogs can then only
rely on getting a pointer to NSPrintInfo (to be done in a future
commit).
Change-Id: I4720284dcf999e454f86766b4291fbda7bf3c537
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Bradley T. Hughes [Wed, 29 Feb 2012 14:23:22 +0000 (15:23 +0100)]
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>
Bradley T. Hughes [Fri, 2 Mar 2012 11:17:24 +0000 (12:17 +0100)]
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
01b72952c38b9193138eabdab6bdab632cd75ebd
- 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>
Harald Fernengel [Tue, 13 Mar 2012 20:00:57 +0000 (21:00 +0100)]
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>
Mark Brand [Mon, 12 Mar 2012 20:05:31 +0000 (21:05 +0100)]
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>