Merge "Merge remote-tracking branch 'origin/5.13' into 5.14"

This commit is contained in:
Liang Qi 2019-10-10 09:13:49 +02:00
commit 386768298c
17 changed files with 56 additions and 25 deletions

View File

@ -758,9 +758,7 @@ defineTest(qtConfLibrary_pkgConfig) {
!qtConfResolveLibs($${1}.libs, $$libs): \ !qtConfResolveLibs($${1}.libs, $$libs): \
return(false) return(false)
contains($${1}.libs, ".*\\.$${QMAKE_EXTENSION_STATICLIB}$") { contains($${1}.libs, ".*\\.$${QMAKE_EXTENSION_STATICLIB}$") {
qtRunLoggedCommand("$$pkg_config --static --libs-only-L $$args", libpaths)|return(false) qtRunLoggedCommand("$$pkg_config --static --libs $$args", libs)|return(false)
qtRunLoggedCommand("$$pkg_config --static --libs-only-l $$args", libs)|return(false)
eval(libs = $$libpaths $$libs)
!qtConfResolveLibs($${1}.libs, $$libs): \ !qtConfResolveLibs($${1}.libs, $$libs): \
return(false) return(false)
} }

View File

@ -16,7 +16,7 @@ PROVIDER_NAME = qt$$lower($$MODULE)
INCLUDEPATH += $$absolute_path($$TRACEGEN_DIR, $$OUT_PWD) INCLUDEPATH += $$absolute_path($$TRACEGEN_DIR, $$OUT_PWD)
HEADER_PATH = $$OUT_PWD/$$TRACEGEN_DIR/$${PROVIDER_NAME}_tracepoints_p$${first(QMAKE_EXT_H)} HEADER_PATH = $$OUT_PWD/$$TRACEGEN_DIR/$${PROVIDER_NAME}_tracepoints_p$${first(QMAKE_EXT_H)}
!force_bootstrap:if(qtConfig(lttng)|qtConfig(etw)) { if(qtConfig(lttng)|qtConfig(etw)) {
SOURCE_PATH = $$OUT_PWD/$$TRACEGEN_DIR/$${PROVIDER_NAME}_tracepoints$${first(QMAKE_EXT_CPP)} SOURCE_PATH = $$OUT_PWD/$$TRACEGEN_DIR/$${PROVIDER_NAME}_tracepoints$${first(QMAKE_EXT_CPP)}
isEmpty(BUILDS)|build_pass { isEmpty(BUILDS)|build_pass {

View File

@ -27,8 +27,8 @@ distclean: clean_all
$(EXPORT_SUBTARGETS): % : %-build $(EXPORT_SUBTARGETS): % : %-build
# Generic targets # Generic targets
%_first: $(firstword $(call targets, %)) ; %_first: $(EXPORT_PRE_TARGETDEPS) $(firstword $(call targets, %)) ;
%_all: $(call targets, %) ; %_all: $(EXPORT_PRE_TARGETDEPS) $(call targets, %) ;
# Actions # Actions
%-build: ACTION = build %-build: ACTION = build

View File

@ -29,6 +29,8 @@ cmd = "$$QMAKE_QMAKE $$system_quote($$_PRO_FILE_) -spec macx-xcode $$args"
debug(1, "Generating Xcode project in $$OUT_PWD using '$$cmd'") debug(1, "Generating Xcode project in $$OUT_PWD using '$$cmd'")
system("$$QMAKE_CD $$system_quote($$OUT_PWD) && $$cmd") system("$$QMAKE_CD $$system_quote($$OUT_PWD) && $$cmd")
QMAKE_EXTRA_VARIABLES += PRE_TARGETDEPS
# Subtargets # Subtargets
for(build, BUILDS): \ for(build, BUILDS): \

View File

@ -232,7 +232,7 @@ QT_BEGIN_NAMESPACE
\row \li DocumentsLocation \row \li DocumentsLocation
\li "~/Documents" \li "~/Documents"
\row \li FontsLocation \row \li FontsLocation
\li "~/.fonts" \li "~/.fonts", "~/.local/share/fonts", "/usr/local/share/fonts", "/usr/share/fonts"
\row \li ApplicationsLocation \row \li ApplicationsLocation
\li "~/.local/share/applications", "/usr/local/share/applications", "/usr/share/applications" \li "~/.local/share/applications", "/usr/local/share/applications", "/usr/share/applications"
\row \li MusicLocation \row \li MusicLocation

View File

@ -339,6 +339,9 @@ QStringList QStandardPaths::standardLocations(StandardLocation type)
break; break;
case FontsLocation: case FontsLocation:
dirs += QDir::homePath() + QLatin1String("/.fonts"); dirs += QDir::homePath() + QLatin1String("/.fonts");
dirs += xdgDataDirs();
for (int i = 1; i < dirs.count(); ++i)
dirs[i].append(QLatin1String("/fonts"));
break; break;
default: default:
break; break;

View File

@ -871,8 +871,12 @@ bool QDBusConnection::disconnect(const QString &service, const QString &path, co
This function does not replace existing objects: if there is already an object registered at This function does not replace existing objects: if there is already an object registered at
path \a path, this function will return false. Use unregisterObject() to unregister it first. path \a path, this function will return false. Use unregisterObject() to unregister it first.
The ExportChildObjects flag exports child objects on D-Bus based on the
path of the registered objects and the QObject::objectName of the child.
Therefore, it is important for the child object to have an object name.
You cannot register an object as a child object of an object that You cannot register an object as a child object of an object that
was registered with QDBusConnection::ExportChildObjects. was registered with ExportChildObjects.
*/ */
bool QDBusConnection::registerObject(const QString &path, QObject *object, RegisterOptions options) bool QDBusConnection::registerObject(const QString &path, QObject *object, RegisterOptions options)
{ {
@ -891,8 +895,12 @@ bool QDBusConnection::registerObject(const QString &path, QObject *object, Regis
This function does not replace existing objects: if there is already an object registered at This function does not replace existing objects: if there is already an object registered at
path \a path, this function will return false. Use unregisterObject() to unregister it first. path \a path, this function will return false. Use unregisterObject() to unregister it first.
The ExportChildObjects flag exports child objects on D-Bus based on the
path of the registered objects and the QObject::objectName of the child.
Therefore, it is important for the child object to have an object name.
You cannot register an object as a child object of an object that You cannot register an object as a child object of an object that
was registered with QDBusConnection::ExportChildObjects. was registered with ExportChildObjects.
*/ */
bool QDBusConnection::registerObject(const QString &path, const QString &interface, QObject *object, RegisterOptions options) bool QDBusConnection::registerObject(const QString &path, const QString &interface, QObject *object, RegisterOptions options)
{ {

View File

@ -414,7 +414,7 @@ QFrameInfo QMoviePrivate::infoForFrame(int frameNumber)
} else { } else {
// We've read all frames now. Return an end marker // We've read all frames now. Return an end marker
haveReadAll = true; haveReadAll = true;
return QFrameInfo::endMarker(); return frameNumber == greatestFrameNumber + 1 ? QFrameInfo::endMarker() : QFrameInfo();
} }
} }
} }

View File

@ -358,7 +358,7 @@ void QTextOdfWriter::writeBlock(QXmlStreamWriter &writer, const QTextBlock &bloc
int precedingSpaces = 0; int precedingSpaces = 0;
int exportedIndex = 0; int exportedIndex = 0;
for (int i=0; i <= fragmentText.count(); ++i) { for (int i=0; i <= fragmentText.count(); ++i) {
QChar character = fragmentText[i]; QChar character = (i == fragmentText.count() ? QChar() : fragmentText.at(i));
bool isSpace = character.unicode() == ' '; bool isSpace = character.unicode() == ' ';
// find more than one space. -> <text:s text:c="2" /> // find more than one space. -> <text:s text:c="2" />

View File

@ -152,6 +152,18 @@
"features": [ "features": [
"disable_program_cache" "disable_program_cache"
] ]
} },
{
"id": 13,
"description": "Disable DesktopGL on Windows with Mobile Intel(R) 4 Series Express Chipset Family graphics card (QTBUG-58772)",
"vendor_id": "0x8086",
"device_id": [ "0x2A42" ],
"os": {
"type": "win"
},
"features": [
"disable_desktopgl"
]
}
] ]
} }

View File

@ -773,7 +773,7 @@ void QXcbScreen::updateRefreshRate(xcb_randr_mode_t mode)
xcb_randr_mode_info_t *modeInfo = modesIter.data; xcb_randr_mode_info_t *modeInfo = modesIter.data;
if (modeInfo->id == mode) { if (modeInfo->id == mode) {
const uint32_t dotCount = modeInfo->htotal * modeInfo->vtotal; const uint32_t dotCount = modeInfo->htotal * modeInfo->vtotal;
m_refreshRate = (dotCount != 0) ? modeInfo->dot_clock / dotCount : 0; m_refreshRate = (dotCount != 0) ? modeInfo->dot_clock / qreal(dotCount) : 0;
m_mode = mode; m_mode = mode;
break; break;
} }

View File

@ -226,7 +226,7 @@ private:
QRect m_availableGeometry; QRect m_availableGeometry;
Qt::ScreenOrientation m_orientation = Qt::PrimaryOrientation; Qt::ScreenOrientation m_orientation = Qt::PrimaryOrientation;
QXcbCursor *m_cursor; QXcbCursor *m_cursor;
int m_refreshRate = 60; qreal m_refreshRate = 60.0;
QEdidParser m_edid; QEdidParser m_edid;
}; };

