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

Conflicts:
	qmake/doc/src/qmake-manual.qdoc
	src/corelib/global/qglobal.cpp
	src/corelib/tools/qstring.cpp
	src/network/socket/qabstractsocket.cpp
	src/network/socket/qnativesocketengine_unix.cpp
	src/plugins/platforms/eglfs/api/qeglfsglobal.h

Change-Id: Id5dfdbd30fa996f9b4b66a0b030b7d3b8c0ef288
This commit is contained in:
Liang Qi 2016-08-16 07:58:32 +02:00
commit 17198e03ab
174 changed files with 988 additions and 509 deletions

View File

@ -10,6 +10,7 @@ macro.gui = "\\b"
macro.HR.HTML = "<hr />" macro.HR.HTML = "<hr />"
macro.iacute.HTML = "&iacute;" macro.iacute.HTML = "&iacute;"
macro.key = "\\b" macro.key = "\\b"
macro.macos = "macOS"
macro.menu = "\\b" macro.menu = "\\b"
macro.oslash.HTML = "&oslash;" macro.oslash.HTML = "&oslash;"
macro.ouml.HTML = "&ouml;" macro.ouml.HTML = "&ouml;"

View File

@ -129,7 +129,7 @@
\c{freeBytes.available()} is \c BufferSize - 1 and \c{freeBytes.available()} is \c BufferSize - 1 and
\c{usedBytes.available()} is 1. At that point, two things can \c{usedBytes.available()} is 1. At that point, two things can
happen: Either the consumer thread takes over and reads that happen: Either the consumer thread takes over and reads that
byte, or the consumer gets to produce a second byte. byte, or the producer thread gets to produce a second byte.
The producer-consumer model presented in this example makes it The producer-consumer model presented in this example makes it
possible to write highly concurrent multithreaded applications. possible to write highly concurrent multithreaded applications.

View File

@ -137,7 +137,7 @@
to show the message with the title, body, and icon for the time to show the message with the title, body, and icon for the time
specified in milliseconds. specified in milliseconds.
OS X users note: The Growl notification system must be \macos users note: The Growl notification system must be
installed for QSystemTrayIcon::showMessage() to display messages. installed for QSystemTrayIcon::showMessage() to display messages.
QSystemTrayIcon also has the corresponding, \l {QSystemTrayIcon::} QSystemTrayIcon also has the corresponding, \l {QSystemTrayIcon::}
@ -172,7 +172,7 @@
We have reimplemented the QWidget::closeEvent() event handler to We have reimplemented the QWidget::closeEvent() event handler to
receive widget close events, showing the above message to the receive widget close events, showing the above message to the
users when they are closing the editor window. On OS X we need to users when they are closing the editor window. On \macos we need to
avoid showing the message and accepting the close event when the avoid showing the message and accepting the close event when the
user really intends to quit the application, that is, when the user really intends to quit the application, that is, when the
user has triggered "Quit" in the menu bar or pressed the Command+Q user has triggered "Quit" in the menu bar or pressed the Command+Q

View File

@ -222,7 +222,7 @@
and Qt::AlignLeft. and Qt::AlignLeft.
A QString object, \c text, is customized to display data according to the A QString object, \c text, is customized to display data according to the
contents of \c format. We invoke {QString}'s \l{QString::simplified()} contents of \c format. We invoke \l{QString}'s \l{QString::simplified()}
{simplified()} function on \c text, to obtain a string that has no {simplified()} function on \c text, to obtain a string that has no
additional space before, after or in between words. additional space before, after or in between words.

View File

@ -234,7 +234,7 @@
Just before we create the \uicontrol{Help} menu, we call Just before we create the \uicontrol{Help} menu, we call
QMenuBar::addSeparator(). This has no effect for most widget QMenuBar::addSeparator(). This has no effect for most widget
styles (e.g., Windows and OS X styles), but for some styles (e.g., Windows and \macos styles), but for some
styles this makes sure that \uicontrol{Help} is pushed to the right styles this makes sure that \uicontrol{Help} is pushed to the right
side of the menu bar. side of the menu bar.
@ -253,7 +253,7 @@
load the user's preferences and other application settings. The load the user's preferences and other application settings. The
QSettings class provides a high-level interface for storing QSettings class provides a high-level interface for storing
settings permanently on disk. On Windows, it uses the (in)famous settings permanently on disk. On Windows, it uses the (in)famous
Windows registry; on OS X, it uses the native XML-based Windows registry; on \macos, it uses the native XML-based
CFPreferences API; on Unix/X11, it uses text files. CFPreferences API; on Unix/X11, it uses text files.
The QSettings constructor takes arguments that identify your The QSettings constructor takes arguments that identify your
@ -305,7 +305,7 @@
We start by opening the file in read-only mode. The QFile::Text We start by opening the file in read-only mode. The QFile::Text
flag indicates that the file is a text file, not a binary file. flag indicates that the file is a text file, not a binary file.
On Unix and OS X, this makes no difference, but on Windows, On Unix and \macos, this makes no difference, but on Windows,
it ensures that the "\\r\\n" end-of-line sequence is converted to it ensures that the "\\r\\n" end-of-line sequence is converted to
"\\n" when reading. "\\n" when reading.

View File

@ -76,7 +76,7 @@
\endlist \endlist
Although the program is just an example, if you press \uicontrol Finish Although the program is just an example, if you press \uicontrol Finish
(\uicontrol Done on OS X), actual C++ source files will actually be (\uicontrol Done on \macos), actual C++ source files will actually be
generated. generated.
\section1 The ClassWizard Class \section1 The ClassWizard Class
@ -158,7 +158,7 @@
layouts. The \c className field is created with an asterisk (\c layouts. The \c className field is created with an asterisk (\c
*) next to its name. This makes it a \l{mandatory fields}{mandatory field}, that *) next to its name. This makes it a \l{mandatory fields}{mandatory field}, that
is, a field that must be filled before the user can press the is, a field that must be filled before the user can press the
\uicontrol Next button (\uicontrol Continue on OS X). The fields' values \uicontrol Next button (\uicontrol Continue on \macos). The fields' values
can be accessed from any other page using QWizardPage::field(), can be accessed from any other page using QWizardPage::field(),
or from the wizard code using QWizard::field(). or from the wizard code using QWizard::field().

View File

@ -94,7 +94,7 @@
\snippet dialogs/licensewizard/licensewizard.cpp 4 \snippet dialogs/licensewizard/licensewizard.cpp 4
We set the style to \l{QWizard::}{ModernStyle} on all platforms We set the style to \l{QWizard::}{ModernStyle} on all platforms
except OS X, except \macos,
\snippet dialogs/licensewizard/licensewizard.cpp 5 \snippet dialogs/licensewizard/licensewizard.cpp 5
\snippet dialogs/licensewizard/licensewizard.cpp 6 \snippet dialogs/licensewizard/licensewizard.cpp 6
@ -160,7 +160,7 @@
layouts. The fields are created with an asterisk (\c layouts. The fields are created with an asterisk (\c
*) next to their name. This makes them \l{mandatory fields}, that *) next to their name. This makes them \l{mandatory fields}, that
is, fields that must be filled before the user can press the is, fields that must be filled before the user can press the
\uicontrol Next button (\uicontrol Continue on OS X). The fields' values \uicontrol Next button (\uicontrol Continue on \macos). The fields' values
can be accessed from any other page using QWizardPage::field(). can be accessed from any other page using QWizardPage::field().
Resetting the page amounts to clearing the two text fields. Resetting the page amounts to clearing the two text fields.

View File

@ -162,7 +162,7 @@
subdirectory of the Plug & Paint example. On Unix, this is just a subdirectory of the Plug & Paint example. On Unix, this is just a
matter of initializing the QDir variable with matter of initializing the QDir variable with
QApplication::applicationDirPath(), the path of the executable QApplication::applicationDirPath(), the path of the executable
file, and to do a \l{QDir::cd()}{cd()}. On Windows and OS X, file, and to do a \l{QDir::cd()}{cd()}. On Windows and \macos,
this file is usually located in a subdirectory, so we need to this file is usually located in a subdirectory, so we need to
take this into account. take this into account.

View File

@ -160,7 +160,9 @@ void DragWidget::mousePressEvent(QMouseEvent *event)
mimeData->setData(hotSpotMimeDataKey(), mimeData->setData(hotSpotMimeDataKey(),
QByteArray::number(hotSpot.x()) + ' ' + QByteArray::number(hotSpot.y())); QByteArray::number(hotSpot.x()) + ' ' + QByteArray::number(hotSpot.y()));
QPixmap pixmap(child->size()); qreal dpr = window()->windowHandle()->devicePixelRatio();
QPixmap pixmap(child->size() * dpr);
pixmap.setDevicePixelRatio(dpr);
child->render(&pixmap); child->render(&pixmap);
QDrag *drag = new QDrag(this); QDrag *drag = new QDrag(this);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 524 B

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 892 B

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 789 B

View File

@ -50,5 +50,5 @@ greaterThan(MSC_VER, 1899) {
QMAKE_CFLAGS_WARN_ON += -w44456 -w44457 -w44458 QMAKE_CFLAGS_WARN_ON += -w44456 -w44457 -w44458
QMAKE_CFLAGS_AVX2 = -arch:AVX2 QMAKE_CFLAGS_AVX2 = -arch:AVX2
QMAKE_CXXFLAGS += -Zc:strictStrings -Zc:throwingNew QMAKE_CXXFLAGS += -Zc:strictStrings -Zc:throwingNew
QMAKE_CXXFLAGS_WARN_ON += -w44456 -w44457 -w44458 -wd4577 QMAKE_CXXFLAGS_WARN_ON += -w44456 -w44457 -w44458 -wd4577 -wd4467
} }

View File

@ -10,6 +10,10 @@
# -no-gcc-sysroot \ # -no-gcc-sysroot \
# -opengl es2 # -opengl es2
# Note: This enables eglfs and wayland only. To enable xcb (with EGL
# support) as well, add -qt-xcb and fix the SDK's X11 headers. See
# QTBUG-55140.
include(../common/linux_device_pre.conf) include(../common/linux_device_pre.conf)
isEmpty(VIBRANTE_SDK_TOPDIR):error("You must pass -device-option VIBRANTE_SDK_TOPDIR=/path/to/sdk") isEmpty(VIBRANTE_SDK_TOPDIR):error("You must pass -device-option VIBRANTE_SDK_TOPDIR=/path/to/sdk")
@ -31,7 +35,10 @@ QMAKE_LFLAGS += \
-Wl,-rpath-link,$$[QT_SYSROOT]/lib/aarch64-linux-gnu -Wl,-rpath-link,$$[QT_SYSROOT]/lib/aarch64-linux-gnu
DISTRO_OPTS += aarch64 DISTRO_OPTS += aarch64
COMPILER_FLAGS += -mtune=cortex-a57.cortex-a53 -march=armv8-a -DWIN_INTERFACE_CUSTOM
# Do not define WIN_INTERFACE_CUSTOM here. It is suitable for drm and
# wayland, but not X11. Leave it to qt_egl_p.h instead.
COMPILER_FLAGS += -mtune=cortex-a57.cortex-a53 -march=armv8-a
EGLFS_DEVICE_INTEGRATION = eglfs_kms_egldevice EGLFS_DEVICE_INTEGRATION = eglfs_kms_egldevice

View File

@ -18,10 +18,15 @@ fq_qml_files = $$qmldir_file
for(qmlf, QML_FILES): fq_qml_files += $$absolute_path($$qmlf, $$_PRO_FILE_PWD_) for(qmlf, QML_FILES): fq_qml_files += $$absolute_path($$qmlf, $$_PRO_FILE_PWD_)
qml1_target: \ load(qt_build_paths)
qml1_target {
DESTDIR = $$MODULE_BASE_OUTDIR/imports/$$TARGETPATH
instbase = $$[QT_INSTALL_IMPORTS] instbase = $$[QT_INSTALL_IMPORTS]
else: \ } else {
DESTDIR = $$MODULE_BASE_OUTDIR/qml/$$TARGETPATH
instbase = $$[QT_INSTALL_QML] instbase = $$[QT_INSTALL_QML]
}
!qml1_target:static: CONFIG += builtin_resources !qml1_target:static: CONFIG += builtin_resources
@ -41,4 +46,13 @@ else: qmldir.files = $$qmldir_file
qmldir.path = $$instbase/$$TARGETPATH qmldir.path = $$instbase/$$TARGETPATH
INSTALLS += qmldir INSTALLS += qmldir
!prefix_build: COPIES += qmldir !debug_and_release|!build_all|CONFIG(release, debug|release) {
!prefix_build {
COPIES += qmldir
} else {
# For non-installed static builds, qmlimportscanner needs qmldir file in build dir
qmldir2build.files = $$qmldir_file
qmldir2build.path = $$DESTDIR
COPIES += qmldir2build
}
}

View File

@ -44,6 +44,8 @@ echo "SIMULATOR_DEVICES = $booted_simulator"
xcodebuild test -scheme $2 -destination 'id=0' -destination-timeout 1 2>&1| sed -n 's/{ \(platform:.*\) }/\1/p' | while read destination; do xcodebuild test -scheme $2 -destination 'id=0' -destination-timeout 1 2>&1| sed -n 's/{ \(platform:.*\) }/\1/p' | while read destination; do
id=$(echo $destination | sed -n -E 's/.*id:([^ ,]+).*/\1/p') id=$(echo $destination | sed -n -E 's/.*id:([^ ,]+).*/\1/p')
[[ $id == *"placeholder"* ]] && continue
echo $destination | tr ',' '\n' | while read keyval; do echo $destination | tr ',' '\n' | while read keyval; do
key=$(echo $keyval | cut -d ':' -f 1 | tr '[:lower:]' '[:upper:]') key=$(echo $keyval | cut -d ':' -f 1 | tr '[:lower:]' '[:upper:]')
val=$(echo $keyval | cut -d ':' -f 2) val=$(echo $keyval | cut -d ':' -f 2)

View File

