Merge remote-tracking branch 'origin/release' into stable

Change-Id: I4680723bef393a15d5aa63b9dd7d5fbb599bd9fa
This commit is contained in:
Frederik Gladhorn 2014-01-27 18:58:01 +01:00
commit c30fc6949a
10 changed files with 210 additions and 106 deletions

164
dist/changes-5.2.1 vendored Normal file
View File

@ -0,0 +1,164 @@
Qt 5.2.1 is a bug-fix release. It maintains both forward and backward
compatibility (source and binary) with Qt 5.2.0.
For more details, refer to the online documentation included in this
distribution. The documentation is also available online:
http://qt-project.org/doc/qt-5.2
The Qt version 5.2 series is binary compatible with the 5.1.x series.
Applications compiled for 5.1 will continue to run with 5.2.
Some of the changes listed in this file include issue tracking numbers
corresponding to tasks in the Qt Bug Tracker:
http://bugreports.qt-project.org/
Each of these identifiers can be entered in the bug tracker to obtain more
information about a particular change.
****************************************************************************
* Important Behavior Changes *
****************************************************************************
- [QTBUG-34345][QTBUG-26008][QTBUG-26430] QPrinter no longer allows you to
set an invalid printer name.
- [QTBUG-34141] Parsing of Qt::ISODate by QDate::fromString() and
QDateTime()::fromString() is not as lenient as before, the date
component separators are now required to be non-numeric. This means a
string like "2000901901" will no longer be recognized as a valid ISO
Date, but "2000/01/01" will still be even though it doesn't strictly
meet the ISO format of "2000-01-01".
****************************************************************************
* Library *
****************************************************************************
QtCore
------
- [QTBUG-35069] Fixed a bug that caused negative number input using '-' to
be rejected because the current locale uses U+2212. QLocale::toString()
as well as QIntValidator and QDoubleValidator now accept both '-' and
U+2212, as well as the locale minus sign. QString also accepts '-' and
U+2212.
- Fixed sign conversion warnings in code using QMetaTypeId.
- QTemporaryDir:
* Fixed a bug in QTemporaryDir name generator that dramatically reduced
randomness of the name.
- QThread:
* [QTBUG-34840] Fixed handle leaks on Windows.
QtGui
-----
- [QTBUG-35421] Fixed crash when sending accessibility updates when the
corresponding widget does not have a corresponding QAccessibleInterface.
This showed on Mac for example with QStatusBar.
- Qt's generic font database now adds OpenType fonts (.otf).
- Accessibility
* On Linux action names were returned as empty strings in AT-SPI
getActions, now returns the proper names.
- QKeySequence:
* [QTBUG-24406] return Qt::Key_unknown with invalid modifiers on OS X
- Text:
* [QTBUG-35740] Fixed regression when shaping some strings containing
characters from multiple fonts.
QtPrintSupport
--------------
- [QTBUG-34700][QTBUG-35500] Fixed bugs that caused QtPrintSupport
not to report the correct the paper sizes on Windows and on OS X.
QtSql
-----
- IBase support:
* [QTBUG-33345] Custom port numbers are now supported.
* [QTBUG-13435] Fixed the internal state of IBase driver after a failed
open call.
- MySQL / MariaDB support:
* [QTBUG-31124] Fixed handling of fractions of second.
- Oracle support:
* [QTBUG-34794] Fixed the compilation
- Sqlite support:
* [QTBUG-24200] Fixed handling of fractions of second.
* [QTBUG-35186] Fixed evaluation of driver options
QtTestLib
---------
- [QTBUG-34630] The (default) plain text logger on Windows now logs to
either the system debug log (in case no console is open), or stdout, not
both.
QtWidgets
---------
- QSpinBox:
* [QTBUG-20691] Entering positive values with the '+' prefix is now
allowed.
****************************************************************************
* Platform Specific Changes *
****************************************************************************
Android
-------
- [QTBUG-34984] Added workarounds for OpenGL bugs on Samsung Galaxy
Tab 3.
OS X
----
- [QTBUG-34411] Implemented QMainWindow::setUnifiedTitleAndToolBarOnMac.
X11 / XCB
---------
- [QTBUG-32683] Fixed a bug that caused Qt applications to think the
screen DPI had changed when it had not, after connecting or
disconnecting monitors.
Windows
-------
- [QTBUG-8361] Maximizing frameless windows will no longer cover the
taskbar
- [QTBUG-34799] Updated QWidgetBackingStore and the Windows
implementation to support Qt::WA_StaticContents.
- [QTBUG-35357] Fixed a regression from Qt4 in QProcess that
prevented altering the pipe modes of stdin in the child process.
****************************************************************************
* Tools *
****************************************************************************
configure & build system
------------------------
- [QTBUG-34949] EGL works with desktop OpenGL now
- A build from source will not install the Qt DLLs into lib/ any more.
The canonical location is bin/.
qmake
-----
- [QTBUG-35530] Fixed the detection of multiple VS installations.
- [QTBUG-35610] Fixed the generation of VS 2010 project files.
- [QTBUG-32412] Numerous fixes to Windows PDB file handling.
- [QTBUG-3883] Fixed make distclean not removing static library targets.
- Added makespec for clang using libc++ on Linux.
- qmake will not look for mkspecs/ directories in project trees any more.
Use .qmake.conf and/or .qmake.cache to "anchor" project roots.