View File

@ -70,7 +70,7 @@ src_winmain.depends = sub-corelib # just for the module .pri file
src_corelib.subdir = $$PWD/corelib src_corelib.subdir = $$PWD/corelib
src_corelib.target = sub-corelib src_corelib.target = sub-corelib
src_corelib.depends = src_tools_moc src_tools_rcc src_corelib.depends = src_tools_moc src_tools_rcc src_tools_tracegen
src_xml.subdir = $$PWD/xml src_xml.subdir = $$PWD/xml
src_xml.target = sub-xml src_xml.target = sub-xml
@ -157,17 +157,12 @@ src_android.subdir = $$PWD/android
src_3rdparty_freetype.depends += src_corelib src_3rdparty_freetype.depends += src_corelib
} }
} }
SUBDIRS += src_tools_bootstrap src_tools_moc src_tools_rcc SUBDIRS += src_tools_bootstrap src_tools_moc src_tools_rcc src_tools_tracegen
qtConfig(regularexpression):pcre2 { qtConfig(regularexpression):pcre2 {
SUBDIRS += src_3rdparty_pcre2 SUBDIRS += src_3rdparty_pcre2
src_corelib.depends += src_3rdparty_pcre2 src_corelib.depends += src_3rdparty_pcre2
} }
TOOLS = src_tools_moc src_tools_rcc src_tools_qlalr TOOLS = src_tools_moc src_tools_rcc src_tools_tracegen src_tools_qlalr
!force_bootstrap:if(qtConfig(lttng)|qtConfig(etw)) {
SUBDIRS += src_tools_tracegen
src_corelib.depends += src_tools_tracegen
TOOLS += src_tools_tracegen
}
SUBDIRS += src_corelib src_tools_qlalr SUBDIRS += src_corelib src_tools_qlalr
win32:SUBDIRS += src_winmain win32:SUBDIRS += src_winmain
qtConfig(network) { qtConfig(network) {

View File

@ -42,6 +42,7 @@
#include <qvector.h> #include <qvector.h>
#include <qstring.h> #include <qstring.h>
#include <qstringlist.h>
#include <qtypeinfo.h> #include <qtypeinfo.h>
struct Tracepoint struct Tracepoint

View File

@ -788,10 +788,12 @@ void QOpenGLWidgetPrivate::initialize()
if (initialized) if (initialized)
return; return;
// Get our toplevel's context with which we will share in order to make the // If no global shared context get our toplevel's context with which we
// texture usable by the underlying window's backingstore. // will share in order to make the texture usable by the underlying window's backingstore.
QWidget *tlw = q->window(); QWidget *tlw = q->window();
QOpenGLContext *shareContext = get(tlw)->shareContext(); QOpenGLContext *shareContext = qt_gl_global_share_context();
if (!shareContext)
shareContext = get(tlw)->shareContext();
// If shareContext is null, showing content on-screen will not work. // If shareContext is null, showing content on-screen will not work.
// However, offscreen rendering and grabFramebuffer() will stay fully functional. // However, offscreen rendering and grabFramebuffer() will stay fully functional.

View File

@ -772,6 +772,7 @@ void QTextEdit::setAlignment(Qt::Alignment a)
QTextCursor cursor = d->control->textCursor(); QTextCursor cursor = d->control->textCursor();
cursor.mergeBlockFormat(fmt); cursor.mergeBlockFormat(fmt);
d->control->setTextCursor(cursor); d->control->setTextCursor(cursor);
d->relayoutDocument();
} }
/*! /*!

View File

@ -62,6 +62,7 @@ private slots:
#ifndef QT_NO_WIDGETS #ifndef QT_NO_WIDGETS
void infiniteLoop(); void infiniteLoop();
#endif #endif
void emptyMovie();
}; };
// Testing get/set functions // Testing get/set functions
@ -220,5 +221,13 @@ void tst_QMovie::infiniteLoop()
} }
#endif #endif
void tst_QMovie::emptyMovie()
{
QMovie movie;
movie.setCacheMode(QMovie::CacheAll);
movie.jumpToFrame(100);
QCOMPARE(movie.currentFrameNumber(), -1);
}
QTEST_MAIN(tst_QMovie) QTEST_MAIN(tst_QMovie)
#include "tst_qmovie.moc" #include "tst_qmovie.moc"