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
|
||||
behavior of 5.4.0 and earlier for most EXIF-tagged JPEGs.
|
||||
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 *
|
||||
|
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
|
||||
\ingroup examples-widgets-tools
|
||||
|
||||
\brief The Plug & Paint example demonstrates how to write Qt
|
||||
applications that can be extended through plugins.
|
||||
\brief Demonstrates how to extend Qt applications using plugins.
|
||||
|
||||
\image plugandpaint.png Screenshot of the Plug & Paint example
|
||||
|
||||
@ -314,6 +313,9 @@
|
||||
/*!
|
||||
\example tools/plugandpaintplugins/basictools
|
||||
\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
|
||||
\l{tools/plugandpaint}{Plug & Paint} example. It provides a set
|
||||
@ -499,6 +501,9 @@
|
||||
/*!
|
||||
\example tools/plugandpaintplugins/extrafilters
|
||||
\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
|
||||
\l{tools/plugandpaint}{Plug & Paint} example. It provides a set
|
||||
|
@ -28,10 +28,13 @@
|
||||
/*!
|
||||
\example gestures/imagegestures
|
||||
\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
|
||||
to perform actions.
|
||||
|
||||
\image imagegestures-example.jpg
|
||||
|
||||
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
|
||||
\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))
|
||||
libdirs += path;
|
||||
}
|
||||
library = fileFixify(library, FileFixifyFromOutdir);
|
||||
library = fileFixify(library, FileFixifyFromOutdir | FileFixifyAbsolute);
|
||||
QString key = keyFor(library);
|
||||
if (!project->values("QMAKE_PBX_LIBRARIES").contains(key)) {
|
||||
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
|
||||
# macro to add it.
|
||||
set(Qt5_POSITION_INDEPENDENT_CODE True)
|
||||
set_property(TARGET Qt5::Core PROPERTY INTERFACE_POSITION_INDEPENDENT_CODE \"ON\")
|
||||
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)
|
||||
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_RELWITHDEBINFO 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})
|
||||
endif()
|
||||
endforeach()
|
||||
|
@ -43,5 +43,8 @@ imagedirs += images
|
||||
|
||||
excludedirs += snippets
|
||||
|
||||
excludefiles += ../../../examples/widgets/tools/customcompleter/doc/src/customcompleter.qdoc \
|
||||
../../../examples/widgets/tools/codecs/doc/src/codecs.qdoc
|
||||
|
||||
navigation.landingpage = "Qt Core"
|
||||
navigation.cppclassespage = "Qt Core C++ Classes"
|
||||
|
@ -51,8 +51,9 @@ sem.release(2); // resources available == 3
|
||||
|
||||
//! [1]
|
||||
QSystemSemaphore sem("market", 5, QSystemSemaphore::Create);
|
||||
sem.acquire(5); // acquire all 5 resources
|
||||
sem.release(5); // release the 5 resources
|
||||
for (int i = 0; i < 5; ++i) // acquire all 5 resources
|
||||
sem.acquire();
|
||||
sem.release(5); // release the 5 resources
|
||||
//! [1]
|
||||
|
||||
|
||||
|
@ -63,7 +63,7 @@
|
||||
used to effectively embed the elements and semantics of statecharts in Qt
|
||||
applications. The framework integrates tightly with Qt's meta-object system;
|
||||
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.
|
||||
|
||||
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
|
||||
QState::exited() signal is emitted when the state is exited. In the
|
||||
following snippet, the button's showMaximized() slot will be called when
|
||||
state \c s3 is entered, and the button's showMinimized() slot will be called
|
||||
when \c s3 is exited:
|
||||
following snippet, the button's \l {QPushButton::}{showMaximized()} slot
|
||||
will be called when state \c s3 is entered, and the button's \l {QPushButton::}{showMinimized()}
|
||||
slot will be called when \c s3 is exited:
|
||||
|
||||
\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
|
||||
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
|
||||
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
|
||||
remember to add such a transition from every new state that is added in the
|
||||
future.
|
||||
@ -184,8 +184,8 @@
|
||||
\snippet statemachine/main2.cpp 1
|
||||
|
||||
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
|
||||
application's quit() slot.
|
||||
finished, so the machine's \l {QStateMachine::}{finished()} signal is connected to the
|
||||
application's \l {QCoreApplication::}{quit()} slot.
|
||||
|
||||
A child state can override an inherited transition. For example, the
|
||||
following code adds a transition that effectively causes the Quit button to
|
||||
@ -290,7 +290,7 @@
|
||||
\endomit
|
||||
|
||||
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:
|
||||
|
||||
\snippet statemachine/main3.cpp 1
|
||||
@ -302,7 +302,7 @@
|
||||
encapsulation mechanism when building complex (deeply nested) state
|
||||
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
|
||||
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).
|
||||
|
||||
For parallel state groups, the QState::finished() signal is emitted when \e
|
||||
@ -365,8 +365,8 @@
|
||||
|
||||
\snippet statemachine/main4.cpp 1
|
||||
|
||||
In the 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
|
||||
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 \c StringEvent and perform the
|
||||
string comparison.
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
after the animation has finished playing.
|
||||
|
||||
@ -503,14 +503,14 @@
|
||||
has been assigned the defined value.
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
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:
|
||||
\list
|
||||
@ -563,13 +563,13 @@
|
||||
|
||||
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
|
||||
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
|
||||
itself is).
|
||||
|
||||
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
|
||||
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.
|
||||
*/
|
||||
|
@ -1062,9 +1062,10 @@ Q_CORE_EXPORT int qrand();
|
||||
|
||||
#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. "\
|
||||
"Compile your code with -fPIC."
|
||||
"Compile your code with -fPIC (-fPIE is not enough)."
|
||||
#endif
|
||||
|
||||
namespace QtPrivate {
|
||||
|
@ -132,7 +132,7 @@ bool QLockFilePrivate::isApparentlyStale() const
|
||||
// processes due to sandboxing
|
||||
#ifndef Q_OS_WINRT
|
||||
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);
|
||||
if (!procHandle)
|
||||
return true;
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -74,6 +74,7 @@ public:
|
||||
jobject m_jobject;
|
||||
jclass m_jclass;
|
||||
bool m_own_jclass;
|
||||
QByteArray m_className;
|
||||
};
|
||||
|
||||
class Q_CORE_EXPORT QJNIObjectPrivate
|
||||
|
@ -676,16 +676,9 @@ QImage::Format QPngHandlerPrivate::readImageFormat()
|
||||
&& num_palette <= 256)
|
||||
{
|
||||
// 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;
|
||||
} else {
|
||||
// 32-bit
|
||||
if (bit_depth == 16)
|
||||
png_set_strip_16(png_ptr);
|
||||
|
||||
format = QImage::Format_ARGB32;
|
||||
// Only add filler if no alpha, or we can get 5 channel data.
|
||||
if (!(color_type & PNG_COLOR_MASK_ALPHA)
|
||||
|
@ -131,6 +131,10 @@ bool QPlatformOpenGLContext::parseOpenGLVersion(const QByteArray &versionString,
|
||||
if (versionParts.size() >= 2) {
|
||||
major = versionParts.at(0).toInt(&majorOk);
|
||||
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 {
|
||||
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
|
||||
/*!
|
||||
\since 5.2
|
||||
@ -1045,26 +1066,6 @@ void QNetworkAccessManager::connectToHost(const QString &hostName, quint16 port)
|
||||
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
|
||||
|
||||
|
@ -75,6 +75,7 @@ QNetworkConfigurationManagerPrivate::~QNetworkConfigurationManagerPrivate()
|
||||
QMutexLocker locker(&mutex);
|
||||
|
||||
qDeleteAll(sessionEngines);
|
||||
sessionEngines.clear();
|
||||
if (bearerThread)
|
||||
bearerThread->quit();
|
||||
}
|
||||
|
@ -637,7 +637,10 @@ long QSslSocketPrivate::sslLibraryBuildVersionNumber()
|
||||
|
||||
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 <QDir>
|
||||
#ifndef QT_NO_BEARERMANAGEMENT
|
||||
|
||||
extern "C" { // Otherwise it won't find CWKeychain* symbols at link time
|
||||
#import <CoreWLAN/CoreWLAN.h>
|
||||
@ -890,3 +891,5 @@ quint64 QCoreWlanEngine::getBytes(const QString &interfaceName, bool b)
|
||||
}
|
||||
|
||||
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
|
||||
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
|
||||
pageRect().
|
||||
|
@ -335,8 +335,8 @@ void QPrintPreviewWidgetPrivate::populateScene()
|
||||
pages.clear();
|
||||
|
||||
int numPages = pictures.count();
|
||||
QSize paperSize = printer->paperRect().size();
|
||||
QRect pageRect = printer->pageRect();
|
||||
QSize paperSize = printer->pageLayout().fullRectPixels(printer->resolution()).size();
|
||||
QRect pageRect = printer->pageLayout().paintRectPixels(printer->resolution());
|
||||
|
||||
for (int i = 0; i < numPages; i++) {
|
||||
PageItem* item = new PageItem(i+1, pictures.at(i), paperSize, pageRect);
|
||||
|
@ -40,5 +40,8 @@ excludedirs += ../../../examples/widgets/doc
|
||||
|
||||
imagedirs += images
|
||||
|
||||
# Add a thumbnail for examples that do not have images
|
||||
manifestmeta.thumbnail.names = "QtTestLib/Chapter *"
|
||||
|
||||
navigation.landingpage = "Qt Test"
|
||||
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
|
||||
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()
|
||||
*/
|
||||
|
@ -111,7 +111,7 @@ extern "C" int APIENTRY WinMain(HINSTANCE, HINSTANCE, LPSTR /*cmdParamarg*/, int
|
||||
argv[argc] = Q_NULLPTR;
|
||||
LocalFree(argvW);
|
||||
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;
|
||||
return exitCode;
|
||||
|
@ -40,3 +40,6 @@ imagedirs += images \
|
||||
|
||||
navigation.landingpage = "Qt XML"
|
||||
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…
Reference in New Issue
Block a user