@ -12,9 +12,6 @@ build_pass:simulator: \
load(sdk) load(sdk)
lessThan(QMAKE_MAC_SDK_VERSION, "8.0"): \
error("Current $$QMAKE_MAC_SDK SDK version ($$QMAKE_MAC_SDK_VERSION) is too old. Please upgrade Xcode.")
macx-xcode { macx-xcode {
sdk_path_device.name = "QMAKE_MAC_SDK_PATH[sdk=$${device.sdk}*]" sdk_path_device.name = "QMAKE_MAC_SDK_PATH[sdk=$${device.sdk}*]"
sdk_path_device.value = $$xcodeSDKInfo(Path, $${device.sdk}) sdk_path_device.value = $$xcodeSDKInfo(Path, $${device.sdk})

View File

@ -657,7 +657,7 @@
qmake knows about many of these features, which can be accessed via specific qmake knows about many of these features, which can be accessed via specific
variables that only take effect on the platforms where they are relevant. variables that only take effect on the platforms where they are relevant.
\section1 OS X, iOS and tvOS \section1 \macos, iOS and tvOS
Features specific to these platforms include support for creating universal Features specific to these platforms include support for creating universal
binaries, frameworks and bundles. binaries, frameworks and bundles.
@ -681,7 +681,7 @@
qmake is able to automatically generate build qmake is able to automatically generate build
rules for linking against frameworks in the standard framework directory on rules for linking against frameworks in the standard framework directory on
OS X, located at \c{/Library/Frameworks/}. \macos, located at \c{/Library/Frameworks/}.
Directories other than the standard framework directory need to be specified Directories other than the standard framework directory need to be specified
to the build system, and this is achieved by appending linker options to the to the build system, and this is achieved by appending linker options to the
@ -722,13 +722,13 @@
and \l{QMAKE_FRAMEWORK_VERSION} variables. By default, the values used for and \l{QMAKE_FRAMEWORK_VERSION} variables. By default, the values used for
these variables are obtained from the \l{TARGET} and \l{VERSION} variables. these variables are obtained from the \l{TARGET} and \l{VERSION} variables.
See \l{Qt for OS X - Deployment} for more information about See \l{Qt for macOS - Deployment} for more information about
deploying applications and libraries. deploying applications and libraries.
\section2 Creating and Moving Xcode Projects \section2 Creating and Moving Xcode Projects
Developers on OS X can take advantage of the qmake support for Xcode Developers on \macos can take advantage of the qmake support for Xcode
project files, as described in \l{Qt for OS X#Additional Command-Line Options}{Qt for OS X} documentation. project files, as described in \l{Qt for macOS#Additional Command-Line Options}{Qt for \macos} documentation.
by running qmake to generate an Xcode project from an existing qmake project by running qmake to generate an Xcode project from an existing qmake project
file. For example: file. For example:
@ -1069,7 +1069,7 @@
See \l{Platform Notes#Visual Studio Manifest Files}{Platform Notes} See \l{Platform Notes#Visual Studio Manifest Files}{Platform Notes}
for more information about the options for embedding manifest files. for more information about the options for embedding manifest files.
The following options take an effect only on OS X: The following options take an effect only on \macos:
\table \table
\header \li Option \li Description \header \li Option \li Description
@ -1439,7 +1439,7 @@
\target QMAKE_BUNDLE_DATA \target QMAKE_BUNDLE_DATA
\section1 QMAKE_BUNDLE_DATA \section1 QMAKE_BUNDLE_DATA
\note This variable is used on OS X, iOS and tvOS only. \note This variable is used on \macos, iOS and tvOS only.
Specifies the data that will be installed with a library Specifies the data that will be installed with a library
bundle, and is often used to specify a collection of header files. bundle, and is often used to specify a collection of header files.
@ -1461,7 +1461,7 @@
\section1 QMAKE_BUNDLE_EXTENSION \section1 QMAKE_BUNDLE_EXTENSION
\note This variable is used on OS X, iOS and tvOS only. \note This variable is used on \macos, iOS and tvOS only.
Specifies the extension to be used for library bundles. Specifies the extension to be used for library bundles.
This allows frameworks to be created with custom extensions instead of the This allows frameworks to be created with custom extensions instead of the
@ -1695,7 +1695,7 @@
\section1 QMAKE_FRAMEWORK_BUNDLE_NAME \section1 QMAKE_FRAMEWORK_BUNDLE_NAME
\note This variable is used on OS X, iOS and tvOS only. \note This variable is used on \macos, iOS and tvOS only.
In a framework project, this variable contains the name to be used for the In a framework project, this variable contains the name to be used for the
framework that is built. framework that is built.
@ -1709,9 +1709,9 @@
\target QMAKE_FRAMEWORK_VERSION \target QMAKE_FRAMEWORK_VERSION
\section1 QMAKE_FRAMEWORK_VERSION \section1 QMAKE_FRAMEWORK_VERSION
\note This variable is used on OS X, iOS and tvOS only. \note This variable is used on \macos, iOS and tvOS only.
For projects where the build target is an OS X, iOS or tvOS framework, this For projects where the build target is an \macos, iOS or tvOS framework, this
variable is used to specify the version number that will be applied to the variable is used to specify the version number that will be applied to the
framework that is built. framework that is built.
@ -1804,10 +1804,10 @@
\target QMAKE_INFO_PLIST \target QMAKE_INFO_PLIST
\section1 QMAKE_INFO_PLIST \section1 QMAKE_INFO_PLIST
\note This variable is used on OS X, iOS and tvOS platforms only. \note This variable is used on \macos, iOS and tvOS platforms only.
Specifies the name of the property list file, \c{.plist}, you Specifies the name of the property list file, \c{.plist}, you
would like to include in your OS X, iOS and tvOS application bundle. would like to include in your \macos, iOS and tvOS application bundle.
In the \c{.plist} file, you can define some variables, e.g., @EXECUTABLE@, In the \c{.plist} file, you can define some variables, e.g., @EXECUTABLE@,
which qmake will replace with the actual executable name. Other variables which qmake will replace with the actual executable name. Other variables
@ -2077,16 +2077,16 @@
\section1 QMAKE_MAC_SDK \section1 QMAKE_MAC_SDK
This variable is used on OS X when building universal binaries. This variable is used on \macos when building universal binaries.
\section1 QMAKE_MACOSX_DEPLOYMENT_TARGET \section1 QMAKE_MACOSX_DEPLOYMENT_TARGET
This variable only takes effect when building on OS X. On that This variable only takes effect when building on \macos. On that
platform, the variable will be forwarded to the MACOSX_DEPLOYMENT_TARGET platform, the variable will be forwarded to the MACOSX_DEPLOYMENT_TARGET
environment variable, which is interpreted by the compiler or linker. environment variable, which is interpreted by the compiler or linker.
For more information, see the For more information, see the
\l{Qt for OS X - Deployment#OS X Version Dependencies}{Deploying \l{Qt for macOS - Deployment#macOS Version Dependencies}{Deploying
an Application on OS X} document. an Application on \macos} document.
\section1 QMAKE_MAKEFILE \section1 QMAKE_MAKEFILE
@ -4428,7 +4428,7 @@
\li nmake \li nmake
\li Visual Studio projects (VS 2008 and later) \li Visual Studio projects (VS 2008 and later)
\endlist \endlist
\li OS X, iOS and tvOS \li \macos, iOS and tvOS
\list \list
\li Makefile \li Makefile
\li Xcode \li Xcode
@ -4799,7 +4799,7 @@
them uses project-specific variables to customize output files. them uses project-specific variables to customize output files.
Platform-specific variables are not described here. For more information, Platform-specific variables are not described here. For more information,
see \l{Qt for Windows - Deployment} and \l{Qt for OS X}. see \l{Qt for Windows - Deployment} and \l{Qt for macOS}.
\target Application \target Application
\section1 Building an Application \section1 Building an Application
@ -4947,7 +4947,7 @@
\endlist \endlist
The target file name for the library is platform-dependent. For example, on The target file name for the library is platform-dependent. For example, on
X11, OS X, and iOS, the library name will be prefixed by \c lib. On Windows, X11, \macos, and iOS, the library name will be prefixed by \c lib. On Windows,
no prefix is added to the file name. no prefix is added to the file name.
\target Plugin \target Plugin

View File

@ -391,6 +391,12 @@ void NmakeMakefileGenerator::init()
if (!defines.contains("NDEBUG")) if (!defines.contains("NDEBUG"))
defines.append("NDEBUG"); defines.append("NDEBUG");
} }
if (project->values("QMAKE_APP_FLAG").isEmpty() && project->isActiveConfig("dll")) {
ProStringList &defines = project->values("DEFINES");
if (!defines.contains("_WINDLL"))
defines.append("_WINDLL");
}
} }
QStringList NmakeMakefileGenerator::sourceFilesForImplicitRulesFilter() QStringList NmakeMakefileGenerator::sourceFilesForImplicitRulesFilter()

View File

@ -136,7 +136,7 @@
\image resources.png Building resources into an application \image resources.png Building resources into an application
Currently, Qt always stores the data directly in the executable, Currently, Qt always stores the data directly in the executable,
even on Windows, OS X, and iOS, where the operating system provides even on Windows, \macos, and iOS, where the operating system provides
native support for resources. This might change in a future Qt native support for resources. This might change in a future Qt
release. release.

View File

@ -1071,8 +1071,8 @@ bool qSharedBuild() Q_DECL_NOTHROW
\endlist \endlist
Some constants are defined only on certain platforms. You can use Some constants are defined only on certain platforms. You can use
the preprocessor symbols Q_OS_WIN and Q_OS_OSX to test that the preprocessor symbols Q_OS_WIN and Q_OS_MACOS to test that
the application is compiled under Windows or OS X. the application is compiled under Windows or \macos.
\sa QLibraryInfo \sa QLibraryInfo
*/ */
@ -1111,7 +1111,7 @@ bool qSharedBuild() Q_DECL_NOTHROW
/*! /*!
\fn QSysInfo::MacVersion QSysInfo::macVersion() \fn QSysInfo::MacVersion QSysInfo::macVersion()
Returns the version of Darwin (OS X or iOS) on which the Returns the version of Darwin (\macos or iOS) on which the
application is run, or MV_None if the operating system application is run, or MV_None if the operating system
is not a version of Darwin. is not a version of Darwin.
*/ */
@ -1179,24 +1179,24 @@ bool qSharedBuild() Q_DECL_NOTHROW
\enum QSysInfo::MacVersion \enum QSysInfo::MacVersion
This enum provides symbolic names for the various versions of the This enum provides symbolic names for the various versions of the
Darwin operating system, covering both OS X and iOS. The Darwin operating system, covering both \macos and iOS. The
QSysInfo::MacintoshVersion variable gives the version of the QSysInfo::MacintoshVersion variable gives the version of the
system on which the application is run. system on which the application is run.
\value MV_9 Mac OS 9 \value MV_9 \macos 9
\value MV_10_0 Mac OS X 10.0 \value MV_10_0 \macos 10.0
\value MV_10_1 Mac OS X 10.1 \value MV_10_1 \macos 10.1
\value MV_10_2 Mac OS X 10.2 \value MV_10_2 \macos 10.2
\value MV_10_3 Mac OS X 10.3 \value MV_10_3 \macos 10.3
\value MV_10_4 Mac OS X 10.4 \value MV_10_4 \macos 10.4
\value MV_10_5 Mac OS X 10.5 \value MV_10_5 \macos 10.5
\value MV_10_6 Mac OS X 10.6 \value MV_10_6 \macos 10.6
\value MV_10_7 Mac OS X 10.7 \value MV_10_7 \macos 10.7
\value MV_10_8 OS X 10.8 \value MV_10_8 \macos 10.8
\value MV_10_9 OS X 10.9 \value MV_10_9 \macos 10.9
\value MV_10_10 OS X 10.10 \value MV_10_10 \macos 10.10
\value MV_10_11 OS X 10.11 \value MV_10_11 \macos 10.11
\value MV_10_12 macOS 10.12 \value MV_10_12 \macos 10.12
\value MV_Unknown An unknown and currently unsupported platform \value MV_Unknown An unknown and currently unsupported platform
\value MV_CHEETAH Apple codename for MV_10_0 \value MV_CHEETAH Apple codename for MV_10_0
@ -1247,7 +1247,7 @@ bool qSharedBuild() Q_DECL_NOTHROW
\macro Q_OS_DARWIN \macro Q_OS_DARWIN
\relates <QtGlobal> \relates <QtGlobal>
Defined on Darwin-based operating systems such as macOS, iOS, watchOS, and tvOS. Defined on Darwin-based operating systems such as \macOS, iOS, watchOS, and tvOS.
*/ */
/*! /*!
@ -1268,7 +1268,7 @@ bool qSharedBuild() Q_DECL_NOTHROW
\macro Q_OS_MACOS \macro Q_OS_MACOS
\relates <QtGlobal> \relates <QtGlobal>
Defined on macOS. Defined on \macos.
*/ */
/*! /*!
@ -2568,7 +2568,7 @@ static QString unknownText()
Note that this function may return surprising values: it returns "linux" Note that this function may return surprising values: it returns "linux"
for all operating systems running Linux (including Android), "qnx" for all for all operating systems running Linux (including Android), "qnx" for all
operating systems running QNX, "freebsd" for operating systems running QNX, "freebsd" for
Debian/kFreeBSD, and "darwin" for OS X and iOS. For information on the type Debian/kFreeBSD, and "darwin" for \macos and iOS. For information on the type
of product the application is running on, see productType(). of product the application is running on, see productType().
\sa QFileSelector, kernelVersion(), productType(), productVersion(), prettyProductName() \sa QFileSelector, kernelVersion(), productType(), productVersion(), prettyProductName()
@ -2590,7 +2590,7 @@ QString QSysInfo::kernelType()
Returns the release version of the operating system kernel. On Windows, it Returns the release version of the operating system kernel. On Windows, it
returns the version of the NT kernel. On Unix systems, including returns the version of the NT kernel. On Unix systems, including
Android and OS X, it returns the same as the \c{uname -r} Android and \macos, it returns the same as the \c{uname -r}
command would return. command would return.
If the version could not be determined, this function may return an empty If the version could not be determined, this function may return an empty
@ -2631,11 +2631,11 @@ QString QSysInfo::kernelVersion()
to determine the distribution name and returns that. If determining the to determine the distribution name and returns that. If determining the
distribution name failed, it returns "unknown". distribution name failed, it returns "unknown".
\b{Darwin, macOS, iOS and tvOS note}: this function returns "macos" for macOS \b{Darwin, \macOS, iOS and tvOS note}: this function returns "macos" for macOS
systems, "ios" for iOS systems, "tvos" for tvOS systems and "darwin" in case systems, "ios" for iOS systems, "tvos" for tvOS systems and "darwin" in case
the system could not be determined. the system could not be determined.
\b{OS X note}: this function returns "osx" for versions of macOS prior to 10.12. \b{OS X note}: this function returns "osx" for versions of \macos prior to 10.12.
\b{FreeBSD note}: this function returns "debian" for Debian/kFreeBSD and \b{FreeBSD note}: this function returns "debian" for Debian/kFreeBSD and
"unknown" otherwise. "unknown" otherwise.
@ -2690,7 +2690,7 @@ QString QSysInfo::productType()
Returns the product version of the operating system in string form. If the Returns the product version of the operating system in string form. If the
version could not be determined, this function returns "unknown". version could not be determined, this function returns "unknown".
It will return the Android, iOS, OS X, Windows full-product It will return the Android, iOS, \macos, Windows full-product
versions on those systems. In particular, on OS X, iOS and Windows, the versions on those systems. In particular, on OS X, iOS and Windows, the
returned string is similar to the macVersion() or windowsVersion() enums. returned string is similar to the macVersion() or windowsVersion() enums.

View File

@ -111,7 +111,7 @@
shown in any menus unless specifically set by the shown in any menus unless specifically set by the
QAction::iconVisibleInMenu property. QAction::iconVisibleInMenu property.
Menus that are currently open or menus already created in the native Menus that are currently open or menus already created in the native
OS X menubar \e{may not} pick up a change in this attribute. Changes \macos menubar \e{may not} pick up a change in this attribute. Changes
in the QAction::iconVisibleInMenu property will always be picked up. in the QAction::iconVisibleInMenu property will always be picked up.
\value AA_NativeWindows Ensures that widgets have native windows. \value AA_NativeWindows Ensures that widgets have native windows.
@ -137,9 +137,9 @@
\value AA_DontUseNativeMenuBar All menubars created while this attribute is \value AA_DontUseNativeMenuBar All menubars created while this attribute is
set to true won't be used as a native menubar (e.g, the menubar at set to true won't be used as a native menubar (e.g, the menubar at
the top of the main screen on OS X or at the bottom in Windows CE). the top of the main screen on \macos or at the bottom in Windows CE).
\value AA_MacDontSwapCtrlAndMeta On OS X by default, Qt swaps the \value AA_MacDontSwapCtrlAndMeta On \macos by default, Qt swaps the
Control and Meta (Command) keys (i.e., whenever Control is pressed, Qt Control and Meta (Command) keys (i.e., whenever Control is pressed, Qt
sends Meta, and whenever Meta is pressed Control is sent). When this sends Meta, and whenever Meta is pressed Control is sent). When this
attribute is true, Qt will not do the flip. \l QKeySequence::StandardKey attribute is true, Qt will not do the flip. \l QKeySequence::StandardKey
@ -357,7 +357,7 @@
\omitvalue KeyboardModifierMask \omitvalue KeyboardModifierMask
\note On OS X, the \c ControlModifier value corresponds to \note On \macos, the \c ControlModifier value corresponds to
the Command keys on the Macintosh keyboard, and the \c MetaModifier value the Command keys on the Macintosh keyboard, and the \c MetaModifier value
corresponds to the Control keys. The \c KeypadModifier value will also be set corresponds to the Control keys. The \c KeypadModifier value will also be set
when an arrow key is pressed as the arrow keys are considered part of the when an arrow key is pressed as the arrow keys are considered part of the
@ -375,7 +375,7 @@
This enum provides shorter names for the keyboard modifier keys This enum provides shorter names for the keyboard modifier keys
supported by Qt. supported by Qt.
\note On OS X, the \c CTRL value corresponds to \note On \macos, the \c CTRL value corresponds to
the Command keys on the Macintosh keyboard, and the \c META value the Command keys on the Macintosh keyboard, and the \c META value
corresponds to the Control keys. corresponds to the Control keys.
@ -974,34 +974,34 @@
\value WA_MacOpaqueSizeGrip Indicates that the native Carbon size grip \value WA_MacOpaqueSizeGrip Indicates that the native Carbon size grip
should be opaque instead of transparent (the default). This attribute should be opaque instead of transparent (the default). This attribute
is only applicable to OS X and is set by the widget's author. is only applicable to \macos and is set by the widget's author.
\value WA_MacShowFocusRect Indicates that this widget should get a \value WA_MacShowFocusRect Indicates that this widget should get a
QFocusFrame around it. Some widgets draw their own focus halo QFocusFrame around it. Some widgets draw their own focus halo
regardless of this attribute. Not that the QWidget::focusPolicy regardless of this attribute. Not that the QWidget::focusPolicy
also plays the main role in whether something is given focus or also plays the main role in whether something is given focus or
not, this only controls whether or not this gets the focus not, this only controls whether or not this gets the focus
frame. This attribute is only applicable to OS X. frame. This attribute is only applicable to \macos.
\value WA_MacNormalSize Indicates the widget should have the \value WA_MacNormalSize Indicates the widget should have the
normal size for widgets in OS X. This attribute is only normal size for widgets in \macos. This attribute is only
applicable to OS X. applicable to \macos.
\value WA_MacSmallSize Indicates the widget should have the small \value WA_MacSmallSize Indicates the widget should have the small
size for widgets in OS X. This attribute is only applicable to size for widgets in \macos. This attribute is only applicable to
OS X. \macos.
\value WA_MacMiniSize Indicates the widget should have the mini \value WA_MacMiniSize Indicates the widget should have the mini
size for widgets in OS X. This attribute is only applicable to size for widgets in \macos. This attribute is only applicable to
OS X. \macos.
\value WA_MacVariableSize Indicates the widget can choose between \value WA_MacVariableSize Indicates the widget can choose between
alternative sizes for widgets to avoid clipping. alternative sizes for widgets to avoid clipping.
This attribute is only applicable to OS X. This attribute is only applicable to \macos.
\value WA_MacBrushedMetal Indicates the widget should be drawn in \value WA_MacBrushedMetal Indicates the widget should be drawn in
the brushed metal style as supported by the windowing system. This the brushed metal style as supported by the windowing system. This
attribute is only applicable to OS X. attribute is only applicable to \macos.
\omitvalue WA_MacMetalStyle \omitvalue WA_MacMetalStyle
@ -1151,14 +1151,14 @@
\b Warning: This flag must \e never be set or cleared by the widget's author. \b Warning: This flag must \e never be set or cleared by the widget's author.
\value WA_WindowModified Indicates that the window is marked as modified. \value WA_WindowModified Indicates that the window is marked as modified.
On some platforms this flag will do nothing, on others (including OS X On some platforms this flag will do nothing, on others (including \macos
and Windows) the window will take a modified appearance. This flag is set and Windows) the window will take a modified appearance. This flag is set
or cleared by QWidget::setWindowModified(). or cleared by QWidget::setWindowModified().
\value WA_WindowPropagation Makes a toplevel window inherit font and \value WA_WindowPropagation Makes a toplevel window inherit font and
palette from its parent. palette from its parent.
\value WA_MacAlwaysShowToolWindow On OS X, show the tool window even \value WA_MacAlwaysShowToolWindow On \macos, show the tool window even
when the application is not active. By default, all tool windows are when the application is not active. By default, all tool windows are
hidden when the application is inactive. hidden when the application is inactive.
@ -1341,8 +1341,8 @@
\value Key_PageUp \value Key_PageUp
\value Key_PageDown \value Key_PageDown
\value Key_Shift \value Key_Shift
\value Key_Control On OS X, this corresponds to the Command keys. \value Key_Control On \macos, this corresponds to the Command keys.
\value Key_Meta On OS X, this corresponds to the Control keys. \value Key_Meta On \macos, this corresponds to the Control keys.
On Windows keyboards, this key is mapped to the On Windows keyboards, this key is mapped to the
Windows key. Windows key.
\value Key_Alt \value Key_Alt
@ -2002,7 +2002,7 @@
\value TabFocus the widget accepts focus by tabbing. \value TabFocus the widget accepts focus by tabbing.
\value ClickFocus the widget accepts focus by clicking. \value ClickFocus the widget accepts focus by clicking.
\value StrongFocus the widget accepts focus by both tabbing \value StrongFocus the widget accepts focus by both tabbing
and clicking. On OS X this will also and clicking. On \macos this will also
be indicate that the widget accepts tab focus be indicate that the widget accepts tab focus
when in 'Text/List focus mode'. when in 'Text/List focus mode'.
\value WheelFocus like Qt::StrongFocus plus the widget accepts \value WheelFocus like Qt::StrongFocus plus the widget accepts
@ -2108,7 +2108,7 @@
system supports it, a tool window can be decorated system supports it, a tool window can be decorated
with a somewhat lighter frame. It can also be with a somewhat lighter frame. It can also be
combined with Qt::FramelessWindowHint. combined with Qt::FramelessWindowHint.
On OS X, tool windows correspond to the On \macos, tool windows correspond to the
\l{http://developer.apple.com/documentation/Carbon/Conceptual/HandlingWindowsControls/hitb-wind_cont_concept/chapter_2_section_2.html}{Floating} \l{http://developer.apple.com/documentation/Carbon/Conceptual/HandlingWindowsControls/hitb-wind_cont_concept/chapter_2_section_2.html}{Floating}
class of windows. This means that the window lives on a class of windows. This means that the window lives on a
level above normal windows; it impossible to put a normal level above normal windows; it impossible to put a normal
@ -2197,10 +2197,10 @@
\value WindowContextHelpButtonHint Adds a context help button to dialogs. \value WindowContextHelpButtonHint Adds a context help button to dialogs.
On some platforms this implies Qt::WindowSystemMenuHint for it to work. On some platforms this implies Qt::WindowSystemMenuHint for it to work.
\value MacWindowToolBarButtonHint On OS X adds a tool bar button (i.e., \value MacWindowToolBarButtonHint On \macos adds a tool bar button (i.e.,
the oblong button that is on the top right of windows that have toolbars). the oblong button that is on the top right of windows that have toolbars).
\value WindowFullscreenButtonHint On OS X adds a fullscreen button. \value WindowFullscreenButtonHint On \macos adds a fullscreen button.
\value BypassGraphicsProxyWidget Prevents the window and its children from \value BypassGraphicsProxyWidget Prevents the window and its children from
automatically embedding themselves into a QGraphicsProxyWidget if the automatically embedding themselves into a QGraphicsProxyWidget if the
@ -2224,7 +2224,7 @@
that support _NET_WM_STATE_BELOW atom. If a window always that support _NET_WM_STATE_BELOW atom. If a window always
on the bottom has a parent, the parent will also be left on on the bottom has a parent, the parent will also be left on
the bottom. This window hint is currently not implemented the bottom. This window hint is currently not implemented
for OS X. for \macos.
\value WindowTransparentForInput Informs the window system that this window \value WindowTransparentForInput Informs the window system that this window
is used only for output (displaying something) and does not take input. is used only for output (displaying something) and does not take input.
@ -3088,7 +3088,7 @@
\value CoarseTimer Coarse timers try to keep accuracy within 5% of the desired interval \value CoarseTimer Coarse timers try to keep accuracy within 5% of the desired interval
\value VeryCoarseTimer Very coarse timers only keep full second accuracy \value VeryCoarseTimer Very coarse timers only keep full second accuracy
On UNIX (including Linux, OS X, and iOS), Qt will keep millisecond accuracy On UNIX (including Linux, \macos, and iOS), Qt will keep millisecond accuracy
for Qt::PreciseTimer. For Qt::CoarseTimer, the interval will be adjusted up for Qt::PreciseTimer. For Qt::CoarseTimer, the interval will be adjusted up
to 5% to align the timer with other timers that are expected to fire at or to 5% to align the timer with other timers that are expected to fire at or
around the same time. The objective is to make most timers wake up at the around the same time. The objective is to make most timers wake up at the

View File

@ -66,8 +66,9 @@
#include <float.h> #include <float.h>
#endif #endif
#if !defined(Q_CC_MSVC) && (defined(Q_OS_QNX) || !defined(__cplusplus) || __cplusplus < 201103L) #if !defined(Q_CC_MSVC) && (defined(Q_OS_QNX) || defined(Q_CC_INTEL) || !defined(__cplusplus))
#include <math.h> # include <math.h>
# define QT_MATH_H_DEFINES_MACROS
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
namespace qnumeric_std_wrapper { namespace qnumeric_std_wrapper {
// the 'using namespace std' below is cases where the stdlib already put the math.h functions in the std namespace and undefined the macros. // the 'using namespace std' below is cases where the stdlib already put the math.h functions in the std namespace and undefined the macros.
@ -96,7 +97,8 @@ static inline bool isfinite(double d) { return !!_finite(d); }
static inline bool isnan(float f) { return !!_isnan(f); } static inline bool isnan(float f) { return !!_isnan(f); }
static inline bool isinf(float f) { return !_finite(f) && !_isnan(f); } static inline bool isinf(float f) { return !_finite(f) && !_isnan(f); }
static inline bool isfinite(float f) { return !!_finite(f); } static inline bool isfinite(float f) { return !!_finite(f); }
#elif !defined(Q_CC_MSVC) && (defined(Q_OS_QNX) || !defined(__cplusplus) || __cplusplus < 201103L) #elif defined(QT_MATH_H_DEFINES_MACROS)
# undef QT_MATH_H_DEFINES_MACROS
static inline bool isnan(double d) { return math_h_isnan(d); } static inline bool isnan(double d) { return math_h_isnan(d); }
static inline bool isinf(double d) { return math_h_isinf(d); } static inline bool isinf(double d) { return math_h_isinf(d); }
static inline bool isfinite(double d) { return math_h_isfinite(d); } static inline bool isfinite(double d) { return math_h_isfinite(d); }

View File

@ -305,7 +305,7 @@ QAbstractFileEngine *QAbstractFileEngine::create(const QString &fileName)
the file system (i.e. not a file or directory). the file system (i.e. not a file or directory).
\value FileType The file is a regular file to the file system \value FileType The file is a regular file to the file system
(i.e. not a link or directory) (i.e. not a link or directory)
\value BundleType OS X and iOS: the file is a bundle; implies DirectoryType \value BundleType \macos and iOS: the file is a bundle; implies DirectoryType
\value DirectoryType The file is a directory in the file system \value DirectoryType The file is a directory in the file system
(i.e. not a link or file). (i.e. not a link or file).

View File

@ -240,7 +240,7 @@ QDateTime &QFileInfoPrivate::getFileTime(QAbstractFileEngine::FileTime request)
isSymLink(). The symLinkTarget() function provides the name of the file isSymLink(). The symLinkTarget() function provides the name of the file
the symlink points to. the symlink points to.
On Unix (including OS X and iOS), the symlink has the same size() has On Unix (including \macos and iOS), the symlink has the same size() has
the file it points to, because Unix handles symlinks the file it points to, because Unix handles symlinks
transparently; similarly, opening a symlink using QFile transparently; similarly, opening a symlink using QFile
effectively opens the link's target. For example: effectively opens the link's target. For example:
@ -760,7 +760,7 @@ QString QFileInfo::fileName() const
\since 4.3 \since 4.3
Returns the name of the bundle. Returns the name of the bundle.
On OS X and iOS this returns the proper localized name for a bundle if the On \macos and iOS this returns the proper localized name for a bundle if the
path isBundle(). On all other platforms an empty QString is returned. path isBundle(). On all other platforms an empty QString is returned.
Example: Example:
@ -1042,7 +1042,7 @@ bool QFileInfo::isDir() const
/*! /*!
\since 4.3 \since 4.3
Returns \c true if this object points to a bundle or to a symbolic Returns \c true if this object points to a bundle or to a symbolic
link to a bundle on OS X and iOS; otherwise returns \c false. link to a bundle on \macos and iOS; otherwise returns \c false.
\sa isDir(), isSymLink(), isFile() \sa isDir(), isSymLink(), isFile()
*/ */
@ -1063,7 +1063,7 @@ bool QFileInfo::isBundle() const
Returns \c true if this object points to a symbolic link (or to a Returns \c true if this object points to a symbolic link (or to a
shortcut on Windows); otherwise returns \c false. shortcut on Windows); otherwise returns \c false.
On Unix (including OS X and iOS), opening a symlink effectively opens On Unix (including \macos and iOS), opening a symlink effectively opens
the \l{symLinkTarget()}{link's target}. On Windows, it opens the \c the \l{symLinkTarget()}{link's target}. On Windows, it opens the \c
.lnk file itself. .lnk file itself.

