Change-Id: Ibfb48076ad62804344db6e9e97ac90fdcf82dc04
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
These classes will not be public until Qt 5.1.
This change marks a few things internal, so they
don't cause qdoc errors in Qt 5.0. It also adds
a few qdoc comments for future use in Qt 5.1.
Change-Id: If90692b97653223d8a986f2ae1fff49c20cd444b
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
They were really the same anyway. This makes the source distro a bit
more compact and eliminates some qdoc errors of the form
../doc/snippets/reading-selections/model.cpp:51: Overrides a previous doc
../doc/snippets/itemselection/model.cpp:51: (The previous doc is here)
Change-Id: I7956f457422e9078c32de65cd421685f589c8a6c
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@nokia.com>
"The documentation states that "secsTo() does not take into account any
milliseconds", however, this is not the case. Given times 12:30:01.500
and 12:30:02.400 secsTo returns 0. If milliseconds are not taken into
account, I would expect this to return 1 (i.e. interprets the times as
12:30:01 and 12:30:02 thus truncating the milliseconds)."
Note that tests were also written for QDateTime::secsTo(), as it uses
QTime::secsTo internally. This addresses Javier's issue in the
comments of QTBUG-9304.
Task-number: QTBUG-9304
Change-Id: I9efe0c8f710db859c1d086d67ba3e5b349a56c4e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
QDateTime currently serialises its private Spec enum. If a user was to
deserialise the individual components of a QDateTime separately, the
resulting timeSpec may be invalid when cast to the Qt::TimeSpec enum.
E.g.:
QDateTime dateTime(QDate(2012, 8, 14), QTime(8, 0, 0), Qt::UTC);
// ... serialise
// ... deserialise date, time, spec separately.
// spec == 2, the value of QDateTimePrivate::UTC.
// spec != UTC, will be set to LocalUnknown.
QDateTime deserialised(date, time, spec);
This patch serialises QDateTime objects in UTC and the value of
timeSpec() as opposed to QDateTimePrivate's spec. This changes the
serialisation behaviour of QDateTime for version 13 of QDataStream.
Task-number: QTBUG-4057
Change-Id: If650e7960dca7b6ab44b8233410a6369c41df73a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
When a documented function is global, it must be related
to a namespace or class, or its documentation won't be
included anywhere.
When a documented function is a class member, the function
signature in the \fn command must include the class name
qualifier, e.g. QImage::isValid(), not just isValid()
Change-Id: I53e2230fa9468f94d51aec8cc76781d7ab755a13
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Apparently I had forgotten about this previously. Use the AVX conversion
function if the compiler could generate AVX code.
Note: the functions need to be declared outside of the function block
so namespace scoping works properly with MSVC. For functions declared
inside, it expects them to be in the global namespace.
Change-Id: I7b7248dbfce3cc7c580dee920407c205049cb746
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
The QWindowsVistaStyle::drawPrimitive() method was trying to draw the
pixmap for an item in an item view even if the section width was zero
or less then zero. This resulted "QPainter::begin: Paint device
returned engine == 0, type: 2" error.
It's now checked that the width and the height of the section is
greater than zero before creating the painter.
Task-number: QTBUG-26047
Change-Id: I36dd2792fd505be773951e5ac36b0e3362ec2292
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Detected by a unittest failure in KDE, due to the KDETranslator subclass
not being called anymore.
Change-Id: I0171117a677e2d58aba2f76bc27f7f1f7a521cc1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Use \b instead of \bold
* widnow -> window typo
* QTest::touchEvent's second parameter is QTouchDevice *, not
QTouchEvent::DeviceType, and autoCommit defaults to true
* QSignalSpy::wait() isn't const
Change-Id: I75a91c1cd98b1c582cd654b2b72ad61e5c0e31d2
Reviewed-by: David Faure <faure@kde.org>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
The asymmetry is intentional: the getters can use toLatin1() because the
called functions, with a QUrl::FullyEncoded parameter, return ASCII
only. This gives a small performance improvement over the need to run
the UTF-8 encoder.
However, the data passed to setters could contain non-ASCII binary data,
in addition to the percent-encoded data. We can't use fromUtf8 because
it's binary and we can't use toPercentEncoded because it already encoded.
Change-Id: I5ecdb49be5af51ac86fd9764eb3a6aa96385f512
Reviewed-by: David Faure <faure@kde.org>
Just in case someone (like me) changes the function signatures or adds
new functions.
Change-Id: I1025fea012d95ffe89acaf799aa58fd2b0babc80
Reviewed-by: David Faure <faure@kde.org>
The hashing functions for QDateTime and QHostAddress did not get the
noexcept keyword because they might allocate memory. QDateTime doesn't
do it now, but it could in the future. QHostAddress does allocate
memory today.
Change-Id: Ia5f80942944bfc2b8c405306c467bfd88ef0e48c
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The following images were misplaced into gui with the other painsystem
related images:
- ../styles/qstyle.cpp:80: Missing image: paintsystem-stylepainter.png
- ../styles/qstyle.cpp:80: Missing image: paintsystem-icon.png
Change-Id: I5a46db04d00b779a6028cda89e436feda75efef7
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
Remove link to self:
qfontcombobox.cpp:413: Can't create link to 'currentFontChanged()'
Change-Id: I6eba45ba1d68c6a2c9201fda8c04b47fc711b562
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
qdoc insists picking Q_PROPERTY(T document) instead of the individually
documented getter and setter
Change-Id: I6f4981db205c5726d70cef4d85b7dfffe2b1fe31
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
Other errors remain, but they appear to be due to missing links
to QtCore documentation (a generic error not specific to itemviews).
Change-Id: I7b83380c3754c26d3d42be9ef0c0721ce3127562
Reviewed-by: Shawn Rutledge <shawn.rutledge@nokia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
A copy is placed in uihelpers for anyone who might be using it.
Change-Id: I175f7bc5dcbf25a910d28bfd8985579866392938
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
See report: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50309
Change-Id: I5ab3ab1dea42b03ea22dbfbe5f7039c537dabd33
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
This requires using the same chain of conditions that QBasicAtomic*
uses in order to provide constructors, so we're using the newly-added
macro QT_BASIC_ATOMIC_HAS_CONSTRUCTORS to check.
Even though QAtomic<> is a template, we can't just use Q_DECL_CONSTEXPR
since the body of the constructors needs to change, too.
Change-Id: I462a80ed175040f7709c30d07d34036c6c5507d8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This macro is defined when the QBasicAtomic* types have constructors.
It will be used to simplify maintenance of QBasicAtomic subclasses,
as well as classes that aggregate Q(Basic)Atomics and wish to be
literal types if possible.
Change-Id: I7ab181c58a13ec2195449bbae5b3476b9017a8f2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Visual Studio compiler defines _M_ARM preprocessor variable when
compiling for ARM and the value of preprocessor variable indicates the
supported instruction set.
For more information see:
http://msdn.microsoft.com/en-us/library/gg155713.aspx
Change-Id: I54137257b83f64fdf03bf7df9995e08d16dff4df
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
There's a Q_DECLARE_METATYPE at the end of this file.
Change-Id: Ib63aa4397ccba8740d46cf1ee7af712f75d05765
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
Most of these caused by cleaning up enums and not removing
omitted values. Also removed some leftovers from qt3support.
Change-Id: I75efcc9fadc6a430492bab36e86d7b345d3a6a17
Reviewed-by: J-P Nurmi <j-p.nurmi@nokia.com>
QDateTime will attempt to convert unknown types of date to UTC time, which isn't
exactly a fast process. As we don't care about local timezones in the process of
sorting (as this is purely for ordering, not display to the end user), we can
force the dates to use UTC time, avoiding the unnecessary local timezone lookup.
This also adds a benchmark covering this case.
Benchmark results, Qt 5:
- before: 11, 489ms
- after: 273ms
Qt 4.8:
- before: 20, 848ms
- after: 278ms
Change-Id: I87fa6260e820b5b172d3306ff395dafe767c33ff
Reported-by: Thomas Perl <m@thp.io>
Reviewed-by: Alberto Mardegan <mardy@users.sourceforge.net>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
QWidget:grab() has a default parameter (invalid rect).
QRect() is the null rect and widget->grab(QRect())
returns an empty pixmap.
QWidget:grab() has to be free of side effects and should not
affect any dirty flags.
Change-Id: I8ff558343c366769cd6c587e77f862668e8054f2
Task-number: QTBUG-25436
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Windows CE does not have support for GetGlyphOutline.
So addGlyphToPath will not work. QML uses it for their
distance field rendering. One option to bypass this issue
is to use freetype as rendering backend.
Change-Id: I965254344945cbdad771a5d505fb61c1cc2087df
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Updated those .qdoc files to refer to the new relative examples
emplacement. Images and snippets to be moved later.
Also grouped all widgets related examples under widgets.
Change-Id: Ib29696e2d8948524537f53e8dda88f9ee26a597f
Reviewed-by: J-P Nurmi <j-p.nurmi@nokia.com>
QMetaType::UserType was changed from 256 to 1024, this was not reflected
in the code parsed by qdoc.
Change-Id: I0a02e8b020d495fbf2508d84b690adae1b677125
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
The Khronos group makes the glext.h (Desktop OpenGL) and gl2ext.h
(OpenGL ES2) headers officially available nowadays. Most (all?)
Linux systems ship this by default. On Windows platforms the
glext.h file needs to be downloaded from
http://www.opengl.org/registry/api/glext.h
and placed alongside the system OpenGL header.
Making use of the official header reduces the maintenance
overhead for OpenGL support in Qt by removing the need to copy
and paste definitions into the Qt sources.
As the Khronos-provided headers are standardised and backwards and
forwards compatible we can utilise these for all platforms rather
than just for Windows. This means that all definitions required
by Qt will be present even if the system ships out-dated
equivalents.
Mac OS X needs special handling in that we should always use the
system-provided headers there. This is because Apple controls the
OpenGL driver and the headers that go along with it. As such there
is no possibility that the driver exposes additional functionality
compared with the system-provided OpenGL headers. Apple has also
decided to make different decisions about some OpenGL typedefs
compared to other implementations. For example, Apple typdefs
GLhandleARB to void* whereas other platforms use unsigned int.
The alternative, which is to use the system provided glext.h (or
gl2ext.h) header means that Qt code would need to check for the
availability of such definitions wherever it is not guaranteed
to be provided by core OpenGL/ES just to compile.
The proposed approach means that Qt can compile regardless of
the system's OpenGL extension support. We just need to be
rigourous in runtime checking of support for extensions but
that is already a requirement (and is missing in a few places,
see TODO's added in this commit).
The official Khronos headers are added to Qt as
qopenglext.h - Desktop OpenGL
qopengles2ext.h - OpenGL ES2
They need to be public but not part of QtGui module include, hence
the headers have been modified by adding
#if 0
#pragma qt_no_master_include
#endif
to them.
This has been tested on:
Gentoo Linux with GCC 4.6.3
Windows 7 with MSVC 2010
Mac OSX 10.8 with Apple clang 4.0 (based on LLVM 3.1svn)
QNX with qcc (based on GCC 4.4)
A small change is needed to QtDeclarative when building for OpenGL
ES 2 after applying this commit. See
https://codereview.qt-project.org/#change,31794
Change-Id: I4b3d2b1680baf4c78be9a87b4d8de076d23e8f82
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Task-number: QTBUG-21804
Change-Id: I475166f3f60b1278089baa255ace4e18baeb568e
Reviewed-by: Jani Honkonen <jani.honkonen@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
ColorSync Manager is deprecated in 10.6 and new CG API for
copying color space is available since 10.5.
Change-Id: I730431dcd28ca0ff6cec5d1eeff99fff9f3d0a29
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
The main window of in-process QAxServers doesn't have QWindow parent,
but it does have native parent that is part of the native window tree
of the application. The lack of Qt parent makes embedded controls look
like toplevel windows, which causes problems e.g. with modality.
Introduced new optional method QPlatformWindow::isEmbedded() to
detect if a window is an embedded window and utilized it in proper
places during modality handling.
Task-number: QTBUG-26871
Change-Id: Iac9a51dae06b8fc15410de7838857e203e4275b8
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
When a stylesheet was set on a parent widget then in some cases it would
not get applied to all the child widgets. This was because the order of
the children list may have been modified while it was being set on
children. By making a copy of the list we prevent this from being a
problem.
Task-number: QTBUG-26321
Change-Id: Iea6bf72c69a0c39746f7ef5e7893dda5a93ed7e5
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
QDrag has an API to set both pixmap (QDrag::setPixmap) and drag cursor
(QDrag::setDragCursor): http://qt-project.org/doc/qt-5.0/qdrag.html.
We cannot return from createCursors if there is no pixmap, but we need
to go through also dragCursor and use those if one is set.
Change-Id: If2b2139ad193a4ab5b25c65400c595dc7c33de2c
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>