View File

@ -77,12 +77,9 @@ manifestmeta.android.names = "QtQuick/Qt Quick Demo - Maroon*" \
"QtWidgets/Stickman Example" \
"QtWidgets/Move Blocks Example" \
"QtWidgets/Border Layout Example" \
"QtWidgets/Dynamic Layouts Example" \
"QtWidgets/Flow Layout Example" \
"QtWidgets/MDI Example" \
"QtWidgets/Dock Widgets Example" \
"QtWidgets/Recent Files Example" \
"QtWidgets/Menus Example" \
"QtWidgets/Concentric Circles Example" \
"QtWidgets/Gradients" \
"QtWidgets/Font Sampler Example" \
@ -90,38 +87,23 @@ manifestmeta.android.names = "QtQuick/Qt Quick Demo - Maroon*" \
"QtWidgets/Transformations Example" \
"QtWidgets/Syntax Highlighter Example" \
"QtWidgets/Calendar Example" \
"QtWidgets/Movie Example" \
"QtWidgets/Validators Example" \
"QtWidgets/Analog Clock Example" \
"QtWidgets/Calculator Example" \
"QtWidgets/Mouse Button Tester" \
"QtWidgets/Character Map Example" \
"QtWidgets/Wiggly Example" \
"QtWidgets/Digital Clock Example" \
"QtWidgets/Elided Label Example" \
"QtWidgets/Image Viewer Example" \
"QtWidgets/Sliders Example" \
"QtWidgets/Tetrix Example" \
"QtWidgets/Group Box Example" \
"QtWidgets/Spin Boxes Example" \
"QtWidgets/Undo Framework" \
"QtWidgets/Regular Expressions Example" \
"QtWidgets/Colliding Mice Example" \
"QtWidgets/Basic Graphics Layouts Example" \
"QtWidgets/40000 Chips" \
"QtWidgets/Diagram Scene Example" \
"QtWidgets/Drag and Drop Robot Example" \
"QtWidgets/Elastic Nodes Example" \
"QtWidgets/Pad Navigator Example" \
"QtWidgets/Anchor Layout Example" \
"QtWidgets/Weather Anchor Layout Example" \
"QtConcurrent/Image Scaling Example" \
"QtConcurrent/QtConcurrent Progress Dialog Example" \
"QtNetwork/Torrent Example" \
"QtNetwork/Network Chat Example" \
"QtSQL/Master Detail Example" \
"QtOpenGL/Cube OpenGL ES 2.0 example" \
"QtOpenGL/Textures Example" \
"QtLinguist/Arrow Pad Example" \
"QtGui/Raster Window Example" \
"QtGui/Analog Clock Window Example" \
@ -129,12 +111,16 @@ manifestmeta.android.names = "QtQuick/Qt Quick Demo - Maroon*" \
"QtMultimedia/QML Video Shader Effects Example" \
"QtMultimedia/QML Video Example" \
"QtMultimedia/QML Camera Example" \
"QtMultimedia/Audio Output Example" \
"QtSVG/Text Object Example" \
"QtQML/Qt Quick Examples - XMLHttpRequest" \
"QtQuick/Qt Quick Particles Examples - *" \
"QtQuick/Qt Quick Examples - Touch Interaction" \
"QtQuick/Scene Graph - *" \
"QtQuick/Scene Graph - Custom Geometry" \
"QtQuick/Scene Graph - Graph" \
"QtQuick/Scene Graph - OpenGL Under QML" \
"QtQuick/Scene Graph - Painted Item" \
"QtQuick/Scene Graph - Rendering FBOs" \
"QtQuick/Scene Graph - Simple Material" \
"QtQuick/Qt Quick Examples - Image Elements" \
"QtQuick/Qt Quick Examples - Key Interaction" \
"QtQuick/Qt Quick Examples - Text" \
@ -147,21 +133,15 @@ manifestmeta.android.names = "QtQuick/Qt Quick Demo - Maroon*" \
"QtWidgets/Interview" \
"QtWidgets/Spreadsheet" \
"QtWidgets/Pixelator Example" \
"QtWidgets/Class Wizard Example" \
"QtWidgets/Animated Tiles Example" \
"QtWidgets/Basic Layouts Example" \
"QtWidgets/Application Example" \
"QtWidgets/Affine Transformations" \
"QtWidgets/Image Composition Example" \
"QtWidgets/Basic Drawing Example" \
"QtWidgets/Vector Deformation" \
"QtWidgets/Painter Paths Example" \
"QtWidgets/Text Edit" \
"QtWidgets/Style Sheet Example" \
"QtWidgets/Code Editor Example" \
"QtWidgets/Window Flags Example" \
"QtWidgets/Scribble Example" \
"QtWidgets/Shaped Clock Example" \
"QtWidgets/Line Edits Example" \
"QtWidgets/Calendar Widget Example" \
"QtWidgets/Completer Example" \
@ -169,8 +149,7 @@ manifestmeta.android.names = "QtQuick/Qt Quick Demo - Maroon*" \
"QtQML/Extending QML - Grouped Properties Example" \
"QtQML/Extending QML - Methods Example" \
"QtQML/Extending QML - Signal Support Example" \
"QtQML/Extending QML - Attached Properties Example" \
"QtWidgets/Address Book Example"
"QtQML/Extending QML - Attached Properties Example"
manifestmeta.android.tags = android

