Merge "Merge remote-tracking branch 'origin/5.4' into 5.5" into refs/staging/5.5.0
This commit is contained in:
commit
7bc9310a22
17
dist/changes-5.4.2
vendored
17
dist/changes-5.4.2
vendored
@ -34,6 +34,23 @@ information about a particular change.
|
|||||||
common EXIF-format (big-endian) was not working until 5.4.1. 5.4.2 restores the
|
common EXIF-format (big-endian) was not working until 5.4.1. 5.4.2 restores the
|
||||||
behavior of 5.4.0 and earlier for most EXIF-tagged JPEGs.
|
behavior of 5.4.0 and earlier for most EXIF-tagged JPEGs.
|
||||||
EXIF orientation will be an opt-in starting with Qt 5.5.
|
EXIF orientation will be an opt-in starting with Qt 5.5.
|
||||||
|
- On x86 and x86-64 systems with ELF binaries (especially Linux), due to
|
||||||
|
a new optimization in GCC 5.x in combination with a recent version of
|
||||||
|
GNU binutils, compiling Qt applications with -fPIE is no longer
|
||||||
|
enough with GCC 5.x. Applications now need to be compiled with
|
||||||
|
the -fPIC option if Qt's option "reduce relocations" is active. For
|
||||||
|
backward compatibility only, Qt accepts the use of -fPIE for GCC 4.x
|
||||||
|
versions.
|
||||||
|
Note that Clang is known to generate incompatible code even with -fPIC if
|
||||||
|
the -flto option is active.
|
||||||
|
Applications using qmake or cmake >= 2.8.12 as their build system will
|
||||||
|
adapt automatically. Applications using an older release of cmake in
|
||||||
|
combination with GCC 5.x need to change their CMakeLists.txt to add
|
||||||
|
Qt5Core_EXECUTABLE_COMPILE_FLAGS to CMAKE_CXX_FLAGS. In particular,
|
||||||
|
applications using cmake >= 2.8.9 and < 2.8.11 will continue to build
|
||||||
|
with the -fPIE option and invoke the special compatibility mode if using
|
||||||
|
GCC 4.x.
|
||||||
|
|
||||||
|
|
||||||
****************************************************************************
|
****************************************************************************
|
||||||
* Library *
|
* Library *
|
||||||
|
BIN
examples/widgets/doc/images/imagegestures-example.jpg
Normal file
BIN
examples/widgets/doc/images/imagegestures-example.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 38 KiB |
@ -30,8 +30,7 @@
|
|||||||
\title Plug & Paint Example
|
\title Plug & Paint Example
|
||||||
\ingroup examples-widgets-tools
|
\ingroup examples-widgets-tools
|
||||||
|
|
||||||
\brief The Plug & Paint example demonstrates how to write Qt
|
\brief Demonstrates how to extend Qt applications using plugins.
|
||||||
applications that can be extended through plugins.
|
|
||||||
|
|
||||||
\image plugandpaint.png Screenshot of the Plug & Paint example
|
\image plugandpaint.png Screenshot of the Plug & Paint example
|
||||||
|
|
||||||
@ -314,6 +313,9 @@
|
|||||||
/*!
|
/*!
|
||||||
\example tools/plugandpaintplugins/basictools
|
\example tools/plugandpaintplugins/basictools
|
||||||
\title Plug & Paint Basic Tools Example
|
\title Plug & Paint Basic Tools Example
|
||||||
|
\brief A plugin providing the basic tools for painting functionality.
|
||||||
|
|
||||||
|
\image plugandpaint.png Screenshot of the Plug & Paint example
|
||||||
|
|
||||||
The Basic Tools example is a static plugin for the
|
The Basic Tools example is a static plugin for the
|
||||||
\l{tools/plugandpaint}{Plug & Paint} example. It provides a set
|
\l{tools/plugandpaint}{Plug & Paint} example. It provides a set
|
||||||
@ -499,6 +501,9 @@
|
|||||||
/*!
|
/*!
|
||||||
\example tools/plugandpaintplugins/extrafilters
|
\example tools/plugandpaintplugins/extrafilters
|
||||||
\title Plug & Paint Extra Filters Example
|
\title Plug & Paint Extra Filters Example
|
||||||
|
\brief A plugin providing the extra filters.
|
||||||
|
|
||||||
|
\image plugandpaint.png Screenshot of the Plug & Paint example
|
||||||
|
|
||||||
The Extra Filters example is a plugin for the
|
The Extra Filters example is a plugin for the
|
||||||
\l{tools/plugandpaint}{Plug & Paint} example. It provides a set
|
\l{tools/plugandpaint}{Plug & Paint} example. It provides a set
|
||||||
|
@ -28,10 +28,13 @@
|
|||||||
/*!
|
/*!
|
||||||
\example gestures/imagegestures
|
\example gestures/imagegestures
|
||||||
\title Image Gestures Example
|
\title Image Gestures Example
|
||||||
|
\brief Demonstrates the use of simple gestures in a widget
|
||||||
|
|
||||||
This example shows how to enable gestures for a widget and use gesture input
|
This example shows how to enable gestures for a widget and use gesture input
|
||||||
to perform actions.
|
to perform actions.
|
||||||
|
|
||||||
|
\image imagegestures-example.jpg
|
||||||
|
|
||||||
We use two classes to create the user interface for the application: \c MainWidget
|
We use two classes to create the user interface for the application: \c MainWidget
|
||||||
and \c ImageWidget. The \c MainWidget class is simply used as a container for the
|
and \c ImageWidget. The \c MainWidget class is simply used as a container for the
|
||||||
\c ImageWidget class, which we will configure to accept gesture input. Since we
|
\c ImageWidget class, which we will configure to accept gesture input. Since we
|
||||||
|
@ -918,7 +918,7 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
|
|||||||
if(!path.isEmpty() && !libdirs.contains(path))
|
if(!path.isEmpty() && !libdirs.contains(path))
|
||||||
libdirs += path;
|
libdirs += path;
|
||||||
}
|
}
|
||||||
library = fileFixify(library, FileFixifyFromOutdir);
|
library = fileFixify(library, FileFixifyFromOutdir | FileFixifyAbsolute);
|
||||||
QString key = keyFor(library);
|
QString key = keyFor(library);
|
||||||
if (!project->values("QMAKE_PBX_LIBRARIES").contains(key)) {
|
if (!project->values("QMAKE_PBX_LIBRARIES").contains(key)) {
|
||||||
bool is_frmwrk = (library.endsWith(".framework"));
|
bool is_frmwrk = (library.endsWith(".framework"));
|
||||||
|
@ -70,8 +70,14 @@ set(_qt5_corelib_extra_includes)
|
|||||||
# Qt5_POSITION_INDEPENDENT_CODE variable is used in the # qt5_use_module
|
# Qt5_POSITION_INDEPENDENT_CODE variable is used in the # qt5_use_module
|
||||||
# macro to add it.
|
# macro to add it.
|
||||||
set(Qt5_POSITION_INDEPENDENT_CODE True)
|
set(Qt5_POSITION_INDEPENDENT_CODE True)
|
||||||
set_property(TARGET Qt5::Core PROPERTY INTERFACE_POSITION_INDEPENDENT_CODE \"ON\")
|
|
||||||
set(Qt5Core_EXECUTABLE_COMPILE_FLAGS \"-fPIC\")
|
set(Qt5Core_EXECUTABLE_COMPILE_FLAGS \"-fPIC\")
|
||||||
|
if (CMAKE_VERSION VERSION_LESS 2.8.12
|
||||||
|
AND (NOT CMAKE_CXX_COMPILER_ID STREQUAL \"GNU\"
|
||||||
|
OR CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0))
|
||||||
|
set_property(TARGET Qt5::Core APPEND PROPERTY INTERFACE_POSITION_INDEPENDENT_CODE \"ON\")
|
||||||
|
else()
|
||||||
|
set_property(TARGET Qt5::Core APPEND PROPERTY INTERFACE_COMPILE_OPTIONS $$QMAKE_CXXFLAGS_APP)
|
||||||
|
endif()
|
||||||
|
|
||||||
!!IF !isEmpty(QT_NAMESPACE)
|
!!IF !isEmpty(QT_NAMESPACE)
|
||||||
list(APPEND Qt5Core_DEFINITIONS -DQT_NAMESPACE=$$QT_NAMESPACE)
|
list(APPEND Qt5Core_DEFINITIONS -DQT_NAMESPACE=$$QT_NAMESPACE)
|
||||||
|
@ -333,8 +333,10 @@ if (NOT CMAKE_VERSION VERSION_LESS 2.8.9)
|
|||||||
set_property(TARGET ${_target} APPEND PROPERTY COMPILE_DEFINITIONS_RELEASE QT_NO_DEBUG)
|
set_property(TARGET ${_target} APPEND PROPERTY COMPILE_DEFINITIONS_RELEASE QT_NO_DEBUG)
|
||||||
set_property(TARGET ${_target} APPEND PROPERTY COMPILE_DEFINITIONS_RELWITHDEBINFO QT_NO_DEBUG)
|
set_property(TARGET ${_target} APPEND PROPERTY COMPILE_DEFINITIONS_RELWITHDEBINFO QT_NO_DEBUG)
|
||||||
set_property(TARGET ${_target} APPEND PROPERTY COMPILE_DEFINITIONS_MINSIZEREL QT_NO_DEBUG)
|
set_property(TARGET ${_target} APPEND PROPERTY COMPILE_DEFINITIONS_MINSIZEREL QT_NO_DEBUG)
|
||||||
|
if (Qt5_POSITION_INDEPENDENT_CODE
|
||||||
if (Qt5_POSITION_INDEPENDENT_CODE)
|
AND (CMAKE_VERSION VERSION_LESS 2.8.12
|
||||||
|
AND (NOT CMAKE_CXX_COMPILER_ID STREQUAL \"GNU\"
|
||||||
|
OR CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0)))
|
||||||
set_property(TARGET ${_target} PROPERTY POSITION_INDEPENDENT_CODE ${Qt5_POSITION_INDEPENDENT_CODE})
|
set_property(TARGET ${_target} PROPERTY POSITION_INDEPENDENT_CODE ${Qt5_POSITION_INDEPENDENT_CODE})
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
@ -43,5 +43,8 @@ imagedirs += images
|
|||||||
|
|
||||||
excludedirs += snippets
|
excludedirs += snippets
|
||||||
|
|
||||||
|
excludefiles += ../../../examples/widgets/tools/customcompleter/doc/src/customcompleter.qdoc \
|
||||||
|
../../../examples/widgets/tools/codecs/doc/src/codecs.qdoc
|
||||||
|
|
||||||
navigation.landingpage = "Qt Core"
|
navigation.landingpage = "Qt Core"
|
||||||
navigation.cppclassespage = "Qt Core C++ Classes"
|
navigation.cppclassespage = "Qt Core C++ Classes"
|
||||||
|
@ -51,7 +51,8 @@ sem.release(2); // resources available == 3
|
|||||||
|
|
||||||
//! [1]
|
//! [1]
|
||||||
QSystemSemaphore sem("market", 5, QSystemSemaphore::Create);
|
QSystemSemaphore sem("market", 5, QSystemSemaphore::Create);
|
||||||
sem.acquire(5); // acquire all 5 resources
|
for (int i = 0; i < 5; ++i) // acquire all 5 resources
|
||||||
|
sem.acquire();
|
||||||
sem.release(5); // release the 5 resources
|
sem.release(5); // release the 5 resources
|
||||||
//! [1]
|
//! [1]
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@
|
|||||||
used to effectively embed the elements and semantics of statecharts in Qt
|
used to effectively embed the elements and semantics of statecharts in Qt
|
||||||
applications. The framework integrates tightly with Qt's meta-object system;
|
applications. The framework integrates tightly with Qt's meta-object system;
|
||||||
for example, transitions between states can be triggered by signals, and
|
for example, transitions between states can be triggered by signals, and
|
||||||
states can be configured to set properties and invoke methods on QObjects.
|
states can be configured to set properties and invoke methods on {QObject}s.
|
||||||
Qt's event system is used to drive the state machines.
|
Qt's event system is used to drive the state machines.
|
||||||
|
|
||||||
The state graph in the State Machine framework is hierarchical. States can be nested inside of
|
The state graph in the State Machine framework is hierarchical. States can be nested inside of
|
||||||
@ -126,9 +126,9 @@
|
|||||||
|
|
||||||
The QState::entered() signal is emitted when the state is entered, and the
|
The QState::entered() signal is emitted when the state is entered, and the
|
||||||
QState::exited() signal is emitted when the state is exited. In the
|
QState::exited() signal is emitted when the state is exited. In the
|
||||||
following snippet, the button's showMaximized() slot will be called when
|
following snippet, the button's \l {QPushButton::}{showMaximized()} slot
|
||||||
state \c s3 is entered, and the button's showMinimized() slot will be called
|
will be called when state \c s3 is entered, and the button's \l {QPushButton::}{showMinimized()}
|
||||||
when \c s3 is exited:
|
slot will be called when \c s3 is exited:
|
||||||
|
|
||||||
\snippet statemachine/main.cpp 5
|
\snippet statemachine/main.cpp 5
|
||||||
|
|
||||||
@ -151,7 +151,7 @@
|
|||||||
Assume we wanted the user to be able to quit the application at any time by
|
Assume we wanted the user to be able to quit the application at any time by
|
||||||
clicking a Quit button. In order to achieve this, we need to create a final
|
clicking a Quit button. In order to achieve this, we need to create a final
|
||||||
state and make it the target of a transition associated with the Quit
|
state and make it the target of a transition associated with the Quit
|
||||||
button's clicked() signal. We could add a transition from each of \c s1, \c
|
button's \l{QPushButton::}{clicked()} signal. We could add a transition from each of \c s1, \c
|
||||||
s2 and \c s3; however, this seems redundant, and one would also have to
|
s2 and \c s3; however, this seems redundant, and one would also have to
|
||||||
remember to add such a transition from every new state that is added in the
|
remember to add such a transition from every new state that is added in the
|
||||||
future.
|
future.
|
||||||
@ -184,8 +184,8 @@
|
|||||||
\snippet statemachine/main2.cpp 1
|
\snippet statemachine/main2.cpp 1
|
||||||
|
|
||||||
In this case we want the application to quit when the state machine is
|
In this case we want the application to quit when the state machine is
|
||||||
finished, so the machine's finished() signal is connected to the
|
finished, so the machine's \l {QStateMachine::}{finished()} signal is connected to the
|
||||||
application's quit() slot.
|
application's \l {QCoreApplication::}{quit()} slot.
|
||||||
|
|
||||||
A child state can override an inherited transition. For example, the
|
A child state can override an inherited transition. For example, the
|
||||||
following code adds a transition that effectively causes the Quit button to
|
following code adds a transition that effectively causes the Quit button to
|
||||||
@ -290,7 +290,7 @@
|
|||||||
\endomit
|
\endomit
|
||||||
|
|
||||||
When \c s1 's final state is entered, \c s1 will automatically emit
|
When \c s1 's final state is entered, \c s1 will automatically emit
|
||||||
finished(). We use a signal transition to cause this event to trigger a
|
\l {QState::}{finished()}. We use a signal transition to cause this event to trigger a
|
||||||
state change:
|
state change:
|
||||||
|
|
||||||
\snippet statemachine/main3.cpp 1
|
\snippet statemachine/main3.cpp 1
|
||||||
@ -302,7 +302,7 @@
|
|||||||
encapsulation mechanism when building complex (deeply nested) state
|
encapsulation mechanism when building complex (deeply nested) state
|
||||||
machines. (In the above example, you could of course create a transition
|
machines. (In the above example, you could of course create a transition
|
||||||
directly from \c s1 's \c done state rather than relying on \c s1 's
|
directly from \c s1 's \c done state rather than relying on \c s1 's
|
||||||
finished() signal, but with the consequence that implementation details of
|
\l {QState::}{finished()} signal, but with the consequence that implementation details of
|
||||||
\c s1 are exposed and depended on).
|
\c s1 are exposed and depended on).
|
||||||
|
|
||||||
For parallel state groups, the QState::finished() signal is emitted when \e
|
For parallel state groups, the QState::finished() signal is emitted when \e
|
||||||
@ -365,8 +365,8 @@
|
|||||||
|
|
||||||
\snippet statemachine/main4.cpp 1
|
\snippet statemachine/main4.cpp 1
|
||||||
|
|
||||||
In the eventTest() reimplementation, we first check if the event type is the
|
In the \l {QAbstractTransition::}{eventTest()} reimplementation, we first check if the event type is the
|
||||||
desired one; if so, we cast the event to a StringEvent and perform the
|
desired one; if so, we cast the event to a \c StringEvent and perform the
|
||||||
string comparison.
|
string comparison.
|
||||||
|
|
||||||
The following is a statechart that uses the custom event and transition:
|
The following is a statechart that uses the custom event and transition:
|
||||||
@ -486,7 +486,7 @@
|
|||||||
message box will pop up before the geometry of the button has actually been set.
|
message box will pop up before the geometry of the button has actually been set.
|
||||||
|
|
||||||
To ensure that the message box does not pop up until the geometry actually reaches its final
|
To ensure that the message box does not pop up until the geometry actually reaches its final
|
||||||
value, we can use the state's propertiesAssigned() signal. The propertiesAssigned() signal will be
|
value, we can use the state's \l {QState::}{propertiesAssigned()} signal. The \l {QState::}{propertiesAssigned()} signal will be
|
||||||
emitted when the property is assigned its final value, whether this is done immediately or
|
emitted when the property is assigned its final value, whether this is done immediately or
|
||||||
after the animation has finished playing.
|
after the animation has finished playing.
|
||||||
|
|
||||||
@ -503,14 +503,14 @@
|
|||||||
has been assigned the defined value.
|
has been assigned the defined value.
|
||||||
|
|
||||||
If the global restore policy is set to QStateMachine::RestoreProperties, the state will not emit
|
If the global restore policy is set to QStateMachine::RestoreProperties, the state will not emit
|
||||||
the propertiesAssigned() signal until these have been executed as well.
|
the \l {QState::}{propertiesAssigned()} signal until these have been executed as well.
|
||||||
|
|
||||||
\section1 What Happens If A State Is Exited Before The Animation Has Finished
|
\section1 What Happens If A State Is Exited Before The Animation Has Finished
|
||||||
|
|
||||||
If a state has property assignments, and the transition into the state has animations for the
|
If a state has property assignments, and the transition into the state has animations for the
|
||||||
properties, the state can potentially be exited before the properties have been assigned to the
|
properties, the state can potentially be exited before the properties have been assigned to the
|
||||||
values defines by the state. This is true in particular when there are transitions out from the
|
values defines by the state. This is true in particular when there are transitions out from the
|
||||||
state that do not depend on the propertiesAssigned signal, as described in the previous section.
|
state that do not depend on the \l {QState::}{propertiesAssigned()} signal, as described in the previous section.
|
||||||
|
|
||||||
The State Machine API guarantees that a property assigned by the state machine either:
|
The State Machine API guarantees that a property assigned by the state machine either:
|
||||||
\list
|
\list
|
||||||
@ -563,13 +563,13 @@
|
|||||||
|
|
||||||
The parent state machine treats the child machine as an \e atomic state in the state machine
|
The parent state machine treats the child machine as an \e atomic state in the state machine
|
||||||
algorithm. The child state machine is self-contained; it maintains its own event queue and
|
algorithm. The child state machine is self-contained; it maintains its own event queue and
|
||||||
configuration. In particular, note that the \l{QStateMachine::configuration()}{configuration}
|
configuration. In particular, note that the \l{QStateMachine::}{configuration()}
|
||||||
of the child machine is not part of the parent machine's configuration (only the child machine
|
of the child machine is not part of the parent machine's configuration (only the child machine
|
||||||
itself is).
|
itself is).
|
||||||
|
|
||||||
States of the child state machine cannot be specified as targets of transitions in the parent
|
States of the child state machine cannot be specified as targets of transitions in the parent
|
||||||
state machine; only the child state machine itself can. Conversely, states of the parent state
|
state machine; only the child state machine itself can. Conversely, states of the parent state
|
||||||
machine cannot be specified as targets of transitions in the child state machine. The child
|
machine cannot be specified as targets of transitions in the child state machine. The child
|
||||||
state machine's \l{QState::finished()}{finished}() signal can be used to trigger a transition
|
state machine's \l{QState::}{finished}() signal can be used to trigger a transition
|
||||||
in the parent machine.
|
in the parent machine.
|
||||||
*/
|
*/
|
||||||
|
@ -1062,9 +1062,10 @@ Q_CORE_EXPORT int qrand();
|
|||||||
|
|
||||||
#define QT_MODULE(x)
|
#define QT_MODULE(x)
|
||||||
|
|
||||||
#if !defined(QT_BOOTSTRAPPED) && defined(QT_REDUCE_RELOCATIONS) && defined(__ELF__) && !defined(__PIC__)
|
#if !defined(QT_BOOTSTRAPPED) && defined(QT_REDUCE_RELOCATIONS) && defined(__ELF__) && \
|
||||||
|
(!defined(__PIC__) || (defined(__PIE__) && defined(Q_CC_GNU) && Q_CC_GNU >= 500))
|
||||||
# error "You must build your code with position independent code if Qt was built with -reduce-relocations. "\
|
# error "You must build your code with position independent code if Qt was built with -reduce-relocations. "\
|
||||||
"Compile your code with -fPIC."
|
"Compile your code with -fPIC (-fPIE is not enough)."
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
namespace QtPrivate {
|
namespace QtPrivate {
|
||||||
|
@ -132,7 +132,7 @@ bool QLockFilePrivate::isApparentlyStale() const
|
|||||||
// processes due to sandboxing
|
// processes due to sandboxing
|
||||||
#ifndef Q_OS_WINRT
|
#ifndef Q_OS_WINRT
|
||||||
if (getLockInfo(&pid, &hostname, &appname)) {
|
if (getLockInfo(&pid, &hostname, &appname)) {
|
||||||
if (hostname == QString::fromLocal8Bit(localHostName())) {
|
if (hostname.isEmpty() || hostname == QString::fromLocal8Bit(localHostName())) {
|
||||||
HANDLE procHandle = ::OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, pid);
|
HANDLE procHandle = ::OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, pid);
|
||||||
if (!procHandle)
|
if (!procHandle)
|
||||||
return true;
|
return true;
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -74,6 +74,7 @@ public:
|
|||||||
jobject m_jobject;
|
jobject m_jobject;
|
||||||
jclass m_jclass;
|
jclass m_jclass;
|
||||||
bool m_own_jclass;
|
bool m_own_jclass;
|
||||||
|
QByteArray m_className;
|
||||||
};
|
};
|
||||||
|
|
||||||
class Q_CORE_EXPORT QJNIObjectPrivate
|
class Q_CORE_EXPORT QJNIObjectPrivate
|
||||||
|
@ -676,16 +676,9 @@ QImage::Format QPngHandlerPrivate::readImageFormat()
|
|||||||
&& num_palette <= 256)
|
&& num_palette <= 256)
|
||||||
{
|
{
|
||||||
// 1-bit and 8-bit color
|
// 1-bit and 8-bit color
|
||||||
if (bit_depth != 1)
|
|
||||||
png_set_packing(png_ptr);
|
|
||||||
png_read_update_info(png_ptr, info_ptr);
|
|
||||||
png_get_IHDR(png_ptr, info_ptr, &width, &height, &bit_depth, &color_type, 0, 0, 0);
|
|
||||||
format = bit_depth == 1 ? QImage::Format_Mono : QImage::Format_Indexed8;
|
format = bit_depth == 1 ? QImage::Format_Mono : QImage::Format_Indexed8;
|
||||||
} else {
|
} else {
|
||||||
// 32-bit
|
// 32-bit
|
||||||
if (bit_depth == 16)
|
|
||||||
png_set_strip_16(png_ptr);
|
|
||||||
|
|
||||||
format = QImage::Format_ARGB32;
|
format = QImage::Format_ARGB32;
|
||||||
// Only add filler if no alpha, or we can get 5 channel data.
|
// Only add filler if no alpha, or we can get 5 channel data.
|
||||||
if (!(color_type & PNG_COLOR_MASK_ALPHA)
|
if (!(color_type & PNG_COLOR_MASK_ALPHA)
|
||||||
|
@ -131,6 +131,10 @@ bool QPlatformOpenGLContext::parseOpenGLVersion(const QByteArray &versionString,
|
|||||||
if (versionParts.size() >= 2) {
|
if (versionParts.size() >= 2) {
|
||||||
major = versionParts.at(0).toInt(&majorOk);
|
major = versionParts.at(0).toInt(&majorOk);
|
||||||
minor = versionParts.at(1).toInt(&minorOk);
|
minor = versionParts.at(1).toInt(&minorOk);
|
||||||
|
// Nexus 6 has "OpenGL ES 3.0V@95.0 (GIT@I86da836d38)"
|
||||||
|
if (!minorOk)
|
||||||
|
if (int idx = versionParts.at(1).indexOf('V'))
|
||||||
|
minor = versionParts.at(1).left(idx).toInt(&minorOk);
|
||||||
} else {
|
} else {
|
||||||
qWarning("Unrecognized OpenGL ES version");
|
qWarning("Unrecognized OpenGL ES version");
|
||||||
}
|
}
|
||||||
|
@ -985,6 +985,27 @@ QNetworkAccessManager::NetworkAccessibility QNetworkAccessManager::networkAccess
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\internal
|
||||||
|
|
||||||
|
Returns the network session currently in use.
|
||||||
|
This can be changed at any time, ownership remains with the QNetworkAccessManager
|
||||||
|
*/
|
||||||
|
const QWeakPointer<const QNetworkSession> QNetworkAccessManagerPrivate::getNetworkSession(const QNetworkAccessManager *q)
|
||||||
|
{
|
||||||
|
return q->d_func()->networkSessionWeakRef;
|
||||||
|
}
|
||||||
|
|
||||||
|
QSharedPointer<QNetworkSession> QNetworkAccessManagerPrivate::getNetworkSession() const
|
||||||
|
{
|
||||||
|
if (networkSessionStrongRef)
|
||||||
|
return networkSessionStrongRef;
|
||||||
|
return networkSessionWeakRef.toStrongRef();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // QT_NO_BEARERMANAGEMENT
|
||||||
|
|
||||||
|
|
||||||
#ifndef QT_NO_SSL
|
#ifndef QT_NO_SSL
|
||||||
/*!
|
/*!
|
||||||
\since 5.2
|
\since 5.2
|
||||||
@ -1045,26 +1066,6 @@ void QNetworkAccessManager::connectToHost(const QString &hostName, quint16 port)
|
|||||||
get(request);
|
get(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
|
||||||
\internal
|
|
||||||
|
|
||||||
Returns the network session currently in use.
|
|
||||||
This can be changed at any time, ownership remains with the QNetworkAccessManager
|
|
||||||
*/
|
|
||||||
const QWeakPointer<const QNetworkSession> QNetworkAccessManagerPrivate::getNetworkSession(const QNetworkAccessManager *q)
|
|
||||||
{
|
|
||||||
return q->d_func()->networkSessionWeakRef;
|
|
||||||
}
|
|
||||||
|
|
||||||
QSharedPointer<QNetworkSession> QNetworkAccessManagerPrivate::getNetworkSession() const
|
|
||||||
{
|
|
||||||
if (networkSessionStrongRef)
|
|
||||||
return networkSessionStrongRef;
|
|
||||||
return networkSessionWeakRef.toStrongRef();
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // QT_NO_BEARERMANAGEMENT
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\since 4.7
|
\since 4.7
|
||||||
|
|
||||||
|
@ -75,6 +75,7 @@ QNetworkConfigurationManagerPrivate::~QNetworkConfigurationManagerPrivate()
|
|||||||
QMutexLocker locker(&mutex);
|
QMutexLocker locker(&mutex);
|
||||||
|
|
||||||
qDeleteAll(sessionEngines);
|
qDeleteAll(sessionEngines);
|
||||||
|
sessionEngines.clear();
|
||||||
if (bearerThread)
|
if (bearerThread)
|
||||||
bearerThread->quit();
|
bearerThread->quit();
|
||||||
}
|
}
|
||||||
|
@ -637,7 +637,10 @@ long QSslSocketPrivate::sslLibraryBuildVersionNumber()
|
|||||||
|
|
||||||
QString QSslSocketPrivate::sslLibraryBuildVersionString()
|
QString QSslSocketPrivate::sslLibraryBuildVersionString()
|
||||||
{
|
{
|
||||||
return QLatin1String(OPENSSL_VERSION_TEXT);
|
// Using QStringLiteral to store the version string as unicode and
|
||||||
|
// avoid false positives from Google searching the playstore for old
|
||||||
|
// SSL versions. See QTBUG-46265
|
||||||
|
return QStringLiteral(OPENSSL_VERSION_TEXT);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@ -44,6 +44,7 @@
|
|||||||
#include <QtCore/qdebug.h>
|
#include <QtCore/qdebug.h>
|
||||||
|
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
|
#ifndef QT_NO_BEARERMANAGEMENT
|
||||||
|
|
||||||
extern "C" { // Otherwise it won't find CWKeychain* symbols at link time
|
extern "C" { // Otherwise it won't find CWKeychain* symbols at link time
|
||||||
#import <CoreWLAN/CoreWLAN.h>
|
#import <CoreWLAN/CoreWLAN.h>
|
||||||
@ -890,3 +891,5 @@ quint64 QCoreWlanEngine::getBytes(const QString &interfaceName, bool b)
|
|||||||
}
|
}
|
||||||
|
|
||||||
QT_END_NAMESPACE
|
QT_END_NAMESPACE
|
||||||
|
|
||||||
|
#endif
|
||||||
|
@ -1764,7 +1764,7 @@ QRectF QPrinter::paperRect(Unit unit) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\obsolete Use pageLayout().paintRect() instead.
|
\obsolete Use pageLayout().paintRectPixels(resolution()) instead.
|
||||||
|
|
||||||
Returns the page's rectangle; this is usually smaller than the
|
Returns the page's rectangle; this is usually smaller than the
|
||||||
paperRect() since the page normally has margins between its
|
paperRect() since the page normally has margins between its
|
||||||
@ -1781,7 +1781,7 @@ QRect QPrinter::pageRect() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\obsolete Use pageLayout().fullPageRect() instead.
|
\obsolete Use pageLayout().fullRectPixels(resolution()) instead.
|
||||||
|
|
||||||
Returns the paper's rectangle; this is usually larger than the
|
Returns the paper's rectangle; this is usually larger than the
|
||||||
pageRect().
|
pageRect().
|
||||||
|
@ -335,8 +335,8 @@ void QPrintPreviewWidgetPrivate::populateScene()
|
|||||||
pages.clear();
|
pages.clear();
|
||||||
|
|
||||||
int numPages = pictures.count();
|
int numPages = pictures.count();
|
||||||
QSize paperSize = printer->paperRect().size();
|
QSize paperSize = printer->pageLayout().fullRectPixels(printer->resolution()).size();
|
||||||
QRect pageRect = printer->pageRect();
|
QRect pageRect = printer->pageLayout().paintRectPixels(printer->resolution());
|
||||||
|
|
||||||
for (int i = 0; i < numPages; i++) {
|
for (int i = 0; i < numPages; i++) {
|
||||||
PageItem* item = new PageItem(i+1, pictures.at(i), paperSize, pageRect);
|
PageItem* item = new PageItem(i+1, pictures.at(i), paperSize, pageRect);
|
||||||
|
@ -40,5 +40,8 @@ excludedirs += ../../../examples/widgets/doc
|
|||||||
|
|
||||||
imagedirs += images
|
imagedirs += images
|
||||||
|
|
||||||
|
# Add a thumbnail for examples that do not have images
|
||||||
|
manifestmeta.thumbnail.names = "QtTestLib/Chapter *"
|
||||||
|
|
||||||
navigation.landingpage = "Qt Test"
|
navigation.landingpage = "Qt Test"
|
||||||
navigation.cppclassespage = "Qt Test C++ Classes"
|
navigation.cppclassespage = "Qt Test C++ Classes"
|
||||||
|
@ -182,7 +182,9 @@ int QStackedWidget::insertWidget(int index, QWidget *widget)
|
|||||||
not deleted but simply removed from the stacked layout, causing it
|
not deleted but simply removed from the stacked layout, causing it
|
||||||
to be hidden.
|
to be hidden.
|
||||||
|
|
||||||
\b{Note:} Ownership of \a widget reverts to the application.
|
\note Parent object and parent widget of \a widget will remain the
|
||||||
|
QStackedWidget. If the application wants to reuse the removed
|
||||||
|
\a widget, then it is recommended to re-parent it.
|
||||||
|
|
||||||
\sa addWidget(), insertWidget(), currentWidget()
|
\sa addWidget(), insertWidget(), currentWidget()
|
||||||
*/
|
*/
|
||||||
|
@ -111,7 +111,7 @@ extern "C" int APIENTRY WinMain(HINSTANCE, HINSTANCE, LPSTR /*cmdParamarg*/, int
|
|||||||
argv[argc] = Q_NULLPTR;
|
argv[argc] = Q_NULLPTR;
|
||||||
LocalFree(argvW);
|
LocalFree(argvW);
|
||||||
const int exitCode = main(argc, argv);
|
const int exitCode = main(argc, argv);
|
||||||
for (int i = 0; i < argc; ++i)
|
for (int i = 0; i < argc && argv[i]; ++i)
|
||||||
delete [] argv[i];
|
delete [] argv[i];
|
||||||
delete [] argv;
|
delete [] argv;
|
||||||
return exitCode;
|
return exitCode;
|
||||||
|
@ -40,3 +40,6 @@ imagedirs += images \
|
|||||||
|
|
||||||
navigation.landingpage = "Qt XML"
|
navigation.landingpage = "Qt XML"
|
||||||
navigation.cppclassespage = "Qt XML C++ Classes"
|
navigation.cppclassespage = "Qt XML C++ Classes"
|
||||||
|
|
||||||
|
# Add a thumbnail for examples that do not have images
|
||||||
|
manifestmeta.thumbnail.names = "QtXml/XML Stream Lint Example"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user