summaryrefslogtreecommitdiffstats
path: root/src/qtbase-1.patch
diff options
context:
space:
mode:
authorMark Brand <mabrand@mabrand.nl>2014-12-10 13:10:52 (GMT)
committerMark Brand <mabrand@mabrand.nl>2014-12-10 13:10:59 (GMT)
commit34b205aa5a0f0b3fbc9ec53a0078ffa168850303 (patch)
treea192fecc6be9467b0e87861a05a50e4500a36897 /src/qtbase-1.patch
parent5e82d3e7219d715aa4b50fa95c399245ae2f65d3 (diff)
downloadmxe-34b205aa5a0f0b3fbc9ec53a0078ffa168850303.zip
mxe-34b205aa5a0f0b3fbc9ec53a0078ffa168850303.tar.gz
mxe-34b205aa5a0f0b3fbc9ec53a0078ffa168850303.tar.bz2
qt5 modules: update
Diffstat (limited to 'src/qtbase-1.patch')
-rw-r--r--src/qtbase-1.patch7710
1 files changed, 4 insertions, 7706 deletions
diff --git a/src/qtbase-1.patch b/src/qtbase-1.patch
index 555ca1d..4607570 100644
--- a/src/qtbase-1.patch
+++ b/src/qtbase-1.patch
@@ -1,7712 +1,10 @@
This file is part of MXE.
See index.html for further information.
-From 0792943d59eaa41f5e04b6ccaf39322eb8657f2a Mon Sep 17 00:00:00 2001
-From: Thiago Macieira <thiago.macieira@intel.com>
-Date: Tue, 18 Nov 2014 21:30:45 -0800
-Subject: [PATCH 01/36] Update the ChangeLog for 5.4.0 for the rest of qtbase
-
-Change-Id: I255892a9c84a8d873195f9440f9c1808cbe2b5a8
-Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
-
-diff --git a/dist/changes-5.4.0 b/dist/changes-5.4.0
-index 614f57a..f989904 100644
---- a/dist/changes-5.4.0
-+++ b/dist/changes-5.4.0
-@@ -16,26 +16,398 @@ Each of these identifiers can be entered in the bug tracker to obtain more
- information about a particular change.
-
- ****************************************************************************
--* Library *
-+* Deprecation Notice *
- ****************************************************************************
-
-+ - The Q_COMPILER_xxx macros for C++14 compiler features introduced in Qt
-+ 5.3 are deprecated and will not be updated for new compilers either.
-+ User code should be changed to use the macros from Standing Document 6
-+ instead:
-+ http://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations.
-+ This does not affect C++11 feature macros.
-+
-+****************************************************************************
-+* Important Behavior Changes *
-+****************************************************************************
-+
-+ - QExplicitelySharedDataPointer's copy constructor which performs a
-+ static_cast from "X *" to "T *" (when constructing a
-+ QExplicitlySharedDataPointer<T> from a QExplicitlySharedDataPointer<X>)
-+ doesn't perform a static_cast from "X *" to "T *" any more. Instead, an
-+ implicit cast is now performed. This change will break compilation of code
-+ that relied on the downcast (i.e. cast towards a more derived type) of the
-+ templated type when copy constructing a QExplicitelySharedDataPointer
-+ object. Please refer to the class documentation for more information about
-+ this issue and a workaround to keep old code compiling.
-+ - QImageReader now automatically rotates JPEG images according to Exif
-+ orientation
-+ - [QTBUG-18980] HarfBuzz-NG is now the default shaper on all platforms.
-+ This results in a better shaping results for various languages, better
-+ performance, and lower memory consumption.
-+ - [QTBUG-41858] Changed QStringRef::right() to be consistent with
-+ QString::right(). The function now returns the N right-most characters,
-+ like the documentation already claimed.
-+ - The mutable Java-style iterators like QListMutableIterator and
-+ QHashMutableIterator no longer set the parent container to unsharable
-+ mode. If you create a copy of the container being iterated on after the
-+ iterator, any changes done with the iterator might affect the copy too.
-+
-+ - Logging (including qDebug and qWarning):
-+ * Support for the deprecated environment variables QT_NO_JOURNALD_LOG
-+ and QT_ANDROID_PLAIN_LOG has been removed. Instead, set
-+ QT_LOGGING_TO_CONSOLE to 1 to force logging to the console (stderr).
-+ Set that variable to 0 to force logging to the system-specific event
-+ log (if any).
-+ * [QTCREATORBUG-12564] Log output will now go to the system log (if
-+ support for it was compiled into Qt) if the application has no
-+ controlling terminal or console window. Set QT_LOGGING_TO_CONSOLE to 1
-+ to force logging to go to stderr.
-+
-+ - QSettings:
-+ * [QTBUG-41812] QSettings::value() now returns an invalid QVariant when
-+ passing an empty key. The code path ran into an assert, which was only
-+ noticeable in debug builds.
-+ * [QTBUG-21739] The locking mechanism inside QSettings has changed
-+ and is no longer compatible with the one of previous versions of
-+ Qt. There might be corruption if two applications running different
-+ versions of Qt are writing to the same config file at the same
-+ time. You must also now have write permissions in the directory
-+ containing the settings file in order to write settings.
-+
-+****************************************************************************
-+* Library *
-+****************************************************************************
-+
-+QtConcurrent
-+------------
-+
-+ - [QTBUG-17220] run() now optionally takes as its first argument the
-+ QThreadPool to run the task on.
-+
- QtCore
- ------
-
- - Added QEnableSharedFromThis, a class that allows obtaining a
- QSharedPointer for an object already managed by a shared pointer.
-+ - Added qHashBits() to aid implementing qHash() overloads for custom
-+ types.
-+ - Added new QByteArrayList class.
-+ - Added QStorageInfo class to retrive information about mounted volumes
-+ and drives
-+
-+ - Logging:
-+ * QT_MESSAGE_PATTERN can include a backtrace using %{backtrace}
-+ * Added QtMsgType argument to QLoggingCategory constructor and
-+ Q_LOGGING_CATEGORY macro that controls the default category
-+ configuration.
-+ * File, line, function information are not recorded anymore for logging
-+ statements in release builds. Set QT_MESSAGELOGCONTEXT explicitly to
-+ enable recording in all configurations.
-+
-+ - QAbstractProxyModel:
-+ * [QTBUG-39549] QAbstractProxyModel now forwards the drop-related API.
-+
-+ - QByteArray:
-+ * Added convenience methods to convert directly to and from std::string.
-+ * Fixed a bug that would cause QByteArray to stop converting toUpper or
-+ toLower at the first embedded null character.
-+
-+ - QCommandLineParser:
-+ * Added addOptions() method.
-+
-+ - QElapsedTimer:
-+ * Is no longer a POD; its default constructor now initializes the object to
-+ an invalid QElapsedTimer
-+
-+ - QFlags:
-+ * [QTBUG-39786] Added initializer_list constructor
-+
-+ - QFuture:
-+ * [QTBUG-17220] Can now be used with any QThreadPool, not just
-+ globalInstance().
-+
-+ - QPair:
-+ * Can now be used in C++11 constexpr contexts.
-+
-+ - QSaveFile:
-+ * Now follows symbolic links when writing to a link instead of
-+ replacing the link with the contents.
-+
-+ - QSettings:
-+ * [QTBUG-21739] Fixed data loss while writing the config to the disk
-+ fails.
-+
-+ - QStandardPaths:
-+ * [QTBUG-38483] QStandardPaths now has new enumeration values
-+ AppDataLocation, AppLocalDataLocation to be able to differentiate
-+ between roaming and local paths on the Windows operating system.
-+ DataLocation is deprecated in favor of AppDataLocation.
-+
-+ - QString:
-+ * QString can now split a string to a list of QStringRef.
-+ * Added the QStringRef::split() function
-+
-+ - QTextStream:
-+ * QTextStream now uses group separators when writing floating-point
-+ numbers when the locale is not the C locale. The old behavior can be
-+ restored by setting QLocale::OmitGroupSeparator on the locale.
-+
-+ - QTimer:
-+ * [QTBUG-26406] Implemented new style connect syntax, including
-+ functors, in QTimer::singleShot
-+
-+ - QUrl:
-+ * QUrl::fromLocalFile now returns an empty URL if the input string is
-+ empty.
-+
-+ - QVariant:
-+ * [QTBUG-40363] Fixed ordered comparison between QVariants that do not
-+ match but produce identical toString output.
-+
-+ - QVector:
-+ * Added removeOne() and removeAll() for QList compatibility.
-+
-+ - QWeakPointer:
-+ * Added lock() method for std::weak_ptr compatibility.
-+ * Added member-swap function.
-+
-+ - QtJson:
-+ * [QTBUG-26606] QJsonArray and QJsonObject now supports C++11
-+ initializer lists.
-+
-+ - QtMath:
-+ * Introduced qNextPowerOfTwo methods.
-+
-+QtDBus
-+------
-+
-+ - Blocking calls that take a long time will now generate a warning. The
-+ time taken may be tuned using the environment variables
-+ Q_DBUS_BLOCKING_CALL_MAIN_THREAD_WARNING_MS and
-+ Q_DBUS_BLOCKING_CALL_OTHER_THREAD_WARNING_MS. The value represents (in
-+ milliseconds) how long before a blocking call is warned about. A value
-+ below zero disables the warning, a value of zero will warn about all
-+ blocking calls.
-+
-+QtGui
-+-----
-+
-+ - Added QPixelFormat class.
-+ - [QTBUG-38168] QtGui's OpenGL headers are now automatically including the
-+ highest available header (gl31.h, gl3.h or gl2.h) in OpenGL ES builds.
-+ - [QTBUG-36483] Dynamic OpenGL implementation loading is now supported on
-+ Windows. This requires Qt to be configured with -opengl dynamic.
-+ - [QTBUG-39583] Keymaps are now changeable at runtime when using eglfs.
-+ - [QTBUG-40841] environment variable QT_DBL_CLICK_DIST customizes the
-+ amount of movement allowed when detecting a double click.
-+
-+ - Clipboard:
-+ * [QTBUG-41852] Fixed a memory leak in setMimeData() when the platform
-+ plugin did not support the requested mode.
-+
-+ - Painting:
-+ *[QTBUG-41413] Fixed some very rare cases of mismatched raster modes
-+ in QPainter.
-+
-+ - QEvent:
-+ * [QTBUG-38858] The debug output for events has been significantly
-+ improved.
-+
-+ - QFont:
-+ * [QTBUG-22814][QTBUG-22946] QFont now serializes its data properly,
-+ without any data loss.
-+
-+ - QGuiApplication:
-+ * Add support for -icon command line argument on X11, add -qwindowicon
-+ on all platforms.
-+ * Added QGuiApplication::screenRemoved signal to inform that a screen
-+ has been removed, before Qt reacts to it.
-+
-+ - QImage:
-+ * [QTBUG-25998] Added support for 10-bit per color channel image
-+ formats.
-+
-+ - QOpenGLBuffer:
-+ * [QTBUG-38168] Added QOpenGLBuffer::mapBufferRange().
-+
-+ - QOpenGLFramebufferObject:
-+ * Introduced an argument to QOpenGLFramebufferObject::toImage() to save
-+ mirroring the result.
-+ * Added support 10-bit per color channels formats as the internal
-+ framebuffer format, making it possible to render in that precision.
-+
-+ - QOpenGLTextureCache:
-+ * Added support for uploading common QImage formats directly to OpenGL,
-+ if supported by the OpenGL implementation.
-+
-+ - QPicture:
-+ * [QTBUG-20578] QPicture now serializes its data properly by also
-+ accounting for QDataStream versions greater than Qt 4.5.
-+
-+ - Tablet support:
-+ * [QTBUG-39458] Added buttons to QTabletEvent
-
-+ - Text:
-+ * [QTBUG-41372] Fixed regression when rendering Uchen text in WebKit
-+ on Windows.
-+ * Fixed use of uninitialized memory in the FreeType font engine
-+
-+QtNetwork
-+---------
-+
-+ - QNetworkAccessManager:
-+ * Fixed behavior of upload QIODevice that generate data on readyRead()
-+ for HTTP PUT/POST
-+
-+ - QSsl:
-+ * QSsl::SecureProtocols now also excludes SSLv3
-+
-+ - QSslCertificate:
-+ * Can now be used as a key in QSet/QHash.
-+
-+ - QSslError:
-+ * Can now be used in QSet/QHash.
-+
-+ - QSslSocket:
-+ * [QTBUG-28471] Added support for finding the version of SSL/TLS in
-+ use by a connection.
-+ * Added accessors for the version of OpenSSL used at build-time. This
-+ will help when debugging problems caused by a mismatch with the
-+ run-time version.
-+ * [QTBUG-1565] Support for loading PKCS#12 bundles was added. These are
-+ often used to conveniently transport keys and certificates,
-+ particularly when making use of client certificates.
-+
-+QtPrintSupport
-+--------------
-+
-+ - QPrinter:
-+ * [QTBUG-11332] Added duplex support for Windows and OS X.
-
- QtSql
- -----
-
-- - qsql ibase: fix memory corruption due to LONG being 4 bytes in firebird.
-- - QSqlDriver::dbmsType(): New method reports DBMS type. Especially useful when using ODBC.
-+ - ibase: Fixed memory corruption due to LONG being 4 bytes in firebird.
-+
-+ - QSqlDriver:
-+ * Add support for determining DBMS type from SQL driver using
-+ QSqlDriver::dbmsType()
-+
-+QtTest
-+------
-+
-+ - Tests now output build information.
-+
-+QtWidgets
-+---------
-+
-+ - All widgets with a setReadOnly method now send a ReadOnlyChange event
-+ (e.g., for app-specific palette changes)
-+ - [QTBUG-32888] Accessibility for widgets is now included in the widget
-+ library instead of being a separate plugin. For static builds this means
-+ that libqtaccessiblewidgets is no longer required.
-+
-+ - QComboBox:
-+ * [QTBUG-33537] Fixed positions of items when QComboBox is set as
-+ editable in Fusion style.
-+ * [QTBUG-33537] Fixed updating appearance of popup menu when changing
-+ the editable state of the combo box.
-+
-+ - QDialog / Windows:
-+ * [QTBUG-2027] Dialogs can now be menuless.
-+
-+ - QGraphicsScene:
-+ * Added the minimumRenderSize property which can be used to speed up
-+ rendering by not painting items smaller than a give size.
-+ * The removal of items when using the linear index is now more
-+ efficient.
-+
-+ - QLayout:
-+ * [QTBUG-37673] Widgets and dialogs containing layouts with
-+ heightForWidth (such as a label with word wrap) will no longer get a
-+ minimum size of 0x0.
-+
-+ - QLineEdit:
-+ * [QTBUG-40287] The signal textEdited() is now emitted when the user
-+ clicks the clear button created by setClearButtonEnabled() as well.
-+
-+ - QMainWindow:
-+ * [QTBUG-40410] Dock widgets will now be resized properly when the
-+ central widget has a fixed size.
-+
-+ - QPlainTextEdit:
-+ * [QTBUG-36415] Fixed a crash when using full width selections and
-+ issuing a complex undo command chain which removes and inserts an
-+ empty block in one go.
-+ * [QTBUG-40347] Fixed a possible divide by zero crash when font metrics
-+ were missing for the font.
-+
-+ - QTabBar:
-+ * Added changeCurrentOnDrag property.
-+
-+ - QTableView / QTableWidget:
-+ * [QTBUG-29239] currentIndex() now reflects the top left cell when in a
-+ span.
-+
-+ - QTreeView:
-+ * Indentation is now style-dependent by default.
-+ * Added resetIndentation().
-+
-+ - Styles:
-+ * Allow overriding standardIcon() in a proxy style
-
- ****************************************************************************
- * Platform Specific Changes *
- ****************************************************************************
-
-+Android
-+-------
-+
-+ - [QTBUG-36019] Enable using native style also when Ministro deployment
-+ mechanism is not in use.
-+ - [QTBUG-29069] Release all windows when the application is suspended.
-+ - Added Gradle support to build the APK.
-+ - [QTBUG-39688] Back key no longer kills the application when no window is
-+ visible.
-+ - [QTBUG-41365] Default open-source license for Qt for Android is now
-+ LGPLv3. For compatibility with the LGPLv2.1 license, add
-+ "-no-android-style-assets" to your configuration.
-+ - [QTBUG-32399] Input panels are now hidden when focus changes to an object
-+ that does not accept input.
-+ - [QTBUG-41854] Added support for QClipboard::clear()
-+ - [QTBUG-41852] Fixed memory leak in QClipboard::setMimeData()
-+ - [QTBUG-41817] QClipboard::mimeData() now returns an empty object instead
-+ of null pointer from QClipboard when clipboard is empty for consistency
-+ with other platforms.
-+
-+ - Important Behavior Changes:
-+ * [QTBUG-36274] The main event loop is now stopped when the app is
-+ suspended
-+
-+iOS
-+---
-+
-+ - [QTBUG-39097] Accessibility was added to the iOS platform port. This
-+ enables Qt applications to be read by VoiceOver on iOS devices.
-+ - [QTBUG-42276] Fixed path to QStandardPaths::DataLocation. Until now,
-+ DataLocation was pointing to the Document directory. With this patch,
-+ it will return the more accurate Library/Application Support.
-+ Applications making use of DataLocation should move these data to the
-+ new location. This can be done using the path provided by
-+ DocumentLocation as the source path.
-+
-+Linux/XCB
-+---------
-+
-+ - [QTBUG-35832] Fixed transparency of tray icons in cases where there
-+ is no alpha channel or system tray visual.
-+ - environment variables QT_XCB_DEBUG_XINPUT and
-+ QT_XCB_DEBUG_XINPUT_DEVICES are deprecated and replaced with logging
-+ categories qt.qpa.events.input and qt.qpa.devices respectively
-+ - [QTBUG-39572] Wacom touch devices are not mistaken for additional
-+ graphics tablets any more.
-+
-+
- OS X
- ----
-
-@@ -43,17 +415,51 @@ OS X
- - OS X 10.10 is now supported.
- - QMacStyle has been updated with better OS 10.10 support.
- - The Qt binary packages are now configured with C++11 enabled.
-+ - [QTBUG-41208] Fixed detection of writing system support in fonts for
-+ some scripts such as Mkhedruli.
-+ - [QTBUG-41192] Fixed menu item shortcuts without keyboard modifiers.
-+ - [QTBUG-31301] Drag-and-drop QMimeData requests are now delayed until
-+ drop time.
-+ - [QTBUG-10899] Added support for ApplicationState
-+ capability. Application can now detect when an application states
-+ have changed as well when the dock icon has been clicked.
-+
-+ - Fonts:
-+ * [QTBUG-40986][QTBUG-40549] Fixed missing glyph box shown in place of
-+ some uncommon Unicode code points.
-
- Windows
- -------
-
-- - [QTBUG-38259] Changed configure defaults so that Qt5Core does not
-- link against ICU libraries anymore. Pass '-icu' to enable it.
-+ - [QTBUG-38259] Changed configure defaults so that Qt5Core does not link
-+ against ICU libraries anymore. Pass '-icu' to enable it.
-+ - [QTBUG-35432][QTBUG-23687] Command line parsing on Windows now uses
-+ the WinAPI function CommandLineToArgvW() to exactly match the quoting
-+ behavior used by the majority of applications.
-+
-+ - Fonts:
-+ * [QTBUG-41783] Fix off-by-one in font descent when using the
-+ DirectWrite font engine.
-+ * [QTBUG-39961] Set default fallback font to MS Shell Dlg 2 instead of
-+ Arial.
-+
-+****************************************************************************
-+* Compiler Specific Changes *
-+****************************************************************************
-+
-+ - Release builds with Microsoft Visual Studio 2013 now enable the
-+ standard-conforming C and C++ strict string behavior. This option will
-+ be enabled in all builds with future Visual Studio versions.
-+ Non-conforming code should be fixed for maximum portability and
-+ correctness. See http://msdn.microsoft.com/en-us/library/dn449508.aspx
-+ for more information.
-
- ****************************************************************************
--* Tools *
-+* Tools *
- ****************************************************************************
-
-+ - [QTBUG-30900] The obsolete findtr script was removed.
-+
- configure & build system
- ------------------------
-
-@@ -66,6 +472,12 @@ configure & build system
- from a pre-existing Qt installation.
- - [QTBUG-41267] Fixed parallelized (jom) -debug-and-release builds.
-
-+moc
-+---
-+
-+ - Fixed "zero as null pointer constant" warnings in moc's generated
-+ code.
-+
- qmake
- -----
-
-@@ -86,3 +498,22 @@ qmake
- - QMAKE_EXTRA_COMPILERS' commands and depend_command are no longer mangled.
- Use $$shell_path() and $$shell_quote() to prepare the commands correctly.
- - Added link-time optimization support for Clang, GCC and ICC. CONFIG+=ltgc.
-+
-+rcc
-+---
-+
-+ - rcc now supports an optional, two-pass compilation that improves build
-+ times for large resource bundles. This feature can be enabled by adding
-+ "CONFIG += resources_big" to your .pro file. Note that this feature may
-+ interfere with builds that enable link-time code generation or other
-+ optimization techniques.
-+
-+****************************************************************************
-+* Third-party libraries *
-+****************************************************************************
-+
-+ - ANGLE has been upgraded to version 2.1, bringing partial support for
-+ OpenGL ES3 over Direct3D 11, numerous bug fixes, and several new vendor
-+ extensions.
-+ - [QTBUG-40649][QTBUG-40658][QTBUG-41031][QTBUG-41081][QTBUG-41308][QTBUG-
-+ 41563] ANGLE updated to 2.1~f8602ad91e4f
---
-2.1.2
-
-
-From bb07737614d3fdf867e8e5da835554ae731ba04f Mon Sep 17 00:00:00 2001
-From: Thiago Macieira <thiago.macieira@intel.com>
-Date: Wed, 19 Nov 2014 14:14:36 -0800
-Subject: [PATCH 02/36] Fix the %{time} printing to *not* default to the
- process's time
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The default should be the actual time of day. Showing the process's time
-is the optional case. In the future, we'll provide a way to showing the
-monotonic reference time ("boot") and we should improve the detection of
-actual application runtime.
-
-Change-Id: I41936d77ab9fad2073dc0ce1c97cabe57ec39f16
-Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
-Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
-
-diff --git a/dist/changes-5.4.0 b/dist/changes-5.4.0
-index f989904..fc3e3a5 100644
---- a/dist/changes-5.4.0
-+++ b/dist/changes-5.4.0
-@@ -97,6 +97,11 @@ QtCore
-
- - Logging:
- * QT_MESSAGE_PATTERN can include a backtrace using %{backtrace}
-+ * QT_MESSAGE_PATTERN can include a timestamp using %{time}. By
-+ default, this shows the time in ISO format (YYYY-MM-DDTHH:mm:ss),
-+ but a different format string can be specified in the tag (e.g.,
-+ %{time YYYYMMDDHHmmsszzz}). If the format is "process", Qt will
-+ display the elapsed time since the process started.
- * Added QtMsgType argument to QLoggingCategory constructor and
- Q_LOGGING_CATEGORY macro that controls the default category
- configuration.
-diff --git a/src/corelib/global/qlogging.cpp b/src/corelib/global/qlogging.cpp
-index 39c5ac6..843ec6b 100644
---- a/src/corelib/global/qlogging.cpp
-+++ b/src/corelib/global/qlogging.cpp
-@@ -1201,11 +1201,14 @@ QString qFormatLogMessage(QtMsgType type, const QMessageLogContext &context, con
- }
- #endif
- } else if (token == timeTokenC) {
-- quint64 ms = pattern->timer.elapsed();
-- if (pattern->timeFormat.isEmpty())
-+ if (pattern->timeFormat == QLatin1String("process")) {
-+ quint64 ms = pattern->timer.elapsed();
- message.append(QString().sprintf("%6d.%03d", uint(ms / 1000), uint(ms % 1000)));
-- else
-- message.append(pattern->startTime.addMSecs(ms).toString(pattern->timeFormat));
-+ } else if (pattern->timeFormat.isEmpty()) {
-+ message.append(QDateTime::currentDateTime().toString(Qt::ISODate));
-+ } else {
-+ message.append(QDateTime::currentDateTime().toString(pattern->timeFormat));
-+ }
- #endif
- } else if (token == ifCategoryTokenC) {
- if (!context.category || (strcmp(context.category, "default") == 0))
-@@ -1550,9 +1553,10 @@ void qErrnoWarning(int code, const char *msg, ...)
- \row \li \c %{pid} \li QCoreApplication::applicationPid()
- \row \li \c %{threadid} \li ID of current thread
- \row \li \c %{type} \li "debug", "warning", "critical" or "fatal"
-- \row \li \c %{time} \li time of the message, in seconds since the process started
-- \row \li \c %{time format} \li system time when the message occurred, formatted by
-- passing the \c format to \l QDateTime::toString()
-+ \row \li \c %{time process} \li time of the message, in seconds since the process started (the token "process" is literal)
-+ \row \li \c %{time [format]} \li system time when the message occurred, formatted by
-+ passing the \c format to \l QDateTime::toString(). If the format is
-+ not specified, the format of Qt::ISODate is used.
- \row \li \c{%{backtrace [depth=N] [separator="..."]}} \li A backtrace with the number of frames
- specified by the optional \c depth parameter (defaults to 5), and separated by the optional
- \c separator parameter (defaults to "|").
-diff --git a/tests/auto/corelib/global/qlogging/tst_qlogging.cpp b/tests/auto/corelib/global/qlogging/tst_qlogging.cpp
-index 0a55da5..749c7da 100644
---- a/tests/auto/corelib/global/qlogging/tst_qlogging.cpp
-+++ b/tests/auto/corelib/global/qlogging/tst_qlogging.cpp
-@@ -765,7 +765,7 @@ void tst_qmessagehandler::qMessagePattern_data()
-
- // %{time} should have a padding of 6 so if it takes less than 10 seconds to show
- // the first message, there should be 5 spaces
-- QTest::newRow("time") << "<%{time}>%{message}" << true << (QList<QByteArray>()
-+ QTest::newRow("time-process") << "<%{time process}>%{message}" << true << (QList<QByteArray>()
- << "< ");
-
- #ifdef __GLIBC__
---
-2.1.2
-
-
-From d0ef89caaba9ee8c57428447f04a17233b8888f5 Mon Sep 17 00:00:00 2001
-From: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
-Date: Fri, 21 Nov 2014 10:15:58 +0100
-Subject: [PATCH 03/36] Android: Make old manifests work on Android 5
-
-On newer Androids, exceptions have started happening when using old
-manifests that refer to splash.xml because the layout is missing
-some required attributes. We add these to avoid crashing with these
-apps.
-
-Change-Id: Iefd4718e811df844e53890ee5bc772871d0a9803
-Task-number: QTBUG-42807
-Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
-
-diff --git a/src/android/java/res/layout/splash.xml b/src/android/java/res/layout/splash.xml
-index 6875521..476d91a 100644
---- a/src/android/java/res/layout/splash.xml
-+++ b/src/android/java/res/layout/splash.xml
-@@ -1,2 +1,4 @@
- <?xml version="1.0" encoding="utf-8"?>
--<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" />
-+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-+ android:layout_width="fill_parent"
-+ android:layout_height="fill_parent" />
---
-2.1.2
-
-
-From f9408cc81c7d3cb3fa212005fb30cd8318ebf247 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Christian=20Str=C3=B8mme?=
- <christian.stromme@theqtcompany.com>
-Date: Fri, 21 Nov 2014 11:33:09 +0100
-Subject: [PATCH 04/36] Android: protect global jni cache.
-
-This fixes a issue that has been neglected for a while, namely, that
-the access to the global jni caches where not sufficiently protected
-for concurrent usage. This change also fixes an issue with the
-thread-name storage.
-
-Task-number: QTBUG-42755
-Change-Id: I22f95ae7f44d1f6a13e289e52b050d98ccb9fb28
-Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
-
-diff --git a/src/corelib/kernel/qjni.cpp b/src/corelib/kernel/qjni.cpp
-index b179323..9d74fd6 100644
---- a/src/corelib/kernel/qjni.cpp
-+++ b/src/corelib/kernel/qjni.cpp
-@@ -37,6 +37,7 @@
- #include <QtCore/qhash.h>
- #include <QtCore/qstring.h>
- #include <QtCore/QThread>
-+#include <QtCore/QReadWriteLock>
-
- QT_BEGIN_NAMESPACE
-
-@@ -45,11 +46,6 @@ static inline QString keyBase()
- return QStringLiteral("%1%2%3");
- }
-
--static inline QByteArray threadBaseName()
--{
-- return QByteArrayLiteral("QtThread-");
--}
--
- static QString qt_convertJString(jstring string)
- {
- QJNIEnvironmentPrivate env;
-@@ -74,6 +70,7 @@ static inline bool exceptionCheckAndClear(JNIEnv *env)
-
- typedef QHash<QString, jclass> JClassHash;
- Q_GLOBAL_STATIC(JClassHash, cachedClasses)
-+Q_GLOBAL_STATIC(QReadWriteLock, cachedClassesLock)
-
- static QString toDotEncodedClassName(const char *className)
- {
-@@ -82,8 +79,9 @@ static QString toDotEncodedClassName(const char *className)
-
- static jclass getCachedClass(const QString &classDotEnc, bool *isCached = 0)
- {
-- QHash<QString, jclass>::iterator it = cachedClasses->find(classDotEnc);
-- const bool found = (it != cachedClasses->end());
-+ QReadLocker locker(cachedClassesLock);
-+ const QHash<QString, jclass>::const_iterator &it = cachedClasses->constFind(classDotEnc);
-+ const bool found = (it != cachedClasses->constEnd());
-
- if (isCached != 0)
- *isCached = found;
-@@ -102,6 +100,12 @@ static jclass loadClassDotEnc(const QString &classDotEnc, JNIEnv *env)
- if (!classLoader.isValid())
- return 0;
-
-+ QWriteLocker locker(cachedClassesLock);
-+ // did we lose the race?
-+ const QHash<QString, jclass>::const_iterator &it = cachedClasses->constFind(classDotEnc);
-+ if (it != cachedClasses->constEnd())
-+ return it.value();
-+
- QJNIObjectPrivate stringName = QJNIObjectPrivate::fromString(classDotEnc);
- QJNIObjectPrivate classObject = classLoader.callObjectMethod("loadClass",
- "(Ljava/lang/String;)Ljava/lang/Class;",
-@@ -121,6 +125,7 @@ inline static jclass loadClass(const char *className, JNIEnv *env)
-
- typedef QHash<QString, jmethodID> JMethodIDHash;
- Q_GLOBAL_STATIC(JMethodIDHash, cachedMethodID)
-+Q_GLOBAL_STATIC(QReadWriteLock, cachedMethodIDLock)
-
- static jmethodID getCachedMethodID(JNIEnv *env,
- jclass clazz,
-@@ -128,11 +133,24 @@ static jmethodID getCachedMethodID(JNIEnv *env,
- const char *sig,
- bool isStatic = false)
- {
-- jmethodID id = 0;
- // TODO: We need to use something else then the ref. from clazz to avoid collisions.
-- QString key = keyBase().arg(size_t(clazz)).arg(QLatin1String(name)).arg(QLatin1String(sig));
-- QHash<QString, jmethodID>::iterator it = cachedMethodID->find(key);
-- if (it == cachedMethodID->end()) {
-+ const QString key = keyBase().arg(size_t(clazz)).arg(QLatin1String(name)).arg(QLatin1String(sig));
-+ QHash<QString, jmethodID>::const_iterator it;
-+
-+ {
-+ QReadLocker locker(cachedMethodIDLock);
-+ it = cachedMethodID->constFind(key);
-+ if (it != cachedMethodID->constEnd())
-+ return it.value();
-+ }
-+
-+ {
-+ QWriteLocker locker(cachedMethodIDLock);
-+ it = cachedMethodID->constFind(key);
-+ if (it != cachedMethodID->constEnd())
-+ return it.value();
-+
-+ jmethodID id = 0;
- if (isStatic)
- id = env->GetStaticMethodID(clazz, name, sig);
- else
-@@ -142,14 +160,13 @@ static jmethodID getCachedMethodID(JNIEnv *env,
- id = 0;
-
- cachedMethodID->insert(key, id);
-- } else {
-- id = it.value();
-+ return id;
- }
-- return id;
- }
-
- typedef QHash<QString, jfieldID> JFieldIDHash;
- Q_GLOBAL_STATIC(JFieldIDHash, cachedFieldID)
-+Q_GLOBAL_STATIC(QReadWriteLock, cachedFieldIDLock)
-
- static jfieldID getCachedFieldID(JNIEnv *env,
- jclass clazz,
-@@ -157,10 +174,23 @@ static jfieldID getCachedFieldID(JNIEnv *env,
- const char *sig,
- bool isStatic = false)
- {
-- jfieldID id = 0;
-- QString key = keyBase().arg(size_t(clazz)).arg(QLatin1String(name)).arg(QLatin1String(sig));
-- QHash<QString, jfieldID>::iterator it = cachedFieldID->find(key);
-- if (it == cachedFieldID->end()) {
-+ const QString key = keyBase().arg(size_t(clazz)).arg(QLatin1String(name)).arg(QLatin1String(sig));
-+ QHash<QString, jfieldID>::const_iterator it;
-+
-+ {
-+ QReadLocker locker(cachedFieldIDLock);
-+ it = cachedFieldID->constFind(key);
-+ if (it != cachedFieldID->constEnd())
-+ return it.value();
-+ }
-+
-+ {
-+ QWriteLocker locker(cachedFieldIDLock);
-+ it = cachedFieldID->constFind(key);
-+ if (it != cachedFieldID->constEnd())
-+ return it.value();
-+
-+ jfieldID id = 0;
- if (isStatic)
- id = env->GetStaticFieldID(clazz, name, sig);
- else
-@@ -170,10 +200,8 @@ static jfieldID getCachedFieldID(JNIEnv *env,
- id = 0;
-
- cachedFieldID->insert(key, id);
-- } else {
-- id = it.value();
-+ return id;
- }
-- return id;
- }
-
- class QJNIEnvironmentPrivateTLS
-@@ -187,14 +215,14 @@ public:
-
- Q_GLOBAL_STATIC(QThreadStorage<QJNIEnvironmentPrivateTLS *>, jniEnvTLS)
-
-+static const char qJniThreadName[] = "QtThread";
-+
- QJNIEnvironmentPrivate::QJNIEnvironmentPrivate()
- : jniEnv(0)
- {
- JavaVM *vm = QtAndroidPrivate::javaVM();
- if (vm->GetEnv((void**)&jniEnv, JNI_VERSION_1_6) == JNI_EDETACHED) {
-- const qulonglong id = reinterpret_cast<qulonglong>(QThread::currentThreadId());
-- const QByteArray threadName = threadBaseName() + QByteArray::number(id);
-- JavaVMAttachArgs args = { JNI_VERSION_1_6, threadName, Q_NULLPTR };
-+ JavaVMAttachArgs args = { JNI_VERSION_1_6, qJniThreadName, Q_NULLPTR };
- if (vm->AttachCurrentThread(&jniEnv, &args) != JNI_OK)
- return;
- }
-@@ -223,6 +251,12 @@ jclass QJNIEnvironmentPrivate::findClass(const char *className, JNIEnv *env)
- return clazz;
-
- if (env != 0) { // We got an env. pointer (We expect this to be the right env. and call FindClass())
-+ QWriteLocker locker(cachedClassesLock);
-+ const QHash<QString, jclass>::const_iterator &it = cachedClasses->constFind(classDotEnc);
-+ // Did we lose the race?
-+ if (it != cachedClasses->constEnd())
-+ return it.value();
-+
- jclass fclazz = env->FindClass(className);
- if (!exceptionCheckAndClear(env)) {
- clazz = static_cast<jclass>(env->NewGlobalRef(fclazz));
-@@ -400,7 +434,6 @@ QJNIObjectPrivate::QJNIObjectPrivate(jobject obj)
- d->m_jclass = static_cast<jclass>(env->NewGlobalRef(objectClass));
- env->DeleteLocalRef(objectClass);
- }
--
- template <>
- void QJNIObjectPrivate::callMethodV<void>(const char *methodName, const char *sig, va_list args) const
- {
---
-2.1.2
-
-
-From c9c40af130763d81531ebee35d22d3b5573f48ef Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Tony=20Saraj=C3=A4rvi?= <tony.sarajarvi@digia.com>
-Date: Wed, 12 Nov 2014 12:27:39 +0200
-Subject: [PATCH 05/36] Mark QSocks5SocketEngine tests blacklisted
-
-This patch is cherry-picked from
-63ae74f36533d92c5b38df1eb2a7fcf4c586bf11 and
-07f234d2a8283081aabdd1465f09b04a26bec1a3
-
-Task-number: QTBUG-42528
-Change-Id: I5f86679e62a4be48ce25afa5a4987a2b6678a357
-Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
-
-diff --git a/tests/auto/network/socket/qsocks5socketengine/BLACKLIST b/tests/auto/network/socket/qsocks5socketengine/BLACKLIST
-new file mode 100644
-index 0000000..bf4afa8
---- /dev/null
-+++ b/tests/auto/network/socket/qsocks5socketengine/BLACKLIST
-@@ -0,0 +1,4 @@
-+[udpTest]
-+*
-+[passwordAuth]
-+*
---
-2.1.2
-
-
-From 800f832201267bcbf6a7e9b4b9dbc69f9029dcc0 Mon Sep 17 00:00:00 2001
-From: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
-Date: Fri, 21 Nov 2014 15:30:01 +0100
-Subject: [PATCH 06/36] Apply r1513 to our PCRE bundled copy
-
-Fixes CVE-2014-8964.
-
-Upstream diff: http://www.exim.org/viewvc/pcre?view=revision&revision=1513
-
-Change-Id: I59dc1f4c290e29ab5f22ed68eaeba702f4232e0e
-Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
-Reviewed-by: Lars Knoll <lars.knoll@digia.com>
-Reviewed-by: Richard J. Moore <rich@kde.org>
-
-diff --git a/src/3rdparty/pcre/patches/pcre-r1513.patch b/src/3rdparty/pcre/patches/pcre-r1513.patch
-new file mode 100644
-index 0000000..d84aa0c
---- /dev/null
-+++ b/src/3rdparty/pcre/patches/pcre-r1513.patch
-@@ -0,0 +1,18 @@
-+Index: pcre_exec.c
-+===================================================================
-+--- pcre_exec.c (revisione 1512)
-++++ pcre_exec.c (revisione 1513)
-+@@ -1404,8 +1404,11 @@
-+ condition = TRUE;
-+
-+ /* Advance ecode past the assertion to the start of the first branch,
-+- but adjust it so that the general choosing code below works. */
-+-
-++ but adjust it so that the general choosing code below works. If the
-++ assertion has a quantifier that allows zero repeats we must skip over
-++ the BRAZERO. This is a lunatic thing to do, but somebody did! */
-++
-++ if (*ecode == OP_BRAZERO) ecode++;
-+ ecode += GET(ecode, 1);
-+ while (*ecode == OP_ALT) ecode += GET(ecode, 1);
-+ ecode += 1 + LINK_SIZE - PRIV(OP_lengths)[condcode];
-diff --git a/src/3rdparty/pcre/pcre_exec.c b/src/3rdparty/pcre/pcre_exec.c
-index b0101da..7755aaf 100644
---- a/src/3rdparty/pcre/pcre_exec.c
-+++ b/src/3rdparty/pcre/pcre_exec.c
-@@ -1394,8 +1394,11 @@ for (;;)
- condition = TRUE;
-
- /* Advance ecode past the assertion to the start of the first branch,
-- but adjust it so that the general choosing code below works. */
--
-+ but adjust it so that the general choosing code below works. If the
-+ assertion has a quantifier that allows zero repeats we must skip over
-+ the BRAZERO. This is a lunatic thing to do, but somebody did! */
-+
-+ if (*ecode == OP_BRAZERO) ecode++;
- ecode += GET(ecode, 1);
- while (*ecode == OP_ALT) ecode += GET(ecode, 1);
- ecode += 1 + LINK_SIZE - PRIV(OP_lengths)[condcode];
---
-2.1.2
-
-
-From d958a16bc15603dc3dfce36d126b4917d4290945 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Tony=20Saraj=C3=A4rvi?= <tony.sarajarvi@digia.com>
-Date: Thu, 13 Nov 2014 13:25:12 +0200
-Subject: [PATCH 07/36] Blacklist one test function in tst_QNetworkReply
-
-This patch is cherry-picked from
-c38f1f19b87d20f79394bca151268fc3cdcdd189 and
-d29d727d720fa4ac7ba046b6bfb96707586de7d3
-
-Task-number: QTBUG-32435
-Change-Id: I6dbbb668b96737a5791bc688949a00bc09f1357f
-Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
-
-diff --git a/tests/auto/network/access/qnetworkreply/BLACKLIST b/tests/auto/network/access/qnetworkreply/BLACKLIST
-index fbd7249..7792e05 100644
---- a/tests/auto/network/access/qnetworkreply/BLACKLIST
-+++ b/tests/auto/network/access/qnetworkreply/BLACKLIST
-@@ -7,3 +7,6 @@ osx
- [SslHandshakeFailedError]
- osx
- [httpAbort]
-+*
-+[backgroundRequestInterruption:ftp, bg, nobg]
-+*
---
-2.1.2
-
-
-From 0fc578829115d593c9a09bd4b2a5e9fea1a759d1 Mon Sep 17 00:00:00 2001
-From: Paul Olav Tvete <paul.tvete@theqtcompany.com>
-Date: Fri, 21 Nov 2014 16:08:29 +0100
-Subject: [PATCH 08/36] Fix for HTC Pinyin input method
-
-HTC does not do beginBatchEdit/endBatchEdit when committing text.
-We implement the commit in two steps: first set the text, then move
-the cursor. To avoid sending an updateSelection for the intermediate state,
-we need to block updates when we set the text in the editor.
-
-Task-number: QTBUG-42300
-Change-Id: Icd18700ecf1fba5acb9f8a78762555c1309b221b
-Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
-
-diff --git a/src/plugins/platforms/android/qandroidinputcontext.cpp b/src/plugins/platforms/android/qandroidinputcontext.cpp
-index a3848c9..7e81735 100644
---- a/src/plugins/platforms/android/qandroidinputcontext.cpp
-+++ b/src/plugins/platforms/android/qandroidinputcontext.cpp
-@@ -611,6 +611,9 @@ jboolean QAndroidInputContext::endBatchEdit()
- */
- jboolean QAndroidInputContext::commitText(const QString &text, jint newCursorPosition)
- {
-+ bool updateSelectionWasBlocked = m_blockUpdateSelection;
-+ m_blockUpdateSelection = true;
-+
- QInputMethodEvent event;
- event.setCommitString(text);
- sendInputMethodEventThreadSafe(&event);
-@@ -630,6 +633,7 @@ jboolean QAndroidInputContext::commitText(const QString &text, jint newCursorPos
- newLocalPos, 0, QVariant()));
- }
- }
-+ m_blockUpdateSelection = updateSelectionWasBlocked;
-
- updateCursorPosition();
- return JNI_TRUE;
---
-2.1.2
-
-
-From 78c43ce8ea882839bb507ebb2a71ec6752697d8e Mon Sep 17 00:00:00 2001
-From: Laszlo Agocs <laszlo.agocs@digia.com>
-Date: Sat, 22 Nov 2014 19:37:29 +0100
-Subject: [PATCH 09/36] Update 5.4.0 changes with missing entries
-
-Change-Id: I2bd0fb79817ac391a2a7c6b9d12ccef5c19ebd88
-Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
-
-diff --git a/dist/changes-5.4.0 b/dist/changes-5.4.0
-index fc3e3a5..2b6cd2b 100644
---- a/dist/changes-5.4.0
-+++ b/dist/changes-5.4.0
-@@ -198,6 +198,10 @@ QtGui
- -----
-
- - Added QPixelFormat class.
-+ - Added QOpenGLWidget class.
-+ - Added QOpenGLWindow class.
-+ - Added QRasterWindow class.
-+ - QOpenGLContext is now able to adopt existing native contexts.
- - [QTBUG-38168] QtGui's OpenGL headers are now automatically including the
- highest available header (gl31.h, gl3.h or gl2.h) in OpenGL ES builds.
- - [QTBUG-36483] Dynamic OpenGL implementation loading is now supported on
-@@ -205,6 +209,10 @@ QtGui
- - [QTBUG-39583] Keymaps are now changeable at runtime when using eglfs.
- - [QTBUG-40841] environment variable QT_DBL_CLICK_DIST customizes the
- amount of movement allowed when detecting a double click.
-+ - [QTBUG-37552] The eglfs mouse cursor properly resets the array buffer
-+ from now on to avoid rendering issues.
-+ - [QTBUG-40093] QWindow::close() is changed to send a QCloseEvent which
-+ must be accepted before destroy() will be called.
-
- - Clipboard:
- * [QTBUG-41852] Fixed a memory leak in setMimeData() when the platform
-@@ -250,7 +258,11 @@ QtGui
- accounting for QDataStream versions greater than Qt 4.5.
-
- - Tablet support:
-- * [QTBUG-39458] Added buttons to QTabletEvent
-+ * [QTBUG-39458] Added buttons to QTabletEvent.
-+ * [QTBUG-39666] Events correctly identify the tool.
-+ * [QTBUG-39570][QTBUG-40469] Corrected valuator ranges across platforms.
-+ * Better support for non-Wacom devices.
-+ * Better manual test to verify more features.
-
- - Text:
- * [QTBUG-41372] Fixed regression when rendering Uchen text in WebKit
-@@ -311,6 +323,8 @@ QtWidgets
- - [QTBUG-32888] Accessibility for widgets is now included in the widget
- library instead of being a separate plugin. For static builds this means
- that libqtaccessiblewidgets is no longer required.
-+ - [QTBUG-39814] Accessors for Qt::MouseEventSource and Qt::MouseEventFlags
-+ are now available in QGraphicsSceneMouseEvent.
-
- - QComboBox:
- * [QTBUG-33537] Fixed positions of items when QComboBox is set as
-@@ -365,6 +379,10 @@ QtWidgets
- * Platform Specific Changes *
- ****************************************************************************
-
-+- Several QPA logging categories are added under qt.qpa to enable logging
-+ of various platform-specific details. qt.qpa.input is now used
-+ consistently.
-+
- Android
- -------
-
-@@ -408,10 +426,9 @@ Linux/XCB
- is no alpha channel or system tray visual.
- - environment variables QT_XCB_DEBUG_XINPUT and
- QT_XCB_DEBUG_XINPUT_DEVICES are deprecated and replaced with logging
-- categories qt.qpa.events.input and qt.qpa.devices respectively
-- - [QTBUG-39572] Wacom touch devices are not mistaken for additional
-- graphics tablets any more.
--
-+ categories qt.qpa.input and qt.qpa.input.devices respectively
-+ - [QTBUG-39572] Wacom touch devices are now working correctly.
-+ - [QTBUG-42249] A path to a font file can now contain non-Latin characters.
-
- OS X
- ----
-@@ -522,3 +539,6 @@ rcc
- extensions.
- - [QTBUG-40649][QTBUG-40658][QTBUG-41031][QTBUG-41081][QTBUG-41308][QTBUG-
- 41563] ANGLE updated to 2.1~f8602ad91e4f
-+ - [QTBUG-41031] The ANGLE D3D11 renderer is now enabled by default. Systems
-+ which cannot use the new renderer will automatically fall back to the D3D9
-+ renderer at runtime.
---
-2.1.2
-
-
-From f88ab80c8a7510ff01410631eeaec81d48365316 Mon Sep 17 00:00:00 2001
-From: Alejandro Exojo <suy@badopi.org>
-Date: Fri, 21 Nov 2014 12:44:33 +0100
-Subject: [PATCH 10/36] Use camel case in PKCS#12 function
-
-This makes it follow the coding style, which says to camel case acronyms too,
-and makes it consistent with the rest of the class.
-
-Change-Id: I4a1b21de1815530e476fc5aa8a0d41c724fc8021
-Reviewed-by: Richard J. Moore <rich@kde.org>
-Reviewed-by: hjk <hjk121@nokiamail.com>
-
-diff --git a/src/network/ssl/qsslcertificate.cpp b/src/network/ssl/qsslcertificate.cpp
-index 13bddcb..125a7a0 100644
---- a/src/network/ssl/qsslcertificate.cpp
-+++ b/src/network/ssl/qsslcertificate.cpp
-@@ -575,12 +575,12 @@ QList<QSslError> QSslCertificate::verify(QList<QSslCertificate> certificateChain
-
- \note The \a device must be open and ready to be read from.
- */
--bool QSslCertificate::importPKCS12(QIODevice *device,
-+bool QSslCertificate::importPkcs12(QIODevice *device,
- QSslKey *key, QSslCertificate *certificate,
- QList<QSslCertificate> *caCertificates,
- const QByteArray &passPhrase)
- {
-- return QSslSocketBackendPrivate::importPKCS12(device, key, certificate, caCertificates, passPhrase);
-+ return QSslSocketBackendPrivate::importPkcs12(device, key, certificate, caCertificates, passPhrase);
- }
-
- // These certificates are known to be fraudulent and were created during the comodo
-diff --git a/src/network/ssl/qsslcertificate.h b/src/network/ssl/qsslcertificate.h
-index e34ea97..6aa7544 100644
---- a/src/network/ssl/qsslcertificate.h
-+++ b/src/network/ssl/qsslcertificate.h
-@@ -138,7 +138,7 @@ public:
-
- static QList<QSslError> verify(QList<QSslCertificate> certificateChain, const QString &hostName = QString());
-
-- static bool importPKCS12(QIODevice *device,
-+ static bool importPkcs12(QIODevice *device,
- QSslKey *key, QSslCertificate *cert,
- QList<QSslCertificate> *caCertificates=0,
- const QByteArray &passPhrase=QByteArray());
-diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp
-index 84b0d9c..13fc534 100644
---- a/src/network/ssl/qsslsocket_openssl.cpp
-+++ b/src/network/ssl/qsslsocket_openssl.cpp
-@@ -1671,7 +1671,7 @@ QList<QSslError> QSslSocketBackendPrivate::verify(QList<QSslCertificate> certifi
- return errors;
- }
-
--bool QSslSocketBackendPrivate::importPKCS12(QIODevice *device,
-+bool QSslSocketBackendPrivate::importPkcs12(QIODevice *device,
- QSslKey *key, QSslCertificate *cert,
- QList<QSslCertificate> *caCertificates,
- const QByteArray &passPhrase)
-diff --git a/src/network/ssl/qsslsocket_openssl_p.h b/src/network/ssl/qsslsocket_openssl_p.h
-index 8b02f32..29907e9 100644
---- a/src/network/ssl/qsslsocket_openssl_p.h
-+++ b/src/network/ssl/qsslsocket_openssl_p.h
-@@ -136,7 +136,7 @@ public:
- static QList<QSslCertificate> STACKOFX509_to_QSslCertificates(STACK_OF(X509) *x509);
- static QList<QSslError> verify(QList<QSslCertificate> certificateChain, const QString &hostName);
- static QString getErrorsFromOpenSsl();
-- static bool importPKCS12(QIODevice *device,
-+ static bool importPkcs12(QIODevice *device,
- QSslKey *key, QSslCertificate *cert,
- QList<QSslCertificate> *caCertificates,
- const QByteArray &passPhrase);
-diff --git a/src/network/ssl/qsslsocket_winrt.cpp b/src/network/ssl/qsslsocket_winrt.cpp
-index da4c72b..418a741 100644
---- a/src/network/ssl/qsslsocket_winrt.cpp
-+++ b/src/network/ssl/qsslsocket_winrt.cpp
-@@ -661,7 +661,7 @@ QList<QSslError> QSslSocketBackendPrivate::verify(QList<QSslCertificate> certifi
- return errors;
- }
-
--bool QSslSocketBackendPrivate::importPKCS12(QIODevice *device,
-+bool QSslSocketBackendPrivate::importPkcs12(QIODevice *device,
- QSslKey *key, QSslCertificate *cert,
- QList<QSslCertificate> *caCertificates,
- const QByteArray &passPhrase)
-diff --git a/src/network/ssl/qsslsocket_winrt_p.h b/src/network/ssl/qsslsocket_winrt_p.h
-index aa31c85..f0df7c6 100644
---- a/src/network/ssl/qsslsocket_winrt_p.h
-+++ b/src/network/ssl/qsslsocket_winrt_p.h
-@@ -92,7 +92,7 @@ public:
-
- static QList<QSslCipher> defaultCiphers();
- static QList<QSslError> verify(QList<QSslCertificate> certificateChain, const QString &hostName);
-- static bool importPKCS12(QIODevice *device,
-+ static bool importPkcs12(QIODevice *device,
- QSslKey *key, QSslCertificate *cert,
- QList<QSslCertificate> *caCertificates,
- const QByteArray &passPhrase);
-diff --git a/tests/auto/network/ssl/qsslcertificate/tst_qsslcertificate.cpp b/tests/auto/network/ssl/qsslcertificate/tst_qsslcertificate.cpp
-index 49ff1b4..82050e7 100644
---- a/tests/auto/network/ssl/qsslcertificate/tst_qsslcertificate.cpp
-+++ b/tests/auto/network/ssl/qsslcertificate/tst_qsslcertificate.cpp
-@@ -1312,7 +1312,7 @@ void tst_QSslCertificate::pkcs12()
- #ifdef QT_NO_OPENSSL
- QEXPECT_FAIL("", "QTBUG-40884: WinRT API does not support pkcs12 imports", Abort);
- #endif
-- ok = QSslCertificate::importPKCS12(&f, &key, &cert, &caCerts);
-+ ok = QSslCertificate::importPkcs12(&f, &key, &cert, &caCerts);
- QVERIFY(ok);
- f.close();
-
---
-2.1.2
-
-
-From 155306ffee1941194d44dd632a7993fce4a05606 Mon Sep 17 00:00:00 2001
-From: Kai Koehne <kai.koehne@theqtcompany.com>
-Date: Mon, 24 Nov 2014 10:52:03 +0100
-Subject: [PATCH 11/36] ANGLE: Fix releasing textures after we kill D3D11
-
-Cherry-pick upstream commit cc4cd2925b9a4f1142a86df131345a861c9d7cd9
-to fix crashes on exit.
-
-Task-number: QTBUG-42772
-Change-Id: Ib74be17f2b5fdd58f9e0568e1da74ba19e943019
-Reviewed-by: Andrew Knight <andrew.knight@theqtcompany.com>
-Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
-
-diff --git a/src/3rdparty/angle/src/libGLESv2/Context.cpp b/src/3rdparty/angle/src/libGLESv2/Context.cpp
-index b87689c..3772da6 100644
---- a/src/3rdparty/angle/src/libGLESv2/Context.cpp
-+++ b/src/3rdparty/angle/src/libGLESv2/Context.cpp
-@@ -162,12 +162,6 @@ Context::~Context()
- deleteTransformFeedback(mTransformFeedbackMap.begin()->first);
- }
-
-- for (TextureMap::iterator i = mIncompleteTextures.begin(); i != mIncompleteTextures.end(); i++)
-- {
-- i->second.set(NULL);
-- }
-- mIncompleteTextures.clear();
--
- for (TextureMap::iterator i = mZeroTextures.begin(); i != mZeroTextures.end(); i++)
- {
- i->second.set(NULL);
-diff --git a/src/3rdparty/angle/src/libGLESv2/Context.h b/src/3rdparty/angle/src/libGLESv2/Context.h
-index 1e890de..0699592 100644
---- a/src/3rdparty/angle/src/libGLESv2/Context.h
-+++ b/src/3rdparty/angle/src/libGLESv2/Context.h
-@@ -247,7 +247,6 @@ class Context
- int mClientVersion;
-
- TextureMap mZeroTextures;
-- TextureMap mIncompleteTextures;
-
- typedef std::unordered_map<GLuint, Framebuffer*> FramebufferMap;
- FramebufferMap mFramebufferMap;
-diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.cpp
-index 97da6da..5cddd8a 100644
---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.cpp
-+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.cpp
-@@ -27,6 +27,11 @@ RendererD3D::RendererD3D(egl::Display *display)
-
- RendererD3D::~RendererD3D()
- {
-+ cleanup();
-+}
-+
-+void RendererD3D::cleanup()
-+{
- for (gl::TextureMap::iterator i = mIncompleteTextures.begin(); i != mIncompleteTextures.end(); ++i)
- {
- i->second.set(NULL);
-diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.h b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.h
-index 9919207..a2f7787 100644
---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.h
-+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.h
-@@ -160,6 +160,8 @@ class RendererD3D : public Renderer
- const gl::Rectangle *scissor, bool blitRenderTarget,
- bool blitDepth, bool blitStencil, GLenum filter) = 0;
-
-+ void cleanup();
-+
- egl::Display *mDisplay;
-
- private:
-diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp
-index e6d7f30..777308e 100644
---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp
-+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp
-@@ -1870,6 +1870,8 @@ bool Renderer11::testDeviceResettable()
-
- void Renderer11::release()
- {
-+ RendererD3D::cleanup();
-+
- releaseShaderCompiler();
- releaseDeviceResources();
-
-diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp
-index 601cd24..18e6e2d 100644
---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp
-+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp
-@@ -151,6 +151,8 @@ Renderer9::~Renderer9()
-
- void Renderer9::release()
- {
-+ RendererD3D::cleanup();
-+
- releaseShaderCompiler();
- releaseDeviceResources();
-
-diff --git a/src/angle/patches/0018-ANGLE-Fix-releasing-textures-after-we-kill-D3D11.patch b/src/angle/patches/0018-ANGLE-Fix-releasing-textures-after-we-kill-D3D11.patch
-new file mode 100644
-index 0000000..97847ad
---- /dev/null
-+++ b/src/angle/patches/0018-ANGLE-Fix-releasing-textures-after-we-kill-D3D11.patch
-@@ -0,0 +1,106 @@
-+From 014d3fcf6011109491b0489da9c1abb1fdc6dbdc Mon Sep 17 00:00:00 2001
-+From: Kai Koehne <kai.koehne@theqtcompany.com>
-+Date: Mon, 24 Nov 2014 10:52:03 +0100
-+Subject: [PATCH] ANGLE: Fix releasing textures after we kill D3D11
-+
-+Cherry-pick upstream commit cc4cd2925b9a4f1142a86df131345a861c9d7cd9
-+to fix crashes on exit.
-+
-+Task-number: QTBUG-42772
-+Change-Id: Ib74be17f2b5fdd58f9e0568e1da74ba19e943019
-+---
-+ src/3rdparty/angle/src/libGLESv2/Context.cpp | 6 ------
-+ src/3rdparty/angle/src/libGLESv2/Context.h | 1 -
-+ src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.cpp | 5 +++++
-+ src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.h | 2 ++
-+ src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp | 2 ++
-+ src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp | 2 ++
-+ 6 files changed, 11 insertions(+), 7 deletions(-)
-+
-+diff --git a/src/3rdparty/angle/src/libGLESv2/Context.cpp b/src/3rdparty/angle/src/libGLESv2/Context.cpp
-+index b87689c..3772da6 100644
-+--- a/src/3rdparty/angle/src/libGLESv2/Context.cpp
-++++ b/src/3rdparty/angle/src/libGLESv2/Context.cpp
-+@@ -162,12 +162,6 @@ Context::~Context()
-+ deleteTransformFeedback(mTransformFeedbackMap.begin()->first);
-+ }
-+
-+- for (TextureMap::iterator i = mIncompleteTextures.begin(); i != mIncompleteTextures.end(); i++)
-+- {
-+- i->second.set(NULL);
-+- }
-+- mIncompleteTextures.clear();
-+-
-+ for (TextureMap::iterator i = mZeroTextures.begin(); i != mZeroTextures.end(); i++)
-+ {
-+ i->second.set(NULL);
-+diff --git a/src/3rdparty/angle/src/libGLESv2/Context.h b/src/3rdparty/angle/src/libGLESv2/Context.h
-+index 1e890de..0699592 100644
-+--- a/src/3rdparty/angle/src/libGLESv2/Context.h
-++++ b/src/3rdparty/angle/src/libGLESv2/Context.h
-+@@ -247,7 +247,6 @@ class Context
-+ int mClientVersion;
-+
-+ TextureMap mZeroTextures;
-+- TextureMap mIncompleteTextures;
-+
-+ typedef std::unordered_map<GLuint, Framebuffer*> FramebufferMap;
-+ FramebufferMap mFramebufferMap;
-+diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.cpp
-+index 97da6da..5cddd8a 100644
-+--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.cpp
-++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.cpp
-+@@ -27,6 +27,11 @@ RendererD3D::RendererD3D(egl::Display *display)
-+
-+ RendererD3D::~RendererD3D()
-+ {
-++ cleanup();
-++}
-++
-++void RendererD3D::cleanup()
-++{
-+ for (gl::TextureMap::iterator i = mIncompleteTextures.begin(); i != mIncompleteTextures.end(); ++i)
-+ {
-+ i->second.set(NULL);
-+diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.h b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.h
-+index 9919207..a2f7787 100644
-+--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.h
-++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/RendererD3D.h
-+@@ -160,6 +160,8 @@ class RendererD3D : public Renderer
-+ const gl::Rectangle *scissor, bool blitRenderTarget,
-+ bool blitDepth, bool blitStencil, GLenum filter) = 0;
-+
-++ void cleanup();
-++
-+ egl::Display *mDisplay;
-+
-+ private:
-+diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp
-+index e6d7f30..777308e 100644
-+--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp
-++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp
-+@@ -1870,6 +1870,8 @@ bool Renderer11::testDeviceResettable()
-+
-+ void Renderer11::release()
-+ {
-++ RendererD3D::cleanup();
-++
-+ releaseShaderCompiler();
-+ releaseDeviceResources();
-+
-+diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp
-+index 601cd24..18e6e2d 100644
-+--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp
-++++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp
-+@@ -151,6 +151,8 @@ Renderer9::~Renderer9()
-+
-+ void Renderer9::release()
-+ {
-++ RendererD3D::cleanup();
-++
-+ releaseShaderCompiler();
-+ releaseDeviceResources();
-+
-+--
-+1.9.4.msysgit.0
-+
---
-2.1.2
-
-
-From 9b01589e58d458b6367b3578079e73ddc2ef458f Mon Sep 17 00:00:00 2001
-From: Andrew Knight <andrew.knight@theqtcompany.com>
-Date: Tue, 25 Nov 2014 13:31:20 +0200
-Subject: [PATCH 12/36] Turn off optimizations of qt_depthForFormat on Windows
- Runtime ARM
-
-This function is apparently optimized in a way that gives a bad return
-value (or leaves the variable where it is used uninitialized), leading to
-extreme memory allocations and eventual heap exhaustion.
-
-Task-number: QTBUG-42038
-Change-Id: Ia4ee9fc6475a0bf40e25eed356b027a4dc68d119
-Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
-
-diff --git a/src/gui/image/qimage_p.h b/src/gui/image/qimage_p.h
-index eec54ed..7e2d430 100644
---- a/src/gui/image/qimage_p.h
-+++ b/src/gui/image/qimage_p.h
-@@ -116,6 +116,9 @@ void qInitImageConversions();
- const uchar *qt_get_bitflip_array();
- Q_GUI_EXPORT void qGamma_correct_back_to_linear_cs(QImage *image);
-
-+#if defined(Q_OS_WINRT) && defined(_M_ARM) // QTBUG-42038
-+#pragma optimize("", off)
-+#endif
- inline int qt_depthForFormat(QImage::Format format)
- {
- int depth = 0;
-@@ -158,6 +161,9 @@ inline int qt_depthForFormat(QImage::Format format)
- }
- return depth;
- }
-+#if defined(Q_OS_WINRT) && defined(_M_ARM)
-+#pragma optimize("", on)
-+#endif
-
- QT_END_NAMESPACE
-
---
-2.1.2
-
-
-From aed71b6832703e0c6cb953ac9a5cd7cfba95f7b5 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Tony=20Saraj=C3=A4rvi?= <tony.sarajarvi@digia.com>
-Date: Tue, 25 Nov 2014 11:05:10 +0200
-Subject: [PATCH 13/36] Blacklist one tst_qsslsocket test
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Task-number: QTBUG-29941
-Change-Id: Ieb3418a2d6d88ebd399964b5df20d9fe4d6ca37b
-Reviewed-by: Simo Fält <simo.falt@digia.com>
-
-diff --git a/tests/auto/network/ssl/qsslsocket/BLACKLIST b/tests/auto/network/ssl/qsslsocket/BLACKLIST
-new file mode 100644
-index 0000000..17b606e
---- /dev/null
-+++ b/tests/auto/network/ssl/qsslsocket/BLACKLIST
-@@ -0,0 +1,2 @@
-+[waitForConnectedEncryptedReadyRead:WithSocks5ProxyAuth]
-+*
---
-2.1.2
-
-
-From 89867f86fc5766c30253748560b8c16f721e808e Mon Sep 17 00:00:00 2001
-From: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
-Date: Mon, 24 Nov 2014 16:44:31 +0100
-Subject: [PATCH 14/36] iOS, QComboBox: don't apply special case for OS X on
- iOS
-
-The special-case that was added for OS X before the iOS port
-came to be stops the virtual keyboard from working correctly.
-
-Task-number: QTBUG-41613
-Change-Id: I0b8c83e98584389ea4a8aada16a1ee1a64300400
-Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
-
-diff --git a/src/widgets/widgets/qcombobox.cpp b/src/widgets/widgets/qcombobox.cpp
-index fda37c4..40cf2f0 100644
---- a/src/widgets/widgets/qcombobox.cpp
-+++ b/src/widgets/widgets/qcombobox.cpp
-@@ -942,8 +942,8 @@ QComboBox::QComboBox(QComboBoxPrivate &dd, QWidget *parent)
- void QComboBoxPrivate::init()
- {
- Q_Q(QComboBox);
--#ifdef Q_OS_MAC
-- // On Mac, only line edits and list views always get tab focus. It's only
-+#ifdef Q_OS_OSX
-+ // On OS X, only line edits and list views always get tab focus. It's only
- // when we enable full keyboard access that other controls can get tab focus.
- // When it's not editable, a combobox looks like a button, and it behaves as
- // such in this respect.
---
-2.1.2
-
-
-From 503b9c318164122b0111f6d0d9d3b680c8ca016f Mon Sep 17 00:00:00 2001
-From: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
-Date: Mon, 24 Nov 2014 11:21:07 +0100
-Subject: [PATCH 15/36] iOS: fallback to use [UIScreen mainScreen] when
- [UIScreen screens] fail
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-On iOS 7.1 [UIScreen screens] sometimes (and against documentation) returns
-an empty array, which will lead to a crash. This patch will add a fallback
-path that uses [UIScreen mainScreen] instead when the screen count is 0.
-
-Task-number: QTBUG-42345
-Change-Id: Ie72578ff7ecd0c8fbc971fafea45047bf1347cd9
-Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
-
-diff --git a/src/plugins/platforms/ios/qiosintegration.mm b/src/plugins/platforms/ios/qiosintegration.mm
-index 9a722ea..461f160 100644
---- a/src/plugins/platforms/ios/qiosintegration.mm
-+++ b/src/plugins/platforms/ios/qiosintegration.mm
-@@ -88,7 +88,13 @@ QIOSIntegration::QIOSIntegration()
- // Set current directory to app bundle folder
- QDir::setCurrent(QString::fromUtf8([[[NSBundle mainBundle] bundlePath] UTF8String]));
-
-- for (UIScreen *screen in [UIScreen screens])
-+ NSMutableArray *screens = [[[UIScreen screens] mutableCopy] autorelease];
-+ if (![screens containsObject:[UIScreen mainScreen]]) {
-+ // Fallback for iOS 7.1 (QTBUG-42345)
-+ [screens insertObject:[UIScreen mainScreen] atIndex:0];
-+ }
-+
-+ for (UIScreen *screen in screens)
- addScreen(new QIOSScreen(screen));
-
- // Depends on a primary screen being present
---
-2.1.2
-
-
-From 37fb892767baa08fca6f5172c51bdc1e270c72ec Mon Sep 17 00:00:00 2001
-From: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
-Date: Mon, 24 Nov 2014 12:15:34 +0100
-Subject: [PATCH 16/36] Android: Report error when OpenSSL is on and headers
- are missing
-
-There was an override for Android which would disable the configure
-error when doing an OpenSSL build without having the headers
-available. This has several times lead to packaging errors where
-OpenSSL gets disabled but it's not noticed before the package testing,
-which delays the process.
-
-I'm not 100% sure of the reasoning behind the override, but I think
-it's a left-over from Necessitas where OpenSSL was statically linked
-into Qt.
-
-Change-Id: I2bdc33fb60c59cd493987959d4bbbbb4e9735a92
-Task-number: QTBUG-42851
-Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
-Reviewed-by: BogDan Vatra <bogdan@kde.org>
-Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
-Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
-
-diff --git a/configure b/configure
-index 1a002b4..d95d8a2 100755
---- a/configure
-+++ b/configure
-@@ -5481,7 +5481,7 @@ if [ "$CFG_OPENSSL" != "no" ]; then
- CFG_OPENSSL=yes
- fi
- else
-- if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ] && [ "$XPLATFORM_ANDROID" = "no" ]; then
-+ if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
- echo "OpenSSL support cannot be enabled due to functionality tests!"
- echo " Turn on verbose messaging (-v) to $0 to see the final report."
- echo " If you believe this message is in error you may use the continue"
---
-2.1.2
-
-
-From 6ea6ee7a129523dfe2973b92359afd672ef92f47 Mon Sep 17 00:00:00 2001
-From: Alejandro Exojo <suy@badopi.org>
-Date: Thu, 20 Nov 2014 12:55:56 +0100
-Subject: [PATCH 17/36] Adjust DBMSType to DbmsType to follow conventions
-
-The enum was made public in f84b00c6d26eb7a3a6802210d2a8b12ddbf815aa, but this
-makes it follow the convention to camel case acronyms too before it's too late
-to change it.
-
-Change-Id: Ibb81e9221cb73fe0502d0a26f2d73512dd142f08
-Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
-
-diff --git a/src/sql/kernel/qsqldriver.cpp b/src/sql/kernel/qsqldriver.cpp
-index 736fe31..f218016 100644
---- a/src/sql/kernel/qsqldriver.cpp
-+++ b/src/sql/kernel/qsqldriver.cpp
-@@ -237,11 +237,11 @@ bool QSqlDriver::isOpenError() const
- */
-
- /*!
-- \enum QSqlDriver::DBMSType
-+ \enum QSqlDriver::DbmsType
-
- This enum contains DBMS types.
-
-- \value UnknownDBMS
-+ \value UnknownDbms
- \value MSSqlServer
- \value MySqlServer
- \value PostgreSQL
-@@ -787,7 +787,7 @@ QSql::NumericalPrecisionPolicy QSqlDriver::numericalPrecisionPolicy() const
-
- Returns the current DBMS type for the database connection.
- */
--QSqlDriver::DBMSType QSqlDriver::dbmsType() const
-+QSqlDriver::DbmsType QSqlDriver::dbmsType() const
- {
- return d_func()->dbmsType;
- }
-diff --git a/src/sql/kernel/qsqldriver.h b/src/sql/kernel/qsqldriver.h
-index 767c1ac..eabda74 100644
---- a/src/sql/kernel/qsqldriver.h
-+++ b/src/sql/kernel/qsqldriver.h
-@@ -71,8 +71,8 @@ public:
-
- enum NotificationSource { UnknownSource, SelfSource, OtherSource };
-
-- enum DBMSType {
-- UnknownDBMS,
-+ enum DbmsType {
-+ UnknownDbms,
- MSSqlServer,
- MySqlServer,
- PostgreSQL,
-@@ -123,7 +123,7 @@ public:
- void setNumericalPrecisionPolicy(QSql::NumericalPrecisionPolicy precisionPolicy);
- QSql::NumericalPrecisionPolicy numericalPrecisionPolicy() const;
-
-- DBMSType dbmsType() const;
-+ DbmsType dbmsType() const;
-
- public Q_SLOTS:
- virtual bool cancelQuery();
-diff --git a/src/sql/kernel/qsqldriver_p.h b/src/sql/kernel/qsqldriver_p.h
-index 427e3984..c511f8e 100644
---- a/src/sql/kernel/qsqldriver_p.h
-+++ b/src/sql/kernel/qsqldriver_p.h
-@@ -61,14 +61,14 @@ public:
- isOpen(false),
- isOpenError(false),
- precisionPolicy(QSql::LowPrecisionDouble),
-- dbmsType(QSqlDriver::UnknownDBMS)
-+ dbmsType(QSqlDriver::UnknownDbms)
- { }
-
- uint isOpen;
- uint isOpenError;
- QSqlError error;
- QSql::NumericalPrecisionPolicy precisionPolicy;
-- QSqlDriver::DBMSType dbmsType;
-+ QSqlDriver::DbmsType dbmsType;
- };
-
- QT_END_NAMESPACE
-diff --git a/tests/auto/sql/kernel/qsqldatabase/tst_databases.h b/tests/auto/sql/kernel/qsqldatabase/tst_databases.h
-index d5ccc19..af6dc6b 100644
---- a/tests/auto/sql/kernel/qsqldatabase/tst_databases.h
-+++ b/tests/auto/sql/kernel/qsqldatabase/tst_databases.h
-@@ -385,7 +385,7 @@ public:
- bool wasDropped;
- QSqlQuery q( db );
- QStringList dbtables=db.tables();
-- QSqlDriver::DBMSType dbType = getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = getDatabaseType(db);
- foreach(const QString &tableName, tableNames)
- {
- wasDropped = true;
-@@ -462,7 +462,7 @@ public:
- // blobSize is only used if the db doesn't have a generic blob type
- static QString blobTypeName( QSqlDatabase db, int blobSize = 10000 )
- {
-- const QSqlDriver::DBMSType dbType = getDatabaseType(db);
-+ const QSqlDriver::DbmsType dbType = getDatabaseType(db);
- if (dbType == QSqlDriver::MySqlServer)
- return "longblob";
-
-@@ -491,7 +491,7 @@ public:
-
- static QString dateTimeTypeName(QSqlDatabase db)
- {
-- const QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- if (dbType == QSqlDriver::PostgreSQL)
- return QLatin1String("timestamp");
- if (dbType == QSqlDriver::Oracle && getOraVersion(db) >= 9)
-@@ -501,7 +501,7 @@ public:
-
- static QString autoFieldName( QSqlDatabase db )
- {
-- const QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- if (dbType == QSqlDriver::MySqlServer)
- return "AUTO_INCREMENT";
- if (dbType == QSqlDriver::Sybase || dbType == QSqlDriver::MSSqlServer)
-@@ -538,7 +538,7 @@ public:
- return result.toLocal8Bit();
- }
-
-- static QSqlDriver::DBMSType getDatabaseType(QSqlDatabase db)
-+ static QSqlDriver::DbmsType getDatabaseType(QSqlDatabase db)
- {
- QSqlDriverPrivate *d = static_cast<QSqlDriverPrivate *>(QObjectPrivate::get(db.driver()));
- return d->dbmsType;
-diff --git a/tests/auto/sql/kernel/qsqldatabase/tst_qsqldatabase.cpp b/tests/auto/sql/kernel/qsqldatabase/tst_qsqldatabase.cpp
-index 6faf8b7..c314528 100644
---- a/tests/auto/sql/kernel/qsqldatabase/tst_qsqldatabase.cpp
-+++ b/tests/auto/sql/kernel/qsqldatabase/tst_qsqldatabase.cpp
-@@ -234,7 +234,7 @@ struct FieldDef {
- // excluding the primary key field
- static int createFieldTable(const FieldDef fieldDefs[], QSqlDatabase db)
- {
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- const QString tableName = qTableName("qtestfields", __FILE__, db);
- tst_Databases::safeDropTable(db, tableName);
- QSqlQuery q(db);
-@@ -281,7 +281,7 @@ void tst_QSqlDatabase::createTestTables(QSqlDatabase db)
- return;
- const QString tableName = qTableName("qtest", __FILE__, db);
- QSqlQuery q(db);
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- if (dbType == QSqlDriver::MySqlServer) {
- // ### stupid workaround until we find a way to hardcode this
- // in the MySQL server startup script
-@@ -318,7 +318,7 @@ void tst_QSqlDatabase::dropTestTables(QSqlDatabase db)
- if (!db.isValid())
- return;
-
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- if (dbType == QSqlDriver::PostgreSQL) {
- QSqlQuery q(db);
- QVERIFY_SQL( q, exec("set client_min_messages='warning'"));
-@@ -485,7 +485,7 @@ void tst_QSqlDatabase::open()
- QVERIFY(!db.isOpenError());
- }
-
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- if (dbType == QSqlDriver::SQLite && db.databaseName() == ":memory:") {
- // tables in in-memory databases don't survive an open/close
- createTestTables(db);
-@@ -498,7 +498,7 @@ void tst_QSqlDatabase::tables()
- QFETCH(QString, dbName);
- QSqlDatabase db = QSqlDatabase::database(dbName);
- CHECK_DATABASE(db);
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
-
- const QString qtest(qTableName("qtest", __FILE__, db)), qtest_view(qTableName("qtest_view", __FILE__, db)), temp_tab(qTableName("test_tab", __FILE__, db));
-
-@@ -562,7 +562,7 @@ void tst_QSqlDatabase::whitespaceInIdentifiers()
- QFETCH(QString, dbName);
- QSqlDatabase db = QSqlDatabase::database(dbName);
- CHECK_DATABASE(db);
-- const QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
-
- if (testWhiteSpaceNames(db.driverName())) {
- const QString tableName(qTableName("qtest", __FILE__, db) + " test");
-@@ -830,7 +830,7 @@ void tst_QSqlDatabase::recordPSQL()
-
- QSqlQuery q(db);
-
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- if (dbType == QSqlDriver::PostgreSQL)
- QVERIFY_SQL( q, exec("set client_min_messages='warning'"));
- const QString tableName = qTableName("qtestfields", __FILE__, db);
-@@ -1017,7 +1017,7 @@ void tst_QSqlDatabase::recordSQLServer()
- QSqlDatabase db = QSqlDatabase::database(dbName);
- CHECK_DATABASE(db);
-
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- if (dbType != QSqlDriver::MSSqlServer)
- QSKIP("SQL server specific test");
-
-@@ -1076,7 +1076,7 @@ void tst_QSqlDatabase::transaction()
- QFETCH(QString, dbName);
- QSqlDatabase db = QSqlDatabase::database(dbName);
- CHECK_DATABASE(db);
-- const QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- const QString qtest(qTableName("qtest", __FILE__, db));
-
- if (!db.driver()->hasFeature(QSqlDriver::Transactions))
-@@ -1124,7 +1124,7 @@ void tst_QSqlDatabase::bigIntField()
- QFETCH(QString, dbName);
- QSqlDatabase db = QSqlDatabase::database(dbName);
- CHECK_DATABASE(db);
-- const QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- const QString qtest_bigint(qTableName("qtest_bigint", __FILE__, db));
-
- QSqlQuery q(db);
-@@ -1189,7 +1189,7 @@ void tst_QSqlDatabase::caseSensivity()
- QFETCH(QString, dbName);
- QSqlDatabase db = QSqlDatabase::database(dbName);
- CHECK_DATABASE(db);
-- const QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
-
- bool cs = false;
- if (dbType == QSqlDriver::MySqlServer || dbType == QSqlDriver::SQLite || dbType == QSqlDriver::Sybase
-@@ -1222,7 +1222,7 @@ void tst_QSqlDatabase::noEscapedFieldNamesInRecord()
- CHECK_DATABASE(db);
-
- QString fieldname("t_varchar");
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- if (dbType == QSqlDriver::Oracle || dbType == QSqlDriver::Interbase || dbType == QSqlDriver::DB2)
- fieldname = fieldname.toUpper();
-
-@@ -1405,7 +1405,7 @@ void tst_QSqlDatabase::precisionPolicy()
- QString query = QString("SELECT num FROM %1 WHERE id = 1").arg(tableName);
- QVERIFY_SQL(q, exec(query));
- QVERIFY_SQL(q, next());
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- if (dbType == QSqlDriver::SQLite)
- QEXPECT_FAIL("", "SQLite returns this value as determined by contents of the field, not the declaration", Continue);
- QCOMPARE(q.value(0).type(), QVariant::String);
-@@ -1742,7 +1742,7 @@ void tst_QSqlDatabase::odbc_bindBoolean()
- QSqlDatabase db = QSqlDatabase::database(dbName);
- CHECK_DATABASE(db);
-
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- if (dbType == QSqlDriver::MySqlServer)
- QSKIP("MySql has inconsistent behaviour of bit field type across versions.");
-
-@@ -1777,7 +1777,7 @@ void tst_QSqlDatabase::odbc_testqGetString()
- const QString testqGetString(qTableName("testqGetString", __FILE__, db));
-
- QSqlQuery q(db);
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- if (dbType == QSqlDriver::MSSqlServer)
- QVERIFY_SQL(q, exec("CREATE TABLE " + testqGetString + "(id int, vcvalue varchar(MAX))"));
- else if(tst_Databases::isMSAccess(db))
-@@ -1957,7 +1957,7 @@ void tst_QSqlDatabase::odbc_uniqueidentifier()
- QFETCH(QString, dbName);
- QSqlDatabase db = QSqlDatabase::database(dbName);
- CHECK_DATABASE(db);
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- if (dbType != QSqlDriver::MSSqlServer)
- QSKIP("SQL Server (ODBC) specific test");
-
-diff --git a/tests/auto/sql/kernel/qsqldriver/tst_qsqldriver.cpp b/tests/auto/sql/kernel/qsqldriver/tst_qsqldriver.cpp
-index fa0f7ea..7c0b4eb 100644
---- a/tests/auto/sql/kernel/qsqldriver/tst_qsqldriver.cpp
-+++ b/tests/auto/sql/kernel/qsqldriver/tst_qsqldriver.cpp
-@@ -71,7 +71,7 @@ void tst_QSqlDriver::recreateTestTables(QSqlDatabase db)
- QSqlQuery q(db);
- const QString relTEST1(qTableName("relTEST1", __FILE__, db));
-
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- if (dbType == QSqlDriver::PostgreSQL)
- QVERIFY_SQL( q, exec("set client_min_messages='warning'"));
-
-@@ -122,7 +122,7 @@ void tst_QSqlDriver::record()
- QSqlRecord rec = db.driver()->record(tablename);
- QCOMPARE(rec.count(), 4);
-
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- // QTBUG-1363: QSqlField::length() always return -1 when using QODBC3 driver and QSqlDatabase::record()
- if (dbType == QSqlDriver::MSSqlServer && db.driverName().startsWith("QODBC"))
- QCOMPARE(rec.field(1).length(), 20);
-@@ -174,7 +174,7 @@ void tst_QSqlDriver::primaryIndex()
- QSqlIndex index = db.driver()->primaryIndex(tablename);
- QCOMPARE(index.count(), 1);
-
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- if (dbType == QSqlDriver::Interbase || dbType == QSqlDriver::Oracle || dbType == QSqlDriver::DB2)
- QCOMPARE(index.fieldName(0), QString::fromLatin1("ID"));
- else
-diff --git a/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp b/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp
-index b4863d4..f5d71a7 100644
---- a/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp
-+++ b/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp
-@@ -283,7 +283,7 @@ void tst_QSqlQuery::cleanup()
- QFETCH( QString, dbName );
- QSqlDatabase db = QSqlDatabase::database( dbName );
- CHECK_DATABASE( db );
-- const QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- if ( QTest::currentTestFunction() == QLatin1String( "numRowsAffected" )
- || QTest::currentTestFunction() == QLatin1String( "transactions" )
- || QTest::currentTestFunction() == QLatin1String( "size" )
-@@ -311,7 +311,7 @@ void tst_QSqlQuery::generic_data(const QString& engine)
-
- void tst_QSqlQuery::dropTestTables( QSqlDatabase db )
- {
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- QStringList tablenames;
- // drop all the table in case a testcase failed
- tablenames << qtest
-@@ -374,7 +374,7 @@ void tst_QSqlQuery::dropTestTables( QSqlDatabase db )
- void tst_QSqlQuery::createTestTables( QSqlDatabase db )
- {
- QSqlQuery q( db );
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- if (dbType == QSqlDriver::MySqlServer)
- // ### stupid workaround until we find a way to hardcode this
- // in the MySQL server startup script
-@@ -426,7 +426,7 @@ void tst_QSqlQuery::char1Select()
- QVERIFY_SQL(q, exec("insert into " + tbl + " values ('a')"));
- QVERIFY_SQL(q, exec("select * from " + tbl));
- QVERIFY( q.next() );
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- if (dbType == QSqlDriver::Interbase)
- QCOMPARE( q.value( 0 ).toString().left( 1 ), QString( "a" ) );
- else
-@@ -441,7 +441,7 @@ void tst_QSqlQuery::char1SelectUnicode()
- QFETCH( QString, dbName );
- QSqlDatabase db = QSqlDatabase::database( dbName );
- CHECK_DATABASE( db );
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- if (dbType == QSqlDriver::DB2)
- QSKIP("Needs someone with more Unicode knowledge than I have to fix");
-
-@@ -588,7 +588,7 @@ void tst_QSqlQuery::bindBool()
- QSqlDatabase db = QSqlDatabase::database( dbName );
- CHECK_DATABASE( db );
- QSqlQuery q(db);
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- const QString tableName(qTableName("bindBool", __FILE__, db));
-
- q.exec("DROP TABLE " + tableName);
-@@ -845,7 +845,7 @@ void tst_QSqlQuery::outValues()
- QSqlQuery q( db );
-
- q.setForwardOnly( true );
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- if (dbType == QSqlDriver::Oracle) {
- QVERIFY_SQL( q, exec( "create or replace procedure " + tst_outValues + "(x out int) is\n"
- "begin\n"
-@@ -934,7 +934,7 @@ void tst_QSqlQuery::value()
- QFETCH( QString, dbName );
- QSqlDatabase db = QSqlDatabase::database( dbName );
- CHECK_DATABASE( db );
-- const QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- QSqlQuery q( db );
- QVERIFY_SQL( q, exec( "select id, t_varchar, t_char from " + qtest + " order by id" ) );
- int i = 1;
-@@ -1520,7 +1520,7 @@ void tst_QSqlQuery::precision()
- QFETCH( QString, dbName );
- QSqlDatabase db = QSqlDatabase::database( dbName );
- CHECK_DATABASE( db );
-- const QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- if (dbType == QSqlDriver::Interbase)
- QSKIP("DB unable to store high precision");
-
-@@ -1596,7 +1596,7 @@ void tst_QSqlQuery::transaction()
- QFETCH( QString, dbName );
- QSqlDatabase db = QSqlDatabase::database( dbName );
- CHECK_DATABASE( db );
-- const QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- if ( !db.driver()->hasFeature( QSqlDriver::Transactions ) )
- QSKIP( "DBMS not transaction capable");
-
-@@ -1679,7 +1679,7 @@ void tst_QSqlQuery::joins()
- QFETCH( QString, dbName );
- QSqlDatabase db = QSqlDatabase::database( dbName );
- CHECK_DATABASE( db );
-- const QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- const QString qtestj1(qTableName("qtestj1", __FILE__, db)), qtestj2(qTableName("qtestj2", __FILE__, db));
-
- if (dbType == QSqlDriver::Oracle || dbType == QSqlDriver::Sybase
-@@ -1763,7 +1763,7 @@ void tst_QSqlQuery::prepare_bind_exec()
- QFETCH( QString, dbName );
- QSqlDatabase db = QSqlDatabase::database( dbName );
- CHECK_DATABASE( db );
-- const QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- const QString qtest_prepare(qTableName("qtest_prepare", __FILE__, db));
-
- if (dbType == QSqlDriver::Interbase && (db.databaseName() == "silence.nokia.troll.no:c:\\ibase\\testdb_ascii" || db.databaseName() == "/opt/interbase/qttest.gdb"))
-@@ -1785,7 +1785,7 @@ void tst_QSqlQuery::prepare_bind_exec()
- useUnicode = false;
-
- QString createQuery;
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- if (dbType == QSqlDriver::PostgreSQL)
- QVERIFY_SQL( q, exec("set client_min_messages='warning'"));
-
-@@ -2059,7 +2059,7 @@ void tst_QSqlQuery::sqlServerLongStrings()
- QSqlDatabase db = QSqlDatabase::database( dbName );
- CHECK_DATABASE( db );
-
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- if (dbType != QSqlDriver::MSSqlServer)
- QSKIP( "SQL Server specific test");
-
-@@ -2105,7 +2105,7 @@ void tst_QSqlQuery::invalidQuery()
- QFETCH( QString, dbName );
- QSqlDatabase db = QSqlDatabase::database( dbName );
- CHECK_DATABASE( db );
-- const QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- QSqlQuery q( db );
-
- QVERIFY( !q.exec() );
-@@ -2442,7 +2442,7 @@ void tst_QSqlQuery::createQueryOnClosedDatabase()
- QFETCH( QString, dbName );
- QSqlDatabase db = QSqlDatabase::database( dbName );
- CHECK_DATABASE( db );
-- const QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- // Only supported by these drivers
-
- if (dbType != QSqlDriver::PostgreSQL && dbType != QSqlDriver::Oracle
-@@ -2574,7 +2574,7 @@ void tst_QSqlQuery::nextResult()
- QFETCH( QString, dbName );
- QSqlDatabase db = QSqlDatabase::database( dbName );
- CHECK_DATABASE( db );
-- const QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- if ( !db.driver()->hasFeature( QSqlDriver::MultipleResultSets ) || !db.driver()->hasFeature( QSqlDriver::BatchOperations ) )
- QSKIP( "DBMS does not support multiple result sets or batch operations");
-
-@@ -2774,7 +2774,7 @@ void tst_QSqlQuery::blobsPreparedQuery()
-
- // In PostgreSQL a BLOB is not called a BLOB, but a BYTEA! :-)
- // ... and in SQL Server it can be called a lot, but IMAGE will do.
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- QString typeName( "BLOB" );
- if (dbType == QSqlDriver::PostgreSQL)
- typeName = "BYTEA";
-@@ -3053,7 +3053,7 @@ void tst_QSqlQuery::sqlServerReturn0()
- QFETCH( QString, dbName );
- QSqlDatabase db = QSqlDatabase::database( dbName );
- CHECK_DATABASE( db );
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- if (dbType != QSqlDriver::MSSqlServer)
- QSKIP("SQL Server specific test");
-
-@@ -3169,7 +3169,7 @@ void tst_QSqlQuery::QTBUG_18435()
- QFETCH(QString, dbName);
- QSqlDatabase db = QSqlDatabase::database(dbName);
- CHECK_DATABASE(db);
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- if (dbType != QSqlDriver::MSSqlServer || !db.driverName().startsWith("QODBC"))
- QSKIP("SQL Server specific test");
-
-@@ -3251,7 +3251,7 @@ void tst_QSqlQuery::QTBUG_6618()
- QFETCH( QString, dbName );
- QSqlDatabase db = QSqlDatabase::database( dbName );
- CHECK_DATABASE( db );
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- if (dbType != QSqlDriver::MSSqlServer)
- QSKIP("SQL Server specific test");
-
-@@ -3668,7 +3668,7 @@ void tst_QSqlQuery::sqlite_constraint()
- QSqlDatabase db = QSqlDatabase::database( dbName );
- CHECK_DATABASE( db );
-
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- if (dbType != QSqlDriver::SQLite)
- QSKIP("Sqlite3 specific test");
-
-@@ -3720,7 +3720,7 @@ void tst_QSqlQuery::aggregateFunctionTypes()
- CHECK_DATABASE(db);
- QVariant::Type intType = QVariant::Int;
- // QPSQL uses LongLong for manipulation of integers
-- const QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- if (dbType == QSqlDriver::MySqlServer || dbType == QSqlDriver::PostgreSQL)
- intType = QVariant::LongLong;
- else if (dbType == QSqlDriver::Oracle)
-diff --git a/tests/auto/sql/models/qsqlquerymodel/tst_qsqlquerymodel.cpp b/tests/auto/sql/models/qsqlquerymodel/tst_qsqlquerymodel.cpp
-index 84e2fd5..fc10f21 100644
---- a/tests/auto/sql/models/qsqlquerymodel/tst_qsqlquerymodel.cpp
-+++ b/tests/auto/sql/models/qsqlquerymodel/tst_qsqlquerymodel.cpp
-@@ -150,7 +150,7 @@ void tst_QSqlQueryModel::createTestTables(QSqlDatabase db)
- {
- dropTestTables(db);
- QSqlQuery q(db);
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- if (dbType == QSqlDriver::PostgreSQL)
- QVERIFY_SQL( q, exec("set client_min_messages='warning'"));
- QVERIFY_SQL( q, exec("create table " + qTableName("test", __FILE__, db) + "(id integer not null, name varchar(20), title integer, primary key (id))"));
-@@ -305,7 +305,7 @@ void tst_QSqlQueryModel::insertColumn()
- QFETCH(QString, dbName);
- QSqlDatabase db = QSqlDatabase::database(dbName);
- CHECK_DATABASE(db);
-- const QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
-
- DBTestModel model;
- model.setQuery(QSqlQuery("select * from " + qTableName("test", __FILE__, db), db));
-@@ -409,7 +409,7 @@ void tst_QSqlQueryModel::record()
- QFETCH(QString, dbName);
- QSqlDatabase db = QSqlDatabase::database(dbName);
- CHECK_DATABASE(db);
-- const QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
-
- QSqlQueryModel model;
- model.setQuery(QSqlQuery("select * from " + qTableName("test", __FILE__, db), db));
-@@ -440,7 +440,7 @@ void tst_QSqlQueryModel::setHeaderData()
- QFETCH(QString, dbName);
- QSqlDatabase db = QSqlDatabase::database(dbName);
- CHECK_DATABASE(db);
-- const QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
-
- QSqlQueryModel model;
-
-diff --git a/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp b/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp
-index e97c391..a32c672 100644
---- a/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp
-+++ b/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp
-@@ -143,7 +143,7 @@ void tst_QSqlRelationalTableModel::initTestCase()
- {
- foreach (const QString &dbname, dbs.dbNames) {
- QSqlDatabase db=QSqlDatabase::database(dbname);
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- if (dbType == QSqlDriver::Interbase) {
- db.exec("SET DIALECT 3");
- } else if (dbType == QSqlDriver::MSSqlServer) {
-@@ -238,7 +238,7 @@ void tst_QSqlRelationalTableModel::setData()
- QFETCH_GLOBAL(QString, dbName);
- QSqlDatabase db = QSqlDatabase::database(dbName);
- CHECK_DATABASE(db);
-- const QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
-
- // set the values using OnRowChange Strategy
- {
-@@ -554,7 +554,7 @@ void tst_QSqlRelationalTableModel::insertWithStrategies()
- QFETCH_GLOBAL(QString, dbName);
- QSqlDatabase db = QSqlDatabase::database(dbName);
- CHECK_DATABASE(db);
-- const QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
-
- QSqlRelationalTableModel model(0, db);
-
-@@ -746,7 +746,7 @@ void tst_QSqlRelationalTableModel::sort()
- QFETCH_GLOBAL(QString, dbName);
- QSqlDatabase db = QSqlDatabase::database(dbName);
- CHECK_DATABASE(db);
-- const QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
-
- QSqlRelationalTableModel model(0, db);
-
-@@ -912,7 +912,7 @@ void tst_QSqlRelationalTableModel::clearDisplayValuesCache()
- QFETCH_GLOBAL(QString, dbName);
- QSqlDatabase db = QSqlDatabase::database(dbName);
- CHECK_DATABASE(db);
-- const QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
-
- QSqlRelationalTableModel model(0, db);
-
-@@ -966,7 +966,7 @@ void tst_QSqlRelationalTableModel::insertRecordDuplicateFieldNames()
- QFETCH_GLOBAL(QString, dbName);
- QSqlDatabase db = QSqlDatabase::database(dbName);
- CHECK_DATABASE(db);
-- const QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
-
- QSqlRelationalTableModel model(0, db);
- model.setTable(reltest3);
-@@ -1088,7 +1088,7 @@ void tst_QSqlRelationalTableModel::casing()
- QFETCH_GLOBAL(QString, dbName);
- QSqlDatabase db = QSqlDatabase::database(dbName);
- CHECK_DATABASE(db);
-- const QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
-
- if (dbType == QSqlDriver::Interbase || dbType == QSqlDriver::SQLite || dbType == QSqlDriver::MSSqlServer)
- QSKIP("The casing test for this database is irrelevant since this database does not treat different cases as separate entities");
-@@ -1155,7 +1155,7 @@ void tst_QSqlRelationalTableModel::escapedRelations()
- QFETCH_GLOBAL(QString, dbName);
- QSqlDatabase db = QSqlDatabase::database(dbName);
- CHECK_DATABASE(db);
-- const QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
-
- recreateTestTables(db);
-
-@@ -1266,7 +1266,7 @@ void tst_QSqlRelationalTableModel::escapedTableName()
- QFETCH_GLOBAL(QString, dbName);
- QSqlDatabase db = QSqlDatabase::database(dbName);
- CHECK_DATABASE(db);
-- const QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
-
- // set the values using OnRowChange Strategy with an escaped tablename
- {
-@@ -1455,7 +1455,7 @@ void tst_QSqlRelationalTableModel::psqlSchemaTest()
- QFETCH_GLOBAL(QString, dbName);
- QSqlDatabase db = QSqlDatabase::database(dbName);
- CHECK_DATABASE(db);
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
-
- if (dbType != QSqlDriver::PostgreSQL)
- QSKIP("Postgresql specific test");
-diff --git a/tests/auto/sql/models/qsqltablemodel/tst_qsqltablemodel.cpp b/tests/auto/sql/models/qsqltablemodel/tst_qsqltablemodel.cpp
-index b77b883..f0aaa36 100644
---- a/tests/auto/sql/models/qsqltablemodel/tst_qsqltablemodel.cpp
-+++ b/tests/auto/sql/models/qsqltablemodel/tst_qsqltablemodel.cpp
-@@ -160,7 +160,7 @@ void tst_QSqlTableModel::dropTestTables()
- {
- for (int i = 0; i < dbs.dbNames.count(); ++i) {
- QSqlDatabase db = QSqlDatabase::database(dbs.dbNames.at(i));
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- QSqlQuery q(db);
- if (dbType == QSqlDriver::PostgreSQL)
- QVERIFY_SQL( q, exec("set client_min_messages='warning'"));
-@@ -189,7 +189,7 @@ void tst_QSqlTableModel::createTestTables()
- {
- for (int i = 0; i < dbs.dbNames.count(); ++i) {
- QSqlDatabase db = QSqlDatabase::database(dbs.dbNames.at(i));
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- QSqlQuery q(db);
-
- QVERIFY_SQL( q, exec("create table " + test + "(id int, name varchar(20), title int)"));
-@@ -1699,7 +1699,7 @@ void tst_QSqlTableModel::primaryKeyOrder()
- QFETCH(QString, dbName);
- QSqlDatabase db = QSqlDatabase::database(dbName);
- CHECK_DATABASE(db);
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
-
- QSqlQuery q(db);
-
-diff --git a/tests/benchmarks/sql/kernel/qsqlquery/main.cpp b/tests/benchmarks/sql/kernel/qsqlquery/main.cpp
-index 769dbe6..c8375a6 100644
---- a/tests/benchmarks/sql/kernel/qsqlquery/main.cpp
-+++ b/tests/benchmarks/sql/kernel/qsqlquery/main.cpp
-@@ -109,7 +109,7 @@ void tst_QSqlQuery::cleanup()
- QFETCH( QString, dbName );
- QSqlDatabase db = QSqlDatabase::database( dbName );
- CHECK_DATABASE( db );
-- const QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
-
- if ( QTest::currentTestFunction() == QLatin1String( "numRowsAffected" )
- || QTest::currentTestFunction() == QLatin1String( "transactions" )
-@@ -138,7 +138,7 @@ void tst_QSqlQuery::generic_data(const QString& engine)
-
- void tst_QSqlQuery::dropTestTables( QSqlDatabase db )
- {
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- QStringList tablenames;
- // drop all the table in case a testcase failed
- tablenames << qtest
-@@ -199,7 +199,7 @@ void tst_QSqlQuery::createTestTables( QSqlDatabase db )
- {
- const QString qtestNull = qTableName("qtest_null", __FILE__, db);
- QSqlQuery q( db );
-- QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db);
-+ QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
- if (dbType == QSqlDriver::MySqlServer)
- // ### stupid workaround until we find a way to hardcode this
- // in the MySQL server startup script
---
-2.1.2
-
-
-From 5ed2f422fc3c80731be7a07da3875aaa5572d4e6 Mon Sep 17 00:00:00 2001
-From: Nico Vertriest <nico.vertriest@digia.com>
-Date: Fri, 31 Oct 2014 14:20:20 +0100
-Subject: [PATCH 18/36] Doc: corrected autolink errors corelib/io
-
-Task-number: QTBUG-40362
-Change-Id: I1cdbde1f6b003556ba4b5e97a49c6d918518da0d
-Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
-Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
-
-diff --git a/doc/src/examples/codecs.qdoc b/doc/src/examples/codecs.qdoc
-deleted file mode 100644
-index d9f6956..0000000
---- a/doc/src/examples/codecs.qdoc
-+++ /dev/null
-@@ -1,37 +0,0 @@
--/****************************************************************************
--**
--** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
--** Contact: http://www.qt-project.org/legal
--**
--** This file is part of the documentation of the Qt Toolkit.
--**
--** $QT_BEGIN_LICENSE:FDL$
--** Commercial License Usage
--** Licensees holding valid commercial Qt licenses may use this file in
--** accordance with the commercial license agreement provided with the
--** Software or, alternatively, in accordance with the terms contained in
--** a written agreement between you and Digia. For licensing terms and
--** conditions see http://qt.digia.com/licensing. For further information
--** use the contact form at http://qt.digia.com/contact-us.
--**
--** GNU Free Documentation License Usage
--** Alternatively, this file may be used under the terms of the GNU Free
--** Documentation License version 1.3 as published by the Free Software
--** Foundation and appearing in the file included in the packaging of
--** this file. Please review the following information to ensure
--** the GNU Free Documentation License version 1.3 requirements
--** will be met: http://www.gnu.org/copyleft/fdl.html.
--** $QT_END_LICENSE$
--**
--****************************************************************************/
--
--/*!
-- \example codecs
-- \title Codecs Example
--
-- The Codecs example demonstrates the principles behind importing and exporting text
-- using codecs to ensure that characters are encoded properly, avoiding loss of data
-- and retaining the correct symbols used in various scripts.
--
-- \image codecs-example.png
--*/
-diff --git a/examples/widgets/tools/codecs/doc/src/codecs.qdoc b/examples/widgets/tools/codecs/doc/src/codecs.qdoc
-new file mode 100644
-index 0000000..e81cc00
---- /dev/null
-+++ b/examples/widgets/tools/codecs/doc/src/codecs.qdoc
-@@ -0,0 +1,37 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-+** Contact: http://www.qt-project.org/legal
-+**
-+** This file is part of the documentation of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:FDL$
-+** Commercial License Usage
-+** Licensees holding valid commercial Qt licenses may use this file in
-+** accordance with the commercial license agreement provided with the
-+** Software or, alternatively, in accordance with the terms contained in
-+** a written agreement between you and Digia. For licensing terms and
-+** conditions see http://qt.digia.com/licensing. For further information
-+** use the contact form at http://qt.digia.com/contact-us.
-+**
-+** GNU Free Documentation License Usage
-+** Alternatively, this file may be used under the terms of the GNU Free
-+** Documentation License version 1.3 as published by the Free Software
-+** Foundation and appearing in the file included in the packaging of
-+** this file. Please review the following information to ensure
-+** the GNU Free Documentation License version 1.3 requirements
-+** will be met: http://www.gnu.org/copyleft/fdl.html.
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+/*!
-+ \example tools/codecs
-+ \title Text Codecs Example
-+
-+ The Text Codecs example demonstrates the principles behind importing and exporting text
-+ using codecs to ensure that characters are encoded properly, avoiding loss of data
-+ and retaining the correct symbols used in various scripts.
-+
-+ \image codecs-example.png
-+*/
-diff --git a/src/corelib/codecs/qtextcodec.cpp b/src/corelib/codecs/qtextcodec.cpp
-index d2857c0..6eae9e5 100644
---- a/src/corelib/codecs/qtextcodec.cpp
-+++ b/src/corelib/codecs/qtextcodec.cpp
-@@ -380,7 +380,7 @@ QTextCodec::ConverterState::~ConverterState()
- If Qt is compiled with ICU support enabled, most codecs supported by
- ICU will also be available to the application.
-
-- QTextCodecs can be used as follows to convert some locally encoded
-+ \l {QTextCodec}s can be used as follows to convert some locally encoded
- string to Unicode. Suppose you have some string encoded in Russian
- KOI8-R encoding, and want to convert it to Unicode. The simple way
- to do it is like this:
-@@ -453,7 +453,7 @@ QTextCodec::ConverterState::~ConverterState()
- \li Converts a Unicode string to an 8-bit character string.
- \endtable
-
-- \sa QTextStream, QTextDecoder, QTextEncoder, {Codecs Example}
-+ \sa QTextStream, QTextDecoder, QTextEncoder, {Text Codecs Example}
- */
-
- /*!
-diff --git a/src/corelib/io/qdebug.cpp b/src/corelib/io/qdebug.cpp
-index c1e0125..5c77ccd 100644
---- a/src/corelib/io/qdebug.cpp
-+++ b/src/corelib/io/qdebug.cpp
-@@ -403,8 +403,8 @@ QDebug &QDebug::resetFormat()
- \brief Convenience class for custom QDebug operators
-
- Saves the settings used by QDebug, and restores them upon destruction,
-- then calls maybeSpace(), to separate arguments with a space if
-- autoInsertSpaces() was true at the time of constructing the QDebugStateSaver.
-+ then calls \l {QDebug::maybeSpace()}{maybeSpace()}, to separate arguments with a space if
-+ \l {QDebug::autoInsertSpaces()}{autoInsertSpaces()} was true at the time of constructing the QDebugStateSaver.
-
- The automatic insertion of spaces between writes is one of the settings
- that QDebugStateSaver stores for the duration of the current block.
-diff --git a/src/corelib/io/qfiledevice.cpp b/src/corelib/io/qfiledevice.cpp
-index 598347a..29b59f1 100644
---- a/src/corelib/io/qfiledevice.cpp
-+++ b/src/corelib/io/qfiledevice.cpp
-@@ -240,7 +240,7 @@ bool QFileDevice::isSequential() const
- Returns the file handle of the file.
-
- This is a small positive integer, suitable for use with C library
-- functions such as fdopen() and fcntl(). On systems that use file
-+ functions such as \c fdopen() and \c fcntl(). On systems that use file
- descriptors for sockets (i.e. Unix systems, but not Windows) the handle
- can be used with QSocketNotifier as well.
-
-@@ -389,9 +389,9 @@ bool QFileDevice::atEnd() const
- return false.
-
- Seeking beyond the end of a file:
-- If the position is beyond the end of a file, then seek() shall not
-+ If the position is beyond the end of a file, then seek() will not
- immediately extend the file. If a write is performed at this position,
-- then the file shall be extended. The content of the file between the
-+ then the file will be extended. The content of the file between the
- previous end of file and the newly written data is UNDEFINED and
- varies between platforms and file systems.
- */
-diff --git a/src/corelib/io/qloggingcategory.cpp b/src/corelib/io/qloggingcategory.cpp
-index fef48a9..79d2060 100644
---- a/src/corelib/io/qloggingcategory.cpp
-+++ b/src/corelib/io/qloggingcategory.cpp
-@@ -149,10 +149,10 @@ static void setBoolLane(QBasicAtomicInt *atomic, bool enable, int shift)
-
- Order of evaluation:
- \list
-- \li Rules from QtProject/qtlogging.ini
-- \li Rules set by \l setFilterRules()
-- \li Rules from file in \c QT_LOGGING_CONF
-- \li Rules from environment variable QT_LOGGING_RULES
-+ \li QtProject/qtlogging.ini
-+ \li \l setFilterRules()
-+ \li \c QT_LOGGING_CONF
-+ \li \c QT_LOGGING_RULES
- \endlist
-
- The \c QtProject/qtlogging.ini file is looked up in all directories returned
-diff --git a/src/corelib/io/qprocess.cpp b/src/corelib/io/qprocess.cpp
-index e76a836..a234050 100644
---- a/src/corelib/io/qprocess.cpp
-+++ b/src/corelib/io/qprocess.cpp
-@@ -1853,8 +1853,8 @@ void QProcess::setProcessState(ProcessState state)
-
- /*!
- This function is called in the child process context just before the
-- program is executed on Unix or Mac OS X (i.e., after \e fork(), but before
-- \e execve()). Reimplement this function to do last minute initialization
-+ program is executed on Unix or OS X (i.e., after \c fork(), but before
-+ \c execve()). Reimplement this function to do last minute initialization
- of the child process. Example:
-
- \snippet code/src_corelib_io_qprocess.cpp 4
-@@ -1864,7 +1864,7 @@ void QProcess::setProcessState(ProcessState state)
- execution, your workaround is to emit finished() and then call
- exit().
-
-- \warning This function is called by QProcess on Unix and Mac OS X
-+ \warning This function is called by QProcess on Unix and OS X
- only. On Windows and QNX, it is not called.
- */
- void QProcess::setupChildProcess()
-@@ -2272,7 +2272,7 @@ void QProcess::setArguments(const QStringList &arguments)
-
- On Windows, terminate() posts a WM_CLOSE message to all toplevel windows
- of the process and then to the main thread of the process itself. On Unix
-- and Mac OS X the SIGTERM signal is sent.
-+ and OS X the \c SIGTERM signal is sent.
-
- Console applications on Windows that do not run an event loop, or whose
- event loop does not handle the WM_CLOSE message, can only be terminated by
-@@ -2289,7 +2289,7 @@ void QProcess::terminate()
- /*!
- Kills the current process, causing it to exit immediately.
-
-- On Windows, kill() uses TerminateProcess, and on Unix and Mac OS X, the
-+ On Windows, kill() uses TerminateProcess, and on Unix and OS X, the
- SIGKILL signal is sent to the process.
-
- \sa terminate()
-diff --git a/src/corelib/io/qstandardpaths.cpp b/src/corelib/io/qstandardpaths.cpp
-index c206e43..538292f 100644
---- a/src/corelib/io/qstandardpaths.cpp
-+++ b/src/corelib/io/qstandardpaths.cpp
-@@ -588,11 +588,11 @@ QString QStandardPaths::displayName(StandardLocation type)
- GenericCacheLocation, CacheLocation.
- Other locations are not affected.
-
-- On Unix, XDG_DATA_HOME is set to ~/.qttest/share, XDG_CONFIG_HOME is
-- set to ~/.qttest/config, and XDG_CACHE_HOME is set to ~/.qttest/cache.
-+ On Unix, \c XDG_DATA_HOME is set to \e ~/.qttest/share, \c XDG_CONFIG_HOME is
-+ set to \e ~/.qttest/config, and \c XDG_CACHE_HOME is set to \e ~/.qttest/cache.
-
-- On Mac, data goes to "~/.qttest/Application Support", cache goes to
-- ~/.qttest/Cache, and config goes to ~/.qttest/Preferences.
-+ On OS X, data goes to \e ~/.qttest/Application Support, cache goes to
-+ \e ~/.qttest/Cache, and config goes to \e ~/.qttest/Preferences.
-
- On Windows, everything goes to a "qttest" directory under Application Data.
- */
-diff --git a/src/corelib/io/qtemporarydir.cpp b/src/corelib/io/qtemporarydir.cpp
-index 7ce37fd..5e0def7 100644
---- a/src/corelib/io/qtemporarydir.cpp
-+++ b/src/corelib/io/qtemporarydir.cpp
-@@ -180,7 +180,7 @@ void QTemporaryDirPrivate::create(const QString &templateName)
- \snippet code/src_corelib_io_qtemporarydir.cpp 0
-
- It is very important to test that the temporary directory could be
-- created, using isValid(). Do not use exists(), since a default-constructed
-+ created, using isValid(). Do not use \l {QDir::exists()}{exists()}, since a default-constructed
- QDir represents the current directory, which exists.
-
- The path to the temporary dir can be found by calling path().
-diff --git a/src/corelib/io/qtextstream.cpp b/src/corelib/io/qtextstream.cpp
-index 66727e7..089a915 100644
---- a/src/corelib/io/qtextstream.cpp
-+++ b/src/corelib/io/qtextstream.cpp
-@@ -85,8 +85,8 @@ static const int QTEXTSTREAM_BUFFERSIZE = 16384;
-
- \li Chunk by chunk, by calling readLine() or readAll().
-
-- \li Word by word. QTextStream supports streaming into QStrings,
-- QByteArrays and char* buffers. Words are delimited by space, and
-+ \li Word by word. QTextStream supports streaming into \l {QString}s,
-+ \l {QByteArray}s and char* buffers. Words are delimited by space, and
- leading white space is automatically skipped.
-
- \li Character by character, by streaming into QChar or char types.
-@@ -158,7 +158,7 @@ static const int QTEXTSTREAM_BUFFERSIZE = 16384;
- parameter: qSetFieldWidth(), qSetPadChar(), and
- qSetRealNumberPrecision().
-
-- \sa QDataStream, QIODevice, QFile, QBuffer, QTcpSocket, {Codecs Example}
-+ \sa QDataStream, QIODevice, QFile, QBuffer, QTcpSocket, {Text Codecs Example}
- */
-
- /*! \enum QTextStream::RealNumberNotation
-@@ -1531,7 +1531,7 @@ bool QTextStream::atEnd() const
- QString. Avoid this function when working on large files, as it
- will consume a significant amount of memory.
-
-- Calling readLine() is better if you do not know how much data is
-+ Calling \l {QTextStream::readLine()}{readLine()} is better if you do not know how much data is
- available.
-
- \sa readLine()
-@@ -1556,9 +1556,9 @@ QString QTextStream::readAll()
- The returned line has no trailing end-of-line characters ("\\n"
- or "\\r\\n"), so calling QString::trimmed() is unnecessary.
-
-- If the stream has read to the end of the file, readLine() will return a
-- null QString. For strings, or for devices that support it, you can
-- explicitly test for the end of the stream using atEnd().
-+ If the stream has read to the end of the file, \l {QTextStream::readLine()}{readLine()}
-+ will return a null QString. For strings, or for devices that support it,
-+ you can explicitly test for the end of the stream using atEnd().
-
- \sa readAll(), QIODevice::readLine()
- */
-@@ -2790,7 +2790,7 @@ QTextStream &endl(QTextStream &stream)
- /*!
- \relates QTextStream
-
-- Calls QTextStream::flush() on \a stream and returns \a stream.
-+ Calls \l{QTextStream::flush()}{flush()} on \a stream and returns \a stream.
-
- \sa endl(), reset(), {QTextStream manipulators}
- */
-diff --git a/src/corelib/io/qurl.cpp b/src/corelib/io/qurl.cpp
-index d4c5e03..d4c5a34 100644
---- a/src/corelib/io/qurl.cpp
-+++ b/src/corelib/io/qurl.cpp
-@@ -2671,8 +2671,8 @@ void QUrl::setQuery(const QUrlQuery &query)
- Sets the query string of the URL to an encoded version of \a
- query. The contents of \a query are converted to a string
- internally, each pair delimited by the character returned by
-- queryPairDelimiter(), and the key and value are delimited by
-- queryValueDelimiter().
-+ \l {QUrlQuery::queryPairDelimiter()}{queryPairDelimiter()}, and the key and value are delimited by
-+ \l {QUrlQuery::queryValueDelimiter()}{queryValueDelimiter()}
-
- \note This method does not encode spaces (ASCII 0x20) as plus (+) signs,
- like HTML forms do. If you need that kind of encoding, you must encode
-@@ -2691,8 +2691,8 @@ void QUrl::setQuery(const QUrlQuery &query)
- Sets the query string of the URL to the encoded version of \a
- query. The contents of \a query are converted to a string
- internally, each pair delimited by the character returned by
-- queryPairDelimiter(), and the key and value are delimited by
-- queryValueDelimiter().
-+ \l {QUrlQuery::queryPairDelimiter()}{queryPairDelimiter()}, and the key and value are delimited by
-+ \l {QUrlQuery::queryValueDelimiter()}{queryValueDelimiter()}.
-
- \obsolete Use QUrlQuery and setQuery().
-
-@@ -2709,8 +2709,9 @@ void QUrl::setQuery(const QUrlQuery &query)
- The key-value pair is encoded before it is added to the query. The
- pair is converted into separate strings internally. The \a key and
- \a value is first encoded into UTF-8 and then delimited by the
-- character returned by queryValueDelimiter(). Each key-value pair is
-- delimited by the character returned by queryPairDelimiter().
-+ character returned by \l {QUrlQuery::queryValueDelimiter()}{queryValueDelimiter()}.
-+ Each key-value pair is delimited by the character returned by
-+ \l {QUrlQuery::queryPairDelimiter()}{queryPairDelimiter()}
-
- \note This method does not encode spaces (ASCII 0x20) as plus (+) signs,
- like HTML forms do. If you need that kind of encoding, you must encode
---
-2.1.2
-
-
-From b7f6e6282b9220c28a2f0b3e703ba9b9aceac52b Mon Sep 17 00:00:00 2001
-From: Thiago Macieira <thiago.macieira@intel.com>
-Date: Wed, 26 Nov 2014 16:04:13 -0800
-Subject: [PATCH 19/36] Removed wrong task number from changelog entry
-
-See http://lists.qt-project.org/pipermail/development/2014-November/019331.html
-
-Change-Id: I54876dd210c87690117b6aacf78aef0961e704ef
-Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
-
-diff --git a/dist/changes-5.4.0 b/dist/changes-5.4.0
-index 2b6cd2b..48c2507 100644
---- a/dist/changes-5.4.0
-+++ b/dist/changes-5.4.0
-@@ -439,7 +439,7 @@ OS X
- - The Qt binary packages are now configured with C++11 enabled.
- - [QTBUG-41208] Fixed detection of writing system support in fonts for
- some scripts such as Mkhedruli.
-- - [QTBUG-41192] Fixed menu item shortcuts without keyboard modifiers.
-+ - Fixed menu item shortcuts without keyboard modifiers.
- - [QTBUG-31301] Drag-and-drop QMimeData requests are now delayed until
- drop time.
- - [QTBUG-10899] Added support for ApplicationState
---
-2.1.2
-
-
-From 7c539579b9e883c87e5f7fb3bbec80847fc83ae2 Mon Sep 17 00:00:00 2001
-From: BogDan Vatra <bogdan@kde.org>
-Date: Wed, 26 Nov 2014 14:55:51 +0200
-Subject: [PATCH 20/36] Use Holo theme on Android 5.0.
-
-This is a temporary "fix" until we'll fix all the problems with the new
-Android Material theme.
-
-Task-number: QTBUG-42900
-Change-Id: I5485cfd5ac5fdd66cb85da423fe2e63e65be010f
-Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
-Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
-
-diff --git a/src/android/java/src/org/qtproject/qt5/android/bindings/QtActivity.java b/src/android/java/src/org/qtproject/qt5/android/bindings/QtActivity.java
-index 0c52bc7..75f10ad 100644
---- a/src/android/java/src/org/qtproject/qt5/android/bindings/QtActivity.java
-+++ b/src/android/java/src/org/qtproject/qt5/android/bindings/QtActivity.java
-@@ -187,7 +187,7 @@ public class QtActivity extends Activity
- QT_ANDROID_THEMES = new String[] {"Theme_Light"};
- QT_ANDROID_DEFAULT_THEME = "Theme_Light";
- }
-- else if (Build.VERSION.SDK_INT >= 11 && Build.VERSION.SDK_INT <= 13) {
-+ else if ((Build.VERSION.SDK_INT >= 11 && Build.VERSION.SDK_INT <= 13) || Build.VERSION.SDK_INT == 21){
- QT_ANDROID_THEMES = new String[] {"Theme_Holo_Light"};
- QT_ANDROID_DEFAULT_THEME = "Theme_Holo_Light";
- } else {
---
-2.1.2
-
-
-From 7b33faa1e97353d658fc7cd13ca789fccfa7ec1f Mon Sep 17 00:00:00 2001
-From: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
-Date: Wed, 26 Nov 2014 14:54:33 +0100
-Subject: [PATCH 21/36] changes-5.4.0: additional changes for iOS
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Change-Id: Ie8dc10be7ac8a73857a2b47e9bfb00954a7421a9
-Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
-
-diff --git a/dist/changes-5.4.0 b/dist/changes-5.4.0
-index 48c2507..2cdf52e 100644
---- a/dist/changes-5.4.0
-+++ b/dist/changes-5.4.0
-@@ -418,6 +418,13 @@ iOS
- Applications making use of DataLocation should move these data to the
- new location. This can be done using the path provided by
- DocumentLocation as the source path.
-+ - [QTBUG-41458] screen resolution update after device rotation now works.
-+ - [QTBUG-42345] fixed crash on startup on iOS 7.1
-+ - iOS is now using fat builds with both 32-, and 64-bit support.
-+ - New launch screen added to support iPhone6/6+.
-+ - QtQuick Controls now support native text selection and popup menus.
-+ - Virtual keyboard visibility is now automatically managed by the platform plugin.
-+ - Default theme fonts now uses Dynamic Type, which is based on user system settings.
-
- Linux/XCB
- ---------
---
-2.1.2
-
-
-From 38d3a7bb6eec46f1bab5ed53334ff2639e9b6eea Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Christian=20Str=C3=B8mme?=
- <christian.stromme@theqtcompany.com>
-Date: Thu, 27 Nov 2014 11:47:42 +0100
-Subject: [PATCH 22/36] changes-5.4.0: Additional changes for Android
-
-Mention the new bearer plugin.
-
-Change-Id: Icf5f53ef1f920a13a1820dedceb0fa64f0155887
-Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
-
-diff --git a/dist/changes-5.4.0 b/dist/changes-5.4.0
-index 2cdf52e..efd5d91 100644
---- a/dist/changes-5.4.0
-+++ b/dist/changes-5.4.0
-@@ -402,7 +402,8 @@ Android
- - [QTBUG-41817] QClipboard::mimeData() now returns an empty object instead
- of null pointer from QClipboard when clipboard is empty for consistency
- with other platforms.
--
-+ - New bearer plugin. It's now possible to get more information about the
-+ different network configurations on Android.
- - Important Behavior Changes:
- * [QTBUG-36274] The main event loop is now stopped when the app is
- suspended
---
-2.1.2
-
-
-From a2da88712f1e057747f68a28361b300faac5e605 Mon Sep 17 00:00:00 2001
-From: Thiago Macieira <thiago.macieira@intel.com>
-Date: Mon, 24 Nov 2014 23:41:00 -0800
-Subject: [PATCH 23/36] Make QtDBus compile without libdbus-1 headers, if
- dlopening
-
-Most of QtDBus already needs very little from libdus-1, so create an
-extra header containing the minimum API we actually need.
-
-One large advantage of this solution is that now QtDBus can always be
-enabled, even if the system doesn't have libdbus-1 installed. This is
-interesting on OS X, where libdbus-1 is often installed by Homebrew or
-MacPorts, which may include extra libraries we don't want in our
-packaging.
-
-Change-Id: I1b397121ec12eeca333ef778cf8e1c7b64d6b223
-Reviewed-by: Lars Knoll <lars.knoll@digia.com>
-
-diff --git a/configure b/configure
-index d95d8a2..6f21ba7 100755
---- a/configure
-+++ b/configure
-@@ -4642,8 +4642,8 @@ if [ "$CFG_DBUS" != "no" ]; then
- fi
- QMakeVar set QT_HOST_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
- else
-- if [ "$CFG_DBUS" = "auto" ]; then
-- CFG_DBUS=no
-+ if [ "$CFG_DBUS" != "linked" ]; then
-+ CFG_DBUS=runtime
- elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
- # CFG_DBUS is "yes" or "linked" here
-
-diff --git a/src/dbus/dbus.pro b/src/dbus/dbus.pro
-index c5afe8c..3ef8e6c 100644
---- a/src/dbus/dbus.pro
-+++ b/src/dbus/dbus.pro
-@@ -61,7 +61,8 @@ HEADERS += $$PUB_HEADERS \
- qdbusintegrator_p.h \
- qdbuspendingcall_p.h \
- qdbus_symbols_p.h \
-- qdbusintrospection_p.h
-+ qdbusintrospection_p.h \
-+ dbus_minimal_p.h
- SOURCES += qdbusconnection.cpp \
- qdbusconnectioninterface.cpp \
- qdbuserror.cpp \
-diff --git a/src/dbus/dbus_minimal_p.h b/src/dbus/dbus_minimal_p.h
-new file mode 100644
-index 0000000..862e820
---- /dev/null
-+++ b/src/dbus/dbus_minimal_p.h
-@@ -0,0 +1,275 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2014 Intel Corporation
-+** Contact: http://www.qt-project.org/legal
-+**
-+** This file is part of the QtDBus module of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:LGPL21$
-+** Commercial License Usage
-+** Licensees holding valid commercial Qt licenses may use this file in
-+** accordance with the commercial license agreement provided with the
-+** Software or, alternatively, in accordance with the terms contained in
-+** a written agreement between you and Digia. For licensing terms and
-+** conditions see http://qt.digia.com/licensing. For further information
-+** use the contact form at http://qt.digia.com/contact-us.
-+**
-+** GNU Lesser General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU Lesser
-+** General Public License version 2.1 or version 3 as published by the Free
-+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
-+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
-+** following information to ensure the GNU Lesser General Public License
-+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
-+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-+**
-+** In addition, as a special exception, Digia gives you certain additional
-+** rights. These rights are described in the Digia Qt LGPL Exception
-+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-+**
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+#ifndef DBUS_MINIMAL_P_H
-+#define DBUS_MINIMAL_P_H
-+
-+extern "C" {
-+
-+// Equivalent to dbus-arch-deps.h
-+typedef qint64 dbus_int64_t;
-+typedef quint64 dbus_uint64_t;
-+typedef qint32 dbus_int32_t;
-+typedef quint32 dbus_uint32_t;
-+typedef qint16 dbus_int16_t;
-+typedef quint16 dbus_uint16_t;
-+
-+// simulate minimum version we support
-+#define DBUS_MAJOR_VERSION 1
-+#define DBUS_MINOR_VERSION 2
-+#define DBUS_VERSION ((1 << 16) | (2 << 8))
-+
-+// forward declaration to opaque types we use
-+struct DBusConnection;
-+struct DBusMessage;
-+struct DBusPendingCall;
-+struct DBusServer;
-+struct DBusTimeout;
-+struct DBusWatch;
-+
-+// This file contains constants and typedefs from libdbus-1 headers,
-+// which carry the following copyright:
-+/*
-+ * Copyright (C) 2002, 2003 CodeFactory AB
-+ * Copyright (C) 2004, 2005 Red Hat, Inc.
-+ *
-+ * Licensed under the Academic Free License version 2.1
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-+ *
-+ */
-+
-+/* dbus-types.h */
-+typedef dbus_uint32_t dbus_unichar_t;
-+typedef dbus_uint32_t dbus_bool_t;
-+
-+/* dbus-shared.h */
-+#define DBUS_SERVICE_DBUS "org.freedesktop.DBus"
-+#define DBUS_PATH_DBUS "/org/freedesktop/DBus"
-+#define DBUS_INTERFACE_DBUS "org.freedesktop.DBus"
-+#define DBUS_INTERFACE_INTROSPECTABLE "org.freedesktop.DBus.Introspectable"
-+#define DBUS_INTERFACE_PROPERTIES "org.freedesktop.DBus.Properties"
-+
-+#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT 0x1 /**< Allow another service to become the primary owner if requested */
-+#define DBUS_NAME_FLAG_REPLACE_EXISTING 0x2 /**< Request to replace the current primary owner */
-+#define DBUS_NAME_FLAG_DO_NOT_QUEUE 0x4 /**< If we can not become the primary owner do not place us in the queue */
-+
-+#define DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER 1 /**< Service has become the primary owner of the requested name */
-+#define DBUS_REQUEST_NAME_REPLY_IN_QUEUE 2 /**< Service could not become the primary owner and has been placed in the queue */
-+#define DBUS_REQUEST_NAME_REPLY_EXISTS 3 /**< Service is already in the queue */
-+#define DBUS_REQUEST_NAME_REPLY_ALREADY_OWNER 4 /**< Service is already the primary owner */
-+
-+#define DBUS_RELEASE_NAME_REPLY_RELEASED 1 /**< Service was released from the given name */
-+#define DBUS_RELEASE_NAME_REPLY_NON_EXISTENT 2 /**< The given name does not exist on the bus */
-+#define DBUS_RELEASE_NAME_REPLY_NOT_OWNER 3 /**< Service is not an owner of the given name */
-+
-+typedef enum
-+{
-+ DBUS_BUS_SESSION, /**< The login session bus */
-+ DBUS_BUS_SYSTEM, /**< The systemwide bus */
-+ DBUS_BUS_STARTER /**< The bus that started us, if any */
-+} DBusBusType;
-+
-+typedef enum
-+{
-+ DBUS_HANDLER_RESULT_HANDLED, /**< Message has had its effect - no need to run more handlers. */
-+ DBUS_HANDLER_RESULT_NOT_YET_HANDLED, /**< Message has not had any effect - see if other handlers want it. */
-+ DBUS_HANDLER_RESULT_NEED_MEMORY /**< Need more memory in order to return #DBUS_HANDLER_RESULT_HANDLED or #DBUS_HANDLER_RESULT_NOT_YET_HANDLED. Please try again later with more memory. */
-+} DBusHandlerResult;
-+
-+/* dbus-memory.h */
-+typedef void (* DBusFreeFunction) (void *memory);
-+
-+/* dbus-connection.h */
-+typedef enum
-+{
-+ DBUS_WATCH_READABLE = 1 << 0, /**< As in POLLIN */
-+ DBUS_WATCH_WRITABLE = 1 << 1, /**< As in POLLOUT */
-+ DBUS_WATCH_ERROR = 1 << 2, /**< As in POLLERR (can't watch for
-+ * this, but can be present in
-+ * current state passed to
-+ * dbus_watch_handle()).
-+ */
-+ DBUS_WATCH_HANGUP = 1 << 3 /**< As in POLLHUP (can't watch for
-+ * it, but can be present in current
-+ * state passed to
-+ * dbus_watch_handle()).
-+ */
-+ /* Internal to libdbus, there is also _DBUS_WATCH_NVAL in dbus-watch.h */
-+} DBusWatchFlags;
-+
-+typedef enum
-+{
-+ DBUS_DISPATCH_DATA_REMAINS, /**< There is more data to potentially convert to messages. */
-+ DBUS_DISPATCH_COMPLETE, /**< All currently available data has been processed. */
-+ DBUS_DISPATCH_NEED_MEMORY /**< More memory is needed to continue. */
-+} DBusDispatchStatus;
-+
-+typedef dbus_bool_t (* DBusAddWatchFunction) (DBusWatch *watch,
-+ void *data);
-+typedef void (* DBusWatchToggledFunction) (DBusWatch *watch,
-+ void *data);
-+typedef void (* DBusRemoveWatchFunction) (DBusWatch *watch,
-+ void *data);
-+typedef dbus_bool_t (* DBusAddTimeoutFunction) (DBusTimeout *timeout,
-+ void *data);
-+typedef void (* DBusTimeoutToggledFunction) (DBusTimeout *timeout,
-+ void *data);
-+typedef void (* DBusRemoveTimeoutFunction) (DBusTimeout *timeout,
-+ void *data);
-+typedef void (* DBusDispatchStatusFunction) (DBusConnection *connection,
-+ DBusDispatchStatus new_status,
-+ void *data);
-+typedef void (* DBusWakeupMainFunction) (void *data);
-+typedef void (* DBusPendingCallNotifyFunction) (DBusPendingCall *pending,
-+ void *user_data);
-+typedef DBusHandlerResult (* DBusHandleMessageFunction) (DBusConnection *connection,
-+ DBusMessage *message,
-+ void *user_data);
-+
-+/* dbus-errors.h */
-+struct DBusError
-+{
-+ const char *name; /**< public error name field */
-+ const char *message; /**< public error message field */
-+
-+ unsigned int dummy1 : 1; /**< placeholder */
-+ unsigned int dummy2 : 1; /**< placeholder */
-+ unsigned int dummy3 : 1; /**< placeholder */
-+ unsigned int dummy4 : 1; /**< placeholder */
-+ unsigned int dummy5 : 1; /**< placeholder */
-+
-+ void *padding1; /**< placeholder */
-+};
-+
-+/* dbus-message.h */
-+struct DBusMessageIter
-+{
-+ void *dummy1; /**< Don't use this */
-+ void *dummy2; /**< Don't use this */
-+ dbus_uint32_t dummy3; /**< Don't use this */
-+ int dummy4; /**< Don't use this */
-+ int dummy5; /**< Don't use this */
-+ int dummy6; /**< Don't use this */
-+ int dummy7; /**< Don't use this */
-+ int dummy8; /**< Don't use this */
-+ int dummy9; /**< Don't use this */
-+ int dummy10; /**< Don't use this */
-+ int dummy11; /**< Don't use this */
-+ int pad1; /**< Don't use this */
-+ int pad2; /**< Don't use this */
-+ void *pad3; /**< Don't use this */
-+};
-+
-+/* dbus-protocol.h */
-+#define DBUS_TYPE_INVALID ((int) '\0')
-+#define DBUS_TYPE_INVALID_AS_STRING "\0"
-+#define DBUS_TYPE_BYTE ((int) 'y')
-+#define DBUS_TYPE_BYTE_AS_STRING "y"
-+#define DBUS_TYPE_BOOLEAN ((int) 'b')
-+#define DBUS_TYPE_BOOLEAN_AS_STRING "b"
-+#define DBUS_TYPE_INT16 ((int) 'n')
-+#define DBUS_TYPE_INT16_AS_STRING "n"
-+#define DBUS_TYPE_UINT16 ((int) 'q')
-+#define DBUS_TYPE_UINT16_AS_STRING "q"
-+#define DBUS_TYPE_INT32 ((int) 'i')
-+#define DBUS_TYPE_INT32_AS_STRING "i"
-+#define DBUS_TYPE_UINT32 ((int) 'u')
-+#define DBUS_TYPE_UINT32_AS_STRING "u"
-+#define DBUS_TYPE_INT64 ((int) 'x')
-+#define DBUS_TYPE_INT64_AS_STRING "x"
-+#define DBUS_TYPE_UINT64 ((int) 't')
-+#define DBUS_TYPE_UINT64_AS_STRING "t"
-+#define DBUS_TYPE_DOUBLE ((int) 'd')
-+#define DBUS_TYPE_DOUBLE_AS_STRING "d"
-+#define DBUS_TYPE_STRING ((int) 's')
-+#define DBUS_TYPE_STRING_AS_STRING "s"
-+#define DBUS_TYPE_OBJECT_PATH ((int) 'o')
-+#define DBUS_TYPE_OBJECT_PATH_AS_STRING "o"
-+#define DBUS_TYPE_SIGNATURE ((int) 'g')
-+#define DBUS_TYPE_SIGNATURE_AS_STRING "g"
-+#define DBUS_TYPE_UNIX_FD ((int) 'h')
-+#define DBUS_TYPE_UNIX_FD_AS_STRING "h"
-+#define DBUS_TYPE_ARRAY ((int) 'a')
-+#define DBUS_TYPE_ARRAY_AS_STRING "a"
-+#define DBUS_TYPE_VARIANT ((int) 'v')
-+#define DBUS_TYPE_VARIANT_AS_STRING "v"
-+
-+#define DBUS_TYPE_STRUCT ((int) 'r')
-+#define DBUS_TYPE_STRUCT_AS_STRING "r"
-+#define DBUS_TYPE_DICT_ENTRY ((int) 'e')
-+#define DBUS_TYPE_DICT_ENTRY_AS_STRING "e"
-+
-+#define DBUS_STRUCT_BEGIN_CHAR ((int) '(')
-+#define DBUS_STRUCT_BEGIN_CHAR_AS_STRING "("
-+#define DBUS_STRUCT_END_CHAR ((int) ')')
-+#define DBUS_STRUCT_END_CHAR_AS_STRING ")"
-+#define DBUS_DICT_ENTRY_BEGIN_CHAR ((int) '{')
-+#define DBUS_DICT_ENTRY_BEGIN_CHAR_AS_STRING "{"
-+#define DBUS_DICT_ENTRY_END_CHAR ((int) '}')
-+#define DBUS_DICT_ENTRY_END_CHAR_AS_STRING "}"
-+
-+#define DBUS_MESSAGE_TYPE_INVALID 0
-+#define DBUS_MESSAGE_TYPE_METHOD_CALL 1
-+#define DBUS_MESSAGE_TYPE_METHOD_RETURN 2
-+#define DBUS_MESSAGE_TYPE_ERROR 3
-+#define DBUS_MESSAGE_TYPE_SIGNAL 4
-+
-+#define DBUS_MAXIMUM_NAME_LENGTH 255
-+
-+#define DBUS_INTROSPECT_1_0_XML_NAMESPACE "http://www.freedesktop.org/standards/dbus"
-+#define DBUS_INTROSPECT_1_0_XML_PUBLIC_IDENTIFIER "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
-+#define DBUS_INTROSPECT_1_0_XML_SYSTEM_IDENTIFIER "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"
-+#define DBUS_INTROSPECT_1_0_XML_DOCTYPE_DECL_NODE "<!DOCTYPE node PUBLIC \"" DBUS_INTROSPECT_1_0_XML_PUBLIC_IDENTIFIER "\"\n\"" DBUS_INTROSPECT_1_0_XML_SYSTEM_IDENTIFIER "\">\n"
-+
-+/* dbus-server.h */
-+typedef void (* DBusNewConnectionFunction) (DBusServer *server,
-+ DBusConnection *new_connection,
-+ void *data);
-+
-+} // extern "C"
-+
-+#endif // DBUS_MINIMAL_P_H
-+
-diff --git a/src/dbus/qdbus_symbols_p.h b/src/dbus/qdbus_symbols_p.h
-index 71658f84..88c5194 100644
---- a/src/dbus/qdbus_symbols_p.h
-+++ b/src/dbus/qdbus_symbols_p.h
-@@ -47,10 +47,15 @@
- #define QDBUS_SYMBOLS_P_H
-
- #include <QtCore/qglobal.h>
--#include <dbus/dbus.h>
-
- #ifndef QT_NO_DBUS
-
-+#ifdef QT_LINKED_LIBDBUS
-+# include <dbus/dbus.h>
-+#else
-+# include "dbus_minimal_p.h"
-+#endif
-+
- QT_BEGIN_NAMESPACE
-
- #if !defined QT_LINKED_LIBDBUS
-diff --git a/tests/auto/dbus/qdbusmarshall/tst_qdbusmarshall.cpp b/tests/auto/dbus/qdbusmarshall/tst_qdbusmarshall.cpp
-index 6372fbb..9722055 100644
---- a/tests/auto/dbus/qdbusmarshall/tst_qdbusmarshall.cpp
-+++ b/tests/auto/dbus/qdbusmarshall/tst_qdbusmarshall.cpp
-@@ -33,14 +33,16 @@
- #include <QtCore/QtCore>
- #include <QtTest/QtTest>
- #include <QtDBus/QtDBus>
--#include <QtDBus/private/qdbusutil_p.h>
--#include <QtDBus/private/qdbusconnection_p.h>
-
- #include "common.h"
- #include <limits>
-
- #include <dbus/dbus.h>
-
-+#define QT_LINKED_LIBDBUS
-+#include <QtDBus/private/qdbusutil_p.h>
-+#include <QtDBus/private/qdbusconnection_p.h>
-+
- static const char serviceName[] = "org.qtproject.autotests.qpong";
- static const char objectPath[] = "/org/qtproject/qpong";
- static const char *interfaceName = serviceName;
---
-2.1.2
-
-
-From 03b5ecce4ab8dc879e27dc8f07d6f3ef846efde0 Mon Sep 17 00:00:00 2001
-From: Eike Ziller <eike.ziller@theqtcompany.com>
-Date: Mon, 1 Dec 2014 09:10:43 +0100
-Subject: [PATCH 24/36] FSEvents file system watcher: Do not watch whole parent
- hierarchies.
-
-Unfortunately the FSEvents implementation for watching parent
-hierarchies has the major flaw, that watching a path will then
-create watches for the whole parent hierarchy even if that
-hierarchy is already watched. Watching /A/B/C and /A/B/D will
-create two watches each for /A and /A/B. This leads to an explosion
-of open file handles.
-Luckily we do not need to watch the parent hierarchy since this
-is not a supported usecase of QFileSystemWatcher anyhow, so just don't
-do it.
-
-Task-number: QTCREATORBUG-13531
-Change-Id: I9ecb5f08e4be35e4fbd58a7ca3155867fcb1589f
-Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
-
-diff --git a/src/corelib/io/qfilesystemwatcher_fsevents.mm b/src/corelib/io/qfilesystemwatcher_fsevents.mm
-index eebca1c..90ef7a6 100644
---- a/src/corelib/io/qfilesystemwatcher_fsevents.mm
-+++ b/src/corelib/io/qfilesystemwatcher_fsevents.mm
-@@ -518,7 +518,6 @@ bool QFseventsFileSystemWatcherEngine::startStream()
- NULL
- };
- const CFAbsoluteTime latency = .5; // in seconds
-- FSEventStreamCreateFlags flags = kFSEventStreamCreateFlagWatchRoot;
-
- // Never start with kFSEventStreamEventIdSinceNow, because this will generate an invalid
- // soft-assert in FSEventStreamFlushSync in CarbonCore when no event occurred.
-@@ -530,7 +529,7 @@ bool QFseventsFileSystemWatcherEngine::startStream()
- reinterpret_cast<CFArrayRef>(pathsToWatch),
- lastReceivedEvent,
- latency,
-- flags);
-+ FSEventStreamCreateFlags(0));
-
- if (!stream) {
- DEBUG() << "Failed to create stream!";
---
-2.1.2
-
-
-From 2903db0469487944f035aff1c44e69605d48fa8f Mon Sep 17 00:00:00 2001
-From: Andrew Knight <andrew.knight@theqtcompany.com>
-Date: Mon, 1 Dec 2014 09:57:15 +0200
-Subject: [PATCH 25/36] winrt: Fix Windows Store Certification
-
-WinRT requires that IDXGIDevice3::Trim() is called on application
-suspend in order to pass Store Certification.
-
-Task-number: QTBUG-38481
-Change-Id: Ia3cb5d3f6a2db8f11e4bfa4fd5c7791e18d6c36d
-Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
-
-diff --git a/src/plugins/platforms/winrt/qwinrtscreen.cpp b/src/plugins/platforms/winrt/qwinrtscreen.cpp
-index fadcd01..612a50f 100644
---- a/src/plugins/platforms/winrt/qwinrtscreen.cpp
-+++ b/src/plugins/platforms/winrt/qwinrtscreen.cpp
-@@ -37,6 +37,9 @@
- #include <EGL/eglext.h>
- #include <d3d11.h>
- #include <dxgi1_2.h>
-+#ifndef Q_OS_WINPHONE
-+#include <dxgi1_3.h>
-+#endif
-
- #include "qwinrtbackingstore.h"
- #include "qwinrtinputcontext.h"
-@@ -1113,6 +1116,16 @@ HRESULT QWinRTScreen::onActivated(ICoreWindow *, IWindowActivatedEventArgs *args
-
- HRESULT QWinRTScreen::onSuspended(IInspectable *, ISuspendingEventArgs *)
- {
-+#ifndef Q_OS_WINPHONE
-+ Q_D(QWinRTScreen);
-+ ComPtr<ID3D11Device> d3dDevice;
-+ const EGLBoolean ok = eglQuerySurfacePointerANGLE(d->eglDisplay, EGL_NO_SURFACE, EGL_DEVICE_EXT, (void **)d3dDevice.GetAddressOf());
-+ if (ok && d3dDevice) {
-+ ComPtr<IDXGIDevice3> dxgiDevice;
-+ if (SUCCEEDED(d3dDevice.As(&dxgiDevice)))
-+ dxgiDevice->Trim();
-+ }
-+#endif
- QWindowSystemInterface::handleApplicationStateChanged(Qt::ApplicationSuspended);
- QWindowSystemInterface::flushWindowSystemEvents();
- return S_OK;
---
-2.1.2
-
-
-From f9f270a6c85fbf42de1e7bf34cc1887e90a0dcf1 Mon Sep 17 00:00:00 2001
-From: Leena Miettinen <riitta-leena.miettinen@digia.com>
-Date: Fri, 28 Nov 2014 12:13:19 +0100
-Subject: [PATCH 26/36] Doc: add navigation info to qmake Manual
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Add the navigation.landingpage variable to the
-qdocconf file.
-
-Task-number: QTBUG-42965
-Change-Id: Ia5ee411fc0dbd5cd8c2d238f346b0f1818b54289
-Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
-Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
-
-diff --git a/qmake/doc/qmake.qdocconf b/qmake/doc/qmake.qdocconf
-index bfdf1d1..1a23237 100644
---- a/qmake/doc/qmake.qdocconf
-+++ b/qmake/doc/qmake.qdocconf
-@@ -73,3 +73,5 @@ depends += \
- qtx11extras \
- qtxml \
- qtxmlpatterns
-+
-+navigation.landingpage = "qmake Manual"
---
-2.1.2
-
-
-From 2dbcaf5d96ffc2bbd41a6bd6b7d3d36131edb69b Mon Sep 17 00:00:00 2001
-From: Andrew Knight <andrew.knight@digia.com>
-Date: Wed, 26 Nov 2014 11:13:16 +0200
-Subject: [PATCH 27/36] QOpenGLFramebufferObject: pass sized format also with
- dynamic GL
-
-The GL_RGBA8_OES define is not in scope for dynamic OpenGL builds, so
-pass in GL_RGBA8 instead (it is defined as the same value, 0x8058) when
-in ES mode. The functionality check already ensures the extension is
-available, so the ifdef guards can be removed.
-
-This fixes default multisampled FBO creation under ANGLE when using
--opengl dynamic.
-
-Task-number: QTBUG-40921
-Change-Id: Iac4b7e230a463c27b61af75c3307421f9deac856
-Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
-
-diff --git a/src/gui/opengl/qopenglframebufferobject.cpp b/src/gui/opengl/qopenglframebufferobject.cpp
-index b185e33..cbc992b 100644
---- a/src/gui/opengl/qopenglframebufferobject.cpp
-+++ b/src/gui/opengl/qopenglframebufferobject.cpp
-@@ -479,11 +479,9 @@ void QOpenGLFramebufferObjectPrivate::init(QOpenGLFramebufferObject *, const QSi
- GLenum storageFormat = internal_format;
- // ES requires a sized format. The older desktop extension does not. Correct the format on ES.
- if (ctx->isOpenGLES() && internal_format == GL_RGBA) {
--#ifdef GL_RGBA8_OES
- if (funcs.hasOpenGLExtension(QOpenGLExtensions::Sized8Formats))
-- storageFormat = GL_RGBA8_OES;
-+ storageFormat = GL_RGBA8;
- else
--#endif
- storageFormat = GL_RGBA4;
- }
-
---
-2.1.2
-
-
-From 1ed09b486eaca10c11aa454d648ad857f819b183 Mon Sep 17 00:00:00 2001
-From: Topi Reinio <topi.reinio@digia.com>
-Date: Wed, 3 Dec 2014 10:12:18 +0100
-Subject: [PATCH 28/36] Doc: Update external links to point to doc.qt.io
-
-Task-number: QTBUG-43062
-Change-Id: Ic630f0c7af20ab5ffa88a71a6ab99d42250cf272
-Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
-
-diff --git a/doc/global/externalsites/qch-urls.qdoc b/doc/global/externalsites/qch-urls.qdoc
-index f8ff8df..53ab940 100644
---- a/doc/global/externalsites/qch-urls.qdoc
-+++ b/doc/global/externalsites/qch-urls.qdoc
-@@ -38,7 +38,7 @@
- \title external: Publishing Applications to Ovi Store
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator
-+ \externalpage http://doc.qt.io/qtcreator
- \title external: Qt Creator Manual
- */
- /*!
-@@ -50,31 +50,31 @@
- \title external: Qt Mobility QML Plugins
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-project-managing.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-project-managing.html
- \title external: Creating Qt Projects in Creator
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-building-running.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-building-running.html
- \title external: Building and Running Applications in Creator
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-running-targets.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-running-targets.html
- \title external: Set Compiler Targets in Creator
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-build-settings.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-build-settings.html
- \title external: Build Settings in Creator
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-run-settings.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-run-settings.html
- \title external: Run Settings in Creator
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-using-qt-designer.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-using-qt-designer.html
- \title external: Designer in Creator
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-debugging.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-debugging.html
- \title external: Debugging Applications in Creator
- */
- /*!
-@@ -90,6 +90,6 @@
- \title external: Qt Mobility Examples
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-overview.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-overview.html
- \title external: Qt Creator Overview
- */
-diff --git a/doc/global/externalsites/qtcreator.qdoc b/doc/global/externalsites/qtcreator.qdoc
-index a98fbd0..c2eed07 100644
---- a/doc/global/externalsites/qtcreator.qdoc
-+++ b/doc/global/externalsites/qtcreator.qdoc
-@@ -26,472 +26,472 @@
- ****************************************************************************/
-
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-deployment-qnx.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-deployment-qnx.html
- \title Qt Creator: Deploying Applications to QNX Devices
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-developing-baremetal.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-developing-baremetal.html
- \title Qt Creator: Connecting Bare Metal Devices
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-developing-bb10.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-developing-bb10.html
- \title Qt Creator: Connecting BlackBerry 10 Devices
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-developing-qnx.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-developing-qnx.html
- \title Qt Creator: Connecting QNX Devices
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-deployment-bb10.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-deployment-bb10.html
- \title Qt Creator: Deploying Applications to BlackBerry 10 Devices
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-developing-generic-linux.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-developing-generic-linux.html
- \title Qt Creator: Connecting Embedded Linux Devices
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-deployment-embedded-linux.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-deployment-embedded-linux.html
- \title Qt Creator: Deploying Applications to Embedded Linux Devices
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-faq.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-faq.html
- \title Qt Creator: FAQ
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-tips.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-tips.html
- \title Qt Creator: Tips and Tricks
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-help.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-help.html
- \title Qt Creator: Using the Help Mode
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-quick-tour.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-quick-tour.html
- \title Qt Creator: User Interface
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-cli.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-cli.html
- \title Qt Creator: Using Command Line Options
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-task-lists.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-task-lists.html
- \title Qt Creator: Showing Task List Files in Issues Pane
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-project-managing-sessions.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-project-managing-sessions.html
- \title Qt Creator: Managing Sessions
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-editor-external.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-editor-external.html
- \title Qt Creator: Using External Tools
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-version-control.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-version-control.html
- \title Qt Creator: Using Version Control Systems
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-keyboard-shortcuts.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-keyboard-shortcuts.html
- \title Qt Creator: Keyboard Shortcuts
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/quick-screens.html
-+ \externalpage http://doc.qt.io/qtcreator/quick-screens.html
- \title Qt Creator: Creating Screens
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-qml-application.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-qml-application.html
- \title Qt Creator: Creating a Qt Quick Application
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/quick-export-to-qml.html
-+ \externalpage http://doc.qt.io/qtcreator/quick-export-to-qml.html
- \title Qt Creator: Exporting Designs from Graphics Software
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-qml-modules-with-plugins.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-qml-modules-with-plugins.html
- \title Qt Creator: Using QML Modules with Plugins
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-visual-editor.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-visual-editor.html
- \title Qt Creator: Developing Qt Quick Applications
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-using-qt-quick-designer.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-using-qt-quick-designer.html
- \title Qt Creator: Using Qt Quick Designer
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/quick-projects.html
-+ \externalpage http://doc.qt.io/qtcreator/quick-projects.html
- \title Qt Creator: Creating Qt Quick Projects
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/quick-components.html
-+ \externalpage http://doc.qt.io/qtcreator/quick-components.html
- \title Qt Creator: Creating Components
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/qt-quick-toolbars.html
-+ \externalpage http://doc.qt.io/qtcreator/qt-quick-toolbars.html
- \title Qt Creator: Using Qt Quick Toolbars
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/quick-buttons.html
-+ \externalpage http://doc.qt.io/qtcreator/quick-buttons.html
- \title Qt Creator: Creating Buttons
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/quick-scalable-image.html
-+ \externalpage http://doc.qt.io/qtcreator/quick-scalable-image.html
- \title Qt Creator: Creating Scalable Buttons and Borders
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-editor-options.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-editor-options.html
- \title Qt Creator: Configuring the Editor
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-editor-functions.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-editor-functions.html
- \title Qt Creator: Writing Code
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-coding-navigating.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-coding-navigating.html
- \title Qt Creator: Working in Edit Mode
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-highlighting.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-highlighting.html
- \title Qt Creator: Semantic Highlighting
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-checking-code-syntax.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-checking-code-syntax.html
- \title Qt Creator: Checking Code Syntax
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-completing-code.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-completing-code.html
- \title Qt Creator: Completing Code
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-editor-codepasting.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-editor-codepasting.html
- \title Qt Creator: Pasting and Fetching Code Snippets
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-macros.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-macros.html
- \title Qt Creator: Using Text Editing Macros
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-editor-fakevim.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-editor-fakevim.html
- \title Qt Creator: Using FakeVim Mode
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-indenting-code.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-indenting-code.html
- \title Qt Creator: Indenting Text or Code
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-editor-finding.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-editor-finding.html
- \title Qt Creator: Finding and Replacing
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-editor-refactoring.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-editor-refactoring.html
- \title Qt Creator: Refactoring
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-editor-locator.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-editor-locator.html
- \title Qt Creator: Searching with the Locator
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-coding.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-coding.html
- \title Qt Creator: Coding
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-editor-options-text.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-editor-options-text.html
- \title Qt Creator: Specifying Text Editor Settings
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-finding-overview.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-finding-overview.html
- \title Qt Creator: Finding
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-mime-types.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-mime-types.html
- \title Qt Creator: Editing MIME Types
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-qml-debugging-example.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-qml-debugging-example.html
- \title Qt Creator: Debugging a Qt Quick Example Application
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-debugging-example.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-debugging-example.html
- \title Qt Creator: Debugging a C++ Example Application
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-debugger-engines.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-debugger-engines.html
- \title Qt Creator: Setting Up Debugger
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-debugging-qml.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-debugging-qml.html
- \title Qt Creator: Debugging Qt Quick Projects
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-debugging.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-debugging.html
- \title Qt Creator: Debugging
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-debugger-operating-modes.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-debugger-operating-modes.html
- \title Qt Creator: Launching the Debugger
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-debug-mode.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-debug-mode.html
- \title Qt Creator: Interacting with the Debugger
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-debugging-helpers.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-debugging-helpers.html
- \title Qt Creator: Using Debugging Helpers
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-troubleshooting-debugging.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-troubleshooting-debugging.html
- \title Qt Creator: Troubleshooting Debugger
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/index.html
-+ \externalpage http://doc.qt.io/qtcreator/index.html
- \title Qt Creator Manual
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-advanced.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-advanced.html
- \title Qt Creator: Advanced Use
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-os-supported-platforms.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-os-supported-platforms.html
- \title Qt Creator: Supported Platforms
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-connecting-mobile.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-connecting-mobile.html
- \title Qt Creator: Connecting Mobile Devices
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-usability.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-usability.html
- \title Qt Creator: Optimizing Applications for Mobile Devices
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-acknowledgements.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-acknowledgements.html
- \title Qt Creator: Acknowledgements
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-help-overview.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-help-overview.html
- \title Qt Creator: Getting Help
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/technical-support.html
-+ \externalpage http://doc.qt.io/qtcreator/technical-support.html
- \title Qt Creator: Technical Support
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-overview.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-overview.html
- \title Qt Creator: IDE Overview
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-testing.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-testing.html
- \title Qt Creator: Debugging and Analyzing
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-deployment.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-deployment.html
- \title Qt Creator: Deploying to Mobile Devices
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-tutorials.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-tutorials.html
- \title Qt Creator: Tutorials
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-known-issues.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-known-issues.html
- \title Qt Creator: Known Issues
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-design-mode.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-design-mode.html
- \title Qt Creator: Designing User Interfaces
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-publish-ovi.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-publish-ovi.html
- \title Qt Creator: Publishing
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-glossary.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-glossary.html
- \title Qt Creator: Glossary
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-getting-started.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-getting-started.html
- \title Qt Creator: Getting Started
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-analyzer.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-analyzer.html
- \title Qt Creator: Detecting Memory Leaks
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-cache-profiler.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-cache-profiler.html
- \title Qt Creator: Profiling Function Execution
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-running-valgrind-remotely.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-running-valgrind-remotely.html
- \title Qt Creator: Running Valgrind Tools Remotely
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-valgrind-overview.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-valgrind-overview.html
- \title Qt Creator: Using Valgrind Code Analysis Tools
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-analyze-mode.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-analyze-mode.html
- \title Qt Creator: Analyzing Code
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-qml-performance-monitor.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-qml-performance-monitor.html
- \title Qt Creator: Profiling QML Applications
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-deploying-android.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-deploying-android.html
- \title Qt Creator: Deploying Applications to Android Devices
- */
-
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-developing-ios.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-developing-ios.html
- \title Qt Creator: Connecting iOS devices
- */
-
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-developing-android.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-developing-android.html
- \title Qt Creator: Connecting Android Devices
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-build-example-application.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-build-example-application.html
- \title Qt Creator: Building and Running an Example
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-project-generic.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-project-generic.html
- \title Qt Creator: Setting Up a Generic Project
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-sharing-project-settings.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-sharing-project-settings.html
- \title Qt Creator: Sharing Project Settings
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-project-opening.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-project-opening.html
- \title Qt Creator: Opening Projects
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-project-managing.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-project-managing.html
- \title Qt Creator: Managing Projects
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-project-cmake.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-project-cmake.html
- \title Qt Creator: Setting Up a CMake Project
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-targets.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-targets.html
- \title Qt Creator: Adding Kits
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-tool-chains.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-tool-chains.html
- \title Qt Creator: Adding Compilers
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-project-qbs.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-project-qbs.html
- \title Qt Creator: Setting Up a Qbs Project
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-project-creating.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-project-creating.html
- \title Qt Creator: Creating Projects
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-project-wizards.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-project-wizards.html
- \title Qt Creator: Adding New Custom Wizards
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-projects-autotools.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-projects-autotools.html
- \title Qt Creator: Setting Up an Autotools Project
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-configuring-projects.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-configuring-projects.html
- \title Qt Creator: Configuring Projects
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-build-process-customizing.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-build-process-customizing.html
- \title Qt Creator: Customizing the Build Process
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-build-settings.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-build-settings.html
- \title Qt Creator: Specifying Build Settings
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-code-style-settings.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-code-style-settings.html
- \title Qt Creator: Specifying Code Style Settings
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-run-settings.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-run-settings.html
- \title Qt Creator: Specifying Run Settings
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-project-qmake-libraries.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-project-qmake-libraries.html
- \title Qt Creator: Adding Libraries to Projects
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-project-other.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-project-other.html
- \title Qt Creator: Using Other Build Systems
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-running-targets.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-running-targets.html
- \title Qt Creator: Running on Multiple Platforms
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-build-dependencies.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-build-dependencies.html
- \title Qt Creator: Specifying Dependencies
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-building-running.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-building-running.html
- \title Qt Creator: Building and Running
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-editor-settings.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-editor-settings.html
- \title Qt Creator: Specifying Editor Settings
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-project-qmake.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-project-qmake.html
- \title Qt Creator: Adding Qt Versions
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-building-targets.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-building-targets.html
- \title Qt Creator: Building for Multiple Platforms
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-using-qt-designer.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-using-qt-designer.html
- \title Qt Creator: Developing Widget Based Applications
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-writing-program.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-writing-program.html
- \title Qt Creator: Creating a Qt Widget Based Application
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/adding-plugins.html
-+ \externalpage http://doc.qt.io/qtcreator/adding-plugins.html
- \title Qt Creator: Adding Qt Designer Plugins
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-configuring.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-configuring.html
- \title Qt Creator: Configuring Qt Creator
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-debuggers.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-debuggers.html
- \title Qt Creator: Adding Debuggers
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-mobile-app-tutorial.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-mobile-app-tutorial.html
- \title Qt Creator: Creating a Mobile Application
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-diff-editor.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-diff-editor.html
- \title Qt Creator: Comparing Files
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-beautifier.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-beautifier.html
- \title Qt Creator: Beautifying Source Code
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-developing-winrt.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-developing-winrt.html
- \title Qt Creator: Connecting Windows Runtime Devices
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-clang-codemodel.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-clang-codemodel.html
- \title Qt Creator: Parsing C++ Files
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-quick-ui-forms.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-quick-ui-forms.html
- \title Qt Creator: Qt Quick UI Forms
- */
- /*!
-- \externalpage http://qt-project.org/doc/qtcreator/creator-clang-static-analyzer.html
-+ \externalpage http://doc.qt.io/qtcreator/creator-clang-static-analyzer.html
- \title Qt Creator: Using Clang Static Analyzer
- */
---
-2.1.2
-
-
-From 457496b83090006b232c56c04042bf6c9b8b2c31 Mon Sep 17 00:00:00 2001
-From: Topi Reinio <topi.reinio@digia.com>
-Date: Tue, 21 Oct 2014 14:57:50 +0200
-Subject: [PATCH 29/36] Doc: new template for qt.io online style
-
-An online documentation template that follows the
-style of qt.io site.
-
-Update the url variable for Qt modules to point
-to doc.qt.io/qt-5/.
-
-Task-number: QTBUG-42086
-Change-Id: I5428a02cd503aef2217efd7361f4c8b7b5895a52
-Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
-
-diff --git a/doc/global/config.qdocconf b/doc/global/config.qdocconf
-index 295a5ed..a6ab546 100644
---- a/doc/global/config.qdocconf
-+++ b/doc/global/config.qdocconf
-@@ -9,8 +9,7 @@ dita.metadata.default.audience = programmer
-
- #Set the main Qt index.html
- navigation.homepage = "Qt $QT_VER"
--buildversion = "Qt $QT_VERSION Reference Documentation"
-
- sourcedirs += includes
-
--url = http://qt-project.org/doc/qt-5
-+url = http://doc.qt.io/qt-5
-diff --git a/doc/global/fileextensions.qdocconf b/doc/global/fileextensions.qdocconf
-index 0a106d5..88e5159 100644
---- a/doc/global/fileextensions.qdocconf
-+++ b/doc/global/fileextensions.qdocconf
-@@ -1,4 +1,4 @@
--naturallanguage = en_US
-+naturallanguage = en
- outputencoding = UTF-8
- sourceencoding = UTF-8
-
-diff --git a/doc/global/html-footer-online.qdocconf b/doc/global/html-footer-online.qdocconf
-new file mode 100644
-index 0000000..3269001
---- /dev/null
-+++ b/doc/global/html-footer-online.qdocconf
-@@ -0,0 +1,84 @@
-+# HTML footer for qt.io
-+
-+HTML.footer += \
-+ "</div>\n" \
-+ "</div>\n" \
-+ "</div>\n" \
-+ "</div>\n" \
-+ "</div>\n" \
-+ "<div id=\"footer\">\n" \
-+ "<footer id=\"footerbar\">\n" \
-+ " <div class=\"footer-main\">\n" \
-+ " <div class=\"container clearfix\">\n" \
-+ " <nav class=\"footer-nav clearfix\">\n" \
-+ " <div class=\"menu-footer-menu-container\"><ul id=\"menu-footer-menu\" class=\"menu\"><li id=\"menu-item-1350\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-1350\"><a href=\"http://qt.io/about-us/\">About us</a>\n" \
-+ "<ul class=\"sub-menu\">\n" \
-+ " <li id=\"menu-item-1353\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-1353\"><a href=\"http://qt.io/events/\">Events</a></li>\n" \
-+ " <li id=\"menu-item-1596\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-1596\"><a href=\"http://qt.io/news/\">News</a></li>\n" \
-+ " <li id=\"menu-item-1354\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-1354\"><a href=\"http://qt.io/resource-center/\">Resource Center</a></li>\n" \
-+ " <li id=\"menu-item-1352\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-1352\"><a href=\"http://qt.io/partners/\">Partners</a></li>\n" \
-+ " <li id=\"menu-item-1349\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-1349\"><a href=\"http://qt.io/careers/\">Careers</a></li>\n" \
-+ " <li id=\"menu-item-1415\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-1415\"><a href=\"http://qt.io/terms-conditions/\">Terms &amp; Conditions</a></li>\n" \
-+ "</ul>\n" \
-+ "</li>\n" \
-+ "<li id=\"menu-item-1355\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-1355\"><a href=\"http://qt.io/product/\">Product</a>\n" \
-+ "<ul class=\"sub-menu\">\n" \
-+ " <li id=\"menu-item-1358\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-1358\"><a href=\"http://qt.io/qt-framework/\">Qt Framework</a></li>\n" \
-+ " <li id=\"menu-item-1356\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-1356\"><a href=\"http://qt.io/qt-features/\">Qt Features</a></li>\n" \
-+ " <li id=\"menu-item-1359\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-1359\"><a href=\"http://qt.io/qt-quick/\">Qt Quick</a></li>\n" \
-+ " <li id=\"menu-item-1357\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-1357\"><a href=\"http://qt.io/qt-for-device-creation/\">Qt for Device Creation</a></li>\n" \
-+ " <li id=\"menu-item-34\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-34\"><a href=\"http://qt.io/qt-in-use/\">Qt in Use</a></li>\n" \
-+ " <li id=\"menu-item-1366\" class=\"menu-item menu-item-type-custom menu-item-object-custom menu-item-1366\"><a href=\"http://showroom.qt-project.org/\">Showroom</a></li>\n" \
-+ "</ul>\n" \
-+ "</li>\n" \
-+ "<li id=\"menu-item-33\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-33\"><a href=\"http://qt.io/developers/\">Developers</a>\n" \
-+ "<ul class=\"sub-menu\">\n" \
-+ " <li id=\"menu-item-1365\" class=\"menu-item menu-item-type-custom menu-item-object-custom menu-item-1365\"><a href=\"http://qt-project.org/doc/\">Documentation</a></li>\n" \
-+ " <li id=\"menu-item-1364\" class=\"menu-item menu-item-type-custom menu-item-object-custom menu-item-1364\"><a href=\"http://qt-project.org/doc/qt-5/qtexamplesandtutorials.html\">Examples &amp; Tutorials</a></li>\n" \
-+ " <li id=\"menu-item-1363\" class=\"menu-item menu-item-type-custom menu-item-object-custom menu-item-1363\"><a href=\"http://qt-project.org/doc/qt-5/topics-app-development.html\">Tools</a></li>\n" \
-+ " <li id=\"menu-item-1361\" class=\"menu-item menu-item-type-custom menu-item-object-custom menu-item-1361\"><a href=\"http://qt-project.org/wiki\">Wiki</a></li>\n" \
-+ " <li id=\"menu-item-1360\" class=\"menu-item menu-item-type-custom menu-item-object-custom menu-item-1360\"><a href=\"http://qt-project.org/forums\">Forums</a></li>\n" \
-+ " <li id=\"menu-item-1362\" class=\"menu-item menu-item-type-custom menu-item-object-custom menu-item-1362\"><a href=\"http://qt-project.org/wiki/Qt-Contribution-Guidelines\">Contribute to Qt</a></li>\n" \
-+ "</ul>\n" \
-+ "</li>\n" \
-+ "<li id=\"menu-item-1347\" class=\"menu-item menu-item-type-post_type menu-item-object-page current-menu-ancestor current-menu-parent current_page_parent current_page_ancestor menu-item-has-children menu-item-1347\"><a href=\"http://qt.io/services/\">Services</a>\n" \
-+ "<ul class=\"sub-menu\">\n" \
-+ " <li id=\"menu-item-32\" class=\"menu-item menu-item-type-post_type menu-item-object-page page_item page-item-14 menu-item-32\"><a href=\"http://qt.io/support/\">Support</a></li>\n" \
-+ " <li id=\"menu-item-4028\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-4028\"><a href=\"http://qt.io/services-technology-evaluation/\">Technology Evaluation</a></li>\n" \
-+ " <li id=\"menu-item-4027\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-4027\"><a href=\"http://qt.io/services-proof-of-concept/\">Proof of Concept</a></li>\n" \
-+ " <li id=\"menu-item-4026\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-4026\"><a href=\"http://qt.io/services-design-implementation/\">Design &amp; Implementation</a></li>\n" \
-+ " <li id=\"menu-item-4025\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-4025\"><a href=\"http://qt.io/services-productization/\">Productization</a></li>\n" \
-+ "</ul>\n" \
-+ "</li>\n" \
-+ "<li id=\"menu-item-1403\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-1403\"><a href=\"http://qt.io/download/\">Download</a>\n" \
-+ "<ul class=\"sub-menu\">\n" \
-+ " <li id=\"menu-item-1985\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-1985\"><a title=\"Professional\" href=\"http://qt.io/buy/\">Professional</a></li>\n" \
-+ " <li id=\"menu-item-3346\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-3346\"><a title=\"Indie Mobile\" href=\"http://qt.io/download-mobile/\">Indie Mobile</a></li>\n" \
-+ " <li id=\"menu-item-1982\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-1982\"><a title=\"Enterprise\" href=\"http://qt.io/download-enterprise-step-2/\">Enterprise</a></li>\n" \
-+ " <li id=\"menu-item-3013\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-3013\"><a title=\"Evaluation\" href=\"http://qt.io/download-eval-step-2/\">Evaluation</a></li>\n" \
-+ " <li id=\"menu-item-3343\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-3343\"><a href=\"http://qt.io/download-open-source/\">Community</a></li>\n" \
-+ "</ul>\n" \
-+ "</li>\n" \
-+ "</ul></div></nav>\n" \
-+ "<a href=\"http://digia.com\" target=\"_blank\" class=\"footer-logo retina\" data-icon=\"\">\n" \
-+ " </a>\n" \
-+ " <div class=\"footer-social clearfix\">\n" \
-+ " <div class=\"facebook\">\n" \
-+ " <div class=\"fb-like fb_iframe_widget\" data-href=\"https://www.facebook.com/qtbydigia\" data-layout=\"button_count\" data-action=\"like\" data-show-faces=\"true\" data-share=\"false\" fb-xfbml-state=\"parsed\" fb-iframe-plugin-query=\"action=like&amp;app_id=207346529386114&amp;href=https%3A%2F%2Fwww.facebook.com%2Fqtbydigia&amp;layout=button_count&amp;locale=en_US&amp;sdk=joey&amp;share=false&amp;show_faces=true\" style=\"display: block;\"><iframe style=\"width: 30px; height: 19px; border: 0px;\"></iframe></div>\n" \
-+ " </div>\n" \
-+ " <div class=\"twitter\">\n" \
-+ " <iframe id=\"twitter-widget-0\" scrolling=\"no\" frameborder=\"0\" allowtransparency=\"true\" src=\"http://platform.twitter.com/widgets/follow_button.33b190ea0cba008796487b65df7f6d8e.en.html#_=1414403615717&amp;id=twitter-widget-0&amp;lang=en&amp;screen_name=qtproject&amp;show_count=true&amp;show_screen_name=false&amp;size=m\" class=\"twitter-follow-button twitter-follow-button\" title=\"Twitter Follow Button\" data-twttr-rendered=\"true\" style=\"width: 160px; height: 20px;\"></iframe>\n" \
-+ " </div>\n" \
-+ " </div>\n" \
-+ "</div>\n" \
-+ "</div>\n" \
-+ "<div class=\"disclaimer\">\n" \
-+ "<div class=\"container clearfix no_discs\">\n" \
-+ " <ul id=\"menu-footer-submenu\" class=\"right clearfix\"><li id=\"menu-item-1795\" class=\"menu-item menu-item-type-custom menu-item-object-custom menu-item-1795\"><a title=\"Sign into your account.\" href=\"https://account.qt.io/login\">Sign In</a></li>\n" \
-+ " <li id=\"menu-item-1494\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-1494\"><a href=\"http://qt.io/contact-us/\">Contact us</a></li>\n" \
-+ " <li id=\"menu-item-4472\" class=\"menu-item menu-item-type-custom menu-item-object-custom menu-item-4472\"><a href=\"http://www.digia.com\">© 2014 Digia Oyj</a></li>\n" \
-+ " </ul>\n" \
-+ "</div>\n" \
-+ "</div>\n" \
-+ "</footer>\n" \
-+ "</div>\n"
-diff --git a/doc/global/html-header-online.qdocconf b/doc/global/html-header-online.qdocconf
-index 5c21644..7e9aae6 100644
---- a/doc/global/html-header-online.qdocconf
-+++ b/doc/global/html-header-online.qdocconf
-@@ -1,64 +1,149 @@
--#HTML Header with Qt Project branding and online links
-+# HTML Header with qt.io branding and online links
-
--HTML.stylesheets = template/style/online.css
-+HTML.stylesheets = template/style/online.css \
-+ template/style/gsc.css \
-+ template/style/list_arrow.png \
-+ template/style/icomoon.eot \
-+ template/style/icomoon.svg \
-+ template/style/icomoon.ttf \
-+ template/style/icomoon.woff \
-+ template/style/doc_search.png
-
- #for including files into the qch file. Relative to the outputdir of a QDoc build.
--# $QT_INSTALL_DOCS/qtquick/style/online.css for example
--qhp.extraFiles += style/online.css
-+qhp.extraFiles += style/online.css \
-+ style/gsc.css \
-+ style/list_arrow.png \
-+ style/icomoon.eot \
-+ style/icomoon.svg \
-+ style/icomoon.ttf \
-+ style/icomoon.woff
-
- HTML.headerstyles = \
-- " <link rel=\"stylesheet\" type=\"text/css\" href=\"style/online.css\" />\n"
-+ " <link rel=\"stylesheet\" type=\"text/css\" href=\"style/online.css\" />\n" \
-+ " <link rel=\"shortcut icon\" href=\"//d3hp9ud7yvwzy0.cloudfront.net/wp-content/themes/oneqt/images/favicon.ico.gzip\" />\n"
-+
-+HTML.headerscripts = \
-+ " <script type=\"text/javascript\"> wpThemeFolder = \'http://qt.io/wp-content/themes/oneqt\'; </script>\n" \
-+ " <script type=\"text/javascript\" src=\"http://d3hp9ud7yvwzy0.cloudfront.net/wp-content/themes/oneqt/js/combo.js.gzip\"></script>\n" \
-+ " <script type=\"text/javascript\" src=\"scripts/main.js\"></script>\n" \
-+ " <script type=\"text/javascript\" src=\"scripts/extras.js\"></script>\n" \
-+ " <script type=\"text/javascript\">\n" \
-+ " \$(function(){\n" \
-+ " \$(\"#sidebar-content\").load(\"style/qt5-sidebar.html\");\n" \
-+ " });\n" \
-+ " </script>\n" \
-+ " <script type=\"text/javascript\">\n" \
-+ " (function (i, s, o, g, r, a, m) {\n" \
-+ " i[\'GoogleAnalyticsObject\'] = r; i[r] = i[r] || function () {\n" \
-+ " (i[r].q = i[r].q || []).push(arguments)\n" \
-+ " }, i[r].l = 1 * new Date(); a = s.createElement(o),\n" \
-+ " m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)\n" \
-+ " })(window, document, \'script\', \'//www.google-analytics.com/analytics.js\', \'ga\');\n\n" \
-+ " ga(\'create\', \'UA-54043535-2\', \'qt.io\');\n" \
-+ " ga(\'set\', \'forceSSL\', true);\n" \
-+ " ga(\'send\', \'pageview\');\n" \
-+ " </script>\n"
-+
-+HTML.scripts = template/scripts/extras.js \
-+ template/scripts/main.js
-
- HTML.endheader = \
- "</head>\n"
-
-+# minimal header
- HTML.postheader = \
- "<body>\n" \
-- "<div class=\"header\" id=\"qtdocheader\"></div>\n" \
-- " <div class=\"nav\" id=\"qt13a-header\">\n" \
-- " <div class=\"qt13a-gradient\">\n" \
-- " <div class=\"qt13a-container qt13a-dynamicREMOVE\" >\n" \
-- " <div id=\"qt13a-register\">\n" \
-- " <a href=\"http://qt-project.org/\">Qt Home</a>\n" \
-- " <a href=\"https://bugreports.qt-project.org/\">Bug Tracker</a>\n" \
-- " <a href=\"https://codereview.qt-project.org/\">Code Review</a>\n" \
-- " </div>\n" \
-- " <div class=\"qt13a-sixCol\">\n" \
-- " <div id=\"qt13a-logo\">\n" \
-- " <a href=\"http://qt-project.org/\" class=\"qt13a-site-logo\">\n" \
-- " <img src=\"images/Qt-logo.png\" alt=\"Qt\"></img>\n" \
-- " </a>\n" \
-- " </div>\n" \
-- " <div id=\"qt13a-title_nav\">\n" \
-- " <div id=\"qt13a-title\">\n" \
-- " <p class=\"qt13a-title\">Qt Documentation Snapshots</p>\n" \
-- " </div>\n" \
-- " <div class=\"qt13a-nav\">\n" \
-- " <ul>\n" \
-- " <li>\n" \
-- " <a href=\"http://doc-snapshot.qt-project.org\">Snapshots</a>\n" \
-- " </li>\n" \
-- " <li>\n" \
-- " <a href=\"http://qt-project.org/doc\">Released</a>\n" \
-- " </li>\n" \
-- " <li>\n" \
-- " <a href=\"http://doc.qt.digia.com\">Archives</a>\n" \
-- " </li>\n" \
-- " </ul>\n" \
-- " </div>\n" \
-- " </div>\n" \
-- " </div>\n" \
-- " </div>\n" \
-+ "<div class=\"header\" id=\"header\">\n" \
-+ "<header id=\"navbar\" class=\"\">\n" \
-+ " <div class=\"cookies_yum\">\n" \
-+ " <div>\n" \
-+ " <img src=\"http://qt.io/wp-content/themes/oneqt/assets/images/cookie_small.png\" align=\"left\">\n" \
-+ " <p class=\"close_button\">\n" \
-+ " We bake cookies in your browser for a better experience. Using this site means that you consent. <a href=\"//qt.io/terms-conditions/\">Read More</a>\n" \
-+ " </p>\n" \
-+ " <a class=\"close\"></a>\n" \
-+ " </div>\n" \
- " </div>\n" \
-+ " <div class=\"container\">\n" \
-+ " <div class=\"navbar-header clearfix\">\n" \
-+ " <a href=\"#\" class=\"navbar-toggle\">\n" \
-+ " <figure>\n" \
-+ " <span class=\"line\"></span>\n" \
-+ " </figure>\n" \
-+ " <span>Menu</span>\n" \
-+ " </a>\n" \
-+ " <ul id=\"menuextras\">\n" \
-+ " <li>\n" \
-+ " <a href=\"//qt.io/partners/\" data-icon=\"\">\n" \
-+ " <span>Partners</span>\n" \
-+ " </a>\n" \
-+ " </li>\n" \
-+ " <li>\n" \
-+ " <a target=\"_blank\" href=\"http://blog.qt.digia.com/\" data-icon=\"\">\n" \
-+ " <span>Blog</span>\n" \
-+ " </a>\n" \
-+ " </li>\n" \
-+ " <li class=\"sign-in\">\n" \
-+ " <a data-icon=\"\" class=\"signin\" href=\"https://account.qt.io/login\"><span>Sign in</span></a>\n" \
-+ " </li>\n" \
-+ " </ul>\n" \
-+ " <a href=\"http://qt.io/\" class=\"navbar-oneQt retina\" data-icon=\"\">\n" \
-+ " </a>\n" \
-+ " <nav class=\"navbar-menu clearfix\" role=\"navigation\">\n" \
-+ " <ul id=\"mainmenu\" class=\"menu\"><li id=\"menu-item-21\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-21\"><a href=\"http://qt.io/product/\">Product</a></li>\n" \
-+ "<li id=\"menu-item-1381\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-1381\"><a href=\"http://qt.io/services/\">Services</a></li>\n" \
-+ "<li id=\"menu-item-22\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-22\"><a href=\"http://qt.io/qt-in-use/\">Qt in Use</a></li>\n" \
-+ "<li id=\"menu-item-20\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-20\"><a href=\"http://qt.io/developers/\">Developers</a></li>\n" \
-+ "<li id=\"menu-item-4466\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-4466\"><a href=\"http://qt.io/licensing/\">Licensing</a></li>\n" \
-+ "<li id=\"menu-item-18\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-18\"><a href=\"http://qt.io/download/\">Download</a></li>\n" \
-+ "</ul> <ul class=\"menuextraslanguages\">\n" \
-+ " <li class=\"active dark\"><a class=\"dark\" href=\"http://qt.io/support/\">EN</a></li><li class=\"dark\"><a class=\"dark\" href=\"http://qt.io/ru/\">RU</a></li><li class=\"dark\"><a class=\"dark\" href=\"http://qt.io/zh-hans/\">ZH</a></li></ul>\n" \
-+ " </nav>\n" \
-+ " </div>\n" \
-+ " </div>\n" \
-+ "<div class=\"big_bar account\" style=\"\">\n" \
-+ " <div class=\"container\">\n" \
-+ " <h1><!-- mclude oneqt_no_cache_bMrsJxAh /wp-content/themes/oneqt/php_login_info_bottom_header.php --><!-- /mclude oneqt_no_cache_bMrsJxAh -->\n" \
-+ " <div class=\"col-1 right big_bar_button account\" style=\"margin-top:5px !important;\"></div>\n" \
-+ " </h1>\n" \
- " </div>\n" \
-- " <div class=\"main\">\n" \
-- " <div class=\"main-rounded\">\n" \
-- " <div class=\"navigationbar\">\n" \
-- " <ul>\n" \
-+ "</div>\n" \
-+ "</header>\n" \
-+ "</div>\n" \
-+ "<div class=\"main\">\n" \
-+ "<div class=\"main-rounded\">\n" \
-+ "<div class=\"navigationbar\">\n" \
-+ " <ul class=\"sub-navigation\">\n" \
-+ " <li><a href=\"http://qt-project.org/wiki\">Wiki</a></li>\n" \
-+ " <li><a href=\"http://doc.qt.io/\" class=\"active\">Documentation</a></li>\n" \
-+ " <li><a href=\"http://qt-project.org/forums\">Forum</a></li>\n" \
-+ " <li><a href=\"https://bugreports.qt-project.org/\">Bug Reports</a></li>\n" \
-+ " <li><a href=\"https://codereview.qt-project.org/\">Code Review</a></li>\n" \
-+ " </ul>\n" \
-+ " <div id=\"main_title_bar\">\n" \
-+ " <h1>Qt Documentation</h1>\n" \
-+ " <div class=\"search_bar\">\n" \
-+ " <script>\n" \
-+ " (function() {\n" \
-+ " var cx = \'003672281345882769388:1y4pftuq8so\';\n" \
-+ " var gcse = document.createElement(\'script\');\n" \
-+ " gcse.type = \'text/javascript\';\n" \
-+ " gcse.async = true;\n" \
-+ " gcse.src = (document.location.protocol == \'https:\' ? \'https:\' : \'http:\') + \'//www.google.com/cse/cse.js?cx=\' + cx;\n" \
-+ " var s = document.getElementsByTagName(\'script\')[0];\n" \
-+ " s.parentNode.insertBefore(gcse, s);\n" \
-+ " })();\n" \
-+ " </script>\n" \
-+ " <gcse:searchbox-only resultsUrl=\"search-results.html\"></gcse:searchbox-only>\n" \
-+ " </div></div>\n" \
-+ " <ul>\n"
-
- HTML.postpostheader = \
-- " </ul>\n" \
-- " </div>\n" \
-+ " </ul>\n" \
-+ "</div>\n" \
- "<div class=\"content\">\n" \
- " <div class=\"line\">\n" \
-- " <div class=\"content mainContent\">\n" \
-+ " <div class=\"content mainContent\">\n"
-+
-+HTML.prologue = \
-+ "<div class=\"context\">\n"
-diff --git a/doc/global/includes-online/search.qdoc b/doc/global/includes-online/search.qdoc
-new file mode 100644
-index 0000000..25c4563
---- /dev/null
-+++ b/doc/global/includes-online/search.qdoc
-@@ -0,0 +1,39 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-+** Contact: http://www.qt-project.org/legal
-+**
-+** This file is part of the documentation of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:FDL$
-+** Commercial License Usage
-+** Licensees holding valid commercial Qt licenses may use this file in
-+** accordance with the commercial license agreement provided with the
-+** Software or, alternatively, in accordance with the terms contained in
-+** a written agreement between you and Digia. For licensing terms and
-+** conditions see http://qt.digia.com/licensing. For further information
-+** use the contact form at http://qt.digia.com/contact-us.
-+**
-+** GNU Free Documentation License Usage
-+** Alternatively, this file may be used under the terms of the GNU Free
-+** Documentation License version 1.3 as published by the Free Software
-+** Foundation and appearing in the file included in the packaging of
-+** this file. Please review the following information to ensure
-+** the GNU Free Documentation License version 1.3 requirements
-+** will be met: http://www.gnu.org/copyleft/fdl.html.
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+/*!
-+\page search-results.html
-+\title Search Results
-+
-+\raw HTML
-+<link rel="stylesheet" type="text/css" href="style/gsc.css" />
-+<script type="text/javascript">
-+$(function(){ $(".title").append(": " + decodeURIComponent(location.search.split('=')[1]).substring(0,32)); });
-+</script>
-+<gcse:searchresults-only></gcse:searchresults-only>
-+\endraw
-+*/
-diff --git a/doc/global/qt-html-templates-online.qdocconf b/doc/global/qt-html-templates-online.qdocconf
-index 88abc34..78d0d49 100644
---- a/doc/global/qt-html-templates-online.qdocconf
-+++ b/doc/global/qt-html-templates-online.qdocconf
-@@ -1,23 +1,9 @@
- #include standard set of HTML header and footer.
- include(html-config.qdocconf)
- include(html-header-online.qdocconf)
--include(html-footer.qdocconf)
-+include(html-footer-online.qdocconf)
-
- #uncomment if navigation bar is not wanted
- #HTML.nonavigationbar = "true"
-
--HTML.stylesheets = template/style/online.css
--HTML.extraimages += template/images/ico_out.png \
-- template/images/ico_note.png \
-- template/images/ico_note_attention.png \
-- template/images/btn_prev.png \
-- template/images/btn_next.png \
-- template/images/bullet_dn.png \
-- template/images/bullet_sq.png \
-- template/images/bgrContent.png \
-- template/images/Qt-logo.png \
-- template/images/Qt-dark_gradient.png \
-- template/images/Qt-footer-bg.jpg \
-- template/images/Qt-footer_shadow.png \
-- template/images/Qt-gradient.png \
-- template/images/Qt-header-bg.jpg
-+sourcedirs += includes-online
-diff --git a/doc/global/qt-module-defaults-offline.qdocconf b/doc/global/qt-module-defaults-offline.qdocconf
-index bdca212..af7afdd 100644
---- a/doc/global/qt-module-defaults-offline.qdocconf
-+++ b/doc/global/qt-module-defaults-offline.qdocconf
-@@ -11,3 +11,6 @@ include(qt-html-templates-offline.qdocconf)
-
- #extra configuration data such as file extensions
- include(config.qdocconf)
-+
-+# Show Qt version as part of the navigation bar
-+buildversion = "Qt $QT_VERSION Reference Documentation"
-diff --git a/doc/global/qt-module-defaults-online-commercial.qdocconf b/doc/global/qt-module-defaults-online-commercial.qdocconf
-new file mode 100644
-index 0000000..23b0998
---- /dev/null
-+++ b/doc/global/qt-module-defaults-online-commercial.qdocconf
-@@ -0,0 +1,29 @@
-+# This template uses the default online template for qt.io
-+# and modifies it for a commercial Qt component
-+
-+# Start of footer - the rest is defined in the default template
-+HTML.footer = \
-+ " <p class=\"qt_commercial\">Available under certain Qt licenses.<br/><a href=\"http://www.qt.io/download/\">Find out more.</a></p>\n" \
-+ " </div>\n"
-+
-+include(macros.qdocconf)
-+include(qt-cpp-defines.qdocconf)
-+include(compat.qdocconf)
-+#include(manifest-meta.qdocconf)
-+include(fileextensions.qdocconf)
-+include(qt-html-templates-online.qdocconf)
-+
-+#extra configuration data DITA information
-+include(config.qdocconf)
-+
-+HTML.prologue = \
-+ "<div class=\"context qt_commercial\">\n" \
-+ "<a href=\"http://www.qt.io/download/\" title=\"Available under certain Qt licenses.\" ><h1 class=\"qt_commercial\">C</h1></a>\n"
-+
-+# Turn off single-directory output mode
-+HTML.nosubdirs = "false"
-+
-+# Set navigation homepage
-+navigation.homepage = "Qt Documentation"
-+
-+sourcedirs += includes-online
-diff --git a/doc/global/qt-module-defaults-online.qdocconf b/doc/global/qt-module-defaults-online.qdocconf
-index 258295b..fcff197 100644
---- a/doc/global/qt-module-defaults-online.qdocconf
-+++ b/doc/global/qt-module-defaults-online.qdocconf
-@@ -1,7 +1,20 @@
- #The online onfiguration for a Qt 5 module, including Add-Ons and Tools.
--#Online version contains a different header.
- #Include this file for a standard Qt 5 module; builds with the online style.
-
-+# Start of footer - the rest is defined in qt-html-templates-online.qdocconf
-+HTML.footer = \
-+ " </div>\n" \
-+ " <p class=\"copy-notice\">\n" \
-+ " <acronym title=\"Copyright\">&copy;</acronym> 2014 Digia Plc and/or its\n" \
-+ " subsidiaries. Documentation contributions included herein are the copyrights of\n" \
-+ " their respective owners. " \
-+ " The documentation provided herein is licensed under the terms of the" \
-+ " <a href=\"http://www.gnu.org/licenses/fdl.html\">GNU Free Documentation" \
-+ " License version 1.3</a> as published by the Free Software Foundation. " \
-+ " Digia, Qt and their respective logos are trademarks of Digia Plc " \
-+ " in Finland and/or other countries worldwide. All other trademarks are property\n" \
-+ " of their respective owners. </p>\n"
-+
- #include standard set of macros and C++ defines and ignores
- include(macros.qdocconf)
- include(qt-cpp-defines.qdocconf)
-@@ -12,3 +25,7 @@ include(qt-html-templates-online.qdocconf)
-
- #extra configuration data DITA information
- include(config.qdocconf)
-+
-+# single-directory output mode
-+HTML.nosubdirs = "true"
-+HTML.outputsubdir = "html"
-diff --git a/doc/global/template/scripts/extras.js b/doc/global/template/scripts/extras.js
-new file mode 100644
-index 0000000..cb1102d
---- /dev/null
-+++ b/doc/global/template/scripts/extras.js
-@@ -0,0 +1,23 @@
-+var vOffset = 65;
-+
-+$(function () {
-+ $('a[href*=#]:not([href=#])').on('click', function () {
-+ var target = $(this.hash);
-+ target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
-+ if (target.length) {
-+ setTimeout(function () {
-+ $('html, body').animate({scrollTop: target.offset().top - vOffset}, 50);}, 50);
-+ // return false;
-+ }
-+ });
-+});
-+
-+$(window).load(function () {
-+ var h = window.location.hash;
-+ var re = /[^a-z0-9_\#\-]/i
-+ if (h.length > 1 && !re.test(h)) {
-+ setTimeout(function () {
-+ $(window).scrollTop($(h).offset().top - vOffset);
-+ }, 0);
-+ }
-+});
-diff --git a/doc/global/template/scripts/main.js b/doc/global/template/scripts/main.js
-new file mode 100644
-index 0000000..79de4ea
---- /dev/null
-+++ b/doc/global/template/scripts/main.js
-@@ -0,0 +1,241 @@
-+"use strict";
-+
-+function createCookie(name, value, days) {
-+ var expires;
-+ if (days) {
-+ var date = new Date();
-+ date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
-+ expires = "; expires=" + date.toGMTString();
-+ } else {
-+ expires = "";
-+ }
-+ document.cookie = escape(name) + "=" + escape(value) + expires + "; path=/";
-+ $('.cookies_yum').click(function() {
-+ $(this).fadeOut()
-+ });
-+}
-+function readCookie(name) {
-+ var nameEQ = escape(name) + "=";
-+ var ca = document.cookie.split(';');
-+ for (var i = 0; i < ca.length; i++) {
-+ var c = ca[i];
-+ while (c.charAt(0) === ' ') c = c.substring(1, c.length);
-+ if (c.indexOf(nameEQ) === 0) return unescape(c.substring(nameEQ.length, c.length));
-+ }
-+ return null;
-+}
-+function eraseCookie(name) {
-+ createCookie(name, "", -1);
-+}
-+function load_sdk(s, id, src) {
-+ var js, fjs = document.getElementsByTagName(s)[0];
-+ if (document.getElementById(id)) return;
-+ js = document.createElement(s);
-+ js.id = id;
-+ js.src = src;
-+ fjs.parentNode.insertBefore(js, fjs);
-+}
-+$(document).ready(function($) {
-+ if (document.documentElement.clientWidth < 1220) {
-+ oneQt.extraLinksToMain();
-+ }
-+
-+ $('#menuextras .search').click(function(e){
-+ e.preventDefault();
-+ $('.big_bar.account').slideUp();
-+ $('.big_bar.search').slideToggle();
-+ $('.big_bar_search').focus();
-+ $(this).toggleClass('open');
-+ });
-+ $('.cookies_yum').click(function() {
-+ $('.cookies_yum').fadeOut();
-+ createCookie("cookies_nom", "yum", 180);
-+ var cookie_added = 1;
-+ });
-+ if (!(readCookie('cookies_nom') == 'yum')) {
-+ $('.cookies_yum').fadeIn();
-+ } else {
-+ var cookie_added = 1;
-+ }
-+
-+ Modernizr.load({test: Modernizr.input.placeholder,
-+ nope: wpThemeFolder + '/js/placeholders.min.js'});
-+
-+ $('#navbar .navbar-toggle').click(function(e) {
-+ e.preventDefault();
-+ if ($(this).hasClass('opened')) {
-+ $(this).removeClass('opened');
-+ $('#navbar .navbar-menu').css('max-height', '0px');
-+ }
-+ else {
-+ $(this).addClass('opened');
-+ $('#navbar .navbar-menu').css('max-height', $('#navbar .navbar-menu ul').outerHeight() + 'px');
-+ }
-+ });
-+
-+ $(window).resize(function() {
-+ oneQt.stickySidebar();
-+ oneQt.footerPosition();
-+ if (document.documentElement.clientWidth < 1220) {
-+ oneQt.extraLinksToMain();
-+ } else {
-+ oneQt.mainLinkstoExtra();
-+ }
-+ });
-+
-+ $(window).scroll(function() {
-+ oneQt.stickySidebar();
-+ oneQt.stickyHeader();
-+ });
-+
-+ oneQt.stickySidebar();
-+ oneQt.footerPosition();
-+ oneQt.tabContents();
-+});
-+
-+$( window ).load(function() {
-+ load_sdk('script', 'facebook-jssdk','//connect.facebook.net/en_US/sdk.js#xfbml=1&appId=207346529386114&version=v2.0');
-+ load_sdk('script', 'twitter-wjs', '//platform.twitter.com/widgets.js');
-+ $.getScript("//www.google.com/jsapi", function(){
-+ google.load("feeds", "1", {"callback": oneQt.liveFeeds});
-+ });
-+});
-+
-+var oneQt = {
-+ stickySidebar: function() {
-+ if ($('#sidebar').length && $('#sidebar').outerHeight() > 20) {
-+ var $sidebar = $('#sidebar');
-+ var $win = $(window);
-+ var $sidebarContainer = $sidebar.parent();
-+ var headerHeight = $('#navbar').outerHeight();
-+ if ($win.outerHeight() - headerHeight > $sidebar.innerHeight() &&
-+ $win.scrollTop() > $sidebarContainer.offset().top) {
-+ var newTop = headerHeight + $win.scrollTop() - $sidebarContainer.offset().top;
-+ if (newTop + $sidebar.innerHeight() > $sidebarContainer.innerHeight())
-+ newTop = $sidebarContainer.innerHeight() - $sidebar.innerHeight();
-+
-+ $sidebar.css({top: newTop +'px'})
-+ }
-+ else {
-+ $sidebar.css({top: '0'})
-+ }
-+ }
-+ },
-+
-+ footerPosition: function () {
-+ $('#footerbar').removeClass('fixed');
-+ if (($('.hbspt-form').length > 0) || ($('#customerInfo').length > 0) || ($('.purchase_bar').length > 0)) {
-+ var footerBottomPos = $('#footerbar').offset().top + $('#footerbar').outerHeight();
-+ if (footerBottomPos < $(window).height())
-+ $('#footerbar').addClass('fixed');
-+ }
-+ },
-+
-+ stickyHeader: function () {
-+ var originalHeaderHeight = 79;
-+ if ($(window).scrollTop() > originalHeaderHeight) {
-+ $('#navbar').addClass('fixed');
-+ $('#bottom_header').fadeOut();
-+
-+ if (!(cookie_added == 1)) {
-+ $('.cookies_yum').fadeOut();
-+ createCookie("cookies_nom", "yum", 180);
-+ var cookie_added = 1;
-+ }
-+ }
-+ else {
-+ $('#navbar').removeClass('fixed');
-+ $('#bottom_header').fadeIn();
-+ }
-+ },
-+
-+ tabContents: function () {
-+ $('.tab-container').each(function(i) {
-+ var $el = $(this);
-+ $el.find('.tab-titles li:eq(0)').addClass('active');
-+ $el.find('.tab-contents .tab:eq(0)').addClass('active');
-+ $el.find('.tab-titles a').click(function(e) {
-+ e.preventDefault();
-+ var index = $(this).parent().index();
-+ $el.find('.tab-titles li').removeClass('active');
-+ $el.find('.tab-contents .tab').removeClass('active');
-+ $(this).parent().addClass('active');
-+ $el.find('.tab-contents .tab').eq(index).addClass('active');
-+ })
-+ });
-+ },
-+
-+ liveFeeds: function () {
-+ $('.feed-container').each(function(i) {
-+ var feedUrl = $(this).data('url');
-+ if (feedUrl != "") oneQt.blogFeed($(this), feedUrl);
-+ });
-+ },
-+
-+ blogFeed: function ($container, feedUrl) {
-+ var feed = new google.feeds.Feed(feedUrl);
-+ feed.setNumEntries(3);
-+ feed.load(function(result) {
-+ $container.html('');
-+ if (!result.error) {
-+ for (var i = 0; i < result.feed.entries.length; i++) {
-+ var entry = result.feed.entries[i];
-+ var $article = $('<article class="discussion-tile cf"></article>');
-+ $container.append($article);
-+ var html = ' <div class="author retina">';
-+ html += ' <img src="'+wpThemeFolder+'/assets/images/author_placeholder.png" alt="">';
-+ html += ' </div>';
-+ html += ' <div class="discussion-item">';
-+ html += ' <h4><a href="'+encodeURI(entry.link)+'"></a></h4>'
-+ html += ' <h3><a href="'+encodeURI(entry.link)+'" target="_blank"></a></h3>'
-+ html += ' <p><a href="'+encodeURI(entry.link)+'" target="_blank"></a></p>';
-+ html += ' <ul class="taglist cf">';
-+ html += ' </ul>';
-+ html += ' </div>';
-+ $article.append(html);
-+ $article.find('h4 a').text(result.feed.title);
-+ $article.find('h3 a').text(entry.title);
-+ $article.find('p a').text(entry.author);
-+ try {
-+ for (var j=0; j<entry.categories.length; j++) {
-+ var $li = $('<li><a href="'+encodeURI(entry.link)+'" target="_blank" class="btn btn-tag"></a></li>');
-+ $li.find('a').text(entry.categories[j]);
-+ $article.find('.taglist').append($li);
-+ }
-+ } catch(e) {}
-+ }
-+ if (result.feed.link && result.feed.link != "") {
-+ var linkHtml = '<a href="'+encodeURI(result.feed.link)+'" class="text-lightgrey" target="_blank">Show all</a>';
-+ $container.append(linkHtml);
-+ }
-+ }
-+ });
-+ },
-+
-+ extraLinksToMain: function() {
-+ var extramenuLinks = $('#menuextras').find('li');
-+ var mainmenu = $('#mainmenu');
-+ var count = 0;
-+ if ($(extramenuLinks).length > 3) {
-+ $(extramenuLinks).each(function() {
-+ if (count < 3) {
-+ var newLink = $(this);
-+ $(newLink).addClass('dynamic-add');
-+ $(mainmenu).append(newLink);
-+ }
-+ count++;
-+ });
-+ }
-+ },
-+
-+ mainLinkstoExtra: function() {
-+ var mainmenuLinks = $('#mainmenu').find('.dynamic-add');
-+ var extramenu = $('#menuextras');
-+ var count = 0;
-+ $(mainmenuLinks).each(function() {
-+ var newLink = $(this);
-+ $(extramenu).prepend(newLink);
-+ count++;
-+ });
-+ }
-+}
-diff --git a/doc/global/template/style/gsc.css b/doc/global/template/style/gsc.css
-new file mode 100644
-index 0000000..e3d6391
---- /dev/null
-+++ b/doc/global/template/style/gsc.css
-@@ -0,0 +1,192 @@
-+.gsc-control-cse table, table td, table th {
-+ border: none !important;
-+ margin-bottom: 10px !important
-+}
-+.gsc-control-cse {
-+ width: 100% !important;
-+ box-sizing: border-box !important
-+}
-+.gsc-control-cse * {
-+ font-family: 'Open Sans', Arial, Helvetica, sans-serif !important;
-+ line-height: 1.5 !important;
-+ font-weight: 300 !important
-+}
-+.gsc-control-cse,
-+.gsc-control-cse .gsc-table-result {
-+ width: 100% !important;
-+ font-family: 'Open Sans', Arial, Helvetica, sans-serif !important;
-+ font-weight: 300 !important;
-+ font-size: 13px !important
-+}
-+.gsc-resultsHeader {
-+ width: 100% !important;
-+ clear: both !important
-+}
-+.gsc-resultsHeader td.gsc-twiddleRegionCell {
-+ width: 75% !important
-+}
-+.gsc-resultsbox-visible {
-+ display: block !important
-+}
-+.gsc-resultsbox-invisible {
-+ display: none !important
-+}
-+.gsc-results {
-+ padding-bottom: 2px !important;
-+ width: 99% !important
-+}
-+.gsc-result {
-+ margin-bottom: 10px !important
-+}
-+.gsc-result .gs-title {
-+ height: 1.4em !important;
-+ overflow: hidden !important
-+}
-+.gsc-result div.gs-watermark {
-+ display: none !important
-+}
-+.gsc-results .gsc-result img.gs-ad-marker {
-+ display: none !important
-+}
-+.gsc-webResult:after {
-+ content: "." !important;
-+ display: block !important;
-+ height: 0 !important;
-+ clear: both !important;
-+ visibility: hidden !important
-+}
-+.gsc-webResult {
-+ zoom: 1 !important
-+}
-+.gsc-webResult .gsc-result {
-+ margin: 0 !important;
-+ padding: .5em 0 !important;
-+ border-bottom: 1px solid #ebebeb !important
-+}
-+.gsc-above-wrapper-area {
-+ border-bottom: 1px solid #E9E9E9 !important;
-+ padding: 5px 0 5px 0 !important
-+}
-+.gsc-above-wrapper-area-invisible {
-+ display: none !important
-+}
-+.gsc-above-wrapper-area-container {
-+ width: 100% !important
-+}
-+.gsc-result-info {
-+ text-align: left !important;
-+ color: #676767 !important;
-+ font-size: 13px !important;
-+ padding-left: 8px !important;
-+ margin: 10px 0 10px 0 !important
-+}
-+.gsc-result-info-container {
-+ text-align: left !important
-+}
-+.gsc-result-info-invisible {
-+ display: none !important
-+}
-+.gsc-orderby-container {
-+ text-align: right !important;
-+ background: transparent !important
-+}
-+.gsc-orderby-invisible {
-+ display: none !important
-+}
-+.gsc-orderby-label {
-+ color: #676767 !important;
-+ padding: 5px 5px 6px 0 !important
-+}
-+.gsc-selected-option-container {
-+ background-color: transparent !important;
-+ border: 1px solid #eee !important;
-+ border: 1px solid rgba(0, 0, 0, 0.1) !important;
-+ border-radius: 2px !important;
-+ box-shadow: none !important;
-+ color: #444 !important;
-+ cursor: default !important;
-+ font-size: 11px !important;
-+ font-weight: bold !important;
-+ height: 20px !important;
-+ line-height: 20px !important;
-+ max-width: 90% !important;
-+ min-width: 54px !important;
-+ outline: 0 !important;
-+ padding: 0 28px 0 6px !important;
-+ position: relative !important;
-+ text-align: center !important;
-+ width: 50px !important !important
-+}
-+.gsc-selected-option {
-+ position: relative !important;
-+ width: 100% !important;
-+}
-+.gsc-control-cse .gsc-option-selector {
-+ border: none !important;
-+ height: 11px !important;
-+ margin-top: -4px !important;
-+ position: absolute !important;
-+ right: 5px !important;
-+ top: 8px !important;
-+ width: 7px !important;
-+ padding: 0 5px 0 5px !important;
-+ background: url(//ssl.gstatic.com/ui/v1/disclosure/small-grey-disclosure-arrow-down.png) center no-repeat
-+}
-+.gsc-results .gsc-cursor-box .gsc-trailing-more-results {
-+ margin-bottom: 0 !important;
-+ display: inline !important
-+}
-+.gsc-results .gsc-cursor {
-+ display: inline !important
-+}
-+.gsc-results .gsc-cursor-box {
-+ margin: 10px 5px 10px !important
-+}
-+.gsc-results .gsc-cursor-box .gsc-cursor-page {
-+ cursor: pointer !important;
-+ color: #000000 !important;
-+ text-decoration: underline !important;
-+ margin-right: 8px !important;
-+ display: inline !important
-+}
-+.gsc-results .gsc-cursor-box .gsc-cursor-current-page {
-+ cursor: default !important;
-+ color: white !important;
-+ background-color: #5caa15 !important;
-+ font-weight: bold !important;
-+ text-decoration: none !important;
-+ padding: 0 3px 0 3px !important;
-+ margin-top: 10px !important;
-+ cursor: pointer !important
-+}
-+.gs-result .gs-title,
-+.gs-result .gs-title * {
-+ color: #5caa15 !important;
-+ text-decoration: underline !important
-+}
-+.gs-webResult div.gs-visibleUrl-long,
-+.gs-promotion div.gs-visibleUrl-long {
-+ overflow: hidden !important;
-+ display: none !important
-+}
-+.gs-webResult div.gs-per-result-labels a.gs-label {
-+ text-decoration: underline !important;
-+ cursor: pointer !important;
-+ padding: 3px !important;
-+ color: #26282a !important
-+}
-+.gs-webResult div.gs-per-result-labels a.gs-label.gs-labelActive {
-+ cursor: default !important;
-+ text-decoration: none !important
-+}
-+.gsc-control-cse:after {
-+ content: "." !important;
-+ display: block !important;
-+ clear: both !important;
-+ height: 0 !important;
-+ visibility: hidden !important
-+}
-+
-+*:first-child + html .gsc-inline-block {
-+ display: inline !important
-+}
-diff --git a/doc/global/template/style/icomoon.svg b/doc/global/template/style/icomoon.svg
-new file mode 100755
-index 0000000..3246f83
---- /dev/null
-+++ b/doc/global/template/style/icomoon.svg
-@@ -0,0 +1,20 @@
-+<?xml version="1.0" standalone="no"?>
-+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-+<svg xmlns="http://www.w3.org/2000/svg">
-+<metadata>Generated by IcoMoon</metadata>
-+<defs>
-+<font id="icomoon" horiz-adv-x="512">
-+<font-face units-per-em="512" ascent="480" descent="-32" />
-+<missing-glyph horiz-adv-x="512" />
-+<glyph unicode="&#x20;" d="" horiz-adv-x="256" />
-+<glyph unicode="&#xe600;" d="M70.281 478.981c-38.026 6.451-70.281-21.729-70.281-62.472v-448.51l347.671 58.398c24.106 4.075 42.78 32.255 42.78 62.812v337.486l-320.17 52.286zM232.233 147.608c-10.185-23.767-25.464-39.045-46.175-46.514 2.037-10.865 5.433-17.655 9.506-21.729 2.376-2.037 5.772-3.735 9.846-3.735h11.544c-2.376 0-4.414-0.679-6.451-0.679l0.339-0.339c2.037 0 3.055 0 6.451 0.339v-31.915l-14.939-2.037c-4.414-0.679-8.488-0.679-12.223-0.679-12.902 0-23.088 3.055-30.897 9.507-10.185 8.149-17.994 24.106-22.748 47.533-22.409 4.753-39.724 19.014-51.608 42.78-12.223 24.106-18.334 59.416-18.334 105.931 0 49.91 8.488 86.578 25.124 110.005 14.26 19.692 33.953 29.538 58.737 29.538 4.075 0 8.149-0.339 12.223-0.679 29.199-3.395 50.25-16.976 64.17-41.082 13.581-23.427 20.032-56.7 20.032-100.838 0-40.403-4.754-71.979-14.6-95.406zM346.313 125.199c-13.581-5.433-24.785-8.827-37.008-9.846-1.697 0-3.395-0.339-5.093-0.339-10.865 0-19.692 3.055-25.464 9.507-6.791 7.469-10.525 19.353-10.525 35.65v125.623l-13.581 0.679v33.273l17.994-1.358 11.884 49.57 27.841-3.055v-49.231l30.557-2.376v-30.897l-30.557 1.358v-113.061c0-9.846 1.019-16.297 3.055-19.014s5.093-3.735 9.167-3.735c0.339 0 1.019 0 1.358 0 6.111 0.339 13.581 2.377 20.372 5.772v-28.52zM162.631 347.586c-1.018 0-1.697 0-2.716 0-10.525 0-18.673-6.111-24.446-18.673-6.112-13.581-9.167-41.422-9.167-84.202 0-41.082 3.055-70.281 9.167-87.257 5.772-16.297 14.26-24.445 25.803-24.445 0.339 0 1.018 0 1.358 0 11.204 0.679 19.692 8.488 25.464 23.427 5.772 14.599 8.488 43.798 8.488 86.918 0 38.706-2.716 65.528-8.488 80.127-5.433 14.939-13.921 23.088-25.464 24.106zM206.090 75.289v0zM206.090 75.289c1.358 0 2.716 0 4.414 0 2.037 0 4.075 0.679 6.451 0.679h-11.544l0.679-0.679z" horiz-adv-x="391" />
-+<glyph unicode="&#xe601;" d="M511.589 224.206c0-141.272-114.523-255.794-255.794-255.794s-255.794 114.523-255.794 255.794c0 141.271 114.523 255.794 255.794 255.794s255.794-114.523 255.794-255.794zM192.565 127.717c0-18.066-14.781-32.436-32.436-32.436s-32.847 14.37-32.847 32.436c0 18.066 14.781 32.436 32.436 32.436s32.847-14.37 32.847-32.436zM127.281 367.91v-50.502c133.030 0 221.716-89.097 221.716-222.127h50.502c0 165.466-107.163 272.628-272.218 272.628zM142.473 262.8c-3.696 0-11.496 0-15.192-0.411v-45.164c3.695 0.411 11.497 0.411 15.192 0.411 61.999 0 107.163-45.164 107.163-107.163 0-3.695 0-11.907-0.411-15.192h45.575c0.411 3.695 0.411 11.497 0.411 15.192-0.411 94.024-58.714 152.327-152.738 152.327z" />
-+<glyph unicode="&#xe602;" d="M511.589 224.206c0-141.272-114.523-255.794-255.794-255.794s-255.794 114.523-255.794 255.794c0 141.271 114.523 255.794 255.794 255.794s255.794-114.523 255.794-255.794zM382.666 298.111h-253.331c-8.212 0-14.781 6.57-14.781 14.781v18.887c0 8.212 6.57 14.781 14.781 14.781h253.331c8.212 0 14.781-6.57 14.781-14.781v-18.887c0-8.212-6.57-14.781-14.781-14.781zM382.666 199.981h-253.331c-8.212 0-14.781 6.57-14.781 14.781v18.887c0 8.212 6.57 14.781 14.781 14.781h253.331c8.212 0 14.781-6.57 14.781-14.781v-18.887c0-8.212-6.57-14.781-14.781-14.781zM382.666 101.44h-253.331c-8.212 0-14.781 6.57-14.781 14.781v18.887c0 8.212 6.57 14.781 14.781 14.781h253.331c8.212 0 14.781-6.57 14.781-14.781v-18.887c0-7.801-6.57-14.781-14.781-14.781z" />
-+<glyph unicode="&#xe603;" d="M511.795 224c0-141.272-114.524-255.795-255.795-255.795s-255.795 114.524-255.795 255.795c0 141.272 114.523 255.795 255.795 255.795s255.795-114.524 255.795-255.795zM405.529 256.947l-103.168 14.797-46.566 92.646-46.080-92.646-103.245-14.797 74.471-71.68-17.664-101.581 92.416 47.974 93.056-48.051-17.69 101.657z" />
-+<glyph unicode="&#xe604;" d="M511.589 224.206c0-141.272-114.523-255.794-255.794-255.794s-255.794 114.523-255.794 255.794c0 141.271 114.523 255.794 255.794 255.794s255.794-114.523 255.794-255.794zM379.381 126.486l-74.726 75.137c12.728 17.245 20.118 39.005 20.118 61.998 0 29.152-11.907 55.429-30.794 74.316-18.887 19.298-45.575 31.204-74.726 31.204s-55.429-11.907-74.316-30.794c-18.887-18.887-30.794-45.575-30.794-74.316 0-29.151 11.907-55.429 30.794-74.316s45.575-30.794 74.316-30.794c20.119 0 38.595 5.748 54.608 15.192l75.959-75.959c5.337-5.337 13.96-5.337 19.298 0l9.854 9.854c5.748 4.517 5.748 13.139 0.411 18.476zM165.055 209.424c-13.96 13.96-22.582 32.847-22.582 54.197s8.623 40.238 22.582 54.197c13.96 13.96 32.847 22.582 54.197 22.582s40.238-8.623 54.197-22.582c13.96-13.96 22.582-32.847 22.582-54.197s-8.623-40.238-22.582-54.197c-13.96-13.96-32.847-22.582-54.197-22.582-20.94 0-40.238 8.623-54.197 22.582z" />
-+<glyph unicode="&#xe605;" d="M511.589 224.206c0-141.272-114.523-255.794-255.794-255.794s-255.794 114.523-255.794 255.794c0 141.271 114.523 255.794 255.794 255.794s255.794-114.523 255.794-255.794zM255.794-22.557c67.746 0 129.335 27.509 174.088 71.442-5.748 4.106-11.907 8.623-18.887 13.55-22.993 15.602-52.966 34.9-92.382 59.535-1.642 1.232-2.874 2.464-3.284 3.695-0.821 1.232-1.232 2.464-1.232 3.284-0.411 2.053-0.821 4.106-0.821 6.159 0 4.927 0.821 10.264 2.874 16.423 1.642 6.159 4.517 12.317 7.801 18.476 2.053 3.695 4.927 9.854 7.39 17.655s4.927 17.655 7.39 28.741c4.517 22.172 7.39 49.681 7.39 79.243 0 13.138-5.337 29.973-14.781 45.575-9.854 15.602-23.404 29.972-39.827 38.595-11.086 5.748-22.993 9.033-35.721 9.033v0 0c-18.476-0.411-35.31-7.801-49.681-19.708s-25.867-27.92-32.847-43.933c-4.517-10.675-6.57-20.94-6.57-29.562 0-22.171 1.643-43.112 4.517-61.588s6.57-34.489 10.264-45.986c2.464-7.801 5.338-13.96 7.391-17.655 3.696-5.748 6.159-12.317 7.801-18.476s2.874-11.497 2.874-16.423c0-1.642 0-2.874-0.411-4.517s-0.821-3.284-1.643-4.927c-0.821-1.232-1.643-2.464-3.285-3.695-51.323-32.026-87.044-55.429-111.679-73.084 43.933-44.343 105.52-71.853 173.267-71.853z" />
-+<glyph unicode="&#xe606;" d="M511.087 224.411c0-141.109-114.392-255.502-255.501-255.502s-255.501 114.392-255.501 255.501c0 141.109 114.392 255.501 255.501 255.501s255.501-114.392 255.501-255.501zM369.577 360.185h-227.981c-2.263-0.003-4.095-1.838-4.098-4.098v-263.767c0.003-2.263 1.838-4.095 4.098-4.098h227.981c2.263 0.003 4.095 1.838 4.098 4.098v263.767c-0.007 2.263-1.838 4.095-4.098 4.098zM291.959 165.217c0-4.507-3.688-8.197-8.197-8.197h-112.482c-4.507 0-8.196 3.688-8.196 8.197v2.263c0 4.507 3.689 8.197 8.197 8.197h112.482c4.507 0 8.197-3.688 8.197-8.197v-2.263zM348.089 210.007c0-4.507-3.688-8.197-8.197-8.197h-168.612c-4.507 0-8.196 3.688-8.196 8.197v2.263c0 4.507 3.689 8.197 8.197 8.197h168.608c4.507 0 8.197-3.688 8.197-8.197v-2.263zM348.089 254.796c0-4.507-3.688-8.197-8.197-8.197h-168.612c-4.507 0-8.196 3.689-8.196 8.197v2.263c0 4.508 3.689 8.197 8.197 8.197h168.608c4.507 0 8.197-3.688 8.197-8.197v-2.263zM348.089 299.584c0-4.507-3.688-8.197-8.197-8.197h-168.612c-4.507 0-8.196 3.689-8.196 8.197v2.263c0 4.508 3.689 8.197 8.197 8.197h168.608c4.507 0 8.197-3.688 8.197-8.197v-2.263z" />
-+<glyph unicode="&#xe607;" d="M0 139.988v153.96c0 19.471 0.36 36.417 3.966 50.84 36.056 11.538 85.093 18.389 127.279 18.389 23.797 0 53.724-2.524 75.719-5.409v122.231h55.166v-340.012c0-18.389-0.361-35.335-3.966-51.56-34.254-11.538-86.535-18.389-126.918-18.389-42.547 0-89.059 6.49-126.197 17.668-3.606 16.947-5.048 34.253-5.048 52.281zM57.33 308.372c-1.443-7.572-2.163-19.471-2.163-34.974v-113.578c0-18.389 0.721-29.927 2.163-34.974 20.191-5.409 49.758-7.933 73.916-7.933 27.042 0 56.248 3.245 73.555 8.293 1.442 5.048 2.163 16.586 2.163 34.614v150.355c-21.634 3.606-51.921 5.769-76.44 5.769-23.436 0.361-51.56-3.245-73.195-7.572zM389.048 360.293v-287.009h-55.887v287.009h55.887zM658.028 28.214c1.442 6.49 2.163 15.144 2.163 24.879v29.566c-22.355-2.524-50.479-4.327-72.112-4.327-41.826 0-89.059 6.13-123.673 17.668-2.885 16.947-4.327 33.893-4.327 51.2v146.75c0 18.028 1.442 34.974 4.327 50.839 34.254 11.538 81.848 18.389 123.673 18.389 41.465 0 87.256-6.851 123.673-18.389 3.606-16.586 3.966-32.812 3.966-50.839v-271.865c-15.865-46.512-64.18-54.084-124.034-54.084-25.961 0-62.377 4.327-91.583 10.096v43.988c29.206-5.769 72.834-9.735 108.169-7.933 19.11 0.721 40.383 5.769 49.758 14.062zM660.192 129.533v143.865c0 16.586-0.361 27.403-2.524 34.975-19.471 4.327-45.792 7.933-69.588 7.933-23.437 0-50.119-3.245-69.588-7.933-1.803-7.572-2.885-19.471-2.885-34.975v-107.087c0-15.865 1.082-27.403 2.885-34.974 18.389-5.409 45.431-7.933 69.228-7.933 23.076 0.361 50.479 2.163 72.473 6.13zM842.276 360.293v-287.009h-55.888v287.009h55.888zM1159.211 344.067c-36.417 12.62-73.555 18.75-115.741 18.75-36.057 0-91.583-5.769-123.673-15.144v-51.2h27.403c5.048 4.327 9.014 10.096 11.899 16.226 10.457 2.524 32.812 5.048 74.637 5.048 23.797 0 51.2-3.966 71.752-8.293 1.443-13.341 2.524-26.681 2.524-38.941v-23.076h-120.067c-22.355 0-51.2-3.245-75.357-12.619-3.606-15.143-4.688-32.451-5.048-44.71v-50.118c0-18.028 1.442-35.335 5.048-51.921 36.778-11.538 84.011-17.668 126.557-17.668 40.383 0 85.814 6.13 120.068 17.668 3.605 15.865 3.966 32.812 3.966 51.2v143.504c0 15.504-0.361 34.974-3.966 61.296zM998.039 206.693h110.333v-35.696c0-14.423 0.361-34.614-1.803-46.152-17.307-5.048-40.023-7.572-66.704-7.572-1.443 0-2.884 0-3.966 0-23.076 0-52.282 2.524-71.391 7.572-1.803 10.817-2.885 26.321-2.885 35.696v3.606c0 8.293 0.361 27.043 3.606 38.581 8.293 2.885 19.11 3.966 32.812 3.966zM912.586 234.817c-3.606-15.144-5.048-44.71-5.048-44.71v-50.118zM387.966 476.034v-59.493h-55.887v59.493h55.887zM842.276 476.034v-59.493h-55.888v59.493h55.888z" horiz-adv-x="1163" />
-+<glyph unicode="&#xe608;" d="M512.419 224.922c0-141.385-114.615-256-256-256s-256 114.615-256 256c0 141.385 114.615 256 256 256s256-114.615 256-256zM414.157 260.356l-108.984 15.832-48.921 98.764-7.456-15.246-41.047-83.519-108.984-15.832 78.744-76.9-18.597-108.565 97.424 51.267 97.759-51.267-18.597 108.565 78.659 76.9zM256.252 145.005l-75.142-39.539 14.409 83.769-60.817 59.309 84.189 12.314 37.362 76.231 37.78-76.231 84.188-12.231-60.817-59.309 14.409-83.853-75.56 39.539z" horiz-adv-x="513" />
-+<glyph unicode="&#xe609;" d="M511.795 224c0-141.272-114.524-255.795-255.795-255.795s-255.795 114.524-255.795 255.795c0 141.272 114.523 255.795 255.795 255.795s255.795-114.524 255.795-255.795zM418.457 266.368l-112.435 16.128-50.279 100.070-11.392-22.912-38.4-77.159-112.409-16.102 81.229-78.183-19.174-110.157 100.224 51.993 100.582-51.942-19.175 110.106 81.229 78.157z" />
-+</font></defs></svg>
-\ No newline at end of file
-diff --git a/doc/global/template/style/online.css b/doc/global/template/style/online.css
-index 5d0cd7e..d558137 100644
---- a/doc/global/template/style/online.css
-+++ b/doc/global/template/style/online.css
-@@ -1,1073 +1,1590 @@
--img {
-- -moz-box-shadow: 3px 3px 3px #ccc;
-- -webkit-box-shadow: 3px 3px 3px #ccc;
-- box-shadow: 3px 3px 3px #ccc;
-- border: #8E8D8D 2px solid;
-- margin-left: 0px;
-- max-width: 800px;
-- height: auto;
--}
--
--.content {
-- margin: 15px
--}
--
--.content .indexboxcont li {
-- font: normal bold 13px/1 Verdana
-- }
--
--.content .normallist li {
-- font: normal 13px/1 Verdana
-- }
--
--.descr {
-- margin-top: 35px;
-- /*max-width: 75%;*/
-- margin-left: 5px;
-- text-align: left;
-- vertical-align: top;
--}
--
--.name {
-- max-width: 75%;
-- font-weight: 100;
--}
--
--tt {
-- text-align: left
--}
--
--/*
-------------
--links
-------------
--*/
--
--.flags {
-- text-decoration: none;
-- text-height: 24px;
--}
--
--.flags:target {
-- background-color: #FFFFD6;
--}
--
--/*
---------------------------------
--NOTE styles
---------------------------------
--*/
--
--.notetitle, .tiptitle, .fastpathtitle {
-- font-weight: bold
--}
--
--.attentiontitle, .cautiontitle, .dangertitle, .importanttitle, .remembertitle, .restrictiontitle {
-- font-weight: bold
--}
--
--.note, .tip, .fastpath {
-- background: #F2F2F2 url('../images/ico_note.png');
-- background-repeat: no-repeat;
-- background-position: top left;
-- padding: 5px;
-- padding-left: 40px;
-- padding-bottom: 10px;
-- border: #999 1px dotted;
-- color: #666666;
-- margin: 5px;
--}
--
--.attention, .caution, .danger, .important, .remember, .restriction {
-- background: #F2F2F2 url('../images/ico_note_attention.png');
-- background-repeat: no-repeat;
-- background-position: top left;
-- padding: 5px;
-- padding-left: 40px;
-- padding-bottom: 10px;
-- border: #999 1px dotted;
-- color: #666666;
-- margin: 5px;
--}
--
--.qtref {
-- display: block;
-- top: -76px;
-- z-index: 1;
-- font-size: 11px;
-- padding-right: 10px;
-- float: right;
--}
--
--.naviNextPrevious {
-- display: block;
-- text-align: right;
-- float: right;
-- z-index: 1;
-- padding-right: 10px;
-- padding-top: 4px;
--}
--
--.naviNextPrevious > a.nextPage {
-- background-image: url('../images/btn_next.png');
-- background-repeat: no-repeat;
-- background-position: right;
-- padding-right: 20px;
-- height: 20px;
-- margin-left: 30px;
-- }
--
--.naviNextPrevious > a.prevPage {
-- background-image: url('../images/btn_prev.png');
-- background-repeat: no-repeat;
-- background-position: left;
-- padding-left: 20px;
-- height: 20px;
-- padding-left: 20px;
-+#navbar {
-+ position:fixed;
-+ top:0;
-+ left:0;
-+ z-index:100;
-+ background:#fff;
-+ width:100%
-+}
-+#navbar .container {
-+ overflow:visible
-+}
-+.fixed .container {
-+ overflow:visible
-+}
-+.box-shadowed-nav #navbar {
-+ border-bottom:1px solid #eee
-+}
-+#navbar .navbar-header {
-+ position:relative
-+}
-+#navbar .navbar-toggle {
-+ display:none;
-+ float:right;
-+ line-height:18px;
-+ min-width:95px;
-+ position:relative;
-+ text-align:center;
-+ margin:10px 0 0 0
-+}
-+#navbar .navbar-toggle:hover figure {
-+ background:#5caa15
-+}
-+#navbar .navbar-toggle span {
-+ color:#bdbebf;
-+ font-weight:300
-+}
-+#navbar .navbar-toggle figure {
-+ background:#7fc241;
-+ border-radius:100%;
-+ -webkit-border-radius:100%;
-+ -moz-border-radius:100%;
-+ transition:all 0.2s ease-in-out;
-+ -webkit-transition:all 0.2s ease-in-out;
-+ -moz-transition:all 0.2s ease-in-out;
-+ -ms-transition:all 0.2s ease-in-out;
-+ -o-transition:all 0.2s ease-in-out;
-+ height:26px;
-+ width:34px;
-+ padding:8px 0 0 0;
-+ margin-top:3px;
-+ margin-left:auto;
-+ margin-right:auto;
-+ text-align:center
-+}
-+#navbar .navbar-toggle figure span.line {
-+ display:inline-block;
-+ width:1.125em;
-+ height:0.1875em;
-+ background:#fff;
-+ transition:0.3s;
-+ position:relative;
-+ vertical-align:middle;
-+ margin-top:-3px
-+}
-+#navbar .navbar-toggle figure span.line:before,#navbar .navbar-toggle figure span.line:after {
-+ display:inline-block;
-+ width:1.125em;
-+ height:0.1875em;
-+ background:#fff;
-+ position:absolute;
-+ left:0;
-+ content:'';
-+ -webkit-transform-origin:0.28571rem center;
-+ transform-origin:0.28571rem center;
-+ transition:0.3s;
-+ -webkit-transition:0.3s;
-+ -moz-transition:0.3s;
-+ -ms-transition:0.3s;
-+ -o-transition:0.3s
-+}
-+#navbar .navbar-toggle figure span.line:before {
-+ top:6px
-+}
-+#navbar .navbar-toggle figure span.line:after {
-+ top:-6px
-+}
-+#navbar .navbar-toggle.opened figure {
-+ background:#5caa15
-+}
-+#navbar .navbar-toggle.opened span {
-+ color:#5caa15
-+}
-+#navbar .navbar-toggle.opened span.line {
-+ background:transparent
-+}
-+#navbar .navbar-toggle.opened span.line:before,#navbar .navbar-toggle.opened span.line:after {
-+ -webkit-transform-origin:50% 50%;
-+ -moz-transform-origin:50% 50%;
-+ transform-origin:50% 50%;
-+ top:0;
-+ width:23px;
-+ margin-left:-2px
-+}
-+#navbar .navbar-toggle.opened span.line:before {
-+ transform:rotate3d(0, 0, 1, 45deg);
-+ -webkit-transform:rotate3d(0, 0, 1, 45deg);
-+ -moz-transform:rotate3d(0, 0, 1, 45deg);
-+ -ms-transform:rotate3d(0, 0, 1, 45deg);
-+ -o-transform:rotate3d(0, 0, 1, 45deg);
-+ left:0
-+}
-+#navbar .navbar-toggle.opened span.line:after {
-+ transform:rotate3d(0, 0, 1, -45deg);
-+ -webkit-transform:rotate3d(0, 0, 1, -45deg);
-+ -moz-transform:rotate3d(0, 0, 1, -45deg);
-+ -ms-transform:rotate3d(0, 0, 1, -45deg);
-+ -o-transform:rotate3d(0, 0, 1, -45deg)
-+}
-+#navbar .navbar-oneQt {
-+ display:inline;
-+ float:left;
-+ width:31px;
-+ padding:20px 8px;
-+ margin:0 15px 0 0
-+}
-+#navbar .navbar-oneQt:before {
-+ content:attr(data-icon);
-+ position:absolute;
-+ top:15px;
-+ left:0;
-+ color:#80c342;
-+ font-family:'Qt Icons';
-+ line-height:1;
-+ font-size:3.125em;
-+ transition:all 0.2s ease-in-out;
-+ -webkit-transition:all 0.2s ease-in-out;
-+ -moz-transition:all 0.2s ease-in-out;
-+ -ms-transition:all 0.2s ease-in-out;
-+ -o-transition:all 0.2s ease-in-out
-+}
-+.navbar-oneQt {
-+ color: #80c342 !important;
-+}
-+.navbar-oneQt:hover {
-+ color: #80c342;
-+}
-+#navbar .navbar-menu {
-+ width:auto;
-+ float:left
-+}
-+.lt-ie9 #navbar {
-+ border-bottom:1px solid #ddd
-+}
-+#mainmenu {
-+ float:left;
-+ list-style:none
-+}
-+#mainmenu li {
-+ float:left;
-+ margin-left:0;
-+ list-style-type:none !important
-+}
-+#mainmenu li a {
-+ display:block;
-+ padding:29px 0.7em;
-+ font-size:1.125em;
-+ font-weight:300;
-+ line-height:20px;
-+ height:80px;
-+ color:#26282a;
-+ text-decoration:none;
-+ border:0px solid #80c342;
-+ -webkit-transition:all 0.2s ease-in-out;
-+ box-sizing:border-box;
-+ -webkit-box-sizing:border-box;
-+ -moz-box-sizing:border-box;
-+ *behavior:url(boxsizing.htc)
-+}
-+#mainmenu li a:hover {
-+ color:#5caa15;
-+ border-bottom:4px solid #80C342
-+}
-+#mainmenu li.current-menu-item a {
-+ color:#5caa15;
-+ border-bottom:4px solid #80C342
-+}
-+#menuextras, #mainmenu, #menuextraslanguages {
-+ margin-bottom:0
- }
--
--.navigationbar {
-- background-repeat: no-repeat;
-- height: 33px;
-- margin: 0px !important;
-- padding: 0px !important;
-- border-bottom: 1px solid rgb(209, 209, 209);
-- background-image: -moz-linear-gradient(center top , rgb(246, 245, 245), rgb(239, 239, 239));
-- background-image: -webkit-gradient( linear, left bottom, left top, color-stop(0.0, #efefef), color-stop(0.5, #f6f5f5) );
-- border-radius: 10px 10px 0px 0px;
--}
--
--.navigationbar ul {
-- margin: 0px;
-- padding: 8px 0px 15px 15px;
-- height: 20px;
-- }
--
--.navigationbar li {
-- list-style-type: none;
-- float: left;
-- font-size: 15px;
-- }
--
-- .navigationbar li a {
-- display: block;
-- text-decoration: none;
-- background: url('../images/arrow_bc.png');
-- background-repeat: no-repeat;
-- background-position: right;
-- padding-right: 25px;
-- font-size: inherit;
-+#menuextras {
-+ display:inline-block;
-+ float:right;
-+ list-style-type:none;
-+ margin-right:0;
-+ margin-left:0;
-+ letter-spacing:-0.31em;
-+ line-height:0
-+}
-+#menuextras li {
-+ letter-spacing:normal;
-+ float:left;
-+ display:inline-block
-+}
-+#menuextras li a {
-+ display:inline-block;
-+ text-align:center;
-+ height:80px;
-+ border-left:1px solid #eee;
-+ padding-top:14px;
-+ box-sizing:border-box;
-+ overflow:hidden;
-+ min-width:85px;
-+ font-weight:100
-+}
-+#menuextras li a:before {
-+ display:inline-block;
-+ font-family:'Qt Icons';
-+ content:attr(data-icon);
-+ font-size:2.125em;
-+ width:100%;
-+ color:#80c342;
-+ line-height:1;
-+ transition:all 0.2s ease-in-out;
-+ -webkit-transition:all 0.2s ease-in-out;
-+ -moz-transition:all 0.2s ease-in-out;
-+ -ms-transition:all 0.2s ease-in-out;
-+ -o-transition:all 0.2s ease-in-out
-+}
-+#menuextras li a:hover:before {
-+ color:#5caa15
-+}
-+#menuextras .search.open a {
-+ color:#006325
-+}
-+#menuextras .search a {
-+ border-right:1px solid #eee
-+}
-+#menuextras li a span {
-+ color:#bdbebf;
-+ display:inline-block;
-+ overflow:hidden;
-+ max-height:30px;
-+ transition:max-height 0.2s ease-in-out;
-+ -webkit-transition:max-height 0.2s ease-in-out;
-+ -moz-transition:max-height 0.2s ease-in-out;
-+ -ms-transition:max-height 0.2s ease-in-out;
-+ -o-transition:max-height 0.2s ease-in-out;
-+ line-height:1.4;
-+ font-size:0.875em
-+}
-+@media (min-width: 1120px) {
-+ #navbar.fixed,#navbar.shadow_bottom {
-+ -moz-box-shadow:0px 0px 8px rgba(0,0,0,0.2);
-+ -webkit-box-shadow:0px 0px 8px rgba(0,0,0,0.2);
-+ box-shadow:0px 0px 8px rgba(0,0,0,0.2)
-+ }
-+ #navbar.fixed #menuextras li a,#navbar.shadow_bottom #menuextras li a {
-+ padding-top:9px;
-+ height:50px
-+ }
-+ #navbar.fixed #menuextras li a span,#navbar.shadow_bottom #menuextras li a span {
-+ max-height:0
-+ }
-+ #navbar.fixed #menuextras li a:before,#navbar.shadow_bottom #menuextras li a:before {
-+ font-size:30px
-+ }
-+ #navbar.fixed #mainmenu li a {
-+ height:50px;
-+ padding:14px 0.7em
-+ }
-+ #navbar.fixed #mainmenu li a:hover {
-+ border-bottom:4px solid #5caa15
-+ }
-+ #navbar.fixed .navbar-toggle {
-+ padding:13px 14px 9px
-+ }
-+ #navbar.fixed #menuextras li.navbar-search {
-+ padding:0px 0
-+ }
-+ #navbar.fixed #menuextras ul.menuextraslinks,#navbar.fixed #menuextras ul.menuextraslanguages {
-+ display:none
-+ }
-+ #navbar.fixed .navbar-oneQt:before {
-+ font-size:35px;
-+ top:7px
-+ }
-+ #navbar.fixed #mainmenu li.current-menu-item a {
-+ border-bottom:4px solid #80C342
- }
--
--#buildversion {
-- font-style: italic;
-- font-size: small;
-- float: right;
-- margin-right: 5px;
--}
--
--/*
-------------
--headers
-------------
--*/
--
--@media screen {
-- .title {
-- color: #313131;
-- font-size: 18px;
-- font-weight: normal;
-- left: 0;
-- padding-bottom: 20px;
-- padding-left: 10px;
-- padding-top: 20px;
-- border-bottom: 1px #CCC solid;
-- font-weight: bold;
-- margin-left: 0px;
-- margin-right: 0px;
-- }
--}
--
--h1 {
-- margin: 0
--}
--
--h2, p.h2 {
-- font: 500 16px/1.2 Arial;
-- font-weight: 100;
-- background-color: #F2F3F4;
-- padding: 4px;
-- padding-left: 14px;
-- margin-bottom: 30px;
-- margin-top: 30px;
-- margin-left: -10px;
-- margin-right: -5px;
-- border-top: #E0E0DE 1px solid;
-- border-bottom: #E0E0DE 1px solid;
-- max-width: 99%;
-- overflow: hidden;
--}
--
--h2:target {
-- background-color: #F2F3D4;
- }
--
--h3 {
-- font: 500 14px/1.2 Arial;
-- font-weight: 100;
-- text-decoration: underline;
-- margin-bottom: 30px;
-- margin-top: 30px;
-+@media (max-width: 1120px) {
-+ #navbar {
-+ padding:0;
-+ position:relative
-+ }
-+ #navbar .container {
-+ max-width:100%
-+ }
-+ #navbar .menuextraslanguages {
-+ bottom:10px !important;
-+ right:0
-+ }
-+ #navbar .menuextraslanguages li a {
-+ color:#7fc241 !important
-+ }
-+ #navbar .menuextraslanguages li.active a,#navbar .menuextraslanguages li a:hover {
-+ border-color:#7fc241 !important
-+ }
-+ #navbar .container {
-+ padding:0
-+ }
-+ #navbar .navbar-toggle {
-+ display:block
-+ }
-+ #navbar .navbar-oneQt,#navbar.fixed .navbar-oneQt,#navbar .navbar-oneQt:hover {
-+ margin-left:0;
-+ height:26px;
-+ width:22px;
-+ padding:7px 20px 7px 15px
-+ }
-+ #navbar .navbar-oneQt:before {
-+ left:20px
-+ }
-+ #navbar .navbar-menu {
-+ max-height:0;
-+ overflow:hidden;
-+ width:100%;
-+ border-top:1px solid #eee;
-+ -webkit-transition:all 600ms ease-in-out;
-+ -moz-transition:all 600ms ease-in-out;
-+ -o-transition:all 600ms ease-in-out;
-+ transition:all 600ms ease-in-out;
-+ position:relative
-+ }
-+ #mainmenu {
-+ float:none;
-+ width:100%;
-+ padding:0;
-+ margin:0
-+ }
-+ #mainmenu li {
-+ float:none;
-+ list-style:none
-+ }
-+ #mainmenu li:nth-child(odd) {
-+ background:rgba(0,0,0,0)
-+ }
-+ #mainmenu li a,#navbar.fixed #mainmenu li a {
-+ padding:10px;
-+ border-left:3px solid #fff;
-+ height:auto;
-+ width:100%
-+ }
-+ #mainmenu li.current-menu-item a,#navbar.fixed #mainmenu li.current-menu-item a {
-+ border-bottom:none;
-+ border-left:3px solid #5caa15;
-+ padding:10px
-+ }
-+ #mainmenu li a:hover {
-+ border-bottom:0;
-+ padding:10px;
-+ border-left:3px solid #5caa15
-+ }
-+ #navbar.fixed {
-+ -moz-box-shadow:0px 0px 0px rgba(0,0,0,0);
-+ -webkit-box-shadow:0px 0px 0px rgba(0,0,0,0);
-+ box-shadow:0px 0px 0px rgba(0,0,0,0)
-+ }
-+ .lt-ie9 #navbar.fixed {
-+ border-bottom:none
-+ }
-+ #menuextras li.navbar-search {
-+ padding:5px 0
-+ }
-+ .container {
-+ padding:0 2%
-+ }
-+ body .main {
-+ margin-top:0px
-+ }
- }
--
--h3.fn:target {
-- background-color: #F6F6D6;
-+.in-page-nav {
-+ width:100%;
-+ background:#eeeeee
-+}
-+.in-page-nav ul {
-+ margin:0 auto;
-+ letter-spacing:-0.31em;
-+ max-width:1180px;
-+ text-align:center
-+}
-+.in-page-nav ul li {
-+ display:inline-block;
-+ letter-spacing:normal
-+}
-+.in-page-nav ul li a {
-+ color:#26282a;
-+ padding:25px 10px;
-+ display:inline-block
-+}
-+body.qt-account #navbar .navbar-oneQt {
-+ width:auto;
-+ height:auto
-+}
-+body.qt-account #navbar .navbar-oneQt:before {
-+ left:0;
-+ position:relative;
-+ display:inline-block;
-+ vertical-align:middle;
-+ top:0;
-+ margin-right:20px
-+}
-+body.qt-account #navbar .navbar-oneQt h2 {
-+ margin:0;
-+ color:#000;
-+ display:inline-block;
-+ vertical-align:middle
-+}
-+.landing header[role="banner"] {
-+ background:#26282a
-+}
-+.landing header[role="banner"] figure {
-+ max-width:1180px;
-+ margin:auto;
-+ position:relative
-+}
-+.landing header[role="banner"] figure img {
-+ max-width:100%
-+}
-+.landing header[role="banner"] figcaption {
-+ color:#fff;
-+ position:absolute;
-+ left:0px;
-+ width:100%;
-+ text-align:center
-+}
-+.landing header[role="banner"] figcaption.top {
-+ top:0
-+}
-+.landing header[role="banner"] figcaption.bottom {
-+ bottom:0
-+}
-+.landing header[role="banner"] figcaption h1 {
-+ margin:50px auto 0 auto;
-+ max-width:70%;
-+ font-weight:600
-+}
-+.landing header[role="banner"] figcaption h3 {
-+ margin-bottom:40px
-+}
-+.cookies_yum {
-+ background-color:#006325;
-+ display:none;
-+ width:100%
-+}
-+.cookies_yum img {
-+ width:25px;
-+ top:6px;
-+ display:inline-block;
-+ position:absolute;
-+ left:6px
-+}
-+.cookies_yum div {
-+ margin:0 auto;
-+ max-width:1180px;
-+ min-height:30px;
-+ padding:6px 0px 6px 0px;
-+ position:relative
-+}
-+.cookies_yum p {
-+ color:white;
-+ margin:0px;
-+ font-size:0.79em;
-+ display:inline-block;
-+ line-height:1.2;
-+ padding:0 30px 0 40px
-+}
-+.cookies_yum p a {
-+ white-space:nowrap
-+}
-+.cookies_yum a:hover {
-+ color:white
-+}
-+.cookies_yum .close {
-+ width:15px;
-+ height:15px;
-+ background-image:url("../images/cookiebar-x.png");
-+ background-size:15px 30px;
-+ background-position:top left;
-+ cursor:pointer;
-+ top:6px;
-+ right:6px;
-+ position:absolute
-+}
-+.cookies_yum .close:hover {
-+ background-position:bottom left
-+}
-+#bottom_header {
-+ display:block;
-+ position:absolute;
-+ width:100%;
-+ z-index:50;
-+ padding-top:15px
-+}
-+#bottom_header .container {
-+ overflow:visible
-+}
-+#bottom_header .left {
-+ font-weight:bolder
-+}
-+#bottom_header a {
-+ color:white;
-+ transition-duration:0.3s
-+}
-+#bottom_header .left a:hover {
-+ padding-left:10px
-+}
-+.fixed .menuextraslanguages {
-+ opacity:0;
-+ visibility:hidden
-+}
-+@media (max-width: 1120px) {
-+ .fixed .menuextraslanguages {
-+ opacity:1 !important;
-+ visibility:visible !important
-+ }
- }
--
--h3.fn, span.fn {
-- border-width: 1px;
-- border-style: solid;
-- border-color: #E6E6E6;
-- -moz-border-radius: 7px 7px 7px 7px;
-- -webkit-border-radius: 7px 7px 7px 7px;
-- border-radius: 7px 7px 7px 7px;
-- background-color: #F6F6F6;
-- word-spacing: 3px;
-- padding: 5px 5px;
-- text-decoration: none;
-- font-weight: bold;
-- max-width: 75%;
-- font-size: 14px;
-- margin: 0px;
-- margin-top: 45px;
-+#navbar .menuextraslanguages {
-+ position:absolute;
-+ right:0;
-+ bottom:-35px;
-+ transition:all 0.2s ease-in-out;
-+ -webkit-transition:all 0.2s ease-in-out;
-+ -moz-transition:all 0.2s ease-in-out;
-+ -ms-transition:all 0.2s ease-in-out;
-+ -o-transition:all 0.2s ease-in-out
-+}
-+#navbar .menuextraslanguages li {
-+ display:inline;
-+ list-style:none;
-+ margin-left:3px;
-+ padding:0px 4px;
-+ font-size:0.6875em
-+}
-+#navbar .menuextraslanguages li.dark a {
-+ color:#868482
-+}
-+#navbar .menuextraslanguages li.dark a:hover {
-+ border:2px solid #868482
-+}
-+#navbar .menuextraslanguages li.active.dark a {
-+ border-color:#868482;
-+ color:#868482
-+}
-+#navbar .menuextraslanguages a {
-+ color:#fff;
-+ padding:2px 4px;
-+ border:2px solid transparent
-+}
-+#navbar .menuextraslanguages a:hover,#navbar .menuextraslanguages li.active a {
-+ border:2px solid #fff;
-+ color:#fff
-+}
-+#bottom_header .dark,#bottom_header .dark.active {
-+ color:#868482;
-+ transition-duration:0.3s;
-+ border-color:#868482 !important
-+}
-+#navbar .big_bar {
-+ width:100%;
-+ height:100px;
-+ background-color:#80C342;
-+ display:none;
-+ position:relative
-+}
-+#navbar .big_bar.search {
-+ height:auto;
-+ overflow:hidden;
-+ display:none
-+}
-+#navbar .big_bar ::-webkit-input-placeholder {
-+ color:#fff
-+}
-+#navbar .big_bar :-moz-input-placeholder {
-+ color:#fff
-+}
-+#navbar .big_bar ::-moz-input-placeholder {
-+ color:#fff
-+}
-+#navbar .big_bar :-ms-input-placeholder {
-+ color:#fff
-+}
-+#navbar .big_bar:hover>div .big_bar_button.account {
-+ background-position:right bottom
-+}
-+#navbar .big_bar.account h1 {
-+ padding-top:20px
-+}
-+#navbar .big_bar.account h1,#navbar .big_bar.account h1 a {
-+ color:#FFF;
-+ margin-bottom:5px
-+}
-+#navbar .big_bar.account h1 a:hover {
-+ color:#328930
-+}
-+#navbar .big_bar_button:hover {
-+ background-position:left bottom;
-+ cursor:pointer
-+}
-+#navbar .big_bar_button.account {
-+ background-position:right top
-+}
-+#navbar .big_bar input.big_bar_search {
-+ background:none repeat scroll 0 0 transparent;
-+ border:medium none;
-+ color:#fff;
-+ display:block;
-+ float:left;
-+ font-size:4em;
-+ outline:0 none;
-+ width:70%;
-+ line-height:1.3;
-+ height:auto;
-+ margin:10px 5%;
-+ padding:0;
-+ box-sizing:border-box;
-+ -webkit-box-sizing:border-box;
-+ -moz-box-sizing:border-box;
-+ *behavior:url(boxsizing.htc)
-+}
-+#navbar .big_bar_button {
-+ background-color:transparent;
-+ border:none;
-+ width:18%;
-+ transition-duration:0.3s;
-+ display:block;
-+ float:left;
-+ position:relative;
-+ font-family:'QT Icons';
-+ font-size:3.5em;
-+ color:#fff;
-+ margin:15px 2% 0 0 !important;
-+ text-align:right;
-+ padding-right:2px !important;
-+ transition:all 0.2s ease-in-out;
-+ -webkit-transition:all 0.2s ease-in-out;
-+ -moz-transition:all 0.2s ease-in-out;
-+ -ms-transition:all 0.2s ease-in-out;
-+ -o-transition:all 0.2s ease-in-out
-+}
-+#navbar .big_bar_button:focus,#navbar .big_bar_button:hover {
-+ outline:0;
-+ color:#ebebeb
-+}
-+.hero_slide>div {
-+ width:80%;
-+ margin:0 auto
-+}
-+.hero_slide>div:first-child>div {
-+ width:80%;
-+ margin:0 auto
-+}
-+.hero_slide .content {
-+ margin-top:70px
-+}
-+.hero_bar {
-+ padding-top:50px;
-+ padding-bottom:18px
-+}
-+.hero_bar p {
-+ font-size:0.875em;
-+ text-align:center
-+}
-+.hero_bar .arrow {
-+ bottom:65px;
-+ display:block;
-+ margin:0 auto;
-+ position:relative;
-+ right:260px;
-+ width:230px
-+}
-+.hero_bar .comment {
-+ margin:0
-+}
-+#footerbar {
-+ background:#26282a;
-+ color:#fff
-+}
-+#footerbar.fixed {
-+ bottom:0;
-+ left:0;
-+ width:100%
-+}
-+#footerbar .footer-main .footer-nav {
-+ display:inline;
-+ float:left
-+}
-+#footerbar .footer-main .footer-nav li {
-+ float:left;
-+ margin-right:1em
-+}
-+#footerbar .footer-main .footer-nav li a {
-+ display:block;
-+ padding:31px 10px 15px 0;
-+ line-height:20px;
-+ height:20px;
-+ color:#d6d6d6
-+}
-+#footerbar .footer-main .footer-nav li a:hover,#footerbar .footer-main .footer-nav li.current-menu-item a {
-+ color:#eee
-+}
-+#footerbar .footer-main .footer-nav .sub-menu {
-+ margin-left:0;
-+ margin-bottom:0
-+}
-+#footerbar .footer-main .footer-nav .sub-menu li {
-+ float:none
-+}
-+#footerbar .footer-main .footer-nav .sub-menu ul {
-+ padding:1px 1em;
-+ font-size:0.786em;
-+ line-height:8px;
-+ float:none;
-+ color:#5d5b59;
-+ margin-bottom:0
-+}
-+#footerbar .footer-main .footer-nav .sub-menu li a {
-+ padding:1px 0;
-+ font-size:0.786em;
-+ line-height:8px;
-+ float:none;
-+ color:#d6d6d6
-+}
-+#footerbar .footer-main .footer-nav .sub-menu li a:hover,#footerbar .footer-main .footer-nav .sub-menu li.current-menu-item a {
-+ color:#eee
-+}
-+#footerbar .footer-main .footer-logo {
-+ display:inline;
-+ float:right;
-+ padding:29px 0 28px 10px;
-+ margin-left:30px;
-+ width:56px
-+}
-+#footerbar .footer-main .footer-logo:before {
-+ content:attr(data-icon);
-+ font-family:'Qt Icons';
-+ width:100%;
-+ line-height:1.2;
-+ display:inline-block;
-+ font-size:1.875em;
-+ color:#706e6d
-+}
-+#footerbar .footer-main .footer-logo:hover {
-+ padding:31px 0 26px 10px
-+}
-+#footerbar .footer-main .footer-social {
-+ display:inline;
-+ float:right;
-+ padding-top:31px
-+}
-+#footerbar .footer-main .footer-social>div {
-+ margin-left:0.1em;
-+ margin-bottom:10px
-+}
-+#footerbar .disclaimer {
-+ font-size:0.786em;
-+ line-height:2.73;
-+ color:#868584;
-+ padding-top:20px;
-+ padding-bottom:0.5%
-+}
-+#footerbar .disclaimer a {
-+ color:#bdbebf
-+}
-+#footerbar .disclaimer a:hover {
-+ color:#d6d6d6
-+}
-+#footerbar .disclaimer ul li {
-+ float:left;
-+ vertical-align:middle;
-+ margin-left:1.18em
-+}
-+#footerbar .disclaimer ul li:first-child {
-+ margin-left:0
-+}
-+#footerbar .disclaimer ul.lang-selector a {
-+ color:#506a34;
-+ color:rgba(128,195,66,0.3)
-+}
-+#footerbar .disclaimer ul.lang-selector a:hover {
-+ color:#80c342;
-+ color:rgba(128,195,66,0.7)
-+}
-+#menu-footer-menu, #menu-footer-menu ul {
-+ margin-left:0;
-+ margin-bottom:0
-+}
-+@font-face {
-+ font-family:'Open Sans';
-+ font-style:normal;
-+ font-weight:300;
-+ src:local("Open Sans Light"),local("OpenSans-Light"),url(//fonts.gstatic.com/s/opensans/v10/DXI1ORHCpsQm3Vp6mXoaTYnF5uFdDttMLvmWuJdhhgs.ttf) format("truetype")
-+}
-+@font-face {
-+ font-family:'Open Sans';
-+ font-style:normal;
-+ font-weight:400;
-+ src:local("Open Sans"),local("OpenSans"),url(//fonts.gstatic.com/s/opensans/v10/cJZKeOuBrn4kERxqtaUH3aCWcynf_cDxXwCLxiixG1c.ttf) format("truetype")
-+}
-+@font-face {
-+ font-family:'Open Sans';
-+ font-style:normal;
-+ font-weight:600;
-+ src:local("Open Sans Semibold"),local("OpenSans-Semibold"),url(//fonts.gstatic.com/s/opensans/v10/MTP_ySUJH_bn48VBG8sNSonF5uFdDttMLvmWuJdhhgs.ttf) format("truetype")
-+}
-+@font-face {
-+ font-family:'Open Sans';
-+ font-style:normal;
-+ font-weight:700;
-+ src:local("Open Sans Bold"),local("OpenSans-Bold"),url(//fonts.gstatic.com/s/opensans/v10/k3k702ZOKiLJc3WVjuplzInF5uFdDttMLvmWuJdhhgs.ttf) format("truetype")
-+}
-+@font-face {
-+ font-family:'Open Sans';
-+ font-style:normal;
-+ font-weight:800;
-+ src:local("Open Sans Extrabold"),local("OpenSans-Extrabold"),url(//fonts.gstatic.com/s/opensans/v10/EInbV5DfGHOiMmvb1Xr-honF5uFdDttMLvmWuJdhhgs.ttf) format("truetype")
-+}
-+@font-face {
-+ font-family:'Droid Sans Mono';
-+ font-style:normal;
-+ font-weight:400;
-+ src:local("Droid Sans Mono"),local("DroidSansMono"),url(//fonts.gstatic.com/s/droidsansmono/v7/ns-m2xQYezAtqh7ai59hJUYuTAAIFFn5GTWtryCmBQ4.woff) format("woff")
-+}
-+@font-face {
-+ font-family:'Qt Icons';
-+ src:url("../style/icomoon.eot?-tgjuoj");
-+ src:url("../style/icomoon.eot?#iefix-tgjuoj") format("embedded-opentype"),url("../style/icomoon.woff?-tgjuoj") format("woff"),url("../style/icomoon.ttf?-tgjuoj") format("truetype"),url("../style/icomoon.svg?-tgjuoj#icomoon") format("svg");
-+ font-weight:normal;
-+ font-style:normal
-+}
-+.clearfix:before,.clearfix:after {
-+ content:" ";
-+ display:table
-+}
-+.clearfix:after {
-+ clear:both
- }
--
--.name {
-- color: #1A1A1A
-+.clearfix {
-+ *zoom:1
- }
--
--.type {
-- color: #808080
-+html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video {
-+ margin:0;
-+ padding:0;
-+ border:0;
-+ font-size:100%
- }
--
--@media print {
-- .title {
-- color: #0066CB;
-- font-size: 32px;
-- font-weight: normal;
-- left: 0;
-- position: absolute;
-- right: 0;
-- top: 0;
-- }
-+html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,caption,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video {
-+ vertical-align:baseline
- }
--
--/*
-------------------
--table styles
-------------------
--*/
--
--.table img {
-- border: none;
-- margin-left: 0px;
-- -moz-box-shadow: 0px 0px 0px #fff;
-- -webkit-box-shadow: 0px 0px 0px #fff;
-- box-shadow: 0px 0px 0px #fff;
-+body {
-+ font-family:“Open Sans”, Arial, Helvetica, sans-serif;
-+ line-height:1.5;
-+ font-weight:300
- }
--
--/* table with border alternative colours*/
--
--table, pre {
-- -moz-border-radius: 7px 7px 7px 7px;
-- -webkit-border-radius: 7px 7px 7px 7px;
-- border-radius: 7px 7px 7px 7px;
-- background-color: #F6F6F6;
-- border: 1px solid #E6E6E6;
-- border-collapse: separate;
-- font-size: 12px;
-- line-height: 1.2;
-- margin-bottom: 25px;
-- margin-left: 15px;
-- font-size: 12px;
-- line-height: 1.2;
-- margin-bottom: 25px;
-- margin-left: 15px;
-+h1,h2,h3,h4,h5,h6 {
-+ font-weight:300
- }
--
-- table tr.even {
-- background-color: white;
-- color: #66666E;
-- }
--
-- table tr.odd {
-- background-color: #F6F6F6;
-- color: #66666E;
-- }
--
-- table tr:target {
-- background-color: #F6F6D6;
-- }
--
-- table thead {
-- text-align: left;
-- padding-left: 20px;
-- background-color: #e1e0e0;
-- border-left: none;
-- border-right: none;
-- }
--
-- table thead th {
-- padding-top: 5px;
-- padding-left: 10px;
-- padding-bottom: 5px;
-- border-bottom: 2px solid #D1D1D1;
-- padding-right: 10px;
-- }
--
-- table td {
-- padding: 3px 15px 3px 20px;
-- border-bottom: #CCC dotted 1px;
-- }
--
-- table th {
-- text-align: left;
-- padding-left: 20px;
-- }
--
-- table p {
-- margin: 0px
-- }
--
--/* table bodless & white*/
--
--.borderless {
-- border-radius: 0px 0px 0px 0px;
-- background-color: #fff;
-- border: 1px solid #fff;
-+.context h2,.context h3,.context h4,.context h5,.context h6 {
-+ margin:1.5em 0 1em
- }
--
--.borderless td {
-- border: none;
-- border-bottom: #fff dotted 1px;
-- }
--
--.borderless tr {
-- background-color: #FFF;
-- color: #66666E;
-- }
--
--/*
-------------
--List
-------------
--*/
--
--ul {
-- margin-top: 10px;
-+.context h1 {
-+ margin-bottom:1em;
-+ font-size:3.125em
- }
--
--li {
-- margin-bottom: 10px;
-- padding-left: 8px;
-- list-style: outside;
-- list-style-type: square;
-- text-align: left;
-+.context h3.fn,.context h3.flags {
-+ color:#26282a;
-+ font-size:1.46em;
-+ padding:15px 0 15px 0;
-+ border-bottom:2px #eee solid;
-+ word-wrap:break-word
- }
--
--ol {
-- margin: 10px;
-- padding: 0;
-+.context h3.fn .name,
-+.context h3 span.type,
-+.qmlname span.name {
-+ font-weight: 400
- }
--
-- ol > li {
-- margin-left: 30px;
-- padding-left: 8px;
-- list-style: decimal;
-- }
--
--.centerAlign {
-- text-align: left
-+.qmlname {
-+ font-size:1.46em
- }
--
--.cpp {
-- display: block;
-- margin: 10px;
-- overflow: auto;
-- padding: 20px 20px 20px 20px;
-+.qmlproto table {
-+ border:none;
-+ border-bottom:2px #eee solid
- }
--
--.js {
-- display: block;
-- margin: 10px;
-- overflow: auto;
-- padding: 20px 20px 20px 20px;
-+.qmlproto table p {
-+ max-width:100%
- }
--
--.footerNavi {
-- width: auto;
-- text-align: right;
-- margin-top: 50px;
-- z-index: 1;
-+.qmlproto table tr {
-+ background-color:#fff
- }
--
--.memItemLeft {
-- padding-right: 3px
-+.qmlname td, .qmlname th {
-+ border:none;
-+ text-align:left;
-+ padding:5px 0 0 0
- }
--
--.memItemRight {
-- padding: 3px 15px 3px 0
-+.qmlreadonly,.qmldefault {
-+ padding:0 5px 0 5px;
-+ font-size:0.75em;
-+ background-color:#eee;
-+ float:right
- }
--
--.qml {
-- display: block;
-- margin: 10px;
-- overflow: auto;
-- padding: 20px 20px 20px 20px;
-+.qmlreadonly {
-+ color:#414141
- }
--
- .qmldefault {
-- padding-left: 5px;
-- float: right;
-- color: red;
-+ color:#D14141
- }
--
--.qmlreadonly {
-- padding-left: 5px;
-- float: right;
-- color: #254117;
--}
--
- .rightAlign {
-- padding: 3px 5px 3px 10px;
-- text-align: right;
--}
--
--.qmldoc {
-- margin-left: 15px
-+ padding:3px 5px 3px 10px;
-+ text-align:right
- }
--
--/*
-------------
--Content table
-------------
--*/
--
--@media print {
-- .toc {
-- float: right;
-- clear: right;
-- padding-bottom: 10px;
-- padding-top: 50px;
-- width: 100%;
-- background-image: url('../images/bgrContent.png');
-- background-position: top;
-- background-repeat: no-repeat;
-- }
-+article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section {
-+ display:block
- }
--
--@media screen {
-- .toc {
-- clear: both;
-- clear: right;
-- position: relative;
-- top: 83px;
-- float: right;
-- vertical-align: top;
-- -moz-border-radius: 7px 7px 7px 7px;
-- -webkit-border-radius: 7px 7px 7px 7px;
-- border-radius: 7px 7px 7px 7px;
-- background: #FFF url('../images/bgrContent.png');
-- background-position: top;
-- background-repeat: repeat-x;
-- border: 1px solid #E6E6E6;
-- padding-left: 5px;
-- padding-bottom: 10px;
-- height: auto;
-- width: 200px;
-- text-align: left;
-- margin-left: 20px;
-- }
-+body {
-+ line-height:1;
-+ font-family:"Open Sans", Arial, Helvetica, sans-serif;
-+ transition-duration:1s
- }
--
--.toc h3 {
-- text-decoration: none
-+ol,ul {
-+ list-style:none
- }
--
--.toc h3 {
-- font: 500 14px/1.2 Arial;
-- font-weight: 100;
-- padding: 0px;
-- margin: 0px;
-- padding-top: 5px;
-- padding-left: 5px;
-+.context ol,.context ul {
-+ margin-top:0.75em;
-+ margin-left:20px
- }
--
--.toc ul {
-- padding-left: 10px;
-- padding-right: 5px;
-- padding-top: 10px;
-+.mainContent ol>li {
-+ list-style-type:decimal
- }
--
--.toc ul li {
-- margin-left: 15px;
-- list-style-image: url('../images/blu_dot.png');
-- list-style: outside;
-- marker-offset: 0px;
-- margin-bottom: 8px;
-- padding-left: 0px;
-- }
--
--.toc .level1 {
-- border: none
-+blockquote,q {
-+ quotes:none
- }
--
--.toc .level2 {
-- border: none;
-- margin-left: 25px;
-+blockquote:before,blockquote:after,q:before,q:after {
-+ content:'';
-+ content:none;
-+ width:100%
- }
--
--.level3 {
-- border: none;
-- margin-left: 30px;
-+table {
-+ border-collapse:collapse;
-+ border-spacing:0;
-+ margin-bottom:25px;
-+ width:100%
- }
--
--.clearfix {
-- clear: both
-+a {
-+ color:#5caa15;
-+ text-decoration:none;
-+ transition-duration:0.3s
- }
--
--/* start index box */
--
--.indexbox {
-- width: 100%;
-- display: inline-block;
-+a:hover {
-+ color:#46a2da
- }
--
--.indexbox .indexIcon {
-- width: 11%
-- }
--
-- .indexbox .indexIcon span {
-- display: block
-- }
--
--.indexboxcont {
-- display: block
-+.main,.navbar-header,#footerbar>div {
-+ max-width:1500px;
-+ width:95%;
-+ margin:0 auto
- }
--
--.indexboxcont .sectionlist {
-- display: inline-block;
-- vertical-align: top;
-- width: 32.5%;
-- padding: 0;
-- }
--
-- .indexboxcont .sectionlist ul {
-- margin-bottom: 20px
-- }
--
-- .indexboxcont .sectionlist ul li {
-- line-height: 1.5
-- }
--
--.indexboxcont .indexIcon {
-- width: 11%;
-- *width: 18%;
-- _width: 18%;
-- overflow: hidden;
-- }
--
--.indexboxcont .section {
-- float: left
-- }
--
--.indexboxcont .section {
-- display: inline-block;
-- width: 49%;
-- *width: 42%;
-- _width: 42%;
-- padding: 0 2% 0 1%;
-- vertical-align: top;
-- }
--
-- .indexboxcont .section p {
-- padding-top: 20px;
-- padding-bottom: 20px;
-- }
--
--.indexboxcont:after {
-- content: ".";
-- display: block;
-- height: 0;
-- clear: both;
-- visibility: hidden;
-+.main {
-+ margin-top:100px
- }
--
--/*
-------------
--Landing page
-------------
--*/
--
--.col-group {
-- white-space: nowrap;
-- vertical-align: top;
-+.main_index {
-+ background-color:#fff
- }
--
--.col-1 {
-- display: inline-block;
-- white-space: normal;
-- width: 70%;
-- height: 100%;
-- float: left;
-+.sectionlist {
-+ margin-bottom:2em
-+}
-+[class*="col-"] {
-+ letter-spacing:normal
-+}
-+.landing,.main_index .row {
-+ letter-spacing:-0.31em
-+}
-+.main_index .row>div {
-+ letter-spacing:normal
-+}
-+.col-1,.context {
-+ width:80%;
-+ display:inline-block;
-+ background-color:#fff;
-+ padding:35px;
-+ -webkit-box-sizing:border-box;
-+ -moz-box-sizing:border-box;
-+ -ms-box-sizing:border-box;
-+ box-sizing:border-box
-+}
-+.col-1 h2 {
-+ font-size:2.1875em;
-+ font-weight:300;
-+ line-height:1.1;
-+ margin-bottom:0.83em;
-+ margin-top:1em
-+}
-+.icons1of3 img {
-+ display:inline-block;
-+ float:left;
-+ margin-right:0.75em;
-+ margin-top:-5px;
-+ width:2.75em
-+}
-+div.multi-column {
-+ position:relative
-+}
-+div.multi-column div {
-+ display:-moz-inline-box;
-+ display:inline-block;
-+ vertical-align:top;
-+ margin-top:1em;
-+ margin-right:2em;
-+ width:16em
-+}
-+.sidebar {
-+ display:block;
-+ float:right;
-+ -webkit-box-sizing:border-box;
-+ -moz-box-sizing:border-box;
-+ -ms-box-sizing:border-box;
-+ box-sizing:border-box;
-+ width:20%;
-+ padding-left:30px
-+}
-+.toc,.sectionlist {
-+ padding:35px;
-+ background-color:#fff;
-+ margin-bottom:2em
-+}
-+.sidebar-content:empty {
-+ display:none;
-+ visibility:hidden
-+}
-+.col-2 h2,.toc h3,.sidebar-content h2,.sidebar-content h3,.sectionlist h2 {
-+ font-weight:400;
-+ margin-bottom:2em
-+}
-+.toc h3 a {
-+ color:#404244
-+}
-+.title {
-+ font-size:3em;
-+ font-weight:300;
-+ letter-spacing:-1px;
-+ line-height:1.15em;
-+ margin-bottom:0.5em;
-+ word-wrap:break-word
-+}
-+.navigationbar,col-1 h2 {
-+ font-size:0.75em
-+}
-+.navigationbar h1 {
-+ font-size:3.125em;
-+ margin-bottom:1em;
-+ margin-top:1em
- }
--
--.col-1 h1 {
-- margin: 20px 0 0 0
-- }
--
--.col-2 {
-- display: inline-block;
-- white-space: normal;
-- width: 25%;
-- margin: 0 0 0 50px;
-+.navigationbar li {
-+ display:inline-block;
-+ margin-right:5px;
-+ position:relative;
-+ padding-right:10px;
-+ color:#585a5c
- }
--
--.sectionlist {
-- width: 100% !important
-+.navigationbar li a {
-+ color:#58585c
- }
--
--/*
--Additions from Qt Project
--*/
--
- body {
-- background: #E8E8E8;
-- margin: 0px;
-- font-family: "Open Sans",sans-serif !important;
-+ background-color:#eee;
-+ color:#404244
- }
--
--.qt13a-twoCol {
-- width: 23.46939%;
-- float: left;
-- margin-right: 2.04082%;
-- display: inline;
-+.sectionlist li {
-+ margin-bottom:5px
- }
--
--.qt13a-fourCol {
-- width: 48.97959%;
-- float: left;
-- margin-right: 2.04082%;
-- display: inline;
-+dd {
-+ padding-bottom:0.25em;
-+ padding-left:2em
- }
--
--.qt13a-sixCol {
-- width: 70.4898%;
-- float: left;
-- margin-right: 2.04082%;
-- display: inline;
-+.col-1 ul {
-+ margin-bottom:1.56em
- }
--
--.qt13a-eightCol {
-- width: 100%;
-- float: left;
-- margin-right: 2.04082%;
-- display: inline;
-+.mainContent li {
-+ margin-bottom:0.8em;
-+ line-height:1.25em
- }
--
--.qt13a-fiveCol {
-- width: 17.35537%;
-- float: left;
-- margin-right: 3.30579%;
-- display: inline;
-+.mainContent p {
-+ line-height:1.56em;
-+ margin-bottom:1.5em;
-+ color:#404244;
-+ max-width:85%
- }
--
--.qt13a-fiveCol:nth-child(2n) {
-- float: left;
-- margin-right: 3.30579%;
-+.mainContent b {
-+ font-weight:400
- }
--
--.qt13a-omega {
-- float: right;
-- margin-right: 0;
-- *margin-left: -20px;
-- display: inline;
-+.context ul {
-+ margin-bottom:1.5em
- }
--
--.qt13a-last {
-- float: right;
-- margin-right: 0;
-- *margin-left: -20px;
-- display: inline;
-+.mainContent ul ul {
-+ margin-top:0.5em
- }
--
--.qt13a-container {
-- *zoom: 1;
-- padding-left: 20px;
-- padding-right: 20px;
-- margin-left: auto;
-- margin-right: auto;
-- max-width: 1045px;
-+.mainContent .naviNextPrevious {
-+ margin-top:25px;
-+ max-width:100%
- }
--
--.qt13a-container:after {
-- content: "";
-- display: table;
-- clear: both;
-+.naviNextPrevious.headerNavi {
-+ display:none
- }
--
--.qt13a-container.qt13a-dynamic {
-- max-width: 1295px
-+.nextPage {
-+ float:right
- }
--
--.qt13a-no-bg-img {
-- background-image: none !important
-+.prevPage:before {
-+ content:"< "
- }
--
--.qt13a-wrapper {
-- overflow: hidden
-+.nextPage:after {
-+ content:" >"
- }
--
--.content-view {
-- position: relative;
-- overflow: hidden;
-+.navigationbar li:after {
-+ color:#404244;
-+ content:"›";
-+ display:inline-block;
-+ font-size:1.5em;
-+ line-height:1;
-+ position:absolute;
-+ right:-2px;
-+ top:-4px
- }
--
--#qt13a-header {
-- background: url('../images/Qt-header-bg.jpg') repeat;
-- min-height: 126px;
-- padding: 0;
-- margin: 0;
-- min-width: 1045px;
-- margin-bottom: 18px;
-+.navigationbar ul:last li a {
-+ color:#80c342
- }
--
-- #qt13a-header .qt13a-nav-divider-left {
-- border-left: 1px solid #35322f;
-- padding-left: 10px;
-- margin-left: 5px;
-- font-size: 13px;
-- }
--
-- #qt13a-header #qt13a-title_nav {
-- padding-top: 34px;
-- width: 87.37374%;
-- float: left;
-- margin-right: 1.0101%;
-- display: inline;
-- float: right;
-- margin-right: 0;
-- *margin-left: -20px;
-- display: inline;
-- }
--
-- #qt13a-header .qt13a-gradient {
-- background: url('../images/Qt-gradient.png') repeat-x;
-- background-position: bottom;
-- margin: 0;
-- min-height: 126px;
-- padding: 0;
-- }
--
-- #qt13a-header p.qt13a-title {
-- font-size: 24px;
-- margin: 0 0 0 0px;
-- letter-spacing: -1px;
-- color: #35322f;
-- font-weight: 600;
-- }
--
-- #qt13a-header p.qt13a-title a {
-- font-weight: 600;
-- color: #35322f;
-+.sub-navigation {
-+ margin-top:10px
-+}
-+.navigationbar li:last-child:after,.sub-navigation li:after {
-+ content:none
-+}
-+.navigationbar {
-+ margin-bottom:10px
-+}
-+#buildversion {
-+ font-style:italic;
-+ font-size:small;
-+ float:right
-+}
-+.copy-notice {
-+ width:65%;
-+ font-size:0.75em;
-+ margin-top:50px;
-+ margin-bottom:25px;
-+ line-height:1.75em;
-+ color:#585a5c
-+}
-+li a.active {
-+ color:#585a5c
-+}
-+.flowList {
-+ padding:25px
-+}
-+.alphaChar {
-+ font-size:2em;
-+ position:absolute
-+}
-+.flowList.odd {
-+ background-color:#eee
-+}
-+.context ul>li,.doc-column ul>li {
-+ list-style-image:url("list_arrow.png");
-+ margin-left:15px;
-+ color:#404244;
-+ line-height:1.16em
-+}
-+.mainContent table p {
-+ margin:0px;
-+ padding:0px
-+}
-+.mainContent table p {
-+ margin:0px;
-+ padding:0px;
-+ min-height:2em
-+}
-+.context h4,.context h3,.context h2 {
-+ font-size:2.1875em
-+}
-+.context p img {
-+ margin-top:0.75em;
-+ max-width:100%
-+}
-+.context table {
-+ vertical-align:initial
-+}
-+table .odd {
-+ background-color:#eee
-+}
-+table thead {
-+ text-align:left;
-+ padding-left:20px
-+}
-+table,table td,table th {
-+ border:1px solid #eee
-+}
-+table td,table th {
-+ padding:5px 20px;
-+ line-height:1.3
-+}
-+table.alignedsummary,table.propsummary {
-+ width:initial
-+}
-+div.main_index .row:first-child {
-+ border-bottom:1px solid #eee
-+}
-+div.main_index .row {
-+ position:relative
-+}
-+div.main_index .row>div {
-+ display:inline-block;
-+ width:50%;
-+ vertical-align:top;
-+ padding:50px;
-+ -webkit-box-sizing:border-box;
-+ -moz-box-sizing:border-box;
-+ -ms-box-sizing:border-box;
-+ box-sizing:border-box
-+}
-+div.main_index h2 {
-+ font-size:2.1875em;
-+ margin-bottom:1em
-+}
-+#search_bar {
-+ width:40%;
-+ float:right
-+}
-+div.main_index .row:after {
-+ content:"";
-+ position:absolute;
-+ top:0;
-+ right:50%;
-+ height:100%;
-+ width:1px;
-+ background-color:#eee
-+}
-+div.table {
-+ overflow-x:auto
-+}
-+p.qt_commercial {
-+ border:3px solid #5caa15;
-+ margin:0 auto;
-+ padding:15px;
-+ width:28%;
-+ text-align:center;
-+ clear:both
-+}
-+h1.qt_commercial {
-+ padding:20px;
-+ background-color:#5caa15;
-+ display:inline;
-+ float:right;
-+ font-size:1.25em;
-+ line-height:1.25em;
-+ height:1.25em;
-+ color:#fff
-+}
-+div.qt_commercial {
-+ border-top:5px solid #5caa15;
-+ margin-bottom:50px
-+}
-+pre {
-+ background-color:#404244;
-+ color:#fff;
-+ display:block;
-+ font-family:"Droid Sans Mono";
-+ line-height:1.5;
-+ overflow-x:auto;
-+ margin-bottom:25px;
-+ overflow-x:auto;
-+ padding:25px;
-+ margin-top:0.75em
-+}
-+.copy_text {
-+ background-color:#46a2da;
-+ color:#fff;
-+ border:2px solid #46a2da;
-+ padding:10px 16px;
-+ margin-left:-10px;
-+ margin-top:-50px;
-+ position:absolute;
-+ opacity:0;
-+ cursor:pointer;
-+ float:right
-+}
-+.copy_text:hover {
-+ background-color:#fff;
-+ color:#46a2da
-+}
-+code,.codelike {
-+ font-family:"Droid Sans Mono"
-+}
-+h3.fn code {
-+ font-size:0.75em;
-+ float:right;
-+ background-color:#eee;
-+ padding:3px;
-+ margin: 3px 0 0 20px
-+}
-+pre:hover>.copy_text {
-+ display:inline-block;
-+ opacity:1;
-+ transition:0.5s ease
-+}
-+#main_title_bar {
-+ letter-spacing:-0.31em
-+}
-+#main_title_bar .search_bar {
-+ letter-spacing:normal;
-+ width:50%;
-+ display:inline-block;
-+ -webkit-box-sizing:border-box;
-+ -moz-box-sizing:border-box;
-+ -ms-box-sizing:border-box;
-+ box-sizing:border-box;
-+ vertical-align:middle
-+}
-+#main_title_bar h1 {
-+ letter-spacing:normal;
-+ width:50%;
-+ display:inline-block;
-+ -webkit-box-sizing:border-box;
-+ -moz-box-sizing:border-box;
-+ -ms-box-sizing:border-box;
-+ box-sizing:border-box;
-+ vertical-align:middle
-+}
-+#main_title_bar .search_bar * {
-+ letter-spacing:normal;
-+ padding:0;
-+ margin:0;
-+ border:none
-+}
-+@media (max-width: 980px) {
-+ body {
-+ font-size:calc-em(14px)
- }
--
-- #qt13a-header p.qt13a-title a:hover {
-- color: #35322f;
-- text-decoration: none;
-+ #main_title_bar {
-+ letter-spacing:-0.31em;
-+ width:100%
- }
--
-- #qt13a-header #qt13a-title {
-- padding: 0px 0 0 0px;
-- padding-bottom: 0px;
-- }
--
-- #qt13a-header #qt13a-logo {
-- float: left;
-- width: 11.61616%;
-- float: left;
-- margin-right: 1.0101%;
-- display: inline;
-- margin: 20px 0px 10px 0;
-- min-width: 50px;
-- }
--
-- #qt13a-header #qt13a-logo .qt13a-site-logo {
-- background: url('../images/Qt-logo.png') no-repeat;
-- text-indent: -100em;
-- overflow: hidden;
-- display: block;
-- height: 90px;
-- -moz-box-shadow: none;
-- -webkit-box-shadow: none;
-- box-shadow: none;
-+ #main_title_bar>h1,#main_title_bar .search_bar {
-+ display:block;
-+ width:100%
- }
--
-- #qt13a-header #qt13a-logo img {
-- float: left;
-- border: 0;
-- -moz-box-shadow: none;
-- -webkit-box-shadow: none;
-- box-shadow: none;
-+ #main_title_bar .search_bar {
-+ margin-bottom:15px
- }
--
-- #qt13a-header .qt13a-nav {
-- background: none
-- }
--
-- #qt13a-header .qt13a-nav .qt13a-nav-divider-left {
-- border-left: 1px solid #35322f;
-- padding-left: 20px;
-+ .main {
-+ margin-top:0px
- }
--
-- #qt13a-header .qt13a-nav .qt13a-nav-small a {
-- font-size: 13px
-+ .main_index .row {
-+ border:none !important
- }
--
-- #qt13a-header .qt13a-nav ul {
-- margin: 0 0 0 0px;
-- padding: 11px 0 0;
-- background: none;
-+ .title {
-+ font-size:1.5em;
-+ font-weight:400;
-+ word-wrap:break-word
-+ }
-+ .col-1,.context,.naviNextPrevious,.sidebar {
-+ padding:10px
-+ }
-+ .sidebar {
-+ padding-top:0
-+ }
-+ .search .sidebar {
-+ display:none;
-+ visibility:hidden
-+ }
-+ .col-2 h2,.toc h3,.sidebar-content h2,.sidebar-content h3,.sectionlist h2 {
-+ text-align:center
-+ }
-+ div.main_index .row:after {
-+ content:none
-+ }
-+ div.main_index .row>div {
-+ display:block !important;
-+ width:100%;
-+ padding:0;
-+ margin:0
-+ }
-+ .context,.sidebar,.col-1 {
-+ width:100%
-+ }
-+ .main_index h2,h1 {
-+ text-align:center
-+ }
-+ .context h4,.context h3,.context h2 {
-+ text-align:center
-+ }
-+ .sidebar-content,.col-2,.toc {
-+ background-color:#fff;
-+ margin-bottom:1em;
-+ padding:20px
-+ }
-+ .mainContent p {
-+ line-height:1.56em;
-+ margin-bottom:1em;
-+ max-width:100%
-+ }
-+ table td,table th {
-+ padding:5px 5px
- }
--
-- #qt13a-header .qt13a-nav ul li.devnet-active a {
-- color: #fff
-- }
--
-- #qt13a-header .qt13a-nav ul li {
-- display: inline-block;
-- width: auto;
-- padding: 0 2.88% 0 0;
-- margin: 0;
-- border: 0;
-- *display: inline;
-- zoom: 1;
-- }
--
-- #qt13a-header .qt13a-nav ul li a {
-- color: #35322f;
-- margin: 0;
-- padding: 0;
-- line-height: 18px;
-- font-size: 18px;
-- }
--
-- #qt13a-header .qt13a-nav ul li a:hover, #qt13a-header .qt13a-nav ul li a:active, #qt13a-header .qt13a-nav ul li a.active {
-- color: #fff;
-- text-decoration: none;
-- }
--
--#qt13a-register_search {
-- display: block;
-- font-variant: 400;
-- float: right;
- }
--
--#qt13a-register {
-- padding: 34px 0px 0;
-- float: right;
-- text-align: right;
-- color: #1e1b18;
-+[id]:target,[name]:target,[name]:target+* {
-+ -webkit-animation:highlighter 3s;
-+ animation:highlighter 3s
- }
--
-- #qt13a-register .qt13a-link-divider {
-- padding: 0 5px
-- }
--
-- #qt13a-register a {
-- color: #1e1b18;
-- font-weight: 400;
-- font-size: 13px;
-- padding-left: 13px;
-- }
--
-- #qt13a-register a:visited {
-- color: #1e1b18
-- }
--
-- #qt13a-register a:hover {
-- color: #fff;
-- text-decoration: none;
-- }
--
--#search {
-- margin-top: 23px
-+@-webkit-keyframes highlighter {
-+ 25% {
-+ background-color:#46a2da;
-+ color:#fff
-+ }
-+ 75% {
-+ background-color:#46a2da;
-+ color:#fff
-+ }
- }
--
--#qt13a-footer {
-- background: url('../images/Qt-header-bg.jpg') repeat;
-- margin: 0;
-+@keyframes highlighter {
-+ 25% {
-+ background-color:#46a2da;
-+ color:#fff
-+ }
-+ 75% {
-+ background-color:#46a2da;
-+ color:#fff
-+ }
- }
--
-- #qt13a-footer .qt13a-container {
-- padding: 36px 0
-- }
--
-- #qt13a-footer .qt13a-gradient {
-- background: url('../images/Qt-dark_gradient.png') repeat-x;
-- background-position: bottom;
-- margin: 0;
-- min-height: 126px;
-- padding: 0;
-- }
--
-- #qt13a-footer .qt13a-shadow {
-- background: transparent url('../images/Qt-footer_shadow.png') repeat-x top center
-- }
--
-- #qt13a-footer .qt13a-last {
-- float: right;
-- margin-right: 0;
-- *margin-left: -20px;
-- display: inline;
-- }
--
-- #qt13a-footer ul {
-- width: 17.35537%;
-- float: left;
-- margin-right: 3.30579%;
-- display: inline;
-- padding-left: 0;
-- list-style-type: none;
-- }
--
-- #qt13a-footer ul li a.qt13a-some-icon {
-- width: 32px;
-- height: 32px;
-- background-repeat: none;
-- text-indent: -300em;
-- overflow: hidden;
-- display: -moz-inline-stack;
-- display: inline-block;
-- vertical-align: middle;
-- *vertical-align: auto;
-- zoom: 1;
-- *display: inline;
-+@-webkit-keyframes copypaste {
-+ 25% {
-+ opacity:1
- }
--
-- #qt13a-footer ul li a {
-- font-family: "Open Sans",sans-serif;
-- font-size: 13px;
-- color: #35322f;
-- padding: 0;
-- font-weight: 400;
-+ 100% {
-+ border-radius:10px;
-+ margin-top:-50px;
-+ opacity:1
- }
--
-- #qt13a-footer ul li a:hover, #qt13a-footer ul li a:active {
-- color: #35322f;
-- text-decoration: underline;
-+}
-+@keyframes copypaste {
-+ 25% {
-+ opacity:1
-+ }
-+ 100% {
-+ border-radius:10px;
-+ margin-top:-50px;
-+ opacity:1
- }
--
-- #qt13a-footer .qt13a-title a, #qt13a-footer .qt13a-title {
-- padding: 18px 0 18px;
-- font-weight: 400;
-- letter-spacing: -0.5pt;
-- color: #35322f;
-- font-size: 18px;
-- margin: 0;
-- }
--
--.qt13a-copyright {
-- border-top: 1px solid #000;
-- background: url('../images/Qt-footer-bg.jpg') repeat;
-- margin: 0;
-- padding: 36px 0;
-- font-weight: 400;
-- font-size: 0.84615em;
-- line-height: 1.63636em;
-+}
-+#footer {
-+ clear:both
-+}
-+.menuextraslanguages {
-+ display:none;
-+ visibility:hidden
-+}
-+form.gsc-search-box {
-+ font-size: 25px !important;
-+ margin-top: 0 !important;
-+ margin-right: 0 !important;
-+ margin-bottom: 4px !important;
-+ margin-left: 0 !important;
-+ width: 100% !important;
-+}
-+table.gsc-search-box {
-+ border-style: none !important;
-+ border-width: 0 !important;
-+ border-spacing: 0 0 !important;
-+ width: 100% !important;
-+ margin-bottom: 2px !important;
- }
-
--.qt13a-copyright p {
-- padding: 0;
-- color: #aeadac;
-- font-size: 11px;
-- }
--
--.qt13a-copyright a {
-- color: #328930
-- }
-+table.gsc-search-box td {
-+ vertical-align: middle !important;
-+}
-
--.qt13a-copyright a:visited {
-- color: #328930
-- }
-+table.gsc-search-box td.gsc-input {
-+ padding-right: 0px !important;
-+}
-+table.gsc-search-box td.gsc-input input {
-+ background-position: 15px center !important;
-+}
-
--.searchbox {
-- display: block;
-- overflow: hidden;
-- padding: 0px 35px 0 5px;
-+td.gsc-search-button {
-+ width: 1% !important;
- }
-
--.content-view {
-- position: relative;
-- overflow: hidden;
-+td.gsc-clear-button {
-+ width: 14px !important;
-+ visibility:hidden !important;
-+ display:none !important;
-+}
-+table.gsc-branding td,
-+table.gsc-branding {
-+ margin: 0 0 0 0 !important;
-+ padding: 0 0 0 0 !important;
-+ border: none !important;
- }
-
--p, li, p.forum-overview-title, p.forum-description, p.desc, p.forum-lastpost, div.navigationbars li, div.block-profile div {
-- font-size: 13px
-+table.gsc-branding {
-+ border-style: none !important;
-+ border-width: 0 !important;
-+ border-spacing: 0 0 !important;
-+ width: 100% !important;
- }
-
--p.forum-description.desc {
-- font-size: 13px !important
-+.gsc-branding-text {
-+ color: #676767 !important;
- }
-
--.steps li {
-- font-size: 16px
-+td.gsc-branding-text {
-+ vertical-align: top !important;
-+}
-+td.gsc-branding-text div.gsc-branding-text {
-+ padding-bottom: 2px !important;
-+ text-align: right !important;
-+ font-size: 11px !important;
-+ margin-right: 2px !important;
- }
-
--div.license p, div.notes p {
-- font-size: 12px !important
-+td.gsc-branding-img {
-+ width: 65px !important;
-+ vertical-align: bottom !important;
- }
-
--a {
-- color: #44a51c;
-- text-decoration: none;
-+img.gsc-branding-img {
-+ padding-top: 1px !important;
-+ margin: 0 0 0 0 !important;
-+ padding-right: 0 !important;
-+ padding-left: 0 !important;
-+ padding-bottom: 0 !important;
-+ border: none !important;
-+ display: inline !important;
- }
-
--.wrap {
-- padding-left: 30px
-+input.gsc-search-button {
-+ background-color: white !important;
-+ height: 35px !important;
-+ width: 35px !important;
-+ color: transparent !important;
-+ background-image: url("doc_search.png") !important;
-+ background-size: 25px auto;
-+ background-position: 0px 5px;
-+ background-repeat: no-repeat;
-+ margin-left: -43px !important;
-+ overflow: hidden;
-+ min-width: 20px !important;
- }
-
--a:visited {
-- color: #007330;
-- text-align: left;
-+input.gsc-search-button:hover {
-+ cursor: pointer;
- }
-
--a:hover {
-- color: #44a51c;
-- text-align: left;
-+.gsc-search-box-tools .gsc-clear-button {
-+ display: none !important;
-+ visibility: none !important;
- }
-
--a:visited:hover {
-- color: #44a51c;
-- text-align: left;
-+.gsc-overflow-hidden {
-+ overflow: hidden !important;
- }
-
--a:link {
-- color: #007330;
-- text-decoration: none;
-- text-align: left;
-+input.gsc-input {
-+ background-color: #fff !important;
-+ border: 1px solid #d6d6d6 !important;
-+ border-radius: 5px !important;
-+ box-sizing: border-box !important;
-+ color: #868482 !important;
-+ outline: 0 none !important;
-+ padding: 9px 10px 10px !important;
-+ transition: color 0.5s ease 0s, box-shadow 0.5s ease 0s, background-color 0.5s ease 0s !important;
- }
-
--.main {
-- padding: 0px 30px 30px 30px
-+input {
-+ font-family: 'Open Sans', Arial, Helvetica, sans-serif !important;
-+ line-height: 1.5 !important;
-+ font-weight: 300 !important;
-+ vertical-align:middle
- }
-
--.main-rounded {
-- display: inline-block;
-- background: none repeat scroll 0% 0% rgb(255,255,255);
-- width: 100%;
-- border: 1px solid #DADADA;
-- border-radius: 10px 10px 10px 10px;
-- box-shadow: 0 0 3px #C4C4C4;
-- padding-bottom: 30px;
-+input:focus {
-+ border-color: #46a2da;
-+ box-shadow: 0 0 5px #46a2da;
-+ color: #000;
- }
---
-2.1.2
-
-
-From ab6d645850e88f3e351d196bf009135b6189ba8a Mon Sep 17 00:00:00 2001
-From: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
-Date: Wed, 26 Nov 2014 13:12:08 +0100
-Subject: [PATCH 30/36] Android: Fix broken system palette
-
-When we overwrite the default palette, we have to make sure
-we don't overwrite default values with black for all the
-colors that are not retrieved from the json file. We would
-for instance get black as both the base color and text
-color which would make some components unusable.
-
-Change-Id: I1079a70a0ac7eb379ed5e8d92c6b39c2ea77ba49
-Task-number: QTBUG-42812
-Task-number: QTBUG-42998
-Reviewed-by: BogDan Vatra <bogdan@kde.org>
-Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
-
-diff --git a/src/plugins/platforms/android/qandroidplatformtheme.cpp b/src/plugins/platforms/android/qandroidplatformtheme.cpp
-index f9f2e4a..3750961 100644
---- a/src/plugins/platforms/android/qandroidplatformtheme.cpp
-+++ b/src/plugins/platforms/android/qandroidplatformtheme.cpp
-@@ -278,7 +278,8 @@ static std::shared_ptr<AndroidStyle> loadAndroidStyle(QPalette *defaultPalette)
- const int pt = paletteType(key);
- if (pt > -1 || !qtClassName.isEmpty()) {
- // Extract palette information
-- QPalette palette;
-+ QPalette palette = *defaultPalette;
-+
- attributeIterator = item.find(QLatin1String("defaultTextColorPrimary"));
- if (attributeIterator != item.constEnd())
- palette.setColor(QPalette::WindowText, QRgb(int(attributeIterator.value().toDouble())));
---
-2.1.2
-
-
-From bd5743f1d8472e70aeeccd08858130d4781bde41 Mon Sep 17 00:00:00 2001
-From: Simon Hausmann <simon.hausmann@theqtcompany.com>
-Date: Wed, 3 Dec 2014 12:09:50 +0100
-Subject: [PATCH 31/36] Make tst_qwindow::positioning more reliable
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Don't check for absolute counts of resize events but just check if we
-were resized. Also use QTest::qWaitForWindowExposed instead of QTRY_COMPARE
-and checking for QEvent::Expose.
-
-Change-Id: Ie383493a8ce6d88cad50bd6375d432ad1578449c
-Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
-
-diff --git a/tests/auto/gui/kernel/qwindow/tst_qwindow.cpp b/tests/auto/gui/kernel/qwindow/tst_qwindow.cpp
-index fac16ff..46b33e5 100644
---- a/tests/auto/gui/kernel/qwindow/tst_qwindow.cpp
-+++ b/tests/auto/gui/kernel/qwindow/tst_qwindow.cpp
-@@ -233,17 +233,11 @@ void tst_QWindow::resizeEventAfterResize()
- void tst_QWindow::positioning_data()
- {
- QTest::addColumn<int>("windowflags");
-- QTest::addColumn<int>("resizecount");
-
-- QTest::newRow("default") << int(Qt::Window | Qt::WindowTitleHint | Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint | Qt::WindowFullscreenButtonHint)
--#if defined(Q_OS_OSX) && MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_7
-- << 4;
--#else
-- << 3;
--#endif
-+ QTest::newRow("default") << int(Qt::Window | Qt::WindowTitleHint | Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint | Qt::WindowFullscreenButtonHint);
-
- #ifdef Q_OS_OSX
-- QTest::newRow("fake") << int(Qt::Window | Qt::WindowTitleHint | Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint) << 4;
-+ QTest::newRow("fake") << int(Qt::Window | Qt::WindowTitleHint | Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint);
- #endif
- }
-
-@@ -262,7 +256,6 @@ void tst_QWindow::positioning()
- const QRect geometry(m_availableTopLeft + QPoint(80, 80), m_testWindowSize);
-
- QFETCH(int, windowflags);
-- QFETCH(int, resizecount);
- Window window((Qt::WindowFlags)windowflags);
- window.setGeometry(QRect(m_availableTopLeft + QPoint(20, 20), m_testWindowSize));
- window.setFramePosition(m_availableTopLeft + QPoint(40, 40)); // Move window around before show, size must not change.
-@@ -273,8 +266,7 @@ void tst_QWindow::positioning()
- window.showNormal();
- QCoreApplication::processEvents();
-
-- QTRY_COMPARE(window.received(QEvent::Resize), 1);
-- QTRY_VERIFY(window.received(QEvent::Expose) > 0);
-+ QTest::qWaitForWindowExposed(&window);
-
- QMargins originalMargins = window.frameMargins();
-
-@@ -284,25 +276,22 @@ void tst_QWindow::positioning()
- QPoint originalPos = window.position();
- QPoint originalFramePos = window.framePosition();
-
-+ window.reset();
- window.setWindowState(Qt::WindowFullScreen);
- QCoreApplication::processEvents();
--#if defined(Q_OS_BLACKBERRY) // "window" is the "root" window and will always be shown fullscreen
-- // so we only expect one resize event
-- Q_UNUSED(resizecount);
-- QTRY_COMPARE(window.received(QEvent::Resize), 1);
--#else
-- QTRY_COMPARE(window.received(QEvent::Resize), 2);
-+ // On BB10 the window is the root window and fullscreen, so nothing is resized.
-+#if !defined(Q_OS_BLACKBERRY)
-+ QTRY_VERIFY(window.received(QEvent::Resize) > 0);
- #endif
-
- QTest::qWait(2000);
-
-+ window.reset();
- window.setWindowState(Qt::WindowNoState);
- QCoreApplication::processEvents();
--#if defined(Q_OS_BLACKBERRY) // "window" is the "root" window and will always be shown fullscreen
-- // so we only expect one resize event
-- QTRY_COMPARE(window.received(QEvent::Resize), 1);
--#else
-- QTRY_COMPARE(window.received(QEvent::Resize), resizecount);
-+ // On BB10 the window is the root window and fullscreen, so nothing is resized.
-+#if !defined(Q_OS_BLACKBERRY)
-+ QTRY_VERIFY(window.received(QEvent::Resize) > 0);
- #endif
-
- QTRY_COMPARE(originalPos, window.position());
---
-2.1.2
-
-
-From 5367fa356233da4c0f28172a8f817791525f5457 Mon Sep 17 00:00:00 2001
-From: Andrew Knight <andrew.knight@theqtcompany.com>
-Date: Thu, 4 Dec 2014 15:21:28 +0200
-Subject: [PATCH 32/36] winrt: Fix window resize
-
-The fixed-size EGL display must be updated on PC as well as Windows Phone.
-
-Task-number: QTBUG-43112
-Change-Id: I0ba90370b67e8c065843e5754579e341b647266d
-Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
-
-diff --git a/src/plugins/platforms/winrt/qwinrtscreen.cpp b/src/plugins/platforms/winrt/qwinrtscreen.cpp
-index 612a50f..37a3ff3 100644
---- a/src/plugins/platforms/winrt/qwinrtscreen.cpp
-+++ b/src/plugins/platforms/winrt/qwinrtscreen.cpp
-@@ -1081,12 +1081,14 @@ HRESULT QWinRTScreen::onSizeChanged(ICoreWindow *, IWindowSizeChangedEventArgs *
- d->logicalSize = logicalSize;
- if (d->eglDisplay) {
- const QRect newGeometry = geometry();
--#ifdef Q_OS_WINPHONE // Resize the EGL window
-- const int width = newGeometry.width() * (d->orientation == Qt::InvertedPortraitOrientation || d->orientation == Qt::LandscapeOrientation ? -1 : 1);
-- const int height = newGeometry.height() * (d->orientation == Qt::InvertedPortraitOrientation || d->orientation == Qt::InvertedLandscapeOrientation ? -1 : 1);
-+ int width = newGeometry.width();
-+ int height = newGeometry.height();
-+#ifdef Q_OS_WINPHONE // Windows Phone can pass in a negative size to provide orientation information
-+ width *= (d->orientation == Qt::InvertedPortraitOrientation || d->orientation == Qt::LandscapeOrientation) ? -1 : 1;
-+ height *= (d->orientation == Qt::InvertedPortraitOrientation || d->orientation == Qt::InvertedLandscapeOrientation) ? -1 : 1;
-+#endif
- eglSurfaceAttrib(d->eglDisplay, d->eglSurface, EGL_WIDTH, width);
- eglSurfaceAttrib(d->eglDisplay, d->eglSurface, EGL_HEIGHT, height);
--#endif
- QWindowSystemInterface::handleScreenGeometryChange(screen(), newGeometry, newGeometry);
- QPlatformScreen::resizeMaximizedWindows();
- handleExpose();
---
-2.1.2
-
-
From a94aaf9332ef7f049e785ed8bc391539b66da69a Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Tue, 26 Feb 2013 13:23:33 +0100
-Subject: [PATCH 33/36] use pkg-config for freetype
+Subject: [PATCH 1/4] use pkg-config for freetype
Change-Id: Id2f78ed9dbdcacd570eb25982cbd700d0437542a
@@ -7729,7 +27,7 @@ index 88be809..8fc19d2 100644
From 3ba546637346cdbcfe0224dfebdbfb429d293bf5 Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Sat, 18 May 2013 23:07:46 +0200
-Subject: [PATCH 34/36] use pkgconfig for icu detection (MXE specific)
+Subject: [PATCH 2/4] use pkgconfig for icu detection (MXE specific)
Change-Id: I874171361fec812cb5a5a56e4d8d90a630be3bf3
@@ -7763,7 +61,7 @@ index 16267ff..dd9fb6c 100644
From ac8761c959279f151f4fcfdf0ac08ceacbab9cc7 Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Sat, 21 Jun 2014 13:12:49 +0200
-Subject: [PATCH 35/36] use pkg-config for harfbuzz (MXE specific)
+Subject: [PATCH 3/4] use pkg-config for harfbuzz (MXE specific)
Change-Id: Id4e4c37d68b63c9f480d72a561d95d4d2a5ded50
@@ -7796,7 +94,7 @@ index 7443368..c24e684 100644
From e7cfc640b13a73b2f4097714e1863e02affb2088 Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Mon, 8 Dec 2014 14:15:12 +0100
-Subject: [PATCH 36/36] fix oci config test on windows
+Subject: [PATCH 4/4] fix oci config test on windows
Change-Id: If1ce2241682259ca495b0ba68bf18410f8548922