Merge remote-tracking branch 'origin/5.8' into dev

Blacklist tst_QMenuBar::taskQTBUG46812_doNotLeaveMenubarHighlighted() on macOS.

Conflicts:
	mkspecs/features/mac/default_post.prf
	mkspecs/features/mac/sdk.prf
	mkspecs/features/uikit/default_post.prf
	mkspecs/features/uikit/sdk.prf
	src/angle/src/libEGL/libEGL.pro
	src/platformsupport/fontdatabases/fontdatabases.pro
	src/platformsupport/platformsupport.pro
	src/plugins/platforms/cocoa/qnswindowdelegate.mm
	src/plugins/platforms/direct2d/qwindowsdirect2dintegration.cpp
	src/plugins/platforms/ios/ios.pro
	src/plugins/platforms/ios/kernel.pro
	tests/auto/widgets/widgets/qmenubar/BLACKLIST
	tests/auto/widgets/widgets/qmenubar/tst_qmenubar.cpp

Task-number: QTBUG-56853
Change-Id: If58785210feee3550892fc7768cce90e75a2416c
This commit is contained in:
Liang Qi 2016-11-01 10:27:41 +01:00
commit d7e4980132
559 changed files with 17561 additions and 14201 deletions

View File

@ -217,8 +217,6 @@ sub classNames {
$$requires = "";
my $ihdrbase = basename($iheader);
my $classname = $classnames{$ihdrbase};
push @ret, split(/,/, $classname) if ($classname);
my $parsable = "";
if(open(F, "<$iheader")) {
@ -928,6 +926,7 @@ foreach my $lib (@modules_to_sync) {
my $pri_install_classes = "";
my $pri_install_files = "";
my $pri_install_pfiles = "";
my $pri_install_ipfiles = "";
my $pri_install_qpafiles = "";
my $pri_injections = "";
my $pri_clean_files = "";
@ -1042,7 +1041,11 @@ foreach my $lib (@modules_to_sync) {
&& $header =~ /_p\.h$/ && $subdir !~ /3rdparty/;
check_header($lib, $header, $iheader, $public_header, $private_header);
}
my @classes = $public_header && (!$minimal && $is_qt) ? classNames($iheader, \$clean_header, \$requires) : ();
my @classes = ();
push @classes, classNames($iheader, \$clean_header, \$requires)
if (!$shadow && $public_header && !$minimal && $is_qt);
my $classname = $classnames{$header};
push @classes, split(/,/, $classname) if ($classname);
if($showonly) {
print "$header [$lib]\n";
foreach(@classes) {
@ -1096,6 +1099,9 @@ foreach my $lib (@modules_to_sync) {
elsif ($qpa_header) {
$pri_install_qpafiles.= "$pri_install_iheader ";;
}
elsif ($shadow) {
$pri_install_ipfiles .= "$pri_install_iheader ";
}
else {
$pri_install_pfiles.= "$pri_install_iheader ";;
}
@ -1240,6 +1246,7 @@ foreach my $lib (@modules_to_sync) {
$headers_pri_contents .= "SYNCQT.HEADER_FILES = $pri_install_files\n";
$headers_pri_contents .= "SYNCQT.HEADER_CLASSES = $pri_install_classes\n";
$headers_pri_contents .= "SYNCQT.PRIVATE_HEADER_FILES = $pri_install_pfiles\n";
$headers_pri_contents .= "SYNCQT.INJECTED_PRIVATE_HEADER_FILES = $pri_install_ipfiles\n";
$headers_pri_contents .= "SYNCQT.QPA_HEADER_FILES = $pri_install_qpafiles\n";
$headers_pri_contents .= "SYNCQT.CLEAN_HEADER_FILES = $pri_clean_files\n";
$headers_pri_contents .= "SYNCQT.INJECTIONS = $pri_injections\n";

View File

@ -1,6 +1 @@
mingw {
TMPPATH = $$(INCLUDE)
QMAKE_INCDIR_POST += $$split(TMPPATH, $$QMAKE_DIRLIST_SEP)
TMPPATH = $$(LIB)
QMAKE_LIBDIR_POST += $$split(TMPPATH, $$QMAKE_DIRLIST_SEP)
}
# This file exists only to detach the tests from the surroundings.

View File

@ -0,0 +1 @@
_MSC_FULL_VER

View File

@ -247,11 +247,12 @@ defineTest(qtConfTest_checkCompiler) {
$${1}.compilerId = "icc"
$${1}.compilerVersion = $$replace(version, "icpc version ([0-9.]+).*", "\\1")
} else: msvc {
qtRunLoggedCommand("$$QMAKE_CXX /? 2>&1", version)|return(false)
command = $$QMAKE_CXX /EP /nologo $$source $$system_quote($$QMAKE_CONFIG_TESTS_DIR/win/msvc_version.cpp)
qtRunLoggedCommand("$$command", version)|return(false)
version = "$$version"
$${1}.compilerDescription = "MSVC"
$${1}.compilerId = "cl"
$${1}.compilerVersion = $$replace(version, "^.*Compiler Version ([0-9.]+) for.*$", "\\1")
$${1}.compilerVersion = $$replace(version, "^.*([0-9]{2})([0-9]{2})([0-9]{5}).*$", "\\1.\\2.\\3")
} else {
return(false)
}
@ -325,8 +326,9 @@ defineTest(qtConfOutput_qreal) {
defineTest(qtConfOutput_pkgConfig) {
!$${2}: return()
PKG_CONFIG = $$eval($${currentConfig}.tests.pkg-config.pkgConfig)
export(PKG_CONFIG)
PKG_CONFIG_EXECUTABLE = $$eval($${currentConfig}.tests.pkg-config.pkgConfig)
qtConfOutputVar(assign, "privatePro", "PKG_CONFIG_EXECUTABLE", $$PKG_CONFIG_EXECUTABLE)
export(PKG_CONFIG_EXECUTABLE)
# this method also exports PKG_CONFIG_(LIB|SYSROOT)DIR, so that tests using pkgConfig will work correctly
PKG_CONFIG_SYSROOT_DIR = $$eval($${currentConfig}.tests.pkg-config.pkgConfigSysrootDir)
!isEmpty(PKG_CONFIG_SYSROOT_DIR) {

View File

@ -474,7 +474,7 @@
*/
/*!
\externalpage http://git.iksaif.net/?p=qsslkey-p11.git
\externalpage https://github.com/iksaif/qsslkey-p11
\title qsslkey example
*/

View File

@ -7,7 +7,6 @@ defines += Q_QDOC \
QT_KEYPAD_NAVIGATION \
QT_NO_EGL \
QT3_SUPPORT \
Q_DEAD_CODE_FROM_QT4_.* \
Q_OS_.* \
Q_BYTE_ORDER \
QT_DEPRECATED \

View File

@ -1,4 +1,4 @@
pre {
pre, .LegaleseLeft {
background-color: #f0f0f0;
font-family: Courier, monospace;
font-weight: 600;

View File

@ -18,8 +18,12 @@ img {
height: auto;
}
.content {
.content .border img {
box-shadow:3px 3px 8px 3px rgba(200,200,200,0.5)
}
.content .border .player {
box-shadow:3px 3px 8px 3px rgba(200,200,200,0.5)
}
.content .indexboxcont li {
@ -424,7 +428,7 @@ table styles
/* table with border alternative colours*/
table, pre {
table, pre, .LegaleseLeft {
-moz-border-radius: 7px 7px 7px 7px;
-webkit-border-radius: 7px 7px 7px 7px;
border-radius: 7px 7px 7px 7px;
@ -481,6 +485,10 @@ table, pre {
margin: 0px
}
.LegaleseLeft {
font-family: monospace;
white-space: pre-wrap;
}
/* table bodless & white*/
.borderless {
@ -543,7 +551,7 @@ ol.a > li{
text-align: left
}
.cpp {
.cpp, .LegaleseLeft {
display: block;
margin: 10px;
overflow: auto;

View File

@ -1280,6 +1280,12 @@ li a.active {
margin-top:0.75em;
max-width:100%
}
.context .border img {
box-shadow:3px 3px 8px 3px rgba(200,200,200,0.5)
}
.context .border .player {
box-shadow:3px 3px 8px 3px rgba(200,200,200,0.5)
}
.context table {
vertical-align:initial
}
@ -1364,7 +1370,7 @@ div.qt_commercial {
border-top:5px solid #5caa15;
margin-bottom:50px
}
pre {
pre, .LegaleseLeft {
background-color:#404244;
color:#fff;
display:block;
@ -1375,6 +1381,10 @@ pre {
padding:25px;
margin-top:0.75em
}
.mainContent .LegaleseLeft p {
color:#fff;
white-space: pre-wrap
}
.copy_text {
background-color:#46a2da;
color:#fff;

View File

@ -261,7 +261,7 @@
\snippet widgets/calculator/calculator.cpp 20
Like in \c additiveOperatorClicked(), we start by handing any
Like in \c additiveOperatorClicked(), we start by handling any
pending multiplicative and additive operators. Then we display \c
sumSoFar and reset the variable to zero. Resetting the variable
to zero is necessary to avoid counting the value twice.

View File

@ -128,7 +128,7 @@ void ColorEdit::mousePressEvent(QMouseEvent *event)
QColorDialog dialog(color, 0);
dialog.setOption(QColorDialog::ShowAlphaChannel, true);
// The ifdef block is a workaround for the beta, TODO: remove when bug 238525 is fixed
#ifdef Q_DEAD_CODE_FROM_QT4_MAC
#if 0 // Used to be included in Qt4 for Q_WS_MAC
dialog.setOption(QColorDialog::DontUseNativeDialog, true);
#endif
dialog.move(280, 120);

View File

@ -53,7 +53,7 @@
#include "languagechooser.h"
#include "mainwindow.h"
#ifdef Q_DEAD_CODE_FROM_QT4_MAC
#if 0 // Used to be included in Qt4 for Q_WS_MAC
QT_BEGIN_NAMESPACE
extern void qt_mac_set_menubar_merge(bool merge);
QT_END_NAMESPACE
@ -92,7 +92,7 @@ LanguageChooser::LanguageChooser(const QString& defaultLang, QWidget *parent)
mainLayout->addWidget(buttonBox);
setLayout(mainLayout);
#ifdef Q_DEAD_CODE_FROM_QT4_MAC
#if 0 // Used to be included in Qt4 for Q_WS_MAC
qt_mac_set_menubar_merge(false);
#endif

View File

@ -15,8 +15,8 @@ SOURCES = main.cpp \
LIBS = -L../plugins
macx-xcode:qtConfig(simulator_and_device) {
LIBS += -lpnp_basictools$($${QMAKE_XCODE_LIBRARY_PLATFORM_SUFFIX_SETTING})$($${QMAKE_XCODE_LIBRARY_SUFFIX_SETTING})
macx-xcode {
LIBS += -lpnp_basictools$($${QMAKE_XCODE_LIBRARY_SUFFIX_SETTING})
} else {
LIBS += -lpnp_basictools
if(!debug_and_release|build_pass):CONFIG(debug, debug|release) {

View File

@ -14,4 +14,4 @@ target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/plugandpaint/plugins
INSTALLS += target
CONFIG += install_ok # Do not cargo-cult this!
uikit: CONFIG += debug_and_release simulator_and_device
uikit: CONFIG += debug_and_release

View File

@ -14,4 +14,4 @@ target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/plugandpaint/plugins
INSTALLS += target
CONFIG += install_ok # Do not cargo-cult this!
uikit: CONFIG += debug_and_release simulator_and_device
uikit: CONFIG += debug_and_release

View File

@ -55,7 +55,7 @@ while (<STDIN>) {
my $comment = " /* $1 */";
while (my $line = <HDR>) {
# Match a struct or class declaration, but not a forward declaration
$line =~ /^(?:struct|class) (?:Q_.*_EXPORT)? (\w+)(?!;)/ or next;
$line =~ /^(?:struct|class|namespace) (?:Q_.*_EXPORT)? (\w+)(?!;)/ or next;
print $comment if $comment;
printf " *%d%s*;\n", length $1, $1;
$comment = 0;

View File

@ -23,49 +23,4 @@ CONFIG = \
unset(today)
}
isEmpty(QMAKE_DEFAULT_INCDIRS):!host_build {
#
# Get default include and library paths from compiler
#
gcc {
!equals(QMAKE_HOST.os, Windows) {
cmd_prefix = "LC_ALL=C"
cmd_suffix = "</dev/null >/dev/null"
} else {
cmd_prefix = "set LC_ALL=C&"
cmd_suffix = "<NUL >NUL"
}
output = $$system("$$cmd_prefix $$QMAKE_CXX $$QMAKE_CXXFLAGS -xc++ -E -v - 2>&1 $$cmd_suffix", lines)
add_includes = false
for (line, output) {
line ~= s/^ *// # remove leading spaces
contains(line, "LIBRARY_PATH=.*") {
line ~= s/^LIBRARY_PATH=// # remove leading LIBRARY_PATH=
paths = $$split(line, $$QMAKE_DIRLIST_SEP)
for (path, paths): \
QMAKE_DEFAULT_LIBDIRS += $$clean_path($$path)
} else: contains(line, "$${LITERAL_HASH}include <.*") { # #include <...> search starts here:
add_includes = true
} else: contains(line, "End of search.*") {
add_includes = false
} else: $$add_includes {
!contains(line, ".* \\(framework directory\\)"): \
QMAKE_DEFAULT_INCDIRS += $$clean_path($$line)
}
}
QMAKE_DEFAULT_LIBDIRS = $$unique(QMAKE_DEFAULT_LIBDIRS)
} else: msvc {
LIB = $$getenv("LIB")
QMAKE_DEFAULT_LIBDIRS = $$split(LIB, $$QMAKE_DIRLIST_SEP)
INCLUDE = $$getenv("INCLUDE")
QMAKE_DEFAULT_INCDIRS = $$split(INCLUDE, $$QMAKE_DIRLIST_SEP)
}
unix {
isEmpty(QMAKE_DEFAULT_INCDIRS): QMAKE_DEFAULT_INCDIRS = /usr/include /usr/local/include
isEmpty(QMAKE_DEFAULT_LIBDIRS): QMAKE_DEFAULT_LIBDIRS = /lib /usr/lib
}
!isEmpty(QMAKE_DEFAULT_INCDIRS): cache(QMAKE_DEFAULT_INCDIRS, set stash)
!isEmpty(QMAKE_DEFAULT_LIBDIRS): cache(QMAKE_DEFAULT_LIBDIRS, set stash)
}
load(toolchain)

View File

@ -1,12 +1,9 @@
defineTest(addExclusiveBuilds) {
lessThan(ARGC, 2): \
error("addExclusiveBuilds() requires at least two arguments")
!$$join(ARGS, _and_):!fix_output_dirs: \
defineTest(addExclusiveBuildsProper) {
!$$1:!fix_output_dirs: \
return(true)
for(build, ARGS) {
for(build, 2) {
isEmpty($${build}.name) {
$${build}.name = $$title($$build)
export($${build}.name)
@ -20,7 +17,7 @@ defineTest(addExclusiveBuilds) {
export($${build}.dir_affix)
}
$${build}.exclusive = $$ARGS
$${build}.exclusive = $$2
export($${build}.exclusive)
QMAKE_EXCLUSIVE_BUILDS += $$build
@ -33,6 +30,13 @@ defineTest(addExclusiveBuilds) {
return(true)
}
defineTest(addExclusiveBuilds) {
lessThan(ARGC, 2): \
error("addExclusiveBuilds() requires at least two arguments")
addExclusiveBuildsProper($$join(ARGS, _and_), $$ARGS)
}
# Default directories to process
QMAKE_DIR_REPLACE = OBJECTS_DIR MOC_DIR RCC_DIR PRECOMPILED_DIR QGLTF_DIR DESTDIR
QMAKE_DIR_REPLACE_SANE += QGLTF_DIR

View File

@ -66,7 +66,7 @@ macx-xcode {
QMAKE_MAC_XCODE_SETTINGS += only_active_arch
} else {
VALID_ARCHS =
!simulator|simulator_and_device: VALID_ARCHS += $$QMAKE_APPLE_DEVICE_ARCHS
device|!simulator: VALID_ARCHS += $$QMAKE_APPLE_DEVICE_ARCHS
simulator: VALID_ARCHS += $$QMAKE_APPLE_SIMULATOR_ARCHS
single_arch: VALID_ARCHS = $$first(VALID_ARCHS)

View File

@ -1,4 +1,4 @@
CONFIG = asset_catalogs sdk rez $$CONFIG
CONFIG = asset_catalogs rez $$CONFIG
load(default_pre)
isEmpty(QMAKE_XCODE_DEVELOPER_PATH) {

View File

@ -1,6 +1,7 @@
# Objective-C/C++ sources go in SOURCES, like all other sources
SOURCES += $$OBJECTIVE_SOURCES
unset(OBJECTIVE_SOURCES)
# Strip C/C++ flags from QMAKE_OBJECTIVE_CFLAGS just in case
QMAKE_OBJECTIVE_CFLAGS -= $$QMAKE_CFLAGS $$QMAKE_CXXFLAGS
@ -8,3 +9,4 @@ QMAKE_OBJECTIVE_CFLAGS -= $$QMAKE_CFLAGS $$QMAKE_CXXFLAGS
# Add Objective-C/C++ flags to C/C++ flags, the compiler can handle it
QMAKE_CFLAGS += $$QMAKE_OBJECTIVE_CFLAGS
QMAKE_CXXFLAGS += $$QMAKE_OBJECTIVE_CFLAGS
unset(QMAKE_OBJECTIVE_CFLAGS)

View File

@ -54,24 +54,27 @@ for(tool, $$list(QMAKE_CC QMAKE_CXX QMAKE_FIX_RPATH QMAKE_AR QMAKE_RANLIB QMAKE_
tvos: deployment_target = $$QMAKE_TVOS_DEPLOYMENT_TARGET
watchos: deployment_target = $$QMAKE_WATCHOS_DEPLOYMENT_TARGET
!simulator|simulator_and_device: device_archs = $$QMAKE_APPLE_DEVICE_ARCHS
device|!simulator: device_archs = $$QMAKE_APPLE_DEVICE_ARCHS
simulator: simulator_archs = $$QMAKE_APPLE_SIMULATOR_ARCHS
archs = $$device_archs $$simulator_archs
isEmpty(archs): \
error("QMAKE_APPLE_DEVICE_ARCHS or QMAKE_APPLE_SIMULATOR_ARCHS must contain at least one architecture")
single_arch {
device_archs = $$first(device_archs)
simulator_archs = $$first(simulator_archs)
archs = $$first(archs)
}
# If we're doing a simulator_and_device build, device and simulator architectures
# If we're doing a simulator and device build, device and simulator architectures
# use different paths and flags for the sysroot and deployment target switch, so we
# must multiplex them across multiple architectures using -Xarch. Otherwise we fall
# back to the simple path. This is not strictly necessary but results in cleaner
# command lines and makes it easier for people to override EXPORT_VALID_ARCHS to
# limit individual rules to a different set of architecture(s) from the overall
# build (such as machtest in QtCore).
simulator_and_device {
simulator:device {
QMAKE_XARCH_CFLAGS =
QMAKE_XARCH_LFLAGS =
QMAKE_EXTRA_VARIABLES += QMAKE_XARCH_CFLAGS QMAKE_XARCH_LFLAGS

View File

@ -0,0 +1,5 @@
# Ensure that we process sdk.prf first, as it will update QMAKE_CXX,
# which the default path determination uses.
sdk: load(sdk)
load(toolchain)

View File

@ -79,7 +79,7 @@ moc_source.CONFIG = no_link moc_verify
moc_source.dependency_type = TYPE_C
moc_source.commands = ${QMAKE_FUNC_mocCmdBase} ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
moc_source.output = $$MOC_DIR/$${QMAKE_CPP_MOD_MOC}${QMAKE_FILE_BASE}$${QMAKE_EXT_CPP_MOC}
moc_source.input = SOURCES OBJECTIVE_SOURCES
moc_source.input = SOURCES
moc_source.name = MOC ${QMAKE_FILE_IN}
moc_source.depends += $$WIN_INCLUDETEMP $$moc_predefs.output
silent:moc_source.commands = @echo moc ${QMAKE_FILE_IN} && $$moc_source.commands

View File

@ -15,7 +15,6 @@ TEMPLATE = lib
CONFIG += plugin
if(win32|mac):!macx-xcode {
qtConfig(simulator_and_device): CONFIG += simulator_and_device
qtConfig(debug_and_release): CONFIG += debug_and_release
qtConfig(build_all): CONFIG += build_all
}

View File

@ -1,3 +0,0 @@
qtConfig(system-freetype) {
QMAKE_USE_PRIVATE += freetype/linkonly
}

View File

@ -1,6 +0,0 @@
CONFIG += qpa/basicunixfontdatabase
qtConfig(fontconfig) {
DEFINES += Q_FONTCONFIGDATABASE
QMAKE_USE_PRIVATE += fontconfig/linkonly
}

View File

@ -71,6 +71,7 @@ for(ever) {
MODULE_INCLUDES = $$eval(QT.$${QTLIB}.includes)
MODULE_LIBS = $$eval(QT.$${QTLIB}.libs)
MODULE_FRAMEWORKS = $$eval(QT.$${QTLIB}.frameworks)
MODULE_USES = $$eval(QT.$${QTLIB}.uses)
MODULE_CONFIG = $$eval(QT.$${QTLIB}.module_config)
isEmpty(MODULE_NAME) {
@ -141,6 +142,7 @@ for(ever) {
}
}
}
QMAKE_USE$$var_sfx += $$MODULE_USES
# Add capabilities as defined by modules used in the project
winrt {
MODULE_WINRT_CAPABILITIES = $$eval(QT.$${QTLIB}.winrt_capabilities)
@ -290,7 +292,8 @@ contains(TEMPLATE, .*app) {
autoplugs =
for (qtmod, qt_module_deps) {
for (ptype, QT.$${qtmod}.plugin_types) {
isEmpty(QTPLUGIN.$$ptype) {
nptype = $$replace(ptype, [-/], _)
isEmpty(QTPLUGIN.$$nptype) {
for (plug, QT_PLUGINS) {
equals(QT_PLUGIN.$${plug}.TYPE, $$ptype) {
for (dep, QT_PLUGIN.$${plug}.EXTENDS) {
@ -303,7 +306,7 @@ contains(TEMPLATE, .*app) {
}
}
} else {
plug = $$eval(QTPLUGIN.$$ptype)
plug = $$eval(QTPLUGIN.$$nptype)
!equals(plug, -): \
autoplugs += $$plug
}

View File

@ -36,3 +36,27 @@ INSTALLS += target
load(qt_targets)
load(qt_common)
no_launch_target: return()
load(resolve_target)
launch.commands = $$shell_quote($$shell_path($$QMAKE_RESOLVED_TARGET))
QMAKE_EXTRA_TARGETS += launch
# Add environment for non-installed builds.
QT_TOOL_NAME = target
qtAddTargetEnv(launch.commands, QT)
isEmpty(BUILDS)|build_pass {
launch.depends = first
} else {
# For exclusive builds, run the app only once.
launch.CONFIG = recursive
launch.target = launch_all
launch.recurse_target = launch
launch.commands =
launch_first.depends = $$eval($$first(BUILDS).target)-launch
launch_first.target = launch
QMAKE_EXTRA_TARGETS += launch_first
}

View File

@ -376,7 +376,7 @@ defineReplace(qtConfPkgConfig) {
$$host {
pkg_config = $$qtConfFindInPath("pkg-config")
} else {
pkg_config = "$$qtConfPkgConfigEnv()$$PKG_CONFIG"
pkg_config = "$$qtConfPkgConfigEnv()$$PKG_CONFIG_EXECUTABLE"
}
return($$pkg_config)
@ -557,18 +557,6 @@ defineReplace(qtConfLibraryArgs) {
return($$qmake_args)
}
defineReplace(qtConfGetHexVersion) {
version = $$split(1, '.')
number =
for(i, 0..2) {
n = $$member(version, $$i)
isEmpty(n): n = 0
number += $$format_number($$n, obase=16 zeropad width=2)
}
number = "0x$$join(number)"
return($$number)
}
defineTest(qtConfExportLibrary) {
isEmpty(2): return()
!$$qtConfEvaluate($$eval($${1}.export)): return()
@ -578,7 +566,6 @@ defineTest(qtConfExportLibrary) {
eval(libs = $$eval($${1}.libs))
eval(cflags = $$eval($${1}.cflags))
eval(includes = $$eval($${1}.includedir))
version = $$eval($${1}.version)
# Split $$cflags into stuff that goes into DEFINES, INCLUDEPATH, and other stuff.
defines =
@ -606,14 +593,6 @@ defineTest(qtConfExportLibrary) {
$$eval($${1}.builds.$${b}))
!isEmpty(defines): qtConfOutputVar(assign, $$output, QMAKE_DEFINES_$$NAME, $$defines)
!isEmpty(includes): qtConfOutputVar(assign, $$output, QMAKE_INCDIR_$$NAME, $$includes)
!isEmpty(version) {
qtConfOutputVar(assign, $$output, QMAKE_$${NAME}_VERSION, $$version)
qtConfOutputSetDefine("privateHeader", "QT_LIBRARY_VERSION_$${2}", $$qtConfGetHexVersion($$version))
version = $$split(version, '.')
qtConfOutputVar(assign, $$output, QMAKE_$${NAME}_VERSION_MAJOR, $$member(version, 0))
qtConfOutputVar(assign, $$output, QMAKE_$${NAME}_VERSION_MINOR, $$member(version, 1))
qtConfOutputVar(assign, $$output, QMAKE_$${NAME}_VERSION_PATCH, $$member(version, 2))
}
!isEmpty($${currentConfig}.module): \
qtConfExtendVar($$output, "QT.$${currentModule}_private.libraries", $$2)
}
@ -623,6 +602,8 @@ defineTest(qtConfHandleLibrary) {
defined($${lpfx}.result, var): return()
qtConfEnsureTestTypeDeps("library")
qtConfTestPrepare_compile($$lpfx)
use_args = $$eval($${lpfx}.literal_args)
qtConfLoadResult($${lpfx}, $$1) {
$$eval($${lpfx}.result): \
@ -636,7 +617,6 @@ defineTest(qtConfHandleLibrary) {
result = false
for (s, $${lpfx}.sources._KEYS_) {
qtLog("Trying source $$s of library $${1}.")
spfx = $${lpfx}.sources.$${s}
t = $$eval($${spfx}.type)
@ -644,26 +624,30 @@ defineTest(qtConfHandleLibrary) {
!defined($$call, test): \
error("Library $${1} source $${s} has unknown type '$$t'")
qtLog("Trying source $$s (type $$t) of library $${1} ...")
!$$qtConfEvaluate($$eval($${spfx}.condition)) {
qtLog("Source $$s of library $$1 failed condition.")
qtLog(" => source failed condition.")
next()
}
!$${call}($$spfx) {
qtLog("Source $$s of library $$1 produced no result.")
qtLog(" => source produced no result.")
next()
}
# if the library defines a test, use it to verify the source.
!isEmpty($${lpfx}.test) {
$${lpfx}.literal_args = $$qtConfLibraryArgs($$spfx)
$${lpfx}.literal_args = $$use_args $$qtConfLibraryArgs($$spfx)
$${lpfx}.host = $$eval($${spfx}.host)
!qtConfTest_compile($$lpfx) {
qtLog("Source $$s of library $$1 failed verification.")
qtLog(" => source failed verification.")
next()
}
}
qtLog(" => source accepted.")
$${lpfx}.cache += source
for (v, $$list(libs includes cflags version export)): \
$${lpfx}.cache += sources.$${s}.$${v}

View File

@ -15,16 +15,40 @@ TEMPLATE = lib
CONFIG -= qt
QT = # In case qt is re-added.
INCLUDEPATH += $$MODULE_INCLUDEPATH
DEFINES += $$MODULE_DEFINES
CONFIG -= warning_clean # Don't presume 3rd party code to be clean
load(qt_common)
qtConfig(simulator_and_device): CONFIG += simulator_and_device
qtConfig(debug_and_release): CONFIG += debug_and_release
qtConfig(build_all): CONFIG += build_all
DESTDIR = $$MODULE_BASE_OUTDIR/lib
DLLDESTDIR = $$MODULE_BASE_OUTDIR/bin
!build_pass {
MODULE = $$replace(TARGET, ^qt, )
MODULE_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules/qt_ext_$${MODULE}.pri
ucmodule = $$upper($$MODULE)
MODULE_PRI_CONT = \
"QMAKE_INCDIR_$${ucmodule} = $$val_escape(MODULE_INCLUDEPATH)" \
"QMAKE_DEFINES_$${ucmodule} = $$val_escape(MODULE_DEFINES)"
MODULE_LIBS = -L$$DESTDIR -l$$TARGET
debug_and_release {
win32: MODULE_DEBUG_LIBS = -L$$DESTDIR -l$${TARGET}d
darwin: MODULE_DEBUG_LIBS = -L$$DESTDIR -l$${TARGET}_debug
MODULE_PRI_CONT += \
"QMAKE_LIBS_$${ucmodule}_DEBUG = $$val_escape(MODULE_DEBUG_LIBS)" \
"QMAKE_LIBS_$${ucmodule}_RELEASE = $$val_escape(MODULE_LIBS)"
} else {
MODULE_PRI_CONT += \
"QMAKE_LIBS_$${ucmodule} = $$val_escape(MODULE_LIBS)"
}
write_file($$MODULE_PRI, MODULE_PRI_CONT)|error()
}
# In static builds of Qt, convenience libraries must be installed,
# as in this case they are not linked to the final library/plugin.
installed|if(!not_installed:qtConfig(static)): load(qt_installs)

View File

@ -36,7 +36,7 @@ qt_install_headers {
targ_headers.path = $$[QT_INSTALL_HEADERS]/$$MODULE_INCNAME
INSTALLS += targ_headers
private_headers.files = $$SYNCQT.PRIVATE_HEADER_FILES
private_headers.files = $$SYNCQT.PRIVATE_HEADER_FILES $$SYNCQT.INJECTED_PRIVATE_HEADER_FILES
private_headers.path = $$[QT_INSTALL_HEADERS]/$$MODULE_INCNAME/$$VERSION/$$MODULE_INCNAME/private
INSTALLS += private_headers

View File

@ -13,6 +13,11 @@ isEmpty(MODULE):MODULE = $$section($$list($$basename(_PRO_FILE_)), ., 0, 0)
isEmpty(VERSION): VERSION = $$MODULE_VERSION
isEmpty(VERSION): error("Module does not define version.")
exists($$OUT_PWD/qt$${MODULE}-config.pri) {
include($$OUT_PWD/qt$${MODULE}-config.pri)
CONFIG += generated_privates
}
# Compile as shared/DLL or static according to the option given to configure
# unless overridden. Host builds are always static
host_build|staticlib: CONFIG += static
@ -79,15 +84,16 @@ INCLUDEPATH *= $$eval(QT.$${MODULE}.includes) $$eval(QT.$${MODULE}_private.inclu
# If Qt was configured with -debug-and-release then build the module the same way
# - unless this is a host library
!host_build:if(win32|mac):!macx-xcode {
qtConfig(simulator_and_device): CONFIG += simulator_and_device
qtConfig(debug_and_release): CONFIG += debug_and_release
qtConfig(build_all): CONFIG += build_all
}
QMAKE_LFLAGS += $$QMAKE_LFLAGS_NOUNDEF
QT += $$QT_FOR_PRIVATE
QT_PRIVATE += $$QT_FOR_PRIVATE
unset(QT_FOR_PRIVATE)
QMAKE_USE_PRIVATE += $$QMAKE_USE_FOR_PRIVATE
unset(QMAKE_USE_FOR_PRIVATE)
!internal_module:CONFIG += create_cmake
@ -114,7 +120,7 @@ lib_bundle {
FRAMEWORK_HEADERS.files = $$SYNCQT.HEADER_FILES $$SYNCQT.HEADER_CLASSES
FRAMEWORK_HEADERS.path = Headers
FRAMEWORK_PRIVATE_HEADERS.version = Versions
FRAMEWORK_PRIVATE_HEADERS.files = $$SYNCQT.PRIVATE_HEADER_FILES
FRAMEWORK_PRIVATE_HEADERS.files = $$SYNCQT.PRIVATE_HEADER_FILES $$SYNCQT.INJECTED_PRIVATE_HEADER_FILES
FRAMEWORK_PRIVATE_HEADERS.path = Headers/$$VERSION/$$MODULE_INCNAME/private
FRAMEWORK_QPA_HEADERS.version = Versions
FRAMEWORK_QPA_HEADERS.files = $$SYNCQT.QPA_HEADER_FILES

View File

@ -113,7 +113,7 @@ exists($$OUT_PWD/qt$${MODULE}-config.h) {
$$fwd_rel/qt$${MODULE}-config_p.h:$$MODULE_VERSION/$$MODULE_INCNAME/private/qt$${MODULE}-config_p.h
inst_rel = $$relative_path($$OUT_PWD, $$_PRO_FILE_PWD_)
SYNCQT.HEADER_FILES += $$inst_rel/qt$${MODULE}-config.h
SYNCQT.PRIVATE_HEADER_FILES += $$inst_rel/qt$${MODULE}-config_p.h
SYNCQT.INJECTED_PRIVATE_HEADER_FILES += $$inst_rel/qt$${MODULE}-config_p.h
}
for (injection, SYNCQT.INJECTIONS) {

View File

@ -35,9 +35,6 @@ else: \
MODULE_PRI = $$mod_inst_pfx/qt_lib_$${MODULE_ID}.pri
MODULE_FWD_PRI = $$mod_work_pfx/qt_lib_$${MODULE_ID}.pri
exists($$OUT_PWD/qt$${MODULE}-config.pri): \
include($$OUT_PWD/qt$${MODULE}-config.pri)
defineReplace(qtGetFeaturesForModule) {
enabled = $$unique(QT.$${1}.enabled_features)
disabled = $$unique(QT.$${1}.disabled_features)
@ -60,8 +57,7 @@ defineReplace(qtExportLibsForModule) {
NAME = $$upper($$lib)
vars = \
QMAKE_LIBS_$$NAME QMAKE_LIBS_$${NAME}_DEBUG QMAKE_LIBS_$${NAME}_RELEASE \
QMAKE_CFLAGS_$$NAME QMAKE_INCDIR_$$NAME QMAKE_$${NAME}_VERSION \
QMAKE_$${NAME}_VERSION_MAJOR QMAKE_$${NAME}_VERSION_MINOR QMAKE_$${NAME}_VERSION_PATCH
QMAKE_DEFINES_$$NAME QMAKE_INCDIR_$$NAME
for (var, vars) {
!isEmpty($$var): \
result += "$$var = $$val_escape($$var)"
@ -105,7 +101,7 @@ defineReplace(qtExportLibsForModule) {
else: \
module_config =
!isEmpty(MODULE_PLUGIN_TYPES): \
module_plugtypes = "QT.$${MODULE_ID}.plugin_types = $$replace(MODULE_PLUGIN_TYPES, /.*$, )"
module_plugtypes = "QT.$${MODULE_ID}.plugin_types = $$replace(MODULE_PLUGIN_TYPES, /[^.]+\\.[^.]+$, )"
else: \
module_plugtypes =
!isEmpty(MODULE_MASTER_HEADER): \
@ -134,6 +130,7 @@ defineReplace(qtExportLibsForModule) {
MODULE_PRI_CONT += \
"QT.$${MODULE_ID}.depends =$$join(MODULE_DEPENDS, " ", " ")" \
$$module_rundep \
"QT.$${MODULE_ID}.uses =$$join(QMAKE_USE, " ", " ")" \
"QT.$${MODULE_ID}.module_config =$$join(module_build_type, " ", " ")" \
$$module_config \
"QT.$${MODULE_ID}.DEFINES = $$val_escape(MODULE_DEFINES)" \
@ -164,6 +161,7 @@ defineReplace(qtExportLibsForModule) {
"QT.$${MODULE}_private.includes = $$MODULE_PRIVATE_INCLUDES" \
"QT.$${MODULE}_private.frameworks =" \
"QT.$${MODULE}_private.depends = $$private_deps" \
"QT.$${MODULE}_private.uses =$$join(QMAKE_USE_FOR_PRIVATE, " ", " ")" \
"QT.$${MODULE}_private.module_config =$$join(module_build_type, " ", " ")" \
$$qtGetFeaturesForModule($${MODULE}_private) \
"" \

View File

@ -26,7 +26,6 @@ win32:CONFIG(shared, static|shared) {
tool_plugin {
!build_pass:qtConfig(debug_and_release): CONFIG += release
} else:if(win32|mac):!macx-xcode {
qtConfig(simulator_and_device): CONFIG += simulator_and_device
qtConfig(debug_and_release): CONFIG += debug_and_release
qtConfig(build_all): CONFIG += build_all
}

View File

@ -9,6 +9,7 @@
# We mean it.
#
CONFIG += no_launch_target
load(qt_app)
CONFIG += console

View File

@ -1,4 +1,4 @@
have_target {
!have_target: return()
# qt_build_config.prf disables execptions for all Qt modules which don't
# explicitly turn it on again, while the qmake default is to build with
@ -207,5 +207,3 @@ macx-xcode:bundle:isEmpty(QMAKE_BUNDLE_EXTENSION) {
QMAKE_BUNDLE_EXTENSION = .xctest
}
} # have_target

View File

@ -0,0 +1,57 @@
defineReplace(qtMakeExpand) {
out = "$$1"
for(ever) {
m = $$replace(out, ".*\\$\\(EXPORT_([^)]+)\\).*", \\1)
equals(m, $$out): \
return($$out)
out = $$replace(out, "\\$\\(EXPORT_$$m\\)", $$eval($$m))
}
}
isEmpty(QMAKE_DEFAULT_INCDIRS):!host_build {
#
# Get default include and library paths from compiler
#
gcc {
!equals(QMAKE_HOST.os, Windows) {
cmd_prefix = "LC_ALL=C"
cmd_suffix = "</dev/null >/dev/null"
} else {
cmd_prefix = "set LC_ALL=C&"
cmd_suffix = "<NUL >NUL"
}
output = $$system("$$cmd_prefix $$QMAKE_CXX $$qtMakeExpand($$QMAKE_CXXFLAGS) -xc++ -E -v - 2>&1 $$cmd_suffix", lines)
add_includes = false
for (line, output) {
line ~= s/^ *// # remove leading spaces
contains(line, "LIBRARY_PATH=.*") {
line ~= s/^LIBRARY_PATH=// # remove leading LIBRARY_PATH=
paths = $$split(line, $$QMAKE_DIRLIST_SEP)
for (path, paths): \
QMAKE_DEFAULT_LIBDIRS += $$clean_path($$path)
} else: contains(line, "$${LITERAL_HASH}include <.*") { # #include <...> search starts here:
add_includes = true
} else: contains(line, "End of search.*") {
add_includes = false
} else: $$add_includes {
!contains(line, ".* \\(framework directory\\)"): \
QMAKE_DEFAULT_INCDIRS += $$clean_path($$line)
}
}
QMAKE_DEFAULT_LIBDIRS = $$unique(QMAKE_DEFAULT_LIBDIRS)
} else: msvc {
LIB = $$getenv("LIB")
QMAKE_DEFAULT_LIBDIRS = $$split(LIB, $$QMAKE_DIRLIST_SEP)
INCLUDE = $$getenv("INCLUDE")
QMAKE_DEFAULT_INCDIRS = $$split(INCLUDE, $$QMAKE_DIRLIST_SEP)
}
unix {
isEmpty(QMAKE_DEFAULT_INCDIRS): QMAKE_DEFAULT_INCDIRS = /usr/include /usr/local/include
isEmpty(QMAKE_DEFAULT_LIBDIRS): QMAKE_DEFAULT_LIBDIRS = /lib /usr/lib
}
!isEmpty(QMAKE_DEFAULT_INCDIRS): cache(QMAKE_DEFAULT_INCDIRS, set stash)
!isEmpty(QMAKE_DEFAULT_LIBDIRS): cache(QMAKE_DEFAULT_LIBDIRS, set stash)
}

View File

@ -52,3 +52,11 @@ macx-xcode {
}
}
}
!xcodebuild:equals(TEMPLATE, app):!isEmpty(QMAKE_INFO_PLIST) {
# Only link in photo library support if Info.plist contains
# NSPhotoLibraryUsageDescription. Otherwise it will be rejected from AppStore.
plist_path = $$absolute_path($$QMAKE_INFO_PLIST, $$_PRO_FILE_PWD_)
system("/usr/libexec/PlistBuddy -c 'Print NSPhotoLibraryUsageDescription' $$system_quote($$plist_path) &>/dev/null"): \
QTPLUGIN += qiosnsphotolibrarysupport
}

View File

@ -1,22 +1,25 @@
sim_and_dev = false
!isEmpty(QT_VERSION):qtConfig(simulator_and_device): \
sim_and_dev = true
$$sim_and_dev|contains(QMAKE_MAC_SDK, ^$${device.sdk}.*): \
CONFIG += device $${device.sdk}
$$sim_and_dev|contains(QMAKE_MAC_SDK, ^$${simulator.sdk}.*): \
CONFIG += simulator $${simulator.sdk}
$$sim_and_dev {
# For a simulator_and_device build all the config tests
# are based on the device's ARM SDK, but we know that the simulator
# is Intel and that we support SSE/SSE2.
QT_CPU_FEATURES.$$QT_ARCH += sse sse2
CONFIG += sse sse2
DEFINES += QT_COMPILER_SUPPORTS_SSE2
}
unset(sim_and_dev)
load(default_pre)
!isEmpty(QT_VERSION) {
qtConfig(simulator_and_device)|contains(QMAKE_MAC_SDK, ^$${device.sdk}.*): \
CONFIG += device $${device.sdk}
qtConfig(simulator_and_device)|contains(QMAKE_MAC_SDK, ^$${simulator.sdk}.*): \
CONFIG += simulator $${simulator.sdk}
qtConfig(simulator_and_device) {
# For a simulator_and_device build all the config tests
# are based on the device's ARM SDK, but we know that the simulator
# is Intel and that we support SSE/SSE2.
QT_CPU_FEATURES.$$QT_ARCH += sse sse2
CONFIG += sse sse2
DEFINES += QT_COMPILER_SUPPORTS_SSE2
}
}
# Check for supported Xcode versions
lessThan(QMAKE_XCODE_VERSION, "4.3"): \
error("This mkspec requires Xcode 4.3 or later")

View File

@ -11,7 +11,7 @@ load(resolve_config)
!macx-xcode:xcodebuild {
# Switch the order to make sure that the first Makefile target is the right one
!qtConfig(simulator_and_device):contains(QMAKE_MAC_SDK, ^$${simulator.sdk}.*): \
addExclusiveBuilds(simulator, device)
addExclusiveBuildsProper(simulator_and_device, simulator device)
else: \
addExclusiveBuilds(device, simulator)
addExclusiveBuildsProper(simulator_and_device, device simulator)
}

View File

@ -1,15 +1,3 @@
# In case the user sets the SDK manually
contains(QMAKE_MAC_SDK, ^$${simulator.sdk}.*) {
!isEmpty(QT_VERSION):qtConfig(simulator_and_device): \
error("Simulator is handled automatically for simulator_and_device")
CONFIG += simulator $${simulator.sdk}
}
build_pass:!simulator_and_device:simulator: \
QMAKE_MAC_SDK ~= s,^$${device.sdk},$${simulator.sdk},
load(sdk)
macx-xcode {

View File

@ -1813,6 +1813,12 @@
which qmake will replace with the actual executable name. Other variables
include @ICON@, @TYPEINFO@, @LIBRARY@, and @SHORT_VERSION@.
If building for iOS, and the \c{.plist} file contains the key
\c NSPhotoLibraryUsageDescription, qmake will include an additional plugin
to the build that adds photo access support (to, e.g.,
\l{QFileDialog::setDirectory()}{QFile/QFileDialog}). See Info.plist
documentation from Apple for more information regarding this key.
\note Most of the time, the default \c{Info.plist} is good enough.
\section1 QMAKE_LFLAGS

View File

@ -46,6 +46,7 @@
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <limits.h>
#if defined(_MSC_VER) && _MSC_VER >= 1400
#include <share.h>
#endif
@ -986,9 +987,11 @@ bool QMakeSourceFileInfo::findMocs(SourceFile *file)
continue;
int matchlen = 0, extralines = 0;
size_t needle_len = strlen(interesting[interest]);
Q_ASSERT(needle_len <= INT_MAX);
if (matchWhileUnsplitting(buffer, buffer_len, y,
interesting[interest],
strlen(interesting[interest]),
static_cast<int>(needle_len),
&matchlen, &extralines)
&& y + matchlen < buffer_len
&& !isCWordChar(buffer[y + matchlen])) {

View File

@ -374,14 +374,21 @@ void NmakeMakefileGenerator::init()
project->values("QMAKE_DISTCLEAN").append(tgt + ".lib");
}
if (project->isActiveConfig("debug_info")) {
// Add the compiler's PDB file.
QString pdbfile = var("OBJECTS_DIR") + project->first("TARGET") + ".vc.pdb";
QString pdbfile;
QString distPdbFile = tgt + ".pdb";
if (project->isActiveConfig("staticlib")) {
// For static libraries, the compiler's pdb file and the dist pdb file are the same.
pdbfile = distPdbFile;
} else {
// Use $${TARGET}.vc.pdb in the OBJECTS_DIR for the compiler and
// $${TARGET}.pdb (the default) for the linker.
pdbfile = var("OBJECTS_DIR") + project->first("TARGET") + ".vc.pdb";
}
QString escapedPdbFile = escapeFilePath(pdbfile);
project->values("QMAKE_CFLAGS").append("/Fd" + escapedPdbFile);
project->values("QMAKE_CXXFLAGS").append("/Fd" + escapedPdbFile);
project->values("QMAKE_CLEAN").append(pdbfile);
// Add the linker's PDB file to the distclean target.
project->values("QMAKE_DISTCLEAN").append(tgt + ".pdb");
project->values("QMAKE_DISTCLEAN").append(distPdbFile);
}
if (project->isActiveConfig("debug")) {
project->values("QMAKE_CLEAN").append(tgt + ".ilk");

View File

@ -6,6 +6,8 @@ CONFIG += \
exceptions_off rtti_off warn_off \
installed
MODULE_INCLUDEPATH += $$PWD/include
load(qt_helper_lib)
SOURCES += \
@ -61,16 +63,12 @@ win32 {
INCLUDEPATH += $$PWD/builds/unix
}
INCLUDEPATH += $$PWD/include
DEFINES += FT2_BUILD_LIBRARY
DEFINES += FT_CONFIG_OPTION_SYSTEM_ZLIB
include(../zlib_dependency.pri)
QT_FOR_CONFIG += gui-private
include($$OUT_PWD/../../gui/qtgui-config.pri)
DEFINES += FT_CONFIG_OPTION_USE_PNG
include($$PWD/../png_dependency.pri)
QMAKE_USE_PRIVATE += libpng
DEFINES += TT_CONFIG_OPTION_SUBPIXEL_HINTING

View File

@ -1,6 +0,0 @@
qtConfig(system-freetype) {
QMAKE_USE_PRIVATE += freetype/nolink
} else: qtConfig(freetype) {
INCLUDEPATH += $$PWD/freetype/include
LIBS_PRIVATE += -L$$QT_BUILD_TREE/lib -lqtfreetype$$qtPlatformTargetSuffix()
}

View File

@ -1,10 +1,12 @@
TARGET = qtharfbuzzng
TARGET = qtharfbuzz
CONFIG += \
static \
hide_symbols \
exceptions_off rtti_off warn_off
MODULE_INCLUDEPATH += $$PWD/include
load(qt_helper_lib)
# built-in shapers list configuration:
@ -24,8 +26,6 @@ win32: DEFINES += HB_NO_WIN1256
#Workaround https://code.google.com/p/android/issues/detail?id=194631
android: DEFINES += _POSIX_C_SOURCE=200112L
INCLUDEPATH += $$PWD/include
# Harfbuzz-NG inside Qt uses the Qt atomics (inline code only)
INCLUDEPATH += $$QT.core.includes
DEFINES += QT_NO_VERSION_TAGGING

View File

@ -156,12 +156,14 @@ static inline void positionCluster(HB_ShaperItem *item, int gfrom, int glast)
// ### wrong in rtl context!
case HB_Combining_BelowLeft:
p.y += offset;
// fall through
case HB_Combining_BelowLeftAttached:
p.x += attachmentRect.x - markMetrics.x;
p.y += (attachmentRect.y + attachmentRect.height) - markMetrics.y;
break;
case HB_Combining_Below:
p.y += offset;
// fall through
case HB_Combining_BelowAttached:
p.x += attachmentRect.x - markMetrics.x;
p.y += (attachmentRect.y + attachmentRect.height) - markMetrics.y;
@ -170,28 +172,33 @@ static inline void positionCluster(HB_ShaperItem *item, int gfrom, int glast)
break;
case HB_Combining_BelowRight:
p.y += offset;
// fall through
case HB_Combining_BelowRightAttached:
p.x += attachmentRect.x + attachmentRect.width - markMetrics.width - markMetrics.x;
p.y += attachmentRect.y + attachmentRect.height - markMetrics.y;
break;
case HB_Combining_Left:
p.x -= offset;
// fall through
case HB_Combining_LeftAttached:
break;
case HB_Combining_Right:
p.x += offset;
// fall through
case HB_Combining_RightAttached:
break;
case HB_Combining_DoubleAbove:
// ### wrong in RTL context!
case HB_Combining_AboveLeft:
p.y -= offset;
// fall through
case HB_Combining_AboveLeftAttached:
p.x += attachmentRect.x - markMetrics.x;
p.y += attachmentRect.y - markMetrics.y - markMetrics.height;
break;
case HB_Combining_Above:
p.y -= offset;
// fall through
case HB_Combining_AboveAttached:
p.x += attachmentRect.x - markMetrics.x;
p.y += attachmentRect.y - markMetrics.y - markMetrics.height;
@ -200,6 +207,7 @@ static inline void positionCluster(HB_ShaperItem *item, int gfrom, int glast)
break;
case HB_Combining_AboveRight:
p.y -= offset;
// fall through
case HB_Combining_AboveRightAttached:
p.x += attachmentRect.x + attachmentRect.width - markMetrics.x - markMetrics.width;
p.y += attachmentRect.y - markMetrics.y - markMetrics.height;

View File

@ -1,6 +0,0 @@
qtConfig(system-harfbuzz) {
QMAKE_USE_PRIVATE += harfbuzz
} else: qtConfig(harfbuzz) {
INCLUDEPATH += $$PWD/harfbuzz-ng/include
LIBS_PRIVATE += -L$$QT_BUILD_TREE/lib -lqtharfbuzzng$$qtPlatformTargetSuffix()
}

View File

@ -1,4 +1,4 @@
TARGET = qtpng
TARGET = qtlibpng
CONFIG += \
static \
@ -6,6 +6,8 @@ CONFIG += \
exceptions_off rtti_off warn_off \
installed
MODULE_INCLUDEPATH = $$PWD
load(qt_helper_lib)
DEFINES += PNG_ARM_NEON_OPT=0

View File

@ -5,12 +5,14 @@ CONFIG += \
hide_symbols \
exceptions_off rtti_off warn_off
win32: MODULE_DEFINES += PCRE_STATIC
MODULE_INCLUDEPATH += $$PWD
load(qt_helper_lib)
DEFINES += HAVE_CONFIG_H
# platform/compiler specific definitions
win32: DEFINES += PCRE_STATIC
uikit|qnx|winrt: DEFINES += PCRE_DISABLE_JIT
SOURCES += \

View File

@ -1,7 +0,0 @@
qtConfig(system-pcre) {
QMAKE_USE_PRIVATE += pcre
} else {
win32: DEFINES += PCRE_STATIC
INCLUDEPATH += $$PWD/pcre
LIBS_PRIVATE += -L$$QT_BUILD_TREE/lib -lqtpcre$$qtPlatformTargetSuffix()
}

View File

@ -1,6 +0,0 @@
qtConfig(system-png) {
QMAKE_USE_PRIVATE += libpng
} else: qtConfig(png) {
INCLUDEPATH += $$PWD/libpng
LIBS_PRIVATE += -L$$QT_BUILD_TREE/lib -lqtpng$$qtPlatformTargetSuffix()
}

View File

@ -66,7 +66,7 @@ public class QtActivityLoader extends QtLoader {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
try {
Uri uri = Uri.parse("market://search?q=pname:org.kde.necessitas.ministro");
Uri uri = Uri.parse("market://details?id=org.kde.necessitas.ministro");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
m_activity.startActivityForResult(intent, MINISTRO_INSTALL_REQUEST_CODE);
} catch (Exception e) {

View File

@ -73,7 +73,7 @@ public abstract class QtLoader {
public final static int MINISTRO_INSTALL_REQUEST_CODE = 0xf3ee; // request code used to know when Ministro instalation is finished
public static final int MINISTRO_API_LEVEL = 5; // Ministro api level (check IMinistro.aidl file)
public static final int NECESSITAS_API_LEVEL = 2; // Necessitas api level used by platform plugin
public static final int QT_VERSION = 0x050100; // This app requires at least Qt version 5.1.0
public static final int QT_VERSION = 0x050700; // This app requires at least Qt version 5.7.0
public static final String ERROR_CODE_KEY = "error.code";
public static final String ERROR_MESSAGE_KEY = "error.message";

View File

@ -113,9 +113,9 @@ QSet<QString> dictionary = QtConcurrent::blockingFilteredReduced(strings, allLow
//! [7]
// keep only images with an alpha channel
QList<QImage> images = ...;
QFuture<void> alphaImages = QtConcurrent::filter(strings, &QImage::hasAlphaChannel);
QFuture<void> alphaImages = QtConcurrent::filter(images, &QImage::hasAlphaChannel);
// keep only gray scale images
// retrieve gray scale images
QList<QImage> images = ...;
QFuture<QImage> grayscaleImages = QtConcurrent::filtered(images, &QImage::isGrayscale);

View File

@ -0,0 +1,24 @@
Copyright (C) 2000 TurboLinux, Inc. Written by Justin Yu and Sean Chen.
Copyright (C) 2001, 2002 Turbolinux, Inc. Written by James Su.
Copyright (C) 2001, 2002 ThizLinux Laboratory Ltd. Written by Anthony Fok.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.

View File

@ -0,0 +1,22 @@
Copyright (C) 1999 Serika Kurusugawa, All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.

View File

@ -0,0 +1,22 @@
Copyright (C) 1999-2000 Mizi Research Inc. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.

View File

@ -0,0 +1,22 @@
Copyright (C) 1999 Serika Kurusugawa, All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.

View File

@ -0,0 +1,22 @@
Copyright (C) 1999 Serika Kurusugawa, All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.

View File

@ -0,0 +1,22 @@
Copyright (C) 2000 Hans Petter Bieker. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.

View File

@ -55,35 +55,7 @@
\<anthony@thizlinux.com\> \<foka@debian.org\> to adapt the code
for Qt.
\legalese
Copyright (C) 2000 Ming-Che Chuang
Copyright (C) 2002 James Su, Turbolinux Inc.
Copyright (C) 2002 Anthony Fok, ThizLinux Laboratory Ltd.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
\list 1
\li Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
\li Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
\endlist
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
\endlegalese
\sa{Text Codecs: Big5, Big5-HKSCS}
*/
/*!
@ -124,36 +96,7 @@
Li18nux Big5 Standard Subgroup. See \l{http://www.autrijus.org/xml/}
for the various Big5 CharMapML tables.
\legalese
Copyright (C) 2000 Ming-Che Chuang
Copyright (C) 2001, 2002 James Su, Turbolinux Inc.
Copyright (C) 2002 WU Yi, HancomLinux Inc.
Copyright (C) 2001, 2002 Anthony Fok, ThizLinux Laboratory Ltd.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
\list 1
\li Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
\li Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
\endlist
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
\endlegalese
\sa{Text Codecs: Big5, Big5-HKSCS}
*/
/*!
@ -171,37 +114,9 @@
Most of the code here was written by Serika Kurusugawa,
a.k.a. Junji Takagi, and is included in Qt with the author's
permission and the grateful thanks of the Qt team. Here is
the copyright statement for that code:
permission and the grateful thanks of the Qt team.
\legalese
Copyright (C) 1999 Serika Kurusugawa. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
\list 1
\li Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
\li Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
\endlist
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS".
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
\endlegalese
\sa{Text Codec: EUC-JP}
*/
/*!
@ -217,34 +132,7 @@
contribution. The subsequent modifications are covered by
the usual copyright for Qt.
\legalese
Copyright (C) 1999-2000 Mizi Research Inc. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
\list 1
\li Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
\li Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
\endlist
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
\endlegalese
\sa{Text Codec: EUC-KR}
*/
/*!
@ -292,37 +180,7 @@
A copy of the source Perl script is available at
\l{http://people.debian.org/~foka/gb18030/gen-qgb18030codec.pl}
The copyright notice for their code follows:
\legalese
Copyright (C) 2000 TurboLinux, Inc. Written by Justin Yu and Sean Chen.
Copyright (C) 2001, 2002 Turbolinux, Inc. Written by James Su.
Copyright (C) 2001, 2002 ThizLinux Laboratory Ltd. Written by Anthony Fok.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
\list 1
\li Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
\li Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
\endlist
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
\endlegalese
\sa{Text Codec: GBK}
*/
/*!
@ -381,37 +239,9 @@
Most of the code here was written by Serika Kurusugawa,
a.k.a. Junji Takagi, and is included in Qt with the author's
permission and the grateful thanks of the Qt team. Here is
the copyright statement for that code:
permission and the grateful thanks of the Qt team.
\legalese
Copyright (C) 1999 Serika Kurusugawa. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
\list 1
\li Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
\li Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
\endlist
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS".
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
\endlegalese
\sa{Text Codec: ISO 2022-JP (JIS)}
*/
/*!
@ -433,34 +263,7 @@
contribution. The subsequent modifications are covered by
the usual copyright for Qt.
\legalese
Copyright (C) 1999 Serika Kurusugawa. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
\list 1
\li Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
\li Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
\endlist
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS".
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
\endlegalese
\sa{Text Codec: Shift-JIS}
*/
/*!
@ -483,37 +286,7 @@
Most of the code was written by Hans Petter Bieker and is
included in Qt with the author's permission and the grateful
thanks of the Qt team. Here is the copyright statement for
the code as it was at the point of contribution. The
subsequent modifications are covered by the usual copyright for
Qt:
thanks of the Qt team.
\legalese
Copyright (c) 2000 Hans Petter Bieker. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
\list 1
\li Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
\li Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
\endlist
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
\endlegalese
\sa{Text Codec: TSCII}
*/

View File

@ -0,0 +1,103 @@
[
{
"Id": "qbig5codecs",
"Name": "Text Codecs: Big5, Big5-HKSCS",
"QDocModule": "qtcore",
"QtUsage": "Used in Qt Core if ICU is not used. Configure with -icu to avoid.",
"Path": "qbig5codec.cpp",
"Description": "The Big5 codecs (QBig5Codec, QBig5hkscsCodec)
provide conversion to and from the Big5 encodings.",
"License": "BSD 2-clause \"Simplified\" License",
"LicenseId": "BSD-2-Clause",
"LicenseFile": "QBIG5CODEC_LICENSE.txt",
"Copyright": "Copyright (C) 2000 Ming-Che Chuang
Copyright (C) 2001, 2002 James Su, Turbolinux Inc.
Copyright (C) 2002 WU Yi, HancomLinux Inc.
Copyright (C) 2001, 2002 Anthony Fok, ThizLinux Laboratory Ltd."
},
{
"Id": "qeucjpcodec",
"Name": "Text Codec: EUC-JP",
"QDocModule": "qtcore",
"QtUsage": "Used in Qt Core if ICU is not used. Configure with -icu to avoid.",
"Path": "qeucjpcodec.cpp",
"Description": "The EUC-JP text codec provides conversion to and from EUC-JP,
the main legacy encoding for Unix machines in Japan.",
"License": "BSD 2-clause \"Simplified\" License",
"LicenseId": "BSD-2-Clause",
"LicenseFile": "QEUCJPCODEC_LICENSE.txt",
"Copyright": "Copyright (C) 1999 Serika Kurusugawa."
},
{
"Id": "qeuckrcodec",
"Name": "Text Codec: EUC-KR",
"QDocModule": "qtcore",
"QtUsage": "Used in Qt Core if ICU is not used. Configure with -icu to avoid.",
"Path": "qeuckrcodec.cpp",
"Description": "The EUC-KR text codec provides conversion to and from EUC-KR, KR,
the main legacy encoding for Unix machines in Korea.",
"License": "BSD 2-clause \"Simplified\" License",
"LicenseId": "BSD-2-Clause",
"LicenseFile": "QEUCKRCODEC_LICENSE.txt",
"Copyright": "Copyright (C) 1999-2000 Mizi Research Inc."
},
{
"Id": "qjiscodec",
"Name": "Text Codec: ISO 2022-JP (JIS)",
"QDocModule": "qtcore",
"QtUsage": "Used in Qt Core if ICU is not used. Configure with -icu to avoid.",
"Path": "qjiscodec.cpp",
"Description": "The ISO 2022-JP (JIS) text codec provides conversion to and from ISO 2022-JP.",
"License": "BSD 2-clause \"Simplified\" License",
"LicenseId": "BSD-2-Clause",
"LicenseFile": "QJISCODEC_LICENSE.txt",
"Copyright": "Copyright (C) 1999 Serika Kurusugawa."
},
{
"Id": "qsjiscodec",
"Name": "Text Codec: Shift-JIS",
"QDocModule": "qtcore",
"QtUsage": "Used in Qt Core if ICU is not used. Configure with -icu to avoid.",
"Path": "qsjiscodec.cpp",
"Description": "The Shift-JIS text codec provides conversion to and from Shift-JIS.",
"License": "BSD 2-clause \"Simplified\" License",
"LicenseId": "BSD-2-Clause",
"LicenseFile": "QSJISCODEC_LICENSE.txt",
"Copyright": "Copyright (C) 1999 Serika Kurusugawa."
},
{
"Id": "qtsciicodec",
"Name": "Text Codec: TSCII",
"QDocModule": "qtcore",
"QtUsage": "Used in Qt Core.",
"Path": "qtsciicodec.cpp",
"Description": "The TSCII text codec provides conversion to and from the Tamil TSCII
encoding.",
"License": "BSD 2-clause \"Simplified\" License",
"LicenseId": "BSD-2-Clause",
"LicenseFile": "QTSCIICODEC_LICENSE.txt",
"Copyright": "Copyright (C) 2000 Hans Petter Bieker."
},
{
"Id": "qbkcodec",
"Name": "Text Codec: GBK",
"QDocModule": "qtcore",
"QtUsage": "Used in Qt Core if ICU is not used. Configure with -icu to avoid.",
"Path": "qgb18030codec.cpp",
"Description": "The GBK codec provides conversion to and from the Chinese
GB18030/GBK/GB2312 encoding.",
"License": "BSD 2-clause \"Simplified\" License",
"LicenseId": "BSD-2-Clause",
"LicenseFile": "QBKCODEC_LICENSE.txt",
"Copyright": "Copyright (C) 2000 TurboLinux, Inc. Written by Justin Yu and Sean Chen.
Copyright (C) 2001, 2002 Turbolinux, Inc. Written by James Su.
Copyright (C) 2001, 2002 ThizLinux Laboratory Ltd. Written by Anthony Fok."
}
]

View File

@ -61,7 +61,6 @@
"journald": {
"label": "journald",
"test": "unix/journald",
"export": "",
"sources": [
{ "type": "pkgConfig", "args": "libsystemd" },
{ "type": "pkgConfig", "args": "libsystemd-journal" }
@ -579,7 +578,10 @@
},
"topleveldomain": {
"label": "QUrl::topLevelDomain()",
"description": "Provides support for extracting the top level domain from URLs.",
"purpose": "Provides support for extracting the top level domain from URLs.
If enabled, a binary dump of the Public Suffix List (http://www.publicsuffix.org,
Mozilla License) is included. The data is then also used in QNetworkCookieJar::validateCookie.",
"section": "Utilities",
"output": [ "publicFeature" ]
}

View File

@ -158,11 +158,8 @@
\endtable
Containers can be nested. For example, it is perfectly possible
to use a QMap<QString, QList<int> >, where the key type is
QString and the value type QList<int>. The only pitfall is that
you must insert a space between the closing angle brackets (>);
otherwise the C++ compiler will misinterpret the two >'s as a
right-shift operator (>>) and report a syntax error.
to use a QMap<QString, QList<int>>, where the key type is
QString and the value type QList<int>.
The containers are defined in individual header files with the
same name as the container (e.g., \c <QLinkedList>). For

View File

@ -80,7 +80,7 @@
\section1 Event Types
Most events types have special classes, notably QResizeEvent,
Most event types have special classes, notably QResizeEvent,
QPaintEvent, QMouseEvent, QKeyEvent, and QCloseEvent. Each class
subclasses QEvent and adds event-specific functions. For example,
QResizeEvent adds \l{QResizeEvent::}{size()} and

View File

@ -59,11 +59,7 @@ slog2 {
}
journald {
CONFIG += link_pkgconfig
packagesExist(libsystemd): \
PKGCONFIG_PRIVATE += libsystemd
else: \
PKGCONFIG_PRIVATE += libsystemd-journal
QMAKE_USE_PRIVATE += journald
DEFINES += QT_USE_JOURNALD
}

View File

@ -4192,8 +4192,10 @@ bool QInternal::activateCallbacks(Callback cb, void **parameters)
Compares the floating point value \a p1 and \a p2 and
returns \c true if they are considered equal, otherwise \c false.
Note that comparing values where either \a p1 or \a p2 is 0.0 will not work.
The solution to this is to compare against values greater than or equal to 1.0.
Note that comparing values where either \a p1 or \a p2 is 0.0 will not work,
nor does comparing values where one of the values is NaN or infinity.
If one of the values is always 0.0, use qFuzzyIsNull instead. If one of the
values is likely to be 0.0, one solution is to add 1.0 to both values.
\snippet code/src_corelib_global_qglobal.cpp 46

View File

@ -593,9 +593,9 @@ Q_DECL_CONSTEXPR inline const T &qBound(const T &min, const T &val, const T &max
# define QT_WATCHOS_DEPLOYMENT_TARGET_BELOW(watchos) \
QT_DARWIN_DEPLOYMENT_TARGET_BELOW(__MAC_NA, __IPHONE_NA, __TVOS_NA, watchos)
// Compatibility synonyms, do not use
# define QT_MAC_PLATFORM_SDK_EQUAL_OR_ABOVE(osx, ios) QT_MACOS_IOS_PLATFORM_SDK_EQUAL_OR_ABOVE(osx, ios)
# define QT_MAC_DEPLOYMENT_TARGET_BELOW(osx, ios) QT_MACOS_IOS_DEPLOYMENT_TARGET_BELOW(osx, ios)
# define QT_OSX_PLATFORM_SDK_EQUAL_OR_ABOVE(osx) QT_MACOS_PLATFORM_SDK_EQUAL_OR_ABOVE(osx)
# define QT_OSX_DEPLOYMENT_TARGET_BELOW(osx) QT_MACOS_DEPLOYMENT_TARGET_BELOW(osx)

View File

@ -53,10 +53,5 @@
#include <QtCore/private/qtcore-config_p.h>
#endif
#define QT_LIBRARY_VERSION(lib) QT_LIBRARY_VERSION_##lib
#define QT_LIBRARY_VERSION_MAJOR(lib) (QT_LIBRARY_VERSION_##lib >> 16)
#define QT_LIBRARY_VERSION_MINOR(lib) ((QT_LIBRARY_VERSION_##lib >> 8) & 0xff)
#define QT_LIBRARY_VERSION_PATCH(lib) (QT_LIBRARY_VERSION_##lib & 0xff)
#endif // QGLOBAL_P_H

View File

@ -1197,7 +1197,8 @@ public:
SystemLocaleLongDate,
DefaultLocaleShortDate,
DefaultLocaleLongDate,
RFC2822Date // RFC 2822 (+ 850 and 1036 during parsing)
RFC2822Date, // RFC 2822 (+ 850 and 1036 during parsing)
ISODateWithMs
};
enum TimeSpec {

View File

@ -658,6 +658,8 @@
\c{YYYY-MM-DDTHH:mm:ss}, \c{YYYY-MM-DDTHH:mm:ssTZD} (e.g., 1997-07-16T19:20:30+01:00)
for combined dates and times.
\value ISODateWithMs \l{ISO 8601} extended format, including milliseconds if applicable.
\value SystemLocaleShortDate The \l{QLocale::ShortFormat}{short format} used
by the \l{QLocale::system()}{operating system}.

View File

@ -60,7 +60,7 @@ QT_BEGIN_NAMESPACE
* There will only be one copy of the section in the output library or application.
*/
#if defined(QT_BUILD_CORE_LIB) || defined(QT_BOOTSTRAPPED) || defined(QT_NO_VERSION_TAGGING)
#if defined(QT_BUILD_CORE_LIB) || defined(QT_BOOTSTRAPPED) || defined(QT_NO_VERSION_TAGGING) || defined(QT_STATIC)
// don't make tags in QtCore, bootstrapped systems or if the user asked not to
#elif defined(Q_CC_GNU) && !defined(Q_OS_ANDROID)
# if defined(Q_PROCESSOR_X86) && (defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL))

View File

@ -0,0 +1,26 @@
Copyright (c) 1987, 1993
The Regents of the University of California. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.

View File

@ -293,8 +293,7 @@ QDateTime &QFileInfoPrivate::getFileTime(QAbstractFileEngine::FileTime request)
\note To speed up performance, QFileInfo caches information about
the file.
To speed up performance, QFileInfo caches information about the
file. Because files can be changed by other users or programs, or
Because files can be changed by other users or programs, or
even by other parts of the same program, there is a function that
refreshes the file information: refresh(). If you want to switch
off a QFileInfo's caching and force it to access the file system

View File

@ -283,7 +283,7 @@ QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry,
if (ret) {
data.knownFlagsMask |= QFileSystemMetaData::ExistsAttribute;
data.entryFlags |= QFileSystemMetaData::ExistsAttribute;
QString canonicalPath = QDir::cleanPath(QString::fromLocal8Bit(ret));
QString canonicalPath = QDir::cleanPath(QFile::decodeName(ret));
free(ret);
return QFileSystemEntry(canonicalPath);
} else if (errno == ENOENT) { // file doesn't exist

View File

@ -343,7 +343,7 @@ QStringList QFseventsFileSystemWatcherEngine::addPaths(const QStringList &paths,
QStringList p = paths;
QMutableListIterator<QString> it(p);
while (it.hasNext()) {
QString origPath = it.next();
QString origPath = it.next().normalized(QString::NormalizationForm_C);
QString realPath = origPath;
if (realPath.endsWith(QDir::separator()))
realPath = realPath.mid(0, realPath.size() - 1);

View File

@ -382,11 +382,11 @@ qint64 QFSFileEnginePrivate::nativeWrite(const char *data, qint64 len)
// Writing on Windows fails with ERROR_NO_SYSTEM_RESOURCES when
// the chunks are too large, so we limit the block size to 32MB.
const DWORD blockSize = DWORD(qMin(bytesToWrite, qint64(32 * 1024 * 1024)));
qint64 totalWritten = 0;
do {
const DWORD currentBlockSize = DWORD(qMin(bytesToWrite, qint64(32 * 1024 * 1024)));
DWORD bytesWritten;
if (!WriteFile(fileHandle, data + totalWritten, blockSize, &bytesWritten, NULL)) {
if (!WriteFile(fileHandle, data + totalWritten, currentBlockSize, &bytesWritten, NULL)) {
if (totalWritten == 0) {
// Note: Only return error if the first WriteFile failed.
q->setError(QFile::WriteError, qt_error_string());

View File

@ -274,7 +274,6 @@ static QVariant qtValue(CFPropertyListRef cfvalue)
const QString str = QString::fromUtf8(byteArray.constData(), byteArray.size());
return QSettingsPrivate::stringToVariant(str);
} else if (typeId == CFDictionaryGetTypeID()) {
CFDictionaryRef cfdict = static_cast<CFDictionaryRef>(cfvalue);
CFTypeID arrayTypeId = CFArrayGetTypeID();

View File

@ -245,7 +245,7 @@ QString QStandardPaths::writableLocation(StandardLocation type)
break;
case FontsLocation:
path = QDir::homePath() + QLatin1String("/.fonts");
path = writableLocation(GenericDataLocation) + QLatin1String("/fonts");
break;
case MusicLocation:
@ -340,6 +340,9 @@ QStringList QStandardPaths::standardLocations(StandardLocation type)
for (int i = 0; i < dirs.count(); ++i)
appendOrganizationAndApp(dirs[i]);
break;
case FontsLocation:
dirs += QDir::homePath() + QLatin1String("/.fonts");
break;
default:
break;
}

View File

@ -0,0 +1,13 @@
{
"Id": "qtemporaryfile",
"Name": "Parts of QTemporaryFile",
"QDocModule": "qtcore",
"QtUsage": "Used in Qt Core. Disable the qtemporaryfile feature to avoid.",
"Path": "qtemporaryfile.cpp",
"Description": "Generates a unique file path and returns a native handle to the open file.",
"License": "BSD 3-clause \"New\" or \"Revised\" License",
"LicenseId": "BSD-3-Clause",
"LicenseFile": "QTEMPORARYFILE_LICENSE.txt",
"Copyright": "Copyright (c) 1987, 1993 The Regents of the University of California."
}

View File

@ -155,7 +155,7 @@
dealing with URLs and strings:
\list
\li When creating an QString to contain a URL from a QByteArray or a
\li When creating a QString to contain a URL from a QByteArray or a
char*, always use QString::fromUtf8().
\endlist
*/
@ -4128,35 +4128,6 @@ static bool isIp6(const QString &text)
return !text.isEmpty() && QIPAddressUtils::parseIp6(address, text.begin(), text.end()) == 0;
}
// The following code has the following copyright:
/*
Copyright (C) Research In Motion Limited 2009. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of Research In Motion Limited nor the
contributors may be used to endorse or promote products derived
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY Research In Motion Limited ''AS IS'' AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL Research In Motion Limited BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/*!
Returns a valid URL from a user supplied \a userInput string if one can be
deducted. In the case that is not possible, an invalid QUrl() is returned.
@ -4275,6 +4246,5 @@ QUrl QUrl::fromUserInput(const QString &userInput)
return QUrl();
}
// end of BSD code
QT_END_NAMESPACE

File diff suppressed because it is too large Load Diff

View File

@ -9,8 +9,8 @@ Those arrays in qurltlds_p.h are derived from the Public
Suffix List ([2]), which was originally provided by
Jo Hermans <jo.hermans@gmail.com>.
The file qurltlds_p.h was last generated Wednesday,
February 11th 14:36 2015.
The file qurltlds_p.h was last generated Thursday,
October 20th 8:40 2016.
----
[1] list: http://mxr.mozilla.org/mozilla-central/source/netwerk/dns/effective_tld_names.dat?raw=1

View File

@ -260,22 +260,28 @@ QJsonDocument QJsonDocument::fromBinaryData(const QByteArray &data, DataValidati
Creates a QJsonDocument from the QVariant \a variant.
If the \a variant contains any other type than a QVariantMap,
QVariantHash, QVariantList or QStringList, the returned document
document is invalid.
QVariantHash, QVariantList or QStringList, the returned document is invalid.
\sa toVariant()
*/
QJsonDocument QJsonDocument::fromVariant(const QVariant &variant)
{
QJsonDocument doc;
if (variant.type() == QVariant::Map) {
switch (variant.type()) {
case QVariant::Map:
doc.setObject(QJsonObject::fromVariantMap(variant.toMap()));
} else if (variant.type() == QVariant::Hash) {
break;
case QVariant::Hash:
doc.setObject(QJsonObject::fromVariantHash(variant.toHash()));
} else if (variant.type() == QVariant::List) {
break;
case QVariant::List:
doc.setArray(QJsonArray::fromVariantList(variant.toList()));
} else if (variant.type() == QVariant::StringList) {
break;
case QVariant::StringList:
doc.setArray(QJsonArray::fromStringList(variant.toStringList()));
break;
default:
break;
}
return doc;
}
@ -344,10 +350,9 @@ QByteArray QJsonDocument::toJson() const
#ifndef QT_JSON_READONLY
QByteArray QJsonDocument::toJson(JsonFormat format) const
{
if (!d)
return QByteArray();
QByteArray json;
if (!d)
return json;
if (d->header->root()->isArray())
QJsonPrivate::Writer::arrayToJson(static_cast<QJsonPrivate::Array *>(d->header->root()), json, 0, (format == Compact));

View File

@ -0,0 +1,29 @@
Copyright (c) 2007-2008, Apple, Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name of Apple, Inc. nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View File

@ -140,14 +140,12 @@ nacl {
unix|integrity {
SOURCES += \
kernel/qcore_unix.cpp \
kernel/qcrashhandler.cpp \
kernel/qeventdispatcher_unix.cpp \
kernel/qtimerinfo_unix.cpp
!darwin|nacl: SOURCES += kernel/qelapsedtimer_unix.cpp
HEADERS += \
kernel/qcore_unix_p.h \
kernel/qcrashhandler_p.h \
kernel/qeventdispatcher_unix_p.h \
kernel/qpoll_p.h \
kernel/qtimerinfo_unix_p.h

View File

@ -1004,7 +1004,7 @@ bool QCoreApplication::notifyInternal2(QObject *receiver, QEvent *event)
approaches are listed below:
\list 1
\li Reimplementing \l {QWidget::}{paintEvent()}, \l {QWidget::}{mousePressEvent()} and so
on. This is the commonest, easiest, and least powerful way.
on. This is the most common, easiest, and least powerful way.
\li Reimplementing this function. This is very powerful, providing
complete control; but only one subclass can be active at a time.

View File

@ -1,421 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the QtCore module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** 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 The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/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 3 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL3 included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 3 requirements
** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 2.0 or (at your option) the GNU General
** Public license version 3 or any later version approved by the KDE Free
** Qt Foundation. The licenses are as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-2.0.html and
** https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
/*************************************************************************
*
* stacktrace.c 1.2 1998/12/21
*
* Copyright (c) 1998 by Bjorn Reese <breese@imada.ou.dk>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
* MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
* CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
*
************************************************************************/
#include "qplatformdefs.h"
#include "private/qcrashhandler_p.h"
#include "qbytearray.h" // for qvsnprintf()
#ifndef QT_NO_CRASHHANDLER
#include <stdio.h>
#include <signal.h>
#include <stdlib.h>
QT_BEGIN_NAMESPACE
QtCrashHandler QSegfaultHandler::callback = 0;
#if defined(__GLIBC__) && (__GLIBC__ >= 2) && !defined(__UCLIBC__) && !defined(QT_LINUXBASE)
QT_BEGIN_INCLUDE_NAMESPACE
# include "qstring.h"
# include <execinfo.h>
QT_END_INCLUDE_NAMESPACE
static void print_backtrace(FILE *outb)
{
void *stack[128];
int stack_size = backtrace(stack, sizeof(stack) / sizeof(void *));
char **stack_symbols = backtrace_symbols(stack, stack_size);
fprintf(outb, "Stack [%d]:\n", stack_size);
if(FILE *cppfilt = popen("c++filt", "rw")) {
dup2(fileno(outb), fileno(cppfilt));
for(int i = stack_size-1; i>=0; --i)
fwrite(stack_symbols[i], 1, strlen(stack_symbols[i]), cppfilt);
pclose(cppfilt);
} else {
for(int i = stack_size-1; i>=0; --i)
fprintf(outb, "#%d %p [%s]\n", i, stack[i], stack_symbols[i]);
}
}
static void init_backtrace(char **, int)
{
}
#else /* Don't use the GLIBC callback */
/* Code sourced from: */
QT_BEGIN_INCLUDE_NAMESPACE
#include <stdarg.h>
#include <string.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/wait.h>
#if defined(Q_OS_IRIX) && defined(USE_LIBEXC)
# include <libexc.h>
#endif
QT_END_INCLUDE_NAMESPACE
static char *globalProgName = NULL;
static bool backtrace_command(FILE *outb, const char *format, ...)
{
bool ret = false;
char buffer[50];
/*
* Please note that vsnprintf() is not ASync safe (ie. cannot safely
* be used from a signal handler.) If this proves to be a problem
* then the cmd string can be built by more basic functions such as
* strcpy, strcat, and a home-made integer-to-ascii function.
*/
va_list args;
char cmd[512];
va_start(args, format);
qvsnprintf(cmd, 512, format, args);
va_end(args);
char *foo = cmd;
#if 0
foo = "echo hi";
#endif
if(FILE *inb = popen(foo, "r")) {
while(!feof(inb)) {
int len = fread(buffer, 1, sizeof(buffer), inb);
if(!len)
break;
if(!ret) {
fwrite("Output from ", 1, strlen("Output from "), outb);
strtok(cmd, " ");
fwrite(cmd, 1, strlen(cmd), outb);
fwrite("\n", 1, 1, outb);
ret = true;
}
fwrite(buffer, 1, len, outb);
}
fclose(inb);
}
return ret;
}
static void init_backtrace(char **argv, int argc)
{
if(argc >= 1)
globalProgName = argv[0];
}
static void print_backtrace(FILE *outb)
{
/*
* In general dbx seems to do a better job than gdb.
*
* Different dbx implementations require different flags/commands.
*/
#if defined(Q_OS_AIX)
if(backtrace_command(outb, "dbx -a %d 2>/dev/null <<EOF\n"
"where\n"
"detach\n"
"EOF\n",
(int)getpid()))
return;
if(backtrace_command(outb, "gdb -q %s %d 2>/dev/null <<EOF\n"
"set prompt\n"
"where\n"
"detach\n"
"quit\n"
"EOF\n",
globalProgName, (int)getpid()))
return;
#elif defined(Q_OS_FREEBSD)
/*
* FreeBSD insists on sending a SIGSTOP to the process we
* attach to, so we let the debugger send a SIGCONT to that
* process after we have detached.
*/
if(backtrace_command(outb, "gdb -q %s %d 2>/dev/null <<EOF\n"
"set prompt\n"
"where\n"
"detach\n"
"shell kill -CONT %d\n"
"quit\n"
"EOF\n",
globalProgName, (int)getpid(), (int)getpid()))
return;
#elif defined(Q_OS_HPUX)
/*
* HP decided to call their debugger xdb.
*
* This does not seem to work properly yet. The debugger says
* "Note: Stack traces may not be possible until you are
* stopped in user code." on HP-UX 09.01
*
* -L = line-oriented interface.
* "T [depth]" gives a stacktrace with local variables.
* The final "y" is confirmation to the quit command.
*/
if(backtrace_command(outb, "xdb -P %d -L %s 2>&1 <<EOF\n"
"T 50\n"
"q\ny\n"
"EOF\n",
(int)getpid(), globalProgName))
return;
if(backtrace_command(outb, "gdb -q %s %d 2>/dev/null <<EOF\n"
"set prompt\n"
"where\n"
"detach\n"
"quit\n"
"EOF\n",
globalProgName, (int)getpid()))
return;
#elif defined(Q_OS_IRIX)
/*
* "set $page=0" drops hold mode
* "dump ." displays the contents of the variables
*/
if(backtrace_command(outb, "dbx -p %d 2>/dev/null <<EOF\n"
"set \\$page=0\n"
"where\n"
# if !defined(__GNUC__)
/* gcc does not generate this information */
"dump .\n"
# endif
"detach\n"
"EOF\n",
(int)getpid()))
return;
# if defined(USE_LIBEXC)
if(trace_back_stack_and_print())
return;
# endif
if(backtrace_command(outb, "gdb -q %s %d 2>/dev/null <<EOF\n"
"set prompt\n"
"where\n"
"echo ---\\n\n"
"frame 5\n" /* Skip signal handler frames */
"set \\$x = 50\n"
"while (\\$x)\n" /* Print local variables for each frame */
"info locals\n"
"up\n"
"set \\$x--\n"
"end\n"
"echo ---\\n\n"
"detach\n"
"quit\n"
"EOF\n",
globalProgName, (int)getpid()))
return;
#elif defined(Q_OS_OSF)
if(backtrace_command(outb, "dbx -pid %d %s 2>/dev/null <<EOF\n"
"where\n"
"detach\n"
"quit\n"
"EOF\n",
(int)getpid(), globalProgName))
return;
if(backtrace_command(outb, "gdb -q %s %d 2>/dev/null <<EOF\n"
"set prompt\n"
"where\n"
"detach\n"
"quit\n"
"EOF\n",
globalProgName, (int)getpid()))
return;
#elif defined(Q_OS_SCO)
/*
* SCO OpenServer dbx is like a catch-22. The 'detach' command
* depends on whether ptrace(S) support detaching or not. If it
* is supported then 'detach' must be used, otherwise the process
* will be killed upon dbx exit. If it isn't supported then 'detach'
* will cause the process to be killed. We do not want it to be
* killed.
*
* Out of two evils, the omission of 'detach' was chosen because
* it worked on our system.
*/
if(backtrace_command(outb, "dbx %s %d 2>/dev/null <<EOF\n"
"where\n"
"quit\nEOF\n",
globalProgName, (int)getpid()))
return;
if(backtrace_command(outb, "gdb -q %s %d 2>/dev/null <<EOF\n"
"set prompt\n"
"where\n"
"detach\n"
"quit\n"
"EOF\n",
globalProgName, (int)getpid()))
return;
#elif defined(Q_OS_SOLARIS)
if(backtrace_command(outb, "dbx %s %d 2>/dev/null <<EOF\n"
"where\n"
"detach\n"
"EOF\n",
globalProgName, (int)getpid()))
return;
if(backtrace_command(outb, "gdb -q %s %d 2>/dev/null <<EOF\n"
"set prompt\n"
"where\n"
"echo ---\\n\n"
"frame 5\n" /* Skip signal handler frames */
"set \\$x = 50\n"
"while (\\$x)\n" /* Print local variables for each frame */
"info locals\n"
"up\n"
"set \\$x--\n"
"end\n"
"echo ---\\n\n"
"detach\n"
"quit\n"
"EOF\n",
globalProgName, (int)getpid()))
return;
if(backtrace_command(outb, "/usr/proc/bin/pstack %d",
(int)getpid()))
return;
/*
* Other Unices (AIX, HPUX, SCO) also have adb, but
* they seem unable to attach to a running process.)
*/
if(backtrace_command(outb, "adb %s 2>&1 <<EOF\n"
"0t%d:A\n" /* Attach to pid */
"\\$c\n" /* print stacktrace */
":R\n" /* Detach */
"\\$q\n" /* Quit */
"EOF\n",
globalProgName, (int)getpid()))
return;
#elif defined(Q_OS_INTEGRITY)
/* abort */
CheckSuccess(Failure);
#else /* All other platforms */
/*
* TODO: SCO/UnixWare 7 must be something like (not tested)
* debug -i c <pid> <<EOF\nstack -f 4\nquit\nEOF\n
*/
# if !defined(__GNUC__)
if(backtrace_command(outb, "dbx %s %d 2>/dev/null <<EOF\n"
"where\n"
"detach\n"
"EOF\n",
globalProgName, (int)getpid()))
return;
# endif
if(backtrace_command(outb, "gdb -q %s %d 2>/dev/null <<EOF\n"
"set prompt\n"
"where\n"
#if 0
"echo ---\\n\n"
"frame 4\n"
"set \\$x = 50\n"
"while (\\$x)\n"
"info locals\n"
"up\n"
"set \\$x--\n"
"end\n"
"echo ---\\n\n"
#endif
"detach\n"
"quit\n"
"EOF\n",
globalProgName, (int)getpid()))
return;
#endif
const char debug_err[] = "No debugger found\n";
fwrite(debug_err, strlen(debug_err), 1, outb);
}
/* end of copied code */
#endif
void qt_signal_handler(int sig)
{
signal(sig, SIG_DFL);
if(QSegfaultHandler::callback) {
(*QSegfaultHandler::callback)();
_exit(1);
}
FILE *outb = stderr;
if(char *crash_loc = ::getenv("QT_CRASH_OUTPUT")) {
if(FILE *new_outb = fopen(crash_loc, "w")) {
fprintf(stderr, "Crash (backtrace written to %s)!!!\n", crash_loc);
outb = new_outb;
}
} else {
fprintf(outb, "Crash!!!\n");
}
print_backtrace(outb);
if(outb != stderr)
fclose(outb);
_exit(1);
}
void
QSegfaultHandler::initialize(char **argv, int argc)
{
init_backtrace(argv, argc);
struct sigaction SignalAction;
SignalAction.sa_flags = 0;
SignalAction.sa_handler = qt_signal_handler;
sigemptyset(&SignalAction.sa_mask);
sigaction(SIGSEGV, &SignalAction, NULL);
sigaction(SIGBUS, &SignalAction, NULL);
}
QT_END_NAMESPACE
#endif // QT_NO_CRASHHANDLER

View File

@ -0,0 +1,13 @@
{
"Id": "qeventdispatcher_cf",
"Name": "QEventDispatcher on macOS",
"QDocModule": "qtcore",
"QtUsage": "Used in Qt Core on macOS.",
"Path": "qeventdispatcher_cf_p.h",
"Description": "Implementation of QAbstractEventDispatcher for macOS.",
"License": "BSD 3-clause \"New\" or \"Revised\" License",
"LicenseId": "BSD-3-Clause",
"LicenseFile": "QEVENTDISPATCHER_CF_LICENSE.txt",
"Copyright": "Copyright (c) 2007-2008, Apple, Inc."
}

View File

@ -533,7 +533,7 @@ void QTimer::singleShot(int msec, Qt::TimerType timerType, const QObject *receiv
*/
/*!
\fn void QTimer::singleShot(std::chrono::duration<Rep, Period> value, const QObject *receiver, const char *member)
\fn void QTimer::singleShot(std::chrono::milliseconds msec, const QObject *receiver, const char *member)
\since 5.8
\overload
\reentrant
@ -545,13 +545,13 @@ void QTimer::singleShot(int msec, Qt::TimerType timerType, const QObject *receiv
create a local QTimer object.
The \a receiver is the receiving object and the \a member is the slot. The
time interval is given in the duration object \a value.
time interval is given in the duration object \a msec.
\sa start()
*/
/*!
\fn void QTimer::singleShot(std::chrono::duration<Rep, Period> value, Qt::TimerType timerType, const QObject *receiver, const char *member)
\fn void QTimer::singleShot(std::chrono::milliseconds msec, Qt::TimerType timerType, const QObject *receiver, const char *member)
\since 5.8
\overload
\reentrant
@ -563,18 +563,18 @@ void QTimer::singleShot(int msec, Qt::TimerType timerType, const QObject *receiv
create a local QTimer object.
The \a receiver is the receiving object and the \a member is the slot. The
time interval is given in the duration object \a value. The \a timerType affects the
time interval is given in the duration object \a msec. The \a timerType affects the
accuracy of the timer.
\sa start()
*/
/*!
\fn void QTimer::start(std::chrono::duration<Rep, Period> value)
\fn void QTimer::start(std::chrono::milliseconds msec)
\since 5.8
\overload
Starts or restarts the timer with a timeout of duration \a value.
Starts or restarts the timer with a timeout of duration \a msec milliseconds.
If the timer is already running, it will be
\l{QTimer::stop()}{stopped} and restarted.

View File

@ -165,38 +165,40 @@ Q_SIGNALS:
public:
#if QT_HAS_INCLUDE(<chrono>) || defined(Q_QDOC)
template <class Rep, class Period>
void setInterval(std::chrono::duration<Rep, Period> value)
Q_ALWAYS_INLINE
void setInterval(std::chrono::milliseconds value)
{
setInterval(std::chrono::duration_cast<std::chrono::milliseconds>(value).count());
setInterval(value.count());
}
Q_ALWAYS_INLINE
std::chrono::milliseconds intervalAsDuration() const
{
return std::chrono::milliseconds(interval());
}
Q_ALWAYS_INLINE
std::chrono::milliseconds remainingTimeAsDuration() const
{
return std::chrono::milliseconds(remainingTime());
}
template <class Rep, class Period>
static void singleShot(std::chrono::duration<Rep, Period> value, const QObject *receiver, const char *member)
Q_ALWAYS_INLINE
static void singleShot(std::chrono::milliseconds value, const QObject *receiver, const char *member)
{
singleShot(int(std::chrono::duration_cast<std::chrono::milliseconds>(value).count()), receiver, member);
singleShot(int(value.count()), receiver, member);
}
template <class Rep, class Period>
static void singleShot(std::chrono::duration<Rep, Period> value, Qt::TimerType timerType, const QObject *receiver, const char *member)
Q_ALWAYS_INLINE
static void singleShot(std::chrono::milliseconds value, Qt::TimerType timerType, const QObject *receiver, const char *member)
{
singleShot(int(std::chrono::duration_cast<std::chrono::milliseconds>(value).count()), timerType, receiver, member);
singleShot(int(value.count()), timerType, receiver, member);
}
template <class Rep, class Period>
void start(std::chrono::duration<Rep, Period> value)
Q_ALWAYS_INLINE
void start(std::chrono::milliseconds value)
{
start(int(std::chrono::duration_cast<std::chrono::milliseconds>(value).count()));
start(int(value.count()));
}
#endif
@ -215,15 +217,13 @@ private:
const QObject *receiver, QtPrivate::QSlotObjectBase *slotObj);
#if QT_HAS_INCLUDE(<chrono>)
template <class Rep, class Period>
static Qt::TimerType defaultTypeFor(std::chrono::duration<Rep, Period> interval)
{ return defaultTypeFor(int(std::chrono::duration_cast<std::chrono::milliseconds>(interval).count())); }
static Qt::TimerType defaultTypeFor(std::chrono::milliseconds interval)
{ return defaultTypeFor(int(interval.count())); }
template <class Rep, class Period>
static void singleShotImpl(std::chrono::duration<Rep, Period> interval, Qt::TimerType timerType,
static void singleShotImpl(std::chrono::milliseconds interval, Qt::TimerType timerType,
const QObject *receiver, QtPrivate::QSlotObjectBase *slotObj)
{
singleShotImpl(int(std::chrono::duration_cast<std::chrono::milliseconds>(interval).count()),
singleShotImpl(int(interval.count()),
timerType, receiver, slotObj);
}
#endif

View File

@ -712,6 +712,10 @@ QMimeXMLProvider::QMimeXMLProvider(QMimeDatabasePrivate *db)
initResources();
}
QMimeXMLProvider::~QMimeXMLProvider()
{
}
bool QMimeXMLProvider::isValid()
{
return true;

View File

@ -138,6 +138,7 @@ class QMimeXMLProvider : public QMimeProviderBase
{
public:
QMimeXMLProvider(QMimeDatabasePrivate *db);
~QMimeXMLProvider();
virtual bool isValid() Q_DECL_OVERRIDE;
virtual QMimeType mimeTypeForName(const QString &name) Q_DECL_OVERRIDE;

View File

@ -89,8 +89,8 @@ public:
void unlock()
{
if (locked) {
if (mtx1) mtx1->unlock();
if (mtx2) mtx2->unlock();
if (mtx1) mtx1->unlock();
locked = false;
}
}
@ -100,7 +100,7 @@ public:
// mtx1 is already locked, mtx2 not... do we need to unlock and relock?
if (mtx1 == mtx2)
return false;
if (mtx1 < mtx2) {
if (std::less<QMutex *>()(mtx1, mtx2)) {
mtx2->lock();
return true;
}

View File

@ -0,0 +1,31 @@
Copyright © 1991-2016 Unicode, Inc. All rights reserved.
Distributed under the Terms of Use in http://www.unicode.org/copyright.html.
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Unicode data files and any associated documentation
(the "Data Files") or Unicode software and any associated documentation
(the "Software") to deal in the Data Files or Software
without restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, and/or sell copies of
the Data Files or Software, and to permit persons to whom the Data Files
or Software are furnished to do so, provided that either
(a) this copyright and permission notice appear with all copies
of the Data Files or Software, or
(b) this copyright and permission notice appear in associated
Documentation.
THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT OF THIRD PARTY RIGHTS.
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THE DATA FILES OR SOFTWARE.
Except as contained in this notice, the name of a copyright holder
shall not be used in advertising or otherwise to promote the sale,
use or other dealings in these Data Files or Software without prior
written authorization of the copyright holder.

View File

@ -42,6 +42,10 @@
#include <QtCore/qglobal.h>
#if defined(Q_CC_MSVC)
#include <intrin.h>
#endif
QT_BEGIN_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_GCC("-Wdeprecated-declarations")

Some files were not shown because too many files have changed in this diff Show More