View File

@ -722,11 +722,15 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
QString::fromLatin1("????") : project->first("QMAKE_PKGINFO_TYPEINFO").left(4)) << ",g\" ";
if(project->first("TEMPLATE") == "app") {
QString icon = fileFixify(var("ICON"));
QString bundleIdentifier = "com.yourcompany." + var("QMAKE_BUNDLE");
if (bundleIdentifier.endsWith(".app"))
bundleIdentifier.chop(4);
t << "@$(DEL_FILE) " << info_plist_out << "\n\t"
<< "@sed ";
foreach (const ProString &arg, commonSedArgs)
t << arg;
t << "-e \"s,@ICON@," << icon.section(Option::dir_sep, -1) << ",g\" "
<< "-e \"s,@BUNDLEIDENTIFIER@," << bundleIdentifier << ",g\" "
<< "-e \"s,@EXECUTABLE@," << var("QMAKE_ORIG_TARGET") << ",g\" "
<< "-e \"s,@TYPEINFO@,"<< (project->isEmpty("QMAKE_PKGINFO_TYPEINFO") ?
QString::fromLatin1("????") : project->first("QMAKE_PKGINFO_TYPEINFO").left(4)) << ",g\" "

View File

@ -910,13 +910,15 @@ static inline QString toString(compileAsManagedOptions option)
return QString();
}
static inline QString toString(debugOption option)
static inline QString toString(debugOption option, DotNET compilerVersion)
{
switch (option) {
case debugUnknown:
case debugLineInfoOnly:
break;
case debugDisabled:
if (compilerVersion <= NET2010)
break;
return "None";
case debugOldStyleInfo:
return "OldStyle";
@ -1401,7 +1403,8 @@ void VCXProjectWriter::write(XmlOutput &xml, const VCCLCompilerTool &tool)
<< attrTagS(_CompileAsManaged, toString(tool.CompileAsManaged))
<< attrTagT(_CompileAsWinRT, tool.CompileAsWinRT)
<< attrTagT(_CreateHotpatchableImage, tool.CreateHotpatchableImage)
<< attrTagS(_DebugInformationFormat, toString(tool.DebugInformationFormat))
<< attrTagS(_DebugInformationFormat, toString(tool.DebugInformationFormat,
tool.config->CompilerVersion))
<< attrTagT(_DisableLanguageExtensions, tool.DisableLanguageExtensions)
<< attrTagX(_DisableSpecificWarnings, tool.DisableSpecificWarnings, ";")
<< attrTagS(_EnableEnhancedInstructionSet, toString(tool.EnableEnhancedInstructionSet))

View File

@ -259,9 +259,10 @@ QIODevicePrivate::~QIODevicePrivate()
\value NotOpen The device is not open.
\value ReadOnly The device is open for reading.
\value WriteOnly The device is open for writing.
\value WriteOnly The device is open for writing. Note that this mode implies
Truncate.
\value ReadWrite The device is open for reading and writing.
\value Append The device is opened in append mode, so that all data is
\value Append The device is opened in append mode so that all data is
written to the end of the file.
\value Truncate If possible, the device is truncated before it is opened.
All earlier contents of the device are lost.

View File

@ -374,6 +374,7 @@ private:
static QBasicMutex qt_library_mutex;
static QLibraryStore *qt_library_data = 0;
static bool qt_library_data_once;
QLibraryStore::~QLibraryStore()
{
@ -429,8 +430,11 @@ Q_DESTRUCTOR_FUNCTION(qlibraryCleanup)
// must be called with a locked mutex
QLibraryStore *QLibraryStore::instance()
{
if (Q_UNLIKELY(!qt_library_data))
if (Q_UNLIKELY(!qt_library_data_once && !qt_library_data)) {
// only create once per process lifetime
qt_library_data = new QLibraryStore;
qt_library_data_once = true;
}
return qt_library_data;
}
@ -440,12 +444,15 @@ inline QLibraryPrivate *QLibraryStore::findOrCreate(const QString &fileName, con
QLibraryStore *data = instance();
// check if this library is already loaded
QLibraryPrivate *lib = data->libraryMap.value(fileName);
QLibraryPrivate *lib = 0;
if (Q_LIKELY(data))
lib = data->libraryMap.value(fileName);
if (!lib)
lib = new QLibraryPrivate(fileName, version);
// track this library
data->libraryMap.insert(fileName, lib);
if (Q_LIKELY(data))
data->libraryMap.insert(fileName, lib);
lib->libraryRefCount.ref();
return lib;
@ -464,9 +471,11 @@ inline void QLibraryStore::releaseLibrary(QLibraryPrivate *lib)
// no one else is using
Q_ASSERT(lib->libraryUnloadCount.load() == 0);
QLibraryPrivate *that = data->libraryMap.take(lib->fileName);
Q_ASSERT(lib == that);
Q_UNUSED(that);
if (Q_LIKELY(data)) {
QLibraryPrivate *that = data->libraryMap.take(lib->fileName);
Q_ASSERT(lib == that);
Q_UNUSED(that);
}
delete lib;
}

View File

@ -254,6 +254,7 @@ QHash<QPlatformTheme::Font, QFont *> qt_mac_createRoleFonts()
fonts.insert(QPlatformTheme::ListBoxFont, qt_mac_qfontForThemeFont(kThemeViewsFont));
fonts.insert(QPlatformTheme::TitleBarFont, qt_mac_qfontForThemeFont(kThemeWindowTitleFont));
fonts.insert(QPlatformTheme::MenuFont, qt_mac_qfontForThemeFont(kThemeMenuItemFont));
fonts.insert(QPlatformTheme::MenuBarFont, qt_mac_qfontForThemeFont(kThemeMenuItemFont));
fonts.insert(QPlatformTheme::ComboMenuItemFont, qt_mac_qfontForThemeFont(kThemeSystemFont));
fonts.insert(QPlatformTheme::HeaderViewFont, qt_mac_qfontForThemeFont(kThemeSmallSystemFont));
fonts.insert(QPlatformTheme::TipLabelFont, qt_mac_qfontForThemeFont(kThemeSmallSystemFont));

View File

@ -287,12 +287,14 @@ XInput2DeviceData *QXcbConnection::deviceForId(int id)
return dev;
}
#ifdef XCB_USE_XINPUT22
#if defined(XCB_USE_XINPUT22) || !defined(QT_NO_TABLETEVENT)
static qreal fixed1616ToReal(FP1616 val)
{
return (qreal(val >> 16)) + (val & 0xFF) / (qreal)0xFF;
}
#endif
#ifdef XCB_USE_XINPUT22
static qreal valuatorNormalized(double value, XIValuatorClassInfo *vci)
{
if (value > vci->max)

View File

@ -175,73 +175,6 @@
built in release mode only. If you are expecting a debug version
to be built as well, don't use the \c{"-o Makefile"} option.
\section3 How to build the MySQL driver for MinGW users
The following steps have been used successfully for WinXP SP3. In
this example, Qt 4.6.2 is shown.
\list
\li Download the following components:
\list
\li \c{MinGW-5.1.6.exe}
\li \c{mingw-utils-0.3.tar.gz}
\li Qt sources, e.g. \c{qt-everywhere-opensource-src-4.6.2.zip}
\li \c{mysql-5.1.35-win32.msi}
\endlist
\li Install \c{MinGW-5.1.6.exe} in, e.g. \c{C:\MinGW}.
\li Extract \c{mingw-utils-0.3.tar.gz} into, e.g. \c{C:\MinGW}.
\li Add the path for \c{MinGW-5.1.6.exe} to your \c{PATH} variable,
e.g. \c{C:\MinGW\bin;}
\li Extract the Qt sources, (\c{qt-everywhere-opensource-src-4.6.2.zip}),
into, e.g. \c{C:\Qt}.
\li Add the path for the eventual Qt binary to your \c{PATH} variable,
e.g. \c{C:\Qt\4.6.2\bin;}.
\li Install MySQL (\c{mysql-5.1.35-win32.msi}), customizing the
components. Select only the headers and libraries. Install in,
e.g. \c{C:\MySQL\MySQL51}.
\li Open the DOS prompt, go to \c{C:\MySQL\MySQL51\lib\opt}, and run
the following commands:
\list
\li \c{reimp -d libmysql.lib}
\li \c{dlltool -k -d libmysql.def -l libmysql.a}
\endlist
\li Open the DOS prompt, go to \c{C:\Qt\4.6.2} and run the following commands:
\list
\li \c{configure.exe -debug-and-release -platform win32-g++ -qt-sql-mysql
-l mysql -I C:\MySQL\MySQL51\include -L C:\MySQL\MySQL51\lib\opt}
\li \c{mingw32-make sub-src}
\endlist
This step takes a long time.
\li Open the DOS prompt, go to
\c{C:\Qt\4.6.2\src\plugins\sqldrivers\mysql} and run the
following command:
\list
\li \c{qmake "INCLUDEPATH+=C:/MySQL/MySQL51/include" "LIBS+=-L. mysql" mysql.pro}
\endlist
\li Now the following libraries are ready in \c{C:\Qt\4.6.2\plugins\sqldrivers}.
\list
\li \c{libqsqlmysql4.a}
\li \c{libqsqlmysqld4.a}
\li \c{qsqlmysql4.dll}
\li \c{qsqlmysqld4.dll}
\endlist
To use the SDK and QtCreator directly, copy these libraries to
your \c{C:\Qt\...\qt\plugins\sqldrivers\}, and copy
\c{C:\MySQL\MySQL51\lib\opt\libmysql.dll} to your \c{C:\Qt\...\qt\bin\}.
\endlist
\target QOCI
\section2 QOCI for the Oracle Call Interface (OCI)

View File

@ -2077,6 +2077,10 @@ int QMacStyle::pixelMetric(PixelMetric metric, const QStyleOption *opt, const QW
ret = 0;
break;
case PM_MenuBarPanelWidth:
ret = 0;
break;
case QStyle::PM_MenuDesktopFrameWidth:
ret = 5;
break;
@ -6259,6 +6263,10 @@ QSize QMacStyle::sizeFromContents(ContentsType ct, const QStyleOption *opt,
sz = QSize(w, h);
}
break;
case CT_MenuBarItem:
if (!sz.isEmpty())
sz += QSize(12, 4); // Constants from QWindowsStyle
break;
case CT_ToolButton:
sz.rwidth() += 10;
sz.rheight() += 10;