View File

@ -191,7 +191,7 @@ void QFileSystemWatcherPrivate::_q_directoryChanged(const QString &path, bool re
the file system monitor. Also note that your process may have the file system monitor. Also note that your process may have
other file descriptors open in addition to the ones for files other file descriptors open in addition to the ones for files
being monitored, and these other open descriptors also count in being monitored, and these other open descriptors also count in
the total. OS X uses a different backend and does not the total. \macos uses a different backend and does not
suffer from this issue. suffer from this issue.

View File

@ -907,7 +907,7 @@ void QIODevicePrivate::seekBuffer(qint64 newPos)
For some devices, atEnd() can return true even though there is more data For some devices, atEnd() can return true even though there is more data
to read. This special case only applies to devices that generate data in to read. This special case only applies to devices that generate data in
direct response to you calling read() (e.g., \c /dev or \c /proc files on direct response to you calling read() (e.g., \c /dev or \c /proc files on
Unix and OS X, or console input / \c stdin on all platforms). Unix and \macos, or console input / \c stdin on all platforms).
\sa bytesAvailable(), read(), isSequential() \sa bytesAvailable(), read(), isSequential()
*/ */

View File

@ -141,7 +141,7 @@ static QBasicMutex fcntlLock;
/*! /*!
\internal \internal
Checks that the OS isn't using POSIX locks to emulate flock(). Checks that the OS isn't using POSIX locks to emulate flock().
OS X is one of those. \macos is one of those.
*/ */
static bool fcntlWorksAfterFlock(const QString &fn) static bool fcntlWorksAfterFlock(const QString &fn)
{ {
@ -188,7 +188,7 @@ QLockFile::LockError QLockFilePrivate::tryLock_sys()
% localHostName() % '\n'; % localHostName() % '\n';
const QByteArray lockFileName = QFile::encodeName(fileName); const QByteArray lockFileName = QFile::encodeName(fileName);
const int fd = qt_safe_open(lockFileName.constData(), O_WRONLY | O_CREAT | O_EXCL, 0644); const int fd = qt_safe_open(lockFileName.constData(), O_WRONLY | O_CREAT | O_EXCL, 0666);
if (fd < 0) { if (fd < 0) {
switch (errno) { switch (errno) {
case EEXIST: case EEXIST:
@ -229,7 +229,7 @@ QLockFile::LockError QLockFilePrivate::tryLock_sys()
bool QLockFilePrivate::removeStaleLock() bool QLockFilePrivate::removeStaleLock()
{ {
const QByteArray lockFileName = QFile::encodeName(fileName); const QByteArray lockFileName = QFile::encodeName(fileName);
const int fd = qt_safe_open(lockFileName.constData(), O_WRONLY, 0644); const int fd = qt_safe_open(lockFileName.constData(), O_WRONLY, 0666);
if (fd < 0) // gone already? if (fd < 0) // gone already?
return false; return false;
bool success = setNativeLocks(fileName, fd) && (::unlink(lockFileName) == 0); bool success = setNativeLocks(fileName, fd) && (::unlink(lockFileName) == 0);

View File

@ -183,7 +183,7 @@ static void setBoolLane(QBasicAtomicInt *atomic, bool enable, int shift)
by QStandardPaths::GenericConfigLocation, e.g. by QStandardPaths::GenericConfigLocation, e.g.
\list \list
\li on OS X and iOS: \c ~/Library/Preferences \li on \macos and iOS: \c ~/Library/Preferences
\li on Unix: \c ~/.config, \c /etc/xdg \li on Unix: \c ~/.config, \c /etc/xdg
\li on Windows: \c %LOCALAPPDATA%, \c %ProgramData%, \li on Windows: \c %LOCALAPPDATA%, \c %ProgramData%,
\l QCoreApplication::applicationDirPath(), \l QCoreApplication::applicationDirPath(),

View File

@ -1948,7 +1948,7 @@ void QProcess::setProcessState(ProcessState state)
/*! /*!
This function is called in the child process context just before the This function is called in the child process context just before the
program is executed on Unix or OS X (i.e., after \c fork(), but before program is executed on Unix or \macos (i.e., after \c fork(), but before
\c execve()). Reimplement this function to do last minute initialization \c execve()). Reimplement this function to do last minute initialization
of the child process. Example: of the child process. Example:
@ -1959,7 +1959,7 @@ void QProcess::setProcessState(ProcessState state)
execution, your workaround is to emit finished() and then call execution, your workaround is to emit finished() and then call
exit(). exit().
\warning This function is called by QProcess on Unix and OS X \warning This function is called by QProcess on Unix and \macos
only. On Windows and QNX, it is not called. only. On Windows and QNX, it is not called.
*/ */
void QProcess::setupChildProcess() void QProcess::setupChildProcess()
@ -2350,7 +2350,7 @@ void QProcess::setArguments(const QStringList &arguments)
On Windows, terminate() posts a WM_CLOSE message to all top-level windows On Windows, terminate() posts a WM_CLOSE message to all top-level windows
of the process and then to the main thread of the process itself. On Unix of the process and then to the main thread of the process itself. On Unix
and OS X the \c SIGTERM signal is sent. and \macos the \c SIGTERM signal is sent.
Console applications on Windows that do not run an event loop, or whose Console applications on Windows that do not run an event loop, or whose
event loop does not handle the WM_CLOSE message, can only be terminated by event loop does not handle the WM_CLOSE message, can only be terminated by
@ -2367,7 +2367,7 @@ void QProcess::terminate()
/*! /*!
Kills the current process, causing it to exit immediately. Kills the current process, causing it to exit immediately.
On Windows, kill() uses TerminateProcess, and on Unix and OS X, the On Windows, kill() uses TerminateProcess, and on Unix and \macos, the
SIGKILL signal is sent to the process. SIGKILL signal is sent to the process.
\sa terminate() \sa terminate()

View File

@ -1917,7 +1917,7 @@ void QConfFileSettingsPrivate::ensureSectionParsed(QConfFile *confFile,
Users normally expect an application to remember its settings Users normally expect an application to remember its settings
(window sizes and positions, options, etc.) across sessions. This (window sizes and positions, options, etc.) across sessions. This
information is often stored in the system registry on Windows, information is often stored in the system registry on Windows,
and in property list files on OS X and iOS. On Unix systems, in the and in property list files on \macos and iOS. On Unix systems, in the
absence of a standard, many applications (including the KDE absence of a standard, many applications (including the KDE
applications) use INI text files. applications) use INI text files.
@ -1962,8 +1962,8 @@ void QConfFileSettingsPrivate::ensureSectionParsed(QConfFile *confFile,
\snippet settings/settings.cpp 4 \snippet settings/settings.cpp 4
(Here, we also specify the organization's Internet domain. When (Here, we also specify the organization's Internet domain. When
the Internet domain is set, it is used on OS X and iOS instead of the the Internet domain is set, it is used on \macos and iOS instead of the
organization name, since OS X and iOS applications conventionally use organization name, since \macos and iOS applications conventionally use
Internet domains to identify themselves. If no domain is set, a Internet domains to identify themselves. If no domain is set, a
fake domain is derived from the organization name. See the fake domain is derived from the organization name. See the
\l{Platform-Specific Notes} below for details.) \l{Platform-Specific Notes} below for details.)
@ -2021,7 +2021,7 @@ void QConfFileSettingsPrivate::ensureSectionParsed(QConfFile *confFile,
Setting keys can contain any Unicode characters. The Windows Setting keys can contain any Unicode characters. The Windows
registry and INI files use case-insensitive keys, whereas the registry and INI files use case-insensitive keys, whereas the
CFPreferences API on OS X and iOS uses case-sensitive keys. To CFPreferences API on \macos and iOS uses case-sensitive keys. To
avoid portability problems, follow these simple rules: avoid portability problems, follow these simple rules:
\list 1 \list 1
@ -2195,7 +2195,7 @@ void QConfFileSettingsPrivate::ensureSectionParsed(QConfFile *confFile,
\li \c{/etc/xdg/MySoft.conf} \li \c{/etc/xdg/MySoft.conf}
\endlist \endlist
On Mac OS X versions 10.2 and 10.3, these files are used by On \macos versions 10.2 and 10.3, these files are used by
default: default:
\list 1 \list 1
@ -2223,7 +2223,7 @@ void QConfFileSettingsPrivate::ensureSectionParsed(QConfFile *confFile,
in the application's home directory. in the application's home directory.
If the file format is IniFormat, the following files are If the file format is IniFormat, the following files are
used on Unix, OS X, and iOS: used on Unix, \macos, and iOS:
\list 1 \list 1
\li \c{$HOME/.config/MySoft/Star Runner.ini} (Qt for Embedded Linux: \c{$HOME/Settings/MySoft/Star Runner.ini}) \li \c{$HOME/.config/MySoft/Star Runner.ini} (Qt for Embedded Linux: \c{$HOME/Settings/MySoft/Star Runner.ini})
@ -2250,7 +2250,7 @@ void QConfFileSettingsPrivate::ensureSectionParsed(QConfFile *confFile,
in the application's home directory. in the application's home directory.
The paths for the \c .ini and \c .conf files can be changed using The paths for the \c .ini and \c .conf files can be changed using
setPath(). On Unix, OS X, and iOS the user can override them by setPath(). On Unix, \macos, and iOS the user can override them by
setting the \c XDG_CONFIG_HOME environment variable; see setting the \c XDG_CONFIG_HOME environment variable; see
setPath() for details. setPath() for details.
@ -2267,7 +2267,7 @@ void QConfFileSettingsPrivate::ensureSectionParsed(QConfFile *confFile,
You can then use the QSettings object to read and write settings You can then use the QSettings object to read and write settings
in the file. in the file.
On OS X and iOS, you can access property list \c .plist files by passing On \macos and iOS, you can access property list \c .plist files by passing
QSettings::NativeFormat as second argument. For example: QSettings::NativeFormat as second argument. For example:
\snippet code/src_corelib_io_qsettings.cpp 3 \snippet code/src_corelib_io_qsettings.cpp 3
@ -2321,13 +2321,13 @@ void QConfFileSettingsPrivate::ensureSectionParsed(QConfFile *confFile,
limitations is to store the settings using the IniFormat limitations is to store the settings using the IniFormat
instead of the NativeFormat. instead of the NativeFormat.
\li On OS X and iOS, allKeys() will return some extra keys for global \li On \macos and iOS, allKeys() will return some extra keys for global
settings that apply to all applications. These keys can be settings that apply to all applications. These keys can be
read using value() but cannot be changed, only shadowed. read using value() but cannot be changed, only shadowed.
Calling setFallbacksEnabled(false) will hide these global Calling setFallbacksEnabled(false) will hide these global
settings. settings.
\li On OS X and iOS, the CFPreferences API used by QSettings expects \li On \macos and iOS, the CFPreferences API used by QSettings expects
Internet domain names rather than organization names. To Internet domain names rather than organization names. To
provide a uniform API, QSettings derives a fake domain name provide a uniform API, QSettings derives a fake domain name
from the organization name (unless the organization name from the organization name (unless the organization name
@ -2344,7 +2344,7 @@ void QConfFileSettingsPrivate::ensureSectionParsed(QConfFile *confFile,
\snippet code/src_corelib_io_qsettings.cpp 7 \snippet code/src_corelib_io_qsettings.cpp 7
\li On OS X, permissions to access settings not belonging to the \li On \macos, permissions to access settings not belonging to the
current user (i.e. SystemScope) have changed with 10.7 (Lion). Prior to current user (i.e. SystemScope) have changed with 10.7 (Lion). Prior to
that version, users having admin rights could access these. For 10.7 and that version, users having admin rights could access these. For 10.7 and
10.8 (Mountain Lion), only root can. However, 10.9 (Mavericks) changes 10.8 (Mountain Lion), only root can. However, 10.9 (Mavericks) changes
@ -2373,7 +2373,7 @@ void QConfFileSettingsPrivate::ensureSectionParsed(QConfFile *confFile,
\value NativeFormat Store the settings using the most \value NativeFormat Store the settings using the most
appropriate storage format for the platform. appropriate storage format for the platform.
On Windows, this means the system registry; On Windows, this means the system registry;
on OS X and iOS, this means the CFPreferences on \macos and iOS, this means the CFPreferences
API; on Unix, this means textual API; on Unix, this means textual
configuration files in INI format. configuration files in INI format.
\value Registry32Format Windows only: Explicitly access the 32-bit system registry \value Registry32Format Windows only: Explicitly access the 32-bit system registry
@ -2546,7 +2546,7 @@ QSettings::QSettings(Format format, Scope scope, const QString &organization,
If \a format is QSettings::NativeFormat, the meaning of \a If \a format is QSettings::NativeFormat, the meaning of \a
fileName depends on the platform. On Unix, \a fileName is the fileName depends on the platform. On Unix, \a fileName is the
name of an INI file. On OS X and iOS, \a fileName is the name of a name of an INI file. On \macos and iOS, \a fileName is the name of a
\c .plist file. On Windows, \a fileName is a path in the system \c .plist file. On Windows, \a fileName is a path in the system
registry. registry.
@ -2599,7 +2599,7 @@ QSettings::QSettings(const QString &fileName, Format format, QObject *parent)
called, the QSettings object will not be able to read or write called, the QSettings object will not be able to read or write
any settings, and status() will return AccessError. any settings, and status() will return AccessError.
On OS X and iOS, if both a name and an Internet domain are specified On \macos and iOS, if both a name and an Internet domain are specified
for the organization, the domain is preferred over the name. On for the organization, the domain is preferred over the name. On
other platforms, the name is preferred over the domain. other platforms, the name is preferred over the domain.
@ -3115,7 +3115,7 @@ bool QSettings::isWritable() const
exists, the previous value is overwritten. exists, the previous value is overwritten.
Note that the Windows registry and INI files use case-insensitive Note that the Windows registry and INI files use case-insensitive
keys, whereas the CFPreferences API on OS X and iOS uses keys, whereas the CFPreferences API on \macos and iOS uses
case-sensitive keys. To avoid portability problems, see the case-sensitive keys. To avoid portability problems, see the
\l{Section and Key Syntax} rules. \l{Section and Key Syntax} rules.
@ -3154,7 +3154,7 @@ void QSettings::setValue(const QString &key, const QVariant &value)
\snippet code/src_corelib_io_qsettings.cpp 25 \snippet code/src_corelib_io_qsettings.cpp 25
Note that the Windows registry and INI files use case-insensitive Note that the Windows registry and INI files use case-insensitive
keys, whereas the CFPreferences API on OS X and iOS uses keys, whereas the CFPreferences API on \macos and iOS uses
case-sensitive keys. To avoid portability problems, see the case-sensitive keys. To avoid portability problems, see the
\l{Section and Key Syntax} rules. \l{Section and Key Syntax} rules.
@ -3189,7 +3189,7 @@ void QSettings::remove(const QString &key)
relative to that group. relative to that group.
Note that the Windows registry and INI files use case-insensitive Note that the Windows registry and INI files use case-insensitive
keys, whereas the CFPreferences API on OS X and iOS uses keys, whereas the CFPreferences API on \macos and iOS uses
case-sensitive keys. To avoid portability problems, see the case-sensitive keys. To avoid portability problems, see the
\l{Section and Key Syntax} rules. \l{Section and Key Syntax} rules.
@ -3251,7 +3251,7 @@ bool QSettings::event(QEvent *event)
returned. returned.
Note that the Windows registry and INI files use case-insensitive Note that the Windows registry and INI files use case-insensitive
keys, whereas the CFPreferences API on OS X and iOS uses keys, whereas the CFPreferences API on \macos and iOS uses
case-sensitive keys. To avoid portability problems, see the case-sensitive keys. To avoid portability problems, see the
\l{Section and Key Syntax} rules. \l{Section and Key Syntax} rules.
@ -3354,18 +3354,18 @@ void QSettings::setUserIniPath(const QString &dir)
\row \li SystemScope \li \c /etc/xdg \row \li SystemScope \li \c /etc/xdg
\row \li{1,2} Qt for Embedded Linux \li{1,2} NativeFormat, IniFormat \li UserScope \li \c $HOME/Settings \row \li{1,2} Qt for Embedded Linux \li{1,2} NativeFormat, IniFormat \li UserScope \li \c $HOME/Settings
\row \li SystemScope \li \c /etc/xdg \row \li SystemScope \li \c /etc/xdg
\row \li{1,2} OS X and iOS \li{1,2} IniFormat \li UserScope \li \c $HOME/.config \row \li{1,2} \macos and iOS \li{1,2} IniFormat \li UserScope \li \c $HOME/.config
\row \li SystemScope \li \c /etc/xdg \row \li SystemScope \li \c /etc/xdg
\endtable \endtable
The default UserScope paths on Unix, OS X, and iOS (\c The default UserScope paths on Unix, \macos, and iOS (\c
$HOME/.config or $HOME/Settings) can be overridden by the user by setting the $HOME/.config or $HOME/Settings) can be overridden by the user by setting the
\c XDG_CONFIG_HOME environment variable. The default SystemScope \c XDG_CONFIG_HOME environment variable. The default SystemScope
paths on Unix, OS X, and iOS (\c /etc/xdg) can be overridden when paths on Unix, \macos, and iOS (\c /etc/xdg) can be overridden when
building the Qt library using the \c configure script's \c building the Qt library using the \c configure script's \c
-sysconfdir flag (see QLibraryInfo for details). -sysconfdir flag (see QLibraryInfo for details).
Setting the NativeFormat paths on Windows, OS X, and iOS has no Setting the NativeFormat paths on Windows, \macos, and iOS has no
effect. effect.
\warning This function doesn't affect existing QSettings objects. \warning This function doesn't affect existing QSettings objects.

View File

@ -153,7 +153,7 @@ QT_BEGIN_NAMESPACE
paths, if any, represent non-writable locations. paths, if any, represent non-writable locations.
\table \table
\header \li Path type \li OS X \li Windows \header \li Path type \li \macos \li Windows
\row \li DesktopLocation \row \li DesktopLocation
\li "~/Desktop" \li "~/Desktop"
\li "C:/Users/<USER>/Desktop" \li "C:/Users/<USER>/Desktop"
@ -609,7 +609,7 @@ QString QStandardPaths::displayName(StandardLocation type)
On Unix, \c XDG_DATA_HOME is set to \e ~/.qttest/share, \c XDG_CONFIG_HOME is On Unix, \c XDG_DATA_HOME is set to \e ~/.qttest/share, \c XDG_CONFIG_HOME is
set to \e ~/.qttest/config, and \c XDG_CACHE_HOME is set to \e ~/.qttest/cache. set to \e ~/.qttest/config, and \c XDG_CACHE_HOME is set to \e ~/.qttest/cache.
On OS X, data goes to \e ~/.qttest/Application Support, cache goes to On \macos, data goes to \e ~/.qttest/Application Support, cache goes to
\e ~/.qttest/Cache, and config goes to \e ~/.qttest/Preferences. \e ~/.qttest/Cache, and config goes to \e ~/.qttest/Preferences.
On Windows, everything goes to a "qttest" directory under Application Data. On Windows, everything goes to a "qttest" directory under Application Data.

View File

@ -256,7 +256,7 @@ QByteArray QStorageInfo::fileSystemType() const
/*! /*!
Returns the device for this volume. Returns the device for this volume.
For example, on Unix filesystems (including OS X), this returns the For example, on Unix filesystems (including \macos), this returns the
devpath like \c /dev/sda0 for local storages. On Windows, it returns the UNC devpath like \c /dev/sda0 for local storages. On Windows, it returns the UNC
path starting with \c \\\\?\\ for local storages (in other words, the volume GUID). path starting with \c \\\\?\\ for local storages (in other words, the volume GUID).

View File

@ -187,7 +187,13 @@ bool QStringListModel::setData(const QModelIndex &index, const QVariant &value,
if (index.row() >= 0 && index.row() < lst.size() if (index.row() >= 0 && index.row() < lst.size()
&& (role == Qt::EditRole || role == Qt::DisplayRole)) { && (role == Qt::EditRole || role == Qt::DisplayRole)) {
lst.replace(index.row(), value.toString()); lst.replace(index.row(), value.toString());
emit dataChanged(index, index, QVector<int>(1, role)); QVector<int> roles;
roles.reserve(2);
roles.append(Qt::DisplayRole);
roles.append(Qt::EditRole);
emit dataChanged(index, index, roles);
// once Q_COMPILER_UNIFORM_INIT can be used, change to:
// emit dataChanged(index, index, {Qt::DisplayRole, Qt::EditRole});
return true; return true;
} }
return false; return false;

View File

@ -687,7 +687,7 @@ QCoreApplication::QCoreApplication(QCoreApplicationPrivate &p)
If you are doing graphical changes inside a loop that does not If you are doing graphical changes inside a loop that does not
return to the event loop on asynchronous window systems like X11 return to the event loop on asynchronous window systems like X11
or double buffered window systems like Quartz (OS X and iOS), and you want to or double buffered window systems like Quartz (\macos and iOS), and you want to
visualize these changes immediately (e.g. Splash Screens), call visualize these changes immediately (e.g. Splash Screens), call
this function. this function.
@ -2059,7 +2059,7 @@ void QCoreApplicationPrivate::setApplicationFilePath(const QString &path)
directory, and you run the \c{regexp} example, this function will directory, and you run the \c{regexp} example, this function will
return "C:/Qt/examples/tools/regexp". return "C:/Qt/examples/tools/regexp".
On OS X and iOS this will point to the directory actually containing On \macos and iOS this will point to the directory actually containing
the executable, which may be inside an application bundle (if the the executable, which may be inside an application bundle (if the
application is bundled). application is bundled).

View File

@ -174,7 +174,7 @@ QT_BEGIN_NAMESPACE
\value NonClientAreaMouseButtonPress A mouse button press occurred outside the client area. \value NonClientAreaMouseButtonPress A mouse button press occurred outside the client area.
\value NonClientAreaMouseButtonRelease A mouse button release occurred outside the client area. \value NonClientAreaMouseButtonRelease A mouse button release occurred outside the client area.
\value NonClientAreaMouseMove A mouse move occurred outside the client area. \value NonClientAreaMouseMove A mouse move occurred outside the client area.
\value MacSizeChange The user changed his widget sizes (OS X only). \value MacSizeChange The user changed his widget sizes (\macos only).
\value MetaCall An asynchronous method invocation via QMetaObject::invokeMethod(). \value MetaCall An asynchronous method invocation via QMetaObject::invokeMethod().
\value ModifiedChange Widgets modification state has been changed. \value ModifiedChange Widgets modification state has been changed.
\value MouseButtonDblClick Mouse press again (QMouseEvent). \value MouseButtonDblClick Mouse press again (QMouseEvent).
@ -219,7 +219,7 @@ QT_BEGIN_NAMESPACE
\omitvalue ThemeChange \omitvalue ThemeChange
\value ThreadChange The object is moved to another thread. This is the last event sent to this object in the previous thread. See QObject::moveToThread(). \value ThreadChange The object is moved to another thread. This is the last event sent to this object in the previous thread. See QObject::moveToThread().
\value Timer Regular timer events (QTimerEvent). \value Timer Regular timer events (QTimerEvent).
\value ToolBarChange The toolbar button is toggled on OS X. \value ToolBarChange The toolbar button is toggled on \macos.
\value ToolTip A tooltip was requested (QHelpEvent). \value ToolTip A tooltip was requested (QHelpEvent).
\value ToolTipChange The widget's tooltip has changed. \value ToolTipChange The widget's tooltip has changed.
\value TouchBegin Beginning of a sequence of touch-screen or track-pad events (QTouchEvent). \value TouchBegin Beginning of a sequence of touch-screen or track-pad events (QTouchEvent).

View File

@ -140,7 +140,7 @@ QT_BEGIN_NAMESPACE
\value SystemTime The human-readable system time. This clock is not monotonic. \value SystemTime The human-readable system time. This clock is not monotonic.
\value MonotonicClock The system's monotonic clock, usually found in Unix systems. This clock is monotonic and does not overflow. \value MonotonicClock The system's monotonic clock, usually found in Unix systems. This clock is monotonic and does not overflow.
\value TickCounter The system's tick counter, used on Windows systems. This clock may overflow. \value TickCounter The system's tick counter, used on Windows systems. This clock may overflow.
\value MachAbsoluteTime The Mach kernel's absolute time (OS X and iOS). This clock is monotonic and does not overflow. \value MachAbsoluteTime The Mach kernel's absolute time (\macos and iOS). This clock is monotonic and does not overflow.
\value PerformanceCounter The high-resolution performance counter provided by Windows. This clock is monotonic and does not overflow. \value PerformanceCounter The high-resolution performance counter provided by Windows. This clock is monotonic and does not overflow.
\section2 SystemTime \section2 SystemTime
@ -182,8 +182,8 @@ QT_BEGIN_NAMESPACE
\section2 MachAbsoluteTime \section2 MachAbsoluteTime
This clock type is based on the absolute time presented by Mach kernels, This clock type is based on the absolute time presented by Mach kernels,
such as that found on OS X. This clock type is presented separately such as that found on \macos. This clock type is presented separately
from MonotonicClock since OS X and iOS are also Unix systems and may support from MonotonicClock since \macos and iOS are also Unix systems and may support
a POSIX monotonic clock with values differing from the Mach absolute a POSIX monotonic clock with values differing from the Mach absolute
time. time.

View File

@ -146,7 +146,7 @@ qint64 QElapsedTimer::elapsed() const Q_DECL_NOTHROW
number of milliseconds since January 1st, 1970 at 0:00 UTC (that is, it number of milliseconds since January 1st, 1970 at 0:00 UTC (that is, it
is the Unix time expressed in milliseconds). is the Unix time expressed in milliseconds).
On Linux, Windows and OS X/iOS systems, this value is usually the time On Linux, Windows and Apple platforms, this value is usually the time
since the system boot, though it usually does not include the time the since the system boot, though it usually does not include the time the
system has spent in sleep states. system has spent in sleep states.

View File

@ -2722,7 +2722,7 @@ qlonglong QVariant::toLongLong(bool *ok) const
} }
/*! /*!
Returns the variant as as an unsigned long long int if the Returns the variant as an unsigned long long int if the
variant has type() \l QMetaType::ULongLong, \l QMetaType::Bool, variant has type() \l QMetaType::ULongLong, \l QMetaType::Bool,
\l QMetaType::QByteArray, \l QMetaType::QChar, \l QMetaType::Double, \l QMetaType::QByteArray, \l QMetaType::QChar, \l QMetaType::Double,
\l QMetaType::Int, \l QMetaType::LongLong, \l QMetaType::QString, or \l QMetaType::Int, \l QMetaType::LongLong, \l QMetaType::QString, or

View File

@ -246,7 +246,7 @@ bool QMimeDatabasePrivate::inherits(const QString &mime, const QString &parent)
The MIME type database is provided by the freedesktop.org shared-mime-info The MIME type database is provided by the freedesktop.org shared-mime-info
project. If the MIME type database cannot be found on the system, as is the case project. If the MIME type database cannot be found on the system, as is the case
on most Windows, OS X, and iOS systems, Qt will use its own copy of it. on most Windows, \macos, and iOS systems, Qt will use its own copy of it.
Applications which want to define custom MIME types need to install an Applications which want to define custom MIME types need to install an
XML file into the locations searched for MIME definitions. XML file into the locations searched for MIME definitions.

View File

@ -608,7 +608,7 @@ bool QLibraryPrivate::loadPlugin()
\row \li Unix/Linux \li \c .so \row \li Unix/Linux \li \c .so
\row \li AIX \li \c .a \row \li AIX \li \c .a
\row \li HP-UX \li \c .sl, \c .so (HP-UXi) \row \li HP-UX \li \c .sl, \c .so (HP-UXi)
\row \li OS X and iOS \li \c .dylib, \c .bundle, \c .so \row \li \macos and iOS \li \c .dylib, \c .bundle, \c .so
\endtable \endtable
Trailing versioning numbers on Unix are ignored. Trailing versioning numbers on Unix are ignored.
@ -845,7 +845,7 @@ QLibrary::QLibrary(QObject *parent)
We recommend omitting the file's suffix in \a fileName, since We recommend omitting the file's suffix in \a fileName, since
QLibrary will automatically look for the file with the appropriate QLibrary will automatically look for the file with the appropriate
suffix in accordance with the platform, e.g. ".so" on Unix, suffix in accordance with the platform, e.g. ".so" on Unix,
".dylib" on OS X and iOS, and ".dll" on Windows. (See \l{fileName}.) ".dylib" on \macos and iOS, and ".dll" on Windows. (See \l{fileName}.)
*/ */
QLibrary::QLibrary(const QString& fileName, QObject *parent) QLibrary::QLibrary(const QString& fileName, QObject *parent)
:QObject(parent), d(0), did_load(false) :QObject(parent), d(0), did_load(false)
@ -862,7 +862,7 @@ QLibrary::QLibrary(const QString& fileName, QObject *parent)
We recommend omitting the file's suffix in \a fileName, since We recommend omitting the file's suffix in \a fileName, since
QLibrary will automatically look for the file with the appropriate QLibrary will automatically look for the file with the appropriate
suffix in accordance with the platform, e.g. ".so" on Unix, suffix in accordance with the platform, e.g. ".so" on Unix,
".dylib" on OS X and iOS, and ".dll" on Windows. (See \l{fileName}.) ".dylib" on \macos and iOS, and ".dll" on Windows. (See \l{fileName}.)
*/ */
QLibrary::QLibrary(const QString& fileName, int verNum, QObject *parent) QLibrary::QLibrary(const QString& fileName, int verNum, QObject *parent)
:QObject(parent), d(0), did_load(false) :QObject(parent), d(0), did_load(false)
@ -878,7 +878,7 @@ QLibrary::QLibrary(const QString& fileName, int verNum, QObject *parent)
We recommend omitting the file's suffix in \a fileName, since We recommend omitting the file's suffix in \a fileName, since
QLibrary will automatically look for the file with the appropriate QLibrary will automatically look for the file with the appropriate
suffix in accordance with the platform, e.g. ".so" on Unix, suffix in accordance with the platform, e.g. ".so" on Unix,
".dylib" on OS X and iOS, and ".dll" on Windows. (See \l{fileName}.) ".dylib" on \macos and iOS, and ".dll" on Windows. (See \l{fileName}.)
*/ */
QLibrary::QLibrary(const QString& fileName, const QString &version, QObject *parent) QLibrary::QLibrary(const QString& fileName, const QString &version, QObject *parent)
:QObject(parent), d(0), did_load(false) :QObject(parent), d(0), did_load(false)

View File

@ -145,7 +145,7 @@ QPluginLoader::QPluginLoader(QObject *parent)
To be loadable, the file's suffix must be a valid suffix for a To be loadable, the file's suffix must be a valid suffix for a
loadable library in accordance with the platform, e.g. \c .so on loadable library in accordance with the platform, e.g. \c .so on
Unix, - \c .dylib on OS X and iOS, and \c .dll on Windows. The suffix Unix, - \c .dylib on \macos and iOS, and \c .dll on Windows. The suffix
can be verified with QLibrary::isLibrary(). can be verified with QLibrary::isLibrary().
\sa setFileName() \sa setFileName()

View File

@ -52,6 +52,8 @@
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
extern void Q_CORE_EXPORT qt_call_post_routines();
typedef QHash<QString, int> NameHash_t; typedef QHash<QString, int> NameHash_t;
class QCommandLineParserPrivate class QCommandLineParserPrivate
@ -588,6 +590,7 @@ void QCommandLineParser::process(const QStringList &arguments)
{ {
if (!d->parse(arguments)) { if (!d->parse(arguments)) {
showParserMessage(errorText() + QLatin1Char('\n'), ErrorMessage); showParserMessage(errorText() + QLatin1Char('\n'), ErrorMessage);
qt_call_post_routines();
::exit(EXIT_FAILURE); ::exit(EXIT_FAILURE);
} }
@ -1011,6 +1014,7 @@ Q_NORETURN void QCommandLineParser::showVersion()
showParserMessage(QCoreApplication::applicationName() + QLatin1Char(' ') showParserMessage(QCoreApplication::applicationName() + QLatin1Char(' ')
+ QCoreApplication::applicationVersion() + QLatin1Char('\n'), + QCoreApplication::applicationVersion() + QLatin1Char('\n'),
UsageMessage); UsageMessage);
qt_call_post_routines();
::exit(EXIT_SUCCESS); ::exit(EXIT_SUCCESS);
} }
@ -1028,6 +1032,7 @@ Q_NORETURN void QCommandLineParser::showVersion()
Q_NORETURN void QCommandLineParser::showHelp(int exitCode) Q_NORETURN void QCommandLineParser::showHelp(int exitCode)
{ {
showParserMessage(d->helpText(), UsageMessage); showParserMessage(d->helpText(), UsageMessage);
qt_call_post_routines();
::exit(exitCode); ::exit(exitCode);
} }

View File

@ -1722,11 +1722,9 @@ QDateTime QDateTimeParser::getMaximum() const
QString QDateTimeParser::getAmPmText(AmPm ap, Case cs) const QString QDateTimeParser::getAmPmText(AmPm ap, Case cs) const
{ {
if (ap == AmText) { const QLocale loc = locale();
return (cs == UpperCase ? tr("AM") : tr("am")); QString raw = ap == AmText ? loc.amText() : loc.pmText();
} else { return cs == UpperCase ? raw.toUpper() : raw.toLower();
return (cs == UpperCase ? tr("PM") : tr("pm"));
}
} }
/* /*

View File

@ -539,9 +539,6 @@ void QMapDataBase::freeData(QMapDataBase *d)
Constructs a copy of \a other. Constructs a copy of \a other.
This function is only available if Qt is configured with STL
compatibility enabled.
\sa toStdMap() \sa toStdMap()
*/ */
@ -558,9 +555,6 @@ void QMapDataBase::freeData(QMapDataBase *d)
/*! \fn std::map<Key, T> QMap::toStdMap() const /*! \fn std::map<Key, T> QMap::toStdMap() const
Returns an STL map equivalent to this QMap. Returns an STL map equivalent to this QMap.
This function is only available if Qt is configured with STL
compatibility enabled.
*/ */
/*! \fn QMap::~QMap() /*! \fn QMap::~QMap()

View File

@ -5449,7 +5449,7 @@ int QString::compare_helper(const QChar *data1, int length1, QLatin1String s2,
platform-dependent manner. Use this function to present sorted platform-dependent manner. Use this function to present sorted
lists of strings to the user. lists of strings to the user.
On OS X and iOS this function compares according the On \macos and iOS this function compares according the
"Order for sorted lists" setting in the International preferences panel. "Order for sorted lists" setting in the International preferences panel.
\sa compare(), QLocale \sa compare(), QLocale
@ -9419,7 +9419,7 @@ QStringRef QStringRef::appendTo(QString *string) const
platform-dependent manner. Use this function to present sorted platform-dependent manner. Use this function to present sorted
lists of strings to the user. lists of strings to the user.
On OS X and iOS, this function compares according the On \macos and iOS, this function compares according the
"Order for sorted lists" setting in the International prefereces panel. "Order for sorted lists" setting in the International prefereces panel.
\sa compare(), QLocale \sa compare(), QLocale

View File

@ -91,7 +91,7 @@ QT_BEGIN_NAMESPACE
to replace or extend the default behavior of the static functions to replace or extend the default behavior of the static functions
in QAccessible. in QAccessible.
Qt supports Microsoft Active Accessibility (MSAA), OS X Qt supports Microsoft Active Accessibility (MSAA), \macos
Accessibility, and the Unix/X11 AT-SPI standard. Other backends Accessibility, and the Unix/X11 AT-SPI standard. Other backends
can be supported using QAccessibleBridge. can be supported using QAccessibleBridge.

View File

@ -52,7 +52,7 @@ QT_BEGIN_NAMESPACE
\ingroup accessibility \ingroup accessibility
\inmodule QtWidgets \inmodule QtWidgets
Qt supports Microsoft Active Accessibility (MSAA), OS X Qt supports Microsoft Active Accessibility (MSAA), \macos
Accessibility, and the Unix/X11 AT-SPI standard. By subclassing Accessibility, and the Unix/X11 AT-SPI standard. By subclassing
QAccessibleBridge, you can support other backends than the QAccessibleBridge, you can support other backends than the
predefined ones. predefined ones.

View File

@ -399,7 +399,7 @@
On X11, the public \l{http://www.newplanetsoftware.com/xdnd/}{XDND On X11, the public \l{http://www.newplanetsoftware.com/xdnd/}{XDND
protocol} is used, while on Windows Qt uses the OLE standard, and protocol} is used, while on Windows Qt uses the OLE standard, and
Qt for OS X uses the Cocoa Drag Manager. On X11, XDND uses MIME, Qt for \macos uses the Cocoa Drag Manager. On X11, XDND uses MIME,
so no translation is necessary. The Qt API is the same regardless of so no translation is necessary. The Qt API is the same regardless of
the platform. On Windows, MIME-aware applications can communicate by the platform. On Windows, MIME-aware applications can communicate by
using clipboard format names that are MIME types. Already some using clipboard format names that are MIME types. Already some
@ -408,6 +408,6 @@
Custom classes for translating proprietary clipboard formats can be Custom classes for translating proprietary clipboard formats can be
registered by reimplementing QWinMime on Windows or registered by reimplementing QWinMime on Windows or
QMacPasteboardMime on OS X. QMacPasteboardMime on \macos.
*/ */

View File

@ -1247,7 +1247,7 @@ void QIcon::setIsMask(bool isMask)
Returns \c true if this icon has been marked as a mask image. Returns \c true if this icon has been marked as a mask image.
Certain platforms render mask icons differently (for example, Certain platforms render mask icons differently (for example,
menu icons on OS X). menu icons on \macos).
\sa setIsMask() \sa setIsMask()
*/ */

View File

@ -116,22 +116,22 @@ QT_BEGIN_NAMESPACE
\endlist \endlist
\section1 Notes for OS X Users \section1 Notes for \macos Users
OS X supports a separate find buffer that holds the current \macos supports a separate find buffer that holds the current
search string in Find operations. This find clipboard can be accessed search string in Find operations. This find clipboard can be accessed
by specifying the FindBuffer mode. by specifying the FindBuffer mode.
\section1 Notes for Windows and OS X Users \section1 Notes for Windows and \macos Users
\list \list
\li Windows and OS X do not support the global mouse \li Windows and \macos do not support the global mouse
selection; they only supports the global clipboard, i.e. they selection; they only supports the global clipboard, i.e. they
only add text to the clipboard when an explicit copy or cut is only add text to the clipboard when an explicit copy or cut is
made. made.
\li Windows and OS X does not have the concept of ownership; \li Windows and \macos does not have the concept of ownership;
the clipboard is a fully global resource so all applications are the clipboard is a fully global resource so all applications are
notified of changes. notified of changes.
@ -187,7 +187,7 @@ QClipboard::~QClipboard()
This signal is emitted when the clipboard data is changed. This signal is emitted when the clipboard data is changed.
On OS X and with Qt version 4.3 or higher, clipboard On \macos and with Qt version 4.3 or higher, clipboard
changes made by other applications will only be detected changes made by other applications will only be detected
when the application is activated. when the application is activated.
@ -199,7 +199,7 @@ QClipboard::~QClipboard()
This signal is emitted when the selection is changed. This only This signal is emitted when the selection is changed. This only
applies to windowing systems that support selections, e.g. X11. applies to windowing systems that support selections, e.g. X11.
Windows and OS X don't support selections. Windows and \macos don't support selections.
\sa dataChanged(), findBufferChanged(), changed() \sa dataChanged(), findBufferChanged(), changed()
*/ */
@ -209,7 +209,7 @@ QClipboard::~QClipboard()
\since 4.2 \since 4.2
This signal is emitted when the find buffer is changed. This only This signal is emitted when the find buffer is changed. This only
applies to OS X. applies to \macos.
With Qt version 4.3 or higher, clipboard changes made by other With Qt version 4.3 or higher, clipboard changes made by other
applications will only be detected when the application is activated. applications will only be detected when the application is activated.
@ -232,7 +232,7 @@ QClipboard::~QClipboard()
systems with a global mouse selection (e.g. X11). systems with a global mouse selection (e.g. X11).
\value FindBuffer indicates that data should be stored and retrieved from \value FindBuffer indicates that data should be stored and retrieved from
the Find buffer. This mode is used for holding search strings on OS X. the Find buffer. This mode is used for holding search strings on \macos.
\omitvalue LastMode \omitvalue LastMode

View File

@ -226,7 +226,7 @@ QObject *QDrag::target() const
from are specified in \a supportedActions. The default proposed action will be selected from are specified in \a supportedActions. The default proposed action will be selected
among the allowed actions in the following order: Move, Copy and Link. among the allowed actions in the following order: Move, Copy and Link.
\b{Note:} On Linux and OS X, the drag and drop operation \b{Note:} On Linux and \macos, the drag and drop operation
can take some time, but this function does not block the event can take some time, but this function does not block the event
loop. Other events are still delivered to the application while loop. Other events are still delivered to the application while
the operation is performed. On Windows, the Qt event loop is the operation is performed. On Windows, the Qt event loop is
@ -250,7 +250,7 @@ Qt::DropAction QDrag::exec(Qt::DropActions supportedActions)
The \a defaultDropAction determines which action will be proposed when the user performs a The \a defaultDropAction determines which action will be proposed when the user performs a
drag without using modifier keys. drag without using modifier keys.
\b{Note:} On Linux and OS X, the drag and drop operation \b{Note:} On Linux and \macos, the drag and drop operation
can take some time, but this function does not block the event can take some time, but this function does not block the event
loop. Other events are still delivered to the application while loop. Other events are still delivered to the application while
the operation is performed. On Windows, the Qt event loop is the operation is performed. On Windows, the Qt event loop is

View File

@ -672,7 +672,7 @@ QHoverEvent::~QHoverEvent()
wheel event delta: angleDelta() returns the delta in wheel wheel event delta: angleDelta() returns the delta in wheel
degrees. This value is always provided. pixelDelta() returns degrees. This value is always provided. pixelDelta() returns
the delta in screen pixels and is available on platforms that the delta in screen pixels and is available on platforms that
have high-resolution trackpads, such as OS X. If that is the have high-resolution trackpads, such as \macos. If that is the
case, source() will return Qt::MouseEventSynthesizedBySystem. case, source() will return Qt::MouseEventSynthesizedBySystem.
The functions pos() and globalPos() return the mouse cursor's The functions pos() and globalPos() return the mouse cursor's
@ -958,7 +958,7 @@ QWheelEvent::QWheelEvent(const QPointF &pos, const QPointF& globalPos,
Returns the scrolling distance in pixels on screen. This value is Returns the scrolling distance in pixels on screen. This value is
provided on platforms that support high-resolution pixel-based provided on platforms that support high-resolution pixel-based
delta values, such as OS X. The value should be used directly delta values, such as \macos. The value should be used directly
to scroll content on screen. to scroll content on screen.
Example: Example:
@ -1099,7 +1099,7 @@ QWheelEvent::QWheelEvent(const QPointF &pos, const QPointF& globalPos,
Returns the scrolling phase of this wheel event. Returns the scrolling phase of this wheel event.
\note The Qt::ScrollBegin and Qt::ScrollEnd phases are currently \note The Qt::ScrollBegin and Qt::ScrollEnd phases are currently
supported only on OS X. supported only on \macos.
*/ */
@ -1717,7 +1717,7 @@ QCloseEvent::~QCloseEvent()
\ingroup events \ingroup events
Icon drag events are sent to widgets when the main icon of a window Icon drag events are sent to widgets when the main icon of a window
has been dragged away. On OS X, this happens when the proxy has been dragged away. On \macos, this happens when the proxy
icon of a window is dragged off the title bar. icon of a window is dragged off the title bar.
It is normal to begin using drag and drop in response to this It is normal to begin using drag and drop in response to this
@ -2727,15 +2727,15 @@ Qt::MouseButtons QTabletEvent::buttons() const
\row \row
\li Qt::ZoomNativeGesture \li Qt::ZoomNativeGesture
\li Magnification delta in percent. \li Magnification delta in percent.
\li OS X: Two-finger pinch. \li \macos: Two-finger pinch.
\row \row
\li Qt::SmartZoomNativeGesture \li Qt::SmartZoomNativeGesture
\li Boolean magnification state. \li Boolean magnification state.
\li OS X: Two-finger douple tap (trackpad) / One-finger douple tap (magic mouse). \li \macos: Two-finger douple tap (trackpad) / One-finger douple tap (magic mouse).
\row \row
\li Qt::RotateNativeGesture \li Qt::RotateNativeGesture
\li Rotation delta in degrees. \li Rotation delta in degrees.
\li OS X: Two-finger rotate. \li \macos: Two-finger rotate.
\endtable \endtable
@ -2758,7 +2758,7 @@ Qt::MouseButtons QTabletEvent::buttons() const
gesture position relative to the receiving widget or item, gesture position relative to the receiving widget or item,
window, and screen, respectively. window, and screen, respectively.
\a realValue is the OS X event parameter, \a sequenceId and \a intValue are the Windows event parameters. \a realValue is the \macos event parameter, \a sequenceId and \a intValue are the Windows event parameters.
*/ */
QNativeGestureEvent::QNativeGestureEvent(Qt::NativeGestureType type, const QPointF &localPos, const QPointF &windowPos, QNativeGestureEvent::QNativeGestureEvent(Qt::NativeGestureType type, const QPointF &localPos, const QPointF &windowPos,
const QPointF &screenPos, qreal realValue, ulong sequenceId, quint64 intValue) const QPointF &screenPos, qreal realValue, ulong sequenceId, quint64 intValue)
@ -3495,16 +3495,16 @@ QShowEvent::~QShowEvent()
when the operating system requests that a file or URL should be opened. when the operating system requests that a file or URL should be opened.
This is a high-level event that can be caused by different user actions This is a high-level event that can be caused by different user actions
depending on the user's desktop environment; for example, double depending on the user's desktop environment; for example, double
clicking on an file icon in the Finder on OS X. clicking on an file icon in the Finder on \macos.
This event is only used to notify the application of a request. This event is only used to notify the application of a request.
It may be safely ignored. It may be safely ignored.
\note This class is currently supported for OS X only. \note This class is currently supported for \macos only.
\section1 OS X Example \section1 \macos Example
In order to trigger the event on OS X, the application must be configured In order to trigger the event on \macos, the application must be configured
to let the OS know what kind of file(s) it should react on. to let the OS know what kind of file(s) it should react on.
For example, the following \c Info.plist file declares that the application For example, the following \c Info.plist file declares that the application
@ -3581,13 +3581,13 @@ bool QFileOpenEvent::openFile(QFile &file, QIODevice::OpenMode flags) const
\internal \internal
\class QToolBarChangeEvent \class QToolBarChangeEvent
\brief The QToolBarChangeEvent class provides an event that is \brief The QToolBarChangeEvent class provides an event that is
sent whenever a the toolbar button is clicked on OS X. sent whenever a the toolbar button is clicked on \macos.
\ingroup events \ingroup events
\inmodule QtGui \inmodule QtGui
The QToolBarChangeEvent is sent when the toolbar button is clicked. On Mac The QToolBarChangeEvent is sent when the toolbar button is clicked. On
OS X, this is the long oblong button on the right side of the window \macos, this is the long oblong button on the right side of the window
title bar. The default implementation is to toggle the appearance (hidden or title bar. The default implementation is to toggle the appearance (hidden or
shown) of the associated toolbars for the window. shown) of the associated toolbars for the window.
*/ */

View File

@ -1060,7 +1060,7 @@ QWindow *QGuiApplication::topLevelAt(const QPoint &pos)
\list \list
\li \c android \li \c android
\li \c cocoa is a platform plugin for OS X. \li \c cocoa is a platform plugin for \macos.
\li \c directfb \li \c directfb
\li \c eglfs is a platform plugin for running Qt5 applications on top of \li \c eglfs is a platform plugin for running Qt5 applications on top of
EGL and OpenGL ES 2.0 without an actual windowing system (like X11 EGL and OpenGL ES 2.0 without an actual windowing system (like X11

View File

@ -125,7 +125,7 @@ static inline qreal initialGlobalScaleFactor()
The devicePixelRatio seen by applications is the product of the Qt scale The devicePixelRatio seen by applications is the product of the Qt scale
factor and the OS scale factor. The value of the scale factors may be 1, factor and the OS scale factor. The value of the scale factors may be 1,
in which case two or more of the coordinate systems are equivalent. Platforms in which case two or more of the coordinate systems are equivalent. Platforms
that (may) have an OS scale factor include OS X, iOS and Wayland. that (may) have an OS scale factor include \macos, iOS and Wayland.
Note that the functions in this file do not work with the OS scale factor Note that the functions in this file do not work with the OS scale factor
directly and are limited to converting between device independent and native directly and are limited to converting between device independent and native

View File

@ -153,7 +153,7 @@ static bool qt_sequence_no_mnemonics = false;
Specifies whether mnemonics for menu items, labels, etc., should Specifies whether mnemonics for menu items, labels, etc., should
be honored or not. On Windows and X11, this feature is be honored or not. On Windows and X11, this feature is
on by default; on OS X, it is off. When this feature is off on by default; on \macos, it is off. When this feature is off
(that is, when \a b is false), QKeySequence::mnemonic() always (that is, when \a b is false), QKeySequence::mnemonic() always
returns an empty string. returns an empty string.
@ -217,7 +217,7 @@ void Q_GUI_EXPORT qt_set_sequence_auto_mnemonic(bool b) { qt_sequence_no_mnemoni
QKeySequence objects can be cast to a QString to obtain a human-readable QKeySequence objects can be cast to a QString to obtain a human-readable
translated version of the sequence. Similarly, the toString() function translated version of the sequence. Similarly, the toString() function
produces human-readable strings for use in menus. On OS X, the produces human-readable strings for use in menus. On \macos, the
appropriate symbols are used to describe keyboard shortcuts using special appropriate symbols are used to describe keyboard shortcuts using special
keys on the Macintosh keyboard. keys on the Macintosh keyboard.
@ -225,12 +225,12 @@ void Q_GUI_EXPORT qt_set_sequence_auto_mnemonic(bool b) { qt_sequence_no_mnemoni
code point of the character; for example, 'A' gives the same key sequence code point of the character; for example, 'A' gives the same key sequence
as Qt::Key_A. as Qt::Key_A.
\note On OS X, references to "Ctrl", Qt::CTRL, Qt::Key_Control \note On \macos, references to "Ctrl", Qt::CTRL, Qt::Key_Control
and Qt::ControlModifier correspond to the \uicontrol Command keys on the and Qt::ControlModifier correspond to the \uicontrol Command keys on the
Macintosh keyboard, and references to "Meta", Qt::META, Qt::Key_Meta and Macintosh keyboard, and references to "Meta", Qt::META, Qt::Key_Meta and
Qt::MetaModifier correspond to the \uicontrol Control keys. Developers on Qt::MetaModifier correspond to the \uicontrol Control keys. Developers on
OS X can use the same shortcut descriptions across all platforms, \macos can use the same shortcut descriptions across all platforms,
and their applications will automatically work as expected on OS X. and their applications will automatically work as expected on \macos.
\section1 Standard Shortcuts \section1 Standard Shortcuts
@ -239,18 +239,18 @@ void Q_GUI_EXPORT qt_set_sequence_auto_mnemonic(bool b) { qt_sequence_no_mnemoni
setting up actions in a typical application. The table below shows setting up actions in a typical application. The table below shows
some common key sequences that are often used for these standard some common key sequences that are often used for these standard
shortcuts by applications on four widely-used platforms. Note shortcuts by applications on four widely-used platforms. Note
that on OS X, the \uicontrol Ctrl value corresponds to the \uicontrol that on \macos, the \uicontrol Ctrl value corresponds to the \uicontrol
Command keys on the Macintosh keyboard, and the \uicontrol Meta value Command keys on the Macintosh keyboard, and the \uicontrol Meta value
corresponds to the \uicontrol Control keys. corresponds to the \uicontrol Control keys.
\table \table
\header \li StandardKey \li Windows \li OS X \li KDE \li GNOME \header \li StandardKey \li Windows \li \macos \li KDE \li GNOME
\row \li HelpContents \li F1 \li Ctrl+? \li F1 \li F1 \row \li HelpContents \li F1 \li Ctrl+? \li F1 \li F1
\row \li WhatsThis \li Shift+F1 \li Shift+F1 \li Shift+F1 \li Shift+F1 \row \li WhatsThis \li Shift+F1 \li Shift+F1 \li Shift+F1 \li Shift+F1
\row \li Open \li Ctrl+O \li Ctrl+O \li Ctrl+O \li Ctrl+O \row \li Open \li Ctrl+O \li Ctrl+O \li Ctrl+O \li Ctrl+O
\row \li Close \li Ctrl+F4, Ctrl+W \li Ctrl+W, Ctrl+F4 \li Ctrl+W \li Ctrl+W \row \li Close \li Ctrl+F4, Ctrl+W \li Ctrl+W, Ctrl+F4 \li Ctrl+W \li Ctrl+W
\row \li Save \li Ctrl+S \li Ctrl+S \li Ctrl+S \li Ctrl+S \row \li Save \li Ctrl+S \li Ctrl+S \li Ctrl+S \li Ctrl+S
\row \li Quit \li \li Ctrl+Q \li Qtrl+Q \li Qtrl+Q \row \li Quit \li \li Ctrl+Q \li Ctrl+Q \li Ctrl+Q
\row \li SaveAs \li \li Ctrl+Shift+S \li \li Ctrl+Shift+S \row \li SaveAs \li \li Ctrl+Shift+S \li \li Ctrl+Shift+S
\row \li New \li Ctrl+N \li Ctrl+N \li Ctrl+N \li Ctrl+N \row \li New \li Ctrl+N \li Ctrl+N \li Ctrl+N \li Ctrl+N
\row \li Delete \li Del \li Del, Meta+D \li Del, Ctrl+D \li Del, Ctrl+D \row \li Delete \li Del \li Del, Meta+D \li Del, Ctrl+D \li Del, Ctrl+D
@ -726,7 +726,7 @@ static const struct {
\value InsertLineSeparator Insert a new line. \value InsertLineSeparator Insert a new line.
\value InsertParagraphSeparator Insert a new paragraph. \value InsertParagraphSeparator Insert a new paragraph.
\value Italic Italic text. \value Italic Italic text.
\value MoveToEndOfBlock Move cursor to end of block. This shortcut is only used on the OS X. \value MoveToEndOfBlock Move cursor to end of block. This shortcut is only used on the \macos.
\value MoveToEndOfDocument Move cursor to end of document. \value MoveToEndOfDocument Move cursor to end of document.
\value MoveToEndOfLine Move cursor to end of line. \value MoveToEndOfLine Move cursor to end of line.
\value MoveToNextChar Move cursor to next character. \value MoveToNextChar Move cursor to next character.
@ -737,7 +737,7 @@ static const struct {
\value MoveToPreviousLine Move cursor to previous line. \value MoveToPreviousLine Move cursor to previous line.
\value MoveToPreviousPage Move cursor to previous page. \value MoveToPreviousPage Move cursor to previous page.
\value MoveToPreviousWord Move cursor to previous word. \value MoveToPreviousWord Move cursor to previous word.
\value MoveToStartOfBlock Move cursor to start of a block. This shortcut is only used on OS X. \value MoveToStartOfBlock Move cursor to start of a block. This shortcut is only used on \macos.
\value MoveToStartOfDocument Move cursor to start of document. \value MoveToStartOfDocument Move cursor to start of document.
\value MoveToStartOfLine Move cursor to start of line. \value MoveToStartOfLine Move cursor to start of line.
\value New Create new document. \value New Create new document.
@ -755,7 +755,7 @@ static const struct {
\value Save Save document. \value Save Save document.
\value SelectAll Select all text. \value SelectAll Select all text.
\value Deselect Deselect text. Since 5.1 \value Deselect Deselect text. Since 5.1
\value SelectEndOfBlock Extend selection to the end of a text block. This shortcut is only used on OS X. \value SelectEndOfBlock Extend selection to the end of a text block. This shortcut is only used on \macos.
\value SelectEndOfDocument Extend selection to end of document. \value SelectEndOfDocument Extend selection to end of document.
\value SelectEndOfLine Extend selection to end of line. \value SelectEndOfLine Extend selection to end of line.
\value SelectNextChar Extend selection to next character. \value SelectNextChar Extend selection to next character.
@ -766,7 +766,7 @@ static const struct {
\value SelectPreviousLine Extend selection to previous line. \value SelectPreviousLine Extend selection to previous line.
\value SelectPreviousPage Extend selection to previous page. \value SelectPreviousPage Extend selection to previous page.
\value SelectPreviousWord Extend selection to previous word. \value SelectPreviousWord Extend selection to previous word.
\value SelectStartOfBlock Extend selection to the start of a text block. This shortcut is only used on OS X. \value SelectStartOfBlock Extend selection to the start of a text block. This shortcut is only used on \macos.
\value SelectStartOfDocument Extend selection to start of document. \value SelectStartOfDocument Extend selection to start of document.
\value SelectStartOfLine Extend selection to start of line. \value SelectStartOfLine Extend selection to start of line.
\value Underline Underline text. \value Underline Underline text.
@ -1523,7 +1523,7 @@ bool QKeySequence::isDetached() const
If the key sequence has no keys, an empty string is returned. If the key sequence has no keys, an empty string is returned.
On OS X, the string returned resembles the sequence that is On \macos, the string returned resembles the sequence that is
shown in the menu bar. shown in the menu bar.
\sa fromString() \sa fromString()

View File

@ -69,6 +69,7 @@ QT_BEGIN_NAMESPACE
class QOpenGLFunctions; class QOpenGLFunctions;
class QOpenGLContext; class QOpenGLContext;
class QOpenGLFramebufferObject;
class QOpenGLMultiGroupSharedResource; class QOpenGLMultiGroupSharedResource;
class Q_GUI_EXPORT QOpenGLSharedResource class Q_GUI_EXPORT QOpenGLSharedResource
@ -212,6 +213,7 @@ public:
, workaround_missingPrecisionQualifiers(false) , workaround_missingPrecisionQualifiers(false)
, active_engine(0) , active_engine(0)
, qgl_current_fbo_invalid(false) , qgl_current_fbo_invalid(false)
, qgl_current_fbo(Q_NULLPTR)
, defaultFboRedirect(0) , defaultFboRedirect(0)
{ {
requestedFormat = QSurfaceFormat::defaultFormat(); requestedFormat = QSurfaceFormat::defaultFormat();
@ -250,6 +252,11 @@ public:
bool qgl_current_fbo_invalid; bool qgl_current_fbo_invalid;
// Set and unset in QOpenGLFramebufferObject::bind()/unbind().
// (Only meaningful for QOGLFBO since an FBO might be bound by other means)
// Saves us from querying the driver for the current FBO in most paths.
QOpenGLFramebufferObject *qgl_current_fbo;
QVariant nativeHandle; QVariant nativeHandle;
GLuint defaultFboRedirect; GLuint defaultFboRedirect;

View File

@ -388,7 +388,7 @@ static void qt_palette_from_color(QPalette &pal, const QColor &button)
\warning Some styles do not use the palette for all drawing, for \warning Some styles do not use the palette for all drawing, for
instance, if they make use of native theme engines. This is the instance, if they make use of native theme engines. This is the
case for both the Windows XP, Windows Vista, and the OS X case for both the Windows XP, Windows Vista, and the \macos
styles. styles.
\sa QApplication::setPalette(), QWidget::setPalette(), QColor \sa QApplication::setPalette(), QWidget::setPalette(), QColor

View File

@ -448,6 +448,11 @@ void QWindowSystemInterface::unregisterTouchDevice(const QTouchDevice *device)
QTouchDevicePrivate::unregisterDevice(device); QTouchDevicePrivate::unregisterDevice(device);
} }
bool QWindowSystemInterface::isTouchDeviceRegistered(const QTouchDevice *device)
{
return QTouchDevicePrivate::isRegistered(device);
}
void QWindowSystemInterface::handleTouchEvent(QWindow *w, QTouchDevice *device, void QWindowSystemInterface::handleTouchEvent(QWindow *w, QTouchDevice *device,
const QList<TouchPoint> &points, Qt::KeyboardModifiers mods) const QList<TouchPoint> &points, Qt::KeyboardModifiers mods)
{ {

View File

@ -134,6 +134,7 @@ public:
static void registerTouchDevice(const QTouchDevice *device); static void registerTouchDevice(const QTouchDevice *device);
static void unregisterTouchDevice(const QTouchDevice *device); static void unregisterTouchDevice(const QTouchDevice *device);
static bool isTouchDeviceRegistered(const QTouchDevice *device);
static void handleTouchEvent(QWindow *w, QTouchDevice *device, static void handleTouchEvent(QWindow *w, QTouchDevice *device,
const QList<struct TouchPoint> &points, Qt::KeyboardModifiers mods = Qt::NoModifier); const QList<struct TouchPoint> &points, Qt::KeyboardModifiers mods = Qt::NoModifier);
static void handleTouchEvent(QWindow *w, ulong timestamp, QTouchDevice *device, static void handleTouchEvent(QWindow *w, ulong timestamp, QTouchDevice *device,

View File

@ -1069,6 +1069,7 @@ bool QOpenGLFramebufferObject::bind()
d->funcs.glBindFramebuffer(GL_FRAMEBUFFER, d->fbo()); d->funcs.glBindFramebuffer(GL_FRAMEBUFFER, d->fbo());
QOpenGLContextPrivate::get(current)->qgl_current_fbo_invalid = true; QOpenGLContextPrivate::get(current)->qgl_current_fbo_invalid = true;
QOpenGLContextPrivate::get(current)->qgl_current_fbo = this;
if (d->format.samples() == 0) { if (d->format.samples() == 0) {
// Create new textures to replace the ones stolen via takeTexture(). // Create new textures to replace the ones stolen via takeTexture().
@ -1108,7 +1109,9 @@ bool QOpenGLFramebufferObject::release()
if (current) { if (current) {
d->funcs.glBindFramebuffer(GL_FRAMEBUFFER, current->defaultFramebufferObject()); d->funcs.glBindFramebuffer(GL_FRAMEBUFFER, current->defaultFramebufferObject());
QOpenGLContextPrivate::get(current)->qgl_current_fbo_invalid = true; QOpenGLContextPrivate *contextPrv = QOpenGLContextPrivate::get(current);
contextPrv->qgl_current_fbo_invalid = true;
contextPrv->qgl_current_fbo = Q_NULLPTR;
} }
return true; return true;

View File

@ -194,7 +194,7 @@ void QAbstractOpenGLFunctionsPrivate::removeExternalFunctions(QOpenGLContext *co
Please note that some vendors, notably Apple, do not implement the Please note that some vendors, notably Apple, do not implement the
Compatibility profile. Therefore if you wish to target new OpenGL features Compatibility profile. Therefore if you wish to target new OpenGL features
on OS X then you should ensure that you request a Core profile context via on \macos then you should ensure that you request a Core profile context via
QSurfaceFormat::setProfile(). QSurfaceFormat::setProfile().
Qt provides classes for all version and Core and Compatibility profile Qt provides classes for all version and Core and Compatibility profile

View File

@ -527,9 +527,10 @@ QString QColor::name(NameFormat format) const
{ {
switch (format) { switch (format) {
case HexRgb: case HexRgb:
return QString::asprintf("#%02x%02x%02x", red(), green(), blue()); return QLatin1Char('#') + QString::number(rgba() | 0x1000000, 16).rightRef(6);
case HexArgb: case HexArgb:
return QString::asprintf("#%02x%02x%02x%02x", alpha(), red(), green(), blue()); // it's called rgba() but it does return AARRGGBB
return QLatin1Char('#') + QString::number(rgba() | 0x100000000, 16).rightRef(8);
} }
return QString(); return QString();
} }

View File

@ -155,7 +155,7 @@ QFont QTextItem::font() const
provided is the raster paint engine, which contains a software provided is the raster paint engine, which contains a software
rasterizer which supports the full feature set on all supported platforms. rasterizer which supports the full feature set on all supported platforms.
This is the default for painting on QWidget-based classes in e.g. on Windows, This is the default for painting on QWidget-based classes in e.g. on Windows,
X11 and OS X, it is the backend for painting on QImage and it is X11 and \macos, it is the backend for painting on QImage and it is
used as a fallback for paint engines that do not support a certain used as a fallback for paint engines that do not support a certain
capability. In addition we provide QPaintEngine implementations for capability. In addition we provide QPaintEngine implementations for
OpenGL (accessible through QGLWidget) and printing (which allows using OpenGL (accessible through QGLWidget) and printing (which allows using
@ -372,8 +372,8 @@ void QPaintEngine::drawPolygon(const QPoint *points, int pointCount, PolygonDraw
\value X11 \value X11
\value Windows \value Windows
\value MacPrinter \value MacPrinter
\value CoreGraphics OS X's Quartz2D (CoreGraphics) \value CoreGraphics \macos's Quartz2D (CoreGraphics)
\value QuickDraw OS X's QuickDraw \value QuickDraw \macos's QuickDraw
\value QWindowSystem Qt for Embedded Linux \value QWindowSystem Qt for Embedded Linux
\value PostScript (No longer supported) \value PostScript (No longer supported)
\value OpenGL \value OpenGL

View File

@ -1035,7 +1035,7 @@ QRegion QRegion::intersect(const QRect &r) const
sort key and X as the minor sort key. sort key and X as the minor sort key.
\endlist \endlist
\omit \omit
Only some platforms have these restrictions (Qt for Embedded Linux, X11 and OS X). Only some platforms have these restrictions (Qt for Embedded Linux, X11 and \macos).
\endomit \endomit
*/ */

View File

@ -730,7 +730,7 @@ void QFont::setFamily(const QString &family)
Returns the requested font style name, it will be used to match the Returns the requested font style name, it will be used to match the
font with irregular styles (that can't be normalized in other style font with irregular styles (that can't be normalized in other style
properties). It depends on system font support, thus only works for properties). It depends on system font support, thus only works for
OS X and X11 so far. On Windows irregular styles will be added \macos and X11 so far. On Windows irregular styles will be added
as separate font families so there is no need for this. as separate font families so there is no need for this.
\sa setFamily(), setStyle() \sa setFamily(), setStyle()
@ -825,7 +825,7 @@ int QFont::pointSize() const
\li Vertical hinting (light) \li Vertical hinting (light)
\li Full hinting \li Full hinting
\row \row
\li Cocoa on OS X \li Cocoa on \macos
\li No hinting \li No hinting
\li No hinting \li No hinting
\li No hinting \li No hinting

View File

@ -2045,7 +2045,7 @@ bool QFontDatabase::hasFamily(const QString &family) const
Returns \c true if and only if the \a family font family is private. Returns \c true if and only if the \a family font family is private.
This happens, for instance, on OS X and iOS, where the system UI fonts are not This happens, for instance, on \macos and iOS, where the system UI fonts are not
accessible to the user. For completeness, QFontDatabase::families() returns all accessible to the user. For completeness, QFontDatabase::families() returns all
font families, including the private ones. You should use this function if you font families, including the private ones. You should use this function if you
are developing a font selection control in order to keep private fonts hidden. are developing a font selection control in order to keep private fonts hidden.
@ -2809,6 +2809,7 @@ void QFontDatabase::load(const QFontPrivate *d, int script)
req.fallBackFamilies.clear(); req.fallBackFamilies.clear();
} }
Q_ASSERT(fe);
if (fe->symbol || (d->request.styleStrategy & QFont::NoFontMerging)) { if (fe->symbol || (d->request.styleStrategy & QFont::NoFontMerging)) {
for (int i = 0; i < QChar::ScriptCount; ++i) { for (int i = 0; i < QChar::ScriptCount; ++i) {
if (!d->engineData->engines[i]) { if (!d->engineData->engines[i]) {

View File

@ -86,7 +86,7 @@ QT_BEGIN_NAMESPACE
also have accessors to some relevant data in the physical font. also have accessors to some relevant data in the physical font.
QRawFont only provides support for the main font technologies: GDI and DirectWrite on Windows QRawFont only provides support for the main font technologies: GDI and DirectWrite on Windows
platforms, FreeType on Linux platforms and CoreText on OS X. For other platforms, FreeType on Linux platforms and CoreText on \macos. For other
font back-ends, the APIs will be disabled. font back-ends, the APIs will be disabled.
QRawFont can be constructed in a number of ways: QRawFont can be constructed in a number of ways:

View File

@ -1335,7 +1335,7 @@ bool QTextFormat::operator==(const QTextFormat &rhs) const
\value WaveUnderline The text is underlined using a wave shaped line. \value WaveUnderline The text is underlined using a wave shaped line.
\value SpellCheckUnderline The underline is drawn depending on the QStyle::SH_SpellCeckUnderlineStyle \value SpellCheckUnderline The underline is drawn depending on the QStyle::SH_SpellCeckUnderlineStyle
style hint of the QApplication style. By default this is mapped to style hint of the QApplication style. By default this is mapped to
WaveUnderline, on OS X it is mapped to DashDotLine. WaveUnderline, on \macos it is mapped to DashDotLine.
\sa Qt::PenStyle \sa Qt::PenStyle
*/ */

View File

@ -365,7 +365,7 @@ void QNetworkAddressEntry::setBroadcast(const QHostAddress &newBroadcast)
Not all operating systems support reporting all features. Only the Not all operating systems support reporting all features. Only the
IPv4 addresses are guaranteed to be listed by this class in all IPv4 addresses are guaranteed to be listed by this class in all
platforms. In particular, IPv6 address listing is only supported platforms. In particular, IPv6 address listing is only supported
on Windows, Linux, OS X and the BSDs. on Windows, Linux, \macos and the BSDs.
\sa QNetworkAddressEntry \sa QNetworkAddressEntry
*/ */

View File

@ -1557,7 +1557,7 @@ void QNetworkProxyFactory::setApplicationProxyFactory(QNetworkProxyFactory *fact
those settings are not found, this function will attempt to obtain those settings are not found, this function will attempt to obtain
Internet Explorer's settings and use them. Internet Explorer's settings and use them.
On MacOS X, this function will obtain the proxy settings using the On \macos, this function will obtain the proxy settings using the
SystemConfiguration framework from Apple. It will apply the FTP, SystemConfiguration framework from Apple. It will apply the FTP,
HTTP and HTTPS proxy configurations for queries that contain the HTTP and HTTPS proxy configurations for queries that contain the
protocol tag "ftp", "http" and "https", respectively. If the SOCKS protocol tag "ftp", "http" and "https", respectively. If the SOCKS
@ -1576,7 +1576,7 @@ void QNetworkProxyFactory::setApplicationProxyFactory(QNetworkProxyFactory *fact
listed here. listed here.
\list \list
\li On MacOS X, this function will ignore the Proxy Auto Configuration \li On \macos, this function will ignore the Proxy Auto Configuration
settings, since it cannot execute the associated ECMAScript code. settings, since it cannot execute the associated ECMAScript code.
\li On Windows platforms, this function may take several seconds to \li On Windows platforms, this function may take several seconds to

View File

@ -428,7 +428,7 @@
allowed to rebind, even if they pass ReuseAddressHint. This option allowed to rebind, even if they pass ReuseAddressHint. This option
provides more security than ShareAddress, but on certain operating provides more security than ShareAddress, but on certain operating
systems, it requires you to run the server with administrator privileges. systems, it requires you to run the server with administrator privileges.
On Unix and OS X, not sharing is the default behavior for binding On Unix and \macos, not sharing is the default behavior for binding
an address and port, so this option is ignored. On Windows, this an address and port, so this option is ignored. On Windows, this
option uses the SO_EXCLUSIVEADDRUSE socket option. option uses the SO_EXCLUSIVEADDRUSE socket option.
@ -438,7 +438,7 @@
socket option. socket option.
\value DefaultForPlatform The default option for the current platform. \value DefaultForPlatform The default option for the current platform.
On Unix and OS X, this is equivalent to (DontShareAddress On Unix and \macos, this is equivalent to (DontShareAddress
+ ReuseAddressHint), and on Windows, its equivalent to ShareAddress. + ReuseAddressHint), and on Windows, its equivalent to ShareAddress.
*/ */
@ -702,10 +702,11 @@ bool QAbstractSocketPrivate::canReadNotification()
} }
// If buffered, read data from the socket into the read buffer // If buffered, read data from the socket into the read buffer
qint64 newBytes = 0;
if (isBuffered) { if (isBuffered) {
const qint64 oldBufferSize = buffer.size();
// Return if there is no space in the buffer // Return if there is no space in the buffer
if (readBufferMaxSize && buffer.size() >= readBufferMaxSize) { if (readBufferMaxSize && oldBufferSize >= readBufferMaxSize) {
socketEngine->setReadNotificationEnabled(false); socketEngine->setReadNotificationEnabled(false);
#if defined (QABSTRACTSOCKET_DEBUG) #if defined (QABSTRACTSOCKET_DEBUG)
qDebug("QAbstractSocketPrivate::canReadNotification() buffer is full"); qDebug("QAbstractSocketPrivate::canReadNotification() buffer is full");
@ -715,7 +716,6 @@ bool QAbstractSocketPrivate::canReadNotification()
// If reading from the socket fails after getting a read // If reading from the socket fails after getting a read
// notification, close the socket. // notification, close the socket.
newBytes = buffer.size();
if (!readFromSocket()) { if (!readFromSocket()) {
#if defined (QABSTRACTSOCKET_DEBUG) #if defined (QABSTRACTSOCKET_DEBUG)
qDebug("QAbstractSocketPrivate::canReadNotification() disconnecting socket"); qDebug("QAbstractSocketPrivate::canReadNotification() disconnecting socket");
@ -723,12 +723,16 @@ bool QAbstractSocketPrivate::canReadNotification()
q->disconnectFromHost(); q->disconnectFromHost();
return false; return false;
} }
newBytes = buffer.size() - newBytes;
// Return if there is no new data available.
if (buffer.size() == oldBufferSize) {
// If the socket is opened only for writing, return true
// to indicate that the data was discarded.
return !q->isReadable();
}
} }
// Only emit readyRead() if there is data available. emitReadyRead();
if (newBytes > 0 || !isBuffered)
emitReadyRead();
// If we were closed as a result of the readyRead() signal, // If we were closed as a result of the readyRead() signal,
// return. // return.

View File

@ -147,7 +147,7 @@ QLocalServer::~QLocalServer()
and are created based on the umask. Setting the access flags will and are created based on the umask. Setting the access flags will
overide this and will restrict or permit access as specified. overide this and will restrict or permit access as specified.
Other Unix-based operating systems, such as OS X, do not Other Unix-based operating systems, such as \macos, do not
honor file permissions for Unix domain sockets and by default honor file permissions for Unix domain sockets and by default
have WorldAccess and these permission flags will have no effect. have WorldAccess and these permission flags will have no effect.

View File

@ -317,7 +317,7 @@ int QNativeSocketEnginePrivate::option(QNativeSocketEngine::SocketOption opt) co
case QNativeSocketEngine::BindExclusively: case QNativeSocketEngine::BindExclusively:
case QNativeSocketEngine::NonBlockingSocketOption: case QNativeSocketEngine::NonBlockingSocketOption:
case QNativeSocketEngine::BroadcastSocketOption: case QNativeSocketEngine::BroadcastSocketOption:
return true; return -1;
case QNativeSocketEngine::MaxStreamsSocketOption: { case QNativeSocketEngine::MaxStreamsSocketOption: {
#ifndef QT_NO_SCTP #ifndef QT_NO_SCTP
sctp_initmsg sctpInitMsg; sctp_initmsg sctpInitMsg;

View File

@ -142,7 +142,7 @@
addDefaultCaCertificates(), and QSslConfiguration::defaultConfiguration().setCaCertificates(). addDefaultCaCertificates(), and QSslConfiguration::defaultConfiguration().setCaCertificates().
\endlist \endlist
\note If available, root certificates on Unix (excluding OS X) will be \note If available, root certificates on Unix (excluding \macos) will be
loaded on demand from the standard certificate directories. If you do not loaded on demand from the standard certificate directories. If you do not
want to load root certificates on demand, you need to call either want to load root certificates on demand, you need to call either
QSslConfiguration::defaultConfiguration().setCaCertificates() before the first QSslConfiguration::defaultConfiguration().setCaCertificates() before the first

View File

@ -37,7 +37,7 @@
OpenGL is a standard API for rendering 3D graphics. OpenGL only OpenGL is a standard API for rendering 3D graphics. OpenGL only
deals with 3D rendering and provides little or no support for GUI deals with 3D rendering and provides little or no support for GUI
programming issues. The user interface for an OpenGL application programming issues. The user interface for an OpenGL application
must be created with another toolkit, such as Cocoa on the OS X must be created with another toolkit, such as Cocoa on the \macos
platform, Microsoft Foundation Classes (MFC) under Windows, or Qt platform, Microsoft Foundation Classes (MFC) under Windows, or Qt
on both platforms. on both platforms.

View File

@ -40,7 +40,7 @@
OpenGL is a standard API for rendering 3D graphics. OpenGL only OpenGL is a standard API for rendering 3D graphics. OpenGL only
deals with 3D rendering and provides little or no support for GUI deals with 3D rendering and provides little or no support for GUI
programming issues. The user interface for an OpenGL application programming issues. The user interface for an OpenGL application
must be created with another toolkit, such as Cocoa on the OS X must be created with another toolkit, such as Cocoa on the \macos
platform, Microsoft Foundation Classes (MFC) under Windows, or Qt platform, Microsoft Foundation Classes (MFC) under Windows, or Qt
on both platforms. on both platforms.

View File

@ -3697,7 +3697,7 @@ void QGLContext::doneCurrent()
QGLWidget. This will side-step the issue altogether, and is what QGLWidget. This will side-step the issue altogether, and is what
we recommend for users that need this kind of functionality. we recommend for users that need this kind of functionality.
On OS X, when Qt is built with Cocoa support, a QGLWidget On \macos, when Qt is built with Cocoa support, a QGLWidget
can't have any sibling widgets placed ontop of itself. This is due can't have any sibling widgets placed ontop of itself. This is due
to limitations in the Cocoa API and is not supported by Apple. to limitations in the Cocoa API and is not supported by Apple.

View File

@ -66,7 +66,7 @@
an OpenGL texture.} The texture is then updated automatically an OpenGL texture.} The texture is then updated automatically
when the pbuffer contents change, eliminating the need for when the pbuffer contents change, eliminating the need for
additional copy operations. This is supported only on Windows additional copy operations. This is supported only on Windows
and OS X systems that provide the \c render_texture and \macos systems that provide the \c render_texture
extension. Note that under Windows, a multi-sampled pbuffer extension. Note that under Windows, a multi-sampled pbuffer
can't be used in conjunction with the \c render_texture can't be used in conjunction with the \c render_texture
extension. If a multi-sampled pbuffer is requested under extension. If a multi-sampled pbuffer is requested under
@ -293,7 +293,7 @@ QGLContext *QGLPixelBuffer::context() const
pbuffer contents to a texture using updateDynamicTexture(). pbuffer contents to a texture using updateDynamicTexture().
\warning For the bindToDynamicTexture() call to succeed on the \warning For the bindToDynamicTexture() call to succeed on the
OS X, the pbuffer needs a shared context, i.e. the \macos, the pbuffer needs a shared context, i.e. the
QGLPixelBuffer must be created with a share widget. QGLPixelBuffer must be created with a share widget.
\sa generateDynamicTexture(), releaseFromDynamicTexture() \sa generateDynamicTexture(), releaseFromDynamicTexture()
@ -322,7 +322,7 @@ QGLContext *QGLPixelBuffer::context() const
\snippet code/src_opengl_qglpixelbuffer.cpp 1 \snippet code/src_opengl_qglpixelbuffer.cpp 1
An alternative on Windows and OS X systems that support the An alternative on Windows and \macos systems that support the
\c render_texture extension is to use bindToDynamicTexture() to \c render_texture extension is to use bindToDynamicTexture() to
get dynamic updates of the texture. get dynamic updates of the texture.

View File

@ -41,7 +41,7 @@
#define QEGLNATIVECONTEXT_H #define QEGLNATIVECONTEXT_H
#include <QtCore/QMetaType> #include <QtCore/QMetaType>
#include <EGL/egl.h> #include <QtPlatformSupport/private/qt_egl_p.h>
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE

View File

@ -1,7 +1,8 @@
contains(QT_CONFIG,egl) { contains(QT_CONFIG,egl) {
HEADERS += \ HEADERS += \
$$PWD/qeglconvenience_p.h \ $$PWD/qeglconvenience_p.h \
$$PWD/qeglstreamconvenience_p.h $$PWD/qeglstreamconvenience_p.h \
$$PWD/qt_egl_p.h
SOURCES += \ SOURCES += \
$$PWD/qeglconvenience.cpp \ $$PWD/qeglconvenience.cpp \
@ -15,8 +16,8 @@ contains(QT_CONFIG,egl) {
$$PWD/qeglpbuffer.cpp $$PWD/qeglpbuffer.cpp
} }
# Avoid X11 header collision # Avoid X11 header collision, use generic EGL native types
DEFINES += MESA_EGL_NO_X11_HEADERS DEFINES += QT_EGL_NO_X11
contains(QT_CONFIG,xlib) { contains(QT_CONFIG,xlib) {
HEADERS += \ HEADERS += \

View File

@ -54,7 +54,7 @@
#include <QtGui/QSurfaceFormat> #include <QtGui/QSurfaceFormat>
#include <QtCore/QVector> #include <QtCore/QVector>
#include <QtCore/QSizeF> #include <QtCore/QSizeF>
#include <EGL/egl.h> #include <QtPlatformSupport/private/qt_egl_p.h>
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE

View File

@ -53,7 +53,6 @@
#include <qpa/qplatformoffscreensurface.h> #include <qpa/qplatformoffscreensurface.h>
#include <QtPlatformSupport/private/qeglplatformcontext_p.h> #include <QtPlatformSupport/private/qeglplatformcontext_p.h>
#include <EGL/egl.h>
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE

View File

@ -55,7 +55,7 @@
#include <qpa/qplatformwindow.h> #include <qpa/qplatformwindow.h>
#include <qpa/qplatformopenglcontext.h> #include <qpa/qplatformopenglcontext.h>
#include <QtCore/QVariant> #include <QtCore/QVariant>
#include <EGL/egl.h> #include <QtPlatformSupport/private/qt_egl_p.h>
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE

View File

@ -52,8 +52,7 @@
// //
#include <qglobal.h> #include <qglobal.h>
#include <EGL/egl.h> #include <QtPlatformSupport/private/qt_egl_p.h>
#include <EGL/eglext.h>
// This provides runtime EGLDevice/Output/Stream support even when eglext.h in // This provides runtime EGLDevice/Output/Stream support even when eglext.h in
// the sysroot is not up-to-date. // the sysroot is not up-to-date.

View File

@ -0,0 +1,117 @@
/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the QtGui 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$
**
****************************************************************************/
#ifndef QT_EGL_P_H
#define QT_EGL_P_H
//
// W A R N I N G
// -------------
//
// This file is not part of the Qt API. It exists purely as an
// implementation detail. This header file may change from version to
// version without notice, or even be removed.
//
// We mean it.
//
#ifdef QT_EGL_NO_X11
# define MESA_EGL_NO_X11_HEADERS // MESA
# define WIN_INTERFACE_CUSTOM // NV
#endif // QT_EGL_NO_X11
#ifdef QT_EGL_WAYLAND
# define WAYLAND // NV
#endif // QT_EGL_WAYLAND
#include <EGL/egl.h>
#include <EGL/eglext.h>
#include <stdint.h>
QT_BEGIN_NAMESPACE
namespace QtInternal {
template <class FromType, class ToType>
struct QtEglConverter
{
static inline ToType convert(FromType v)
{ return v; }
};
template <>
struct QtEglConverter<uint32_t, uintptr_t>
{
static inline uintptr_t convert(uint32_t v)
{ return v; }
};
#if Q_PROCESSOR_WORDSIZE > 4
template <>
struct QtEglConverter<uintptr_t, uint32_t>
{
static inline uint32_t convert(uintptr_t v)
{ return uint32_t(v); }
};
#endif
template <>
struct QtEglConverter<uint32_t, void *>
{
static inline void *convert(uint32_t v)
{ return reinterpret_cast<void *>(uintptr_t(v)); }
};
template <>
struct QtEglConverter<void *, uint32_t>
{
static inline uint32_t convert(void *v)
{ return uintptr_t(v); }
};
} // QtInternal
template <class ToType, class FromType>
static inline ToType qt_egl_cast(FromType from)
{ return QtInternal::QtEglConverter<FromType, ToType>::convert(from); }
QT_END_NAMESPACE
#endif // QT_EGL_P_H

View File

@ -415,9 +415,13 @@ void QEvdevTouchScreenHandler::unregisterTouchDevice()
if (!m_device) if (!m_device)
return; return;
QWindowSystemInterface::unregisterTouchDevice(m_device); // At app exit the cleanup may have already been done, avoid
// double delete by checking the list first.
if (QWindowSystemInterface::isTouchDeviceRegistered(m_device)) {
QWindowSystemInterface::unregisterTouchDevice(m_device);
delete m_device;
}
delete m_device;
m_device = Q_NULLPTR; m_device = Q_NULLPTR;
} }

View File

@ -2079,7 +2079,6 @@ QVariantList AtSpiAdaptor::getAttributeValue(QAccessibleInterface *interface, in
QSpiAttributeSet map; QSpiAttributeSet map;
int startOffset; int startOffset;
int endOffset; int endOffset;
bool defined;
joined = interface->textInterface()->attributes(offset, &startOffset, &endOffset); joined = interface->textInterface()->attributes(offset, &startOffset, &endOffset);
attributes = joined.split (QLatin1Char(';'), QString::SkipEmptyParts, Qt::CaseSensitive); attributes = joined.split (QLatin1Char(';'), QString::SkipEmptyParts, Qt::CaseSensitive);
@ -2091,7 +2090,7 @@ QVariantList AtSpiAdaptor::getAttributeValue(QAccessibleInterface *interface, in
map[attribute.name] = attribute.value; map[attribute.name] = attribute.value;
} }
mapped = map[attributeName]; mapped = map[attributeName];
defined = mapped.isEmpty(); const bool defined = !mapped.isEmpty();
QVariantList list; QVariantList list;
list << mapped << startOffset << endOffset << defined; list << mapped << startOffset << endOffset << defined;
return list; return list;

View File

@ -550,8 +550,11 @@ static void quitQtAndroidPlugin(JNIEnv *env, jclass /*clazz*/)
static void terminateQt(JNIEnv *env, jclass /*clazz*/) static void terminateQt(JNIEnv *env, jclass /*clazz*/)
{ {
sem_wait(&m_terminateSemaphore); // QAndroidEventDispatcherStopper is stopped when the user uses the task manager to kill the application
sem_destroy(&m_terminateSemaphore); if (!QAndroidEventDispatcherStopper::instance()->stopped()) {
sem_wait(&m_terminateSemaphore);
sem_destroy(&m_terminateSemaphore);
}
env->DeleteGlobalRef(m_applicationClass); env->DeleteGlobalRef(m_applicationClass);
env->DeleteGlobalRef(m_classLoaderObject); env->DeleteGlobalRef(m_classLoaderObject);
if (m_resourcesObj) if (m_resourcesObj)
@ -571,8 +574,11 @@ static void terminateQt(JNIEnv *env, jclass /*clazz*/)
m_androidPlatformIntegration = nullptr; m_androidPlatformIntegration = nullptr;
delete m_androidAssetsFileEngineHandler; delete m_androidAssetsFileEngineHandler;
m_androidAssetsFileEngineHandler = nullptr; m_androidAssetsFileEngineHandler = nullptr;
sem_post(&m_exitSemaphore);
pthread_join(m_qtAppThread, nullptr); if (!QAndroidEventDispatcherStopper::instance()->stopped()) {
sem_post(&m_exitSemaphore);
pthread_join(m_qtAppThread, nullptr);
}
} }
static void setSurface(JNIEnv *env, jobject /*thiz*/, jint id, jobject jSurface, jint w, jint h) static void setSurface(JNIEnv *env, jobject /*thiz*/, jint id, jobject jSurface, jint w, jint h)

View File

@ -40,6 +40,9 @@
#include "qcocoadrag.h" #include "qcocoadrag.h"
#include "qmacclipboard.h" #include "qmacclipboard.h"
#include "qcocoahelpers.h" #include "qcocoahelpers.h"
#ifndef QT_NO_WIDGETS
#include <QtWidgets/qwidget.h>
#endif
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
@ -187,7 +190,18 @@ QPixmap QCocoaDrag::dragPixmap(QDrag *drag, QPoint &hotSpot) const
const int width = fm.width(s); const int width = fm.width(s);
const int height = fm.height(); const int height = fm.height();
if (width > 0 && height > 0) { if (width > 0 && height > 0) {
pm = QPixmap(width, height); qreal dpr = 1.0;
if (const QWindow *sourceWindow = qobject_cast<QWindow *>(drag->source())) {
dpr = sourceWindow->devicePixelRatio();
}
#ifndef QT_NO_WIDGETS
else if (const QWidget *sourceWidget = qobject_cast<QWidget *>(drag->source())) {
if (const QWindow *sourceWindow = sourceWidget->window()->windowHandle())
dpr = sourceWindow->devicePixelRatio();
}
#endif
pm = QPixmap(width * dpr, height * dpr);
pm.setDevicePixelRatio(dpr);
QPainter p(&pm); QPainter p(&pm);
p.fillRect(0, 0, pm.width(), pm.height(), Qt::color0); p.fillRect(0, 0, pm.width(), pm.height(), Qt::color0);
p.setPen(Qt::color1); p.setPen(Qt::color1);

View File

@ -589,6 +589,15 @@ void QCocoaFileDialogHelper::QNSOpenSavePanelDelegate_panelClosed(bool accepted)
QCocoaMenuBar::resetKnownMenuItemsToQt(); QCocoaMenuBar::resetKnownMenuItemsToQt();
if (accepted) { if (accepted) {
emit accept(); emit accept();
QString filter = selectedNameFilter();
if (filter.isEmpty())
emit filterSelected(filter);
QList<QUrl> files = selectedFiles();
emit filesSelected(files);
if (files.count() == 1)
emit fileSelected(files.first());
} else { } else {
emit reject(); emit reject();
} }

View File

@ -365,6 +365,7 @@ QT_NAMESPACE_ALIAS_OBJC_CLASS(QNSFontPanelDelegate);
emit mHelper->reject(); emit mHelper->reject();
} else { } else {
emit mHelper->accept(); emit mHelper->accept();
emit mHelper->fontSelected(mHelper->currentFont());
} }
} }
} }

View File

@ -605,7 +605,7 @@ QString qt_mac_removeAmpersandEscapes(QString s)
returned if it can't be obtained. It is the caller's responsibility to returned if it can't be obtained. It is the caller's responsibility to
CGContextRelease the context when finished using it. CGContextRelease the context when finished using it.
\warning This function is only available on OS X. \warning This function is only available on \macos.
\warning This function is duplicated in qmacstyle_mac.mm \warning This function is duplicated in qmacstyle_mac.mm
*/ */
CGContextRef qt_mac_cg_context(QPaintDevice *pdev) CGContextRef qt_mac_cg_context(QPaintDevice *pdev)

View File

@ -1999,16 +1999,27 @@ static QPoint mapWindowCoordinates(QWindow *source, QWindow *target, QPoint poin
return target->mapFromGlobal(source->mapToGlobal(point)); return target->mapFromGlobal(source->mapToGlobal(point));
} }
- (NSDragOperation) draggingSourceOperationMaskForLocal:(BOOL)isLocal - (NSDragOperation)draggingSession:(NSDraggingSession *)session
sourceOperationMaskForDraggingContext:(NSDraggingContext)context
{ {
Q_UNUSED(isLocal); Q_UNUSED(session);
Q_UNUSED(context);
QCocoaDrag* nativeDrag = QCocoaIntegration::instance()->drag(); QCocoaDrag* nativeDrag = QCocoaIntegration::instance()->drag();
return qt_mac_mapDropActions(nativeDrag->currentDrag()->supportedActions()); return qt_mac_mapDropActions(nativeDrag->currentDrag()->supportedActions());
} }
- (BOOL) ignoreModifierKeysWhileDragging - (BOOL)ignoreModifierKeysForDraggingSession:(NSDraggingSession *)session
{ {
return NO; Q_UNUSED(session);
// According to the "Dragging Sources" chapter on Cocoa DnD Programming
// (https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/DragandDrop/Concepts/dragsource.html),
// if the control, option, or command key is pressed, the sources
// operation mask is filtered to only contain a reduced set of operations.
//
// Since Qt already takes care of tracking the keyboard modifiers, we
// don't need (or want) Cocoa to filter anything. Instead, we'll let
// the application do the actual filtering.
return YES;
} }
- (BOOL)wantsPeriodicDraggingUpdates - (BOOL)wantsPeriodicDraggingUpdates
@ -2165,27 +2176,27 @@ static QPoint mapWindowCoordinates(QWindow *source, QWindow *target, QPoint poin
return response.isAccepted(); return response.isAccepted();
} }
- (void)draggedImage:(NSImage*) img endedAt:(NSPoint) point operation:(NSDragOperation) operation - (void)draggingSession:(NSDraggingSession *)session
endedAtPoint:(NSPoint)screenPoint
operation:(NSDragOperation)operation
{ {
Q_UNUSED(img); Q_UNUSED(session);
Q_UNUSED(operation); Q_UNUSED(operation);
QWindow *target = findEventTargetWindow(m_window); QWindow *target = findEventTargetWindow(m_window);
if (!target) if (!target)
return; return;
// keep our state, and QGuiApplication state (buttons member) in-sync, // keep our state, and QGuiApplication state (buttons member) in-sync,
// or future mouse events will be processed incorrectly // or future mouse events will be processed incorrectly
NSUInteger pmb = [NSEvent pressedMouseButtons]; NSUInteger pmb = [NSEvent pressedMouseButtons];
for (int buttonNumber = 0; buttonNumber < 32; buttonNumber++) { // see cocoaButton2QtButton() for the 32 value for (int buttonNumber = 0; buttonNumber < 32; buttonNumber++) { // see cocoaButton2QtButton() for the 32 value
if (!(pmb & (1 << buttonNumber))) if (!(pmb & (1 << buttonNumber)))
m_buttons &= ~cocoaButton2QtButton(buttonNumber); m_buttons &= ~cocoaButton2QtButton(buttonNumber);
} }
NSPoint windowPoint = [self convertPoint: point fromView: nil]; NSPoint windowPoint = [self.window convertRectFromScreen:NSMakeRect(screenPoint.x, screenPoint.y, 1, 1)].origin;
QPoint qtWindowPoint(windowPoint.x, windowPoint.y); QPoint qtWindowPoint(windowPoint.x, windowPoint.y);
NSWindow *window = [self window];
NSPoint screenPoint = [window convertRectToScreen:NSMakeRect(point.x, point.y, 0, 0)].origin;
QPoint qtScreenPoint = QPoint(screenPoint.x, qt_mac_flipYCoordinate(screenPoint.y)); QPoint qtScreenPoint = QPoint(screenPoint.x, qt_mac_flipYCoordinate(screenPoint.y));
QWindowSystemInterface::handleMouseEvent(target, mapWindowCoordinates(m_window, target, qtWindowPoint), qtScreenPoint, m_buttons); QWindowSystemInterface::handleMouseEvent(target, mapWindowCoordinates(m_window, target, qtWindowPoint), qtScreenPoint, m_buttons);

View File

@ -49,7 +49,7 @@
#include <QtPlatformSupport/private/qeglplatformcontext_p.h> #include <QtPlatformSupport/private/qeglplatformcontext_p.h>
#include <QtPlatformSupport/private/qeglconvenience_p.h> #include <QtPlatformSupport/private/qeglconvenience_p.h>
#include <EGL/egl.h> #include <QtPlatformSupport/private/qt_egl_p.h>
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE

View File

@ -42,7 +42,7 @@
#include <QtCore/qglobal.h> #include <QtCore/qglobal.h>
#include <EGL/egl.h> #include <QtPlatformSupport/private/qt_egl_p.h>
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE

View File

@ -8,8 +8,8 @@ CONFIG += egl
LIBS += -lbcm_host LIBS += -lbcm_host
QMAKE_LFLAGS += $$QMAKE_LFLAGS_NOUNDEF QMAKE_LFLAGS += $$QMAKE_LFLAGS_NOUNDEF
# Avoid X11 header collision # Avoid X11 header collision, use generic EGL native types
DEFINES += MESA_EGL_NO_X11_HEADERS DEFINES += QT_EGL_NO_X11
SOURCES += $$PWD/qeglfsbrcmmain.cpp \ SOURCES += $$PWD/qeglfsbrcmmain.cpp \
$$PWD/qeglfsbrcmintegration.cpp $$PWD/qeglfsbrcmintegration.cpp

View File

@ -8,8 +8,8 @@ QT += core-private gui-private platformsupport-private eglfsdeviceintegration-pr
INCLUDEPATH += $$PWD/../.. $$PWD/../eglfs_kms_support INCLUDEPATH += $$PWD/../.. $$PWD/../eglfs_kms_support
# Avoid X11 header collision # Avoid X11 header collision, use generic EGL native types
DEFINES += MESA_EGL_NO_X11_HEADERS DEFINES += QT_EGL_NO_X11
CONFIG += link_pkgconfig CONFIG += link_pkgconfig
!contains(QT_CONFIG, no-pkg-config) { !contains(QT_CONFIG, no-pkg-config) {

View File

@ -4,7 +4,8 @@ QT += core-private gui-private platformsupport-private eglfsdeviceintegration-pr
INCLUDEPATH += $$PWD/../.. $$PWD/../eglfs_kms_support INCLUDEPATH += $$PWD/../.. $$PWD/../eglfs_kms_support
DEFINES += MESA_EGL_NO_X11_HEADERS # Avoid X11 header collision, use generic EGL native types
DEFINES += QT_EGL_NO_X11
CONFIG += link_pkgconfig CONFIG += link_pkgconfig
!contains(QT_CONFIG, no-pkg-config) { !contains(QT_CONFIG, no-pkg-config) {

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