Merge branch 'stable' into dev

Conflicts:
	src/concurrent/qtconcurrentmedian.h
	src/corelib/itemmodels/qabstractitemmodel.cpp

Change-Id: Iac46a90bbb2958cef7670031a4b59c3becd8538a
This commit is contained in:
Sergio Ahumada 2013-09-13 18:04:17 +02:00
commit f7837e28b5
46 changed files with 8953 additions and 8954 deletions

View File

@ -29,6 +29,8 @@ macro.endcomment = "\\c{*/}"
macro.uuml.HTML = "ü"
macro.mdash.HTML = "—"
macro.pi.HTML = "Π"
macro.beginqdoc.HTML = "/*!"
macro.endqdoc.HTML = "*/"
macro.beginfloatleft.HTML = "<div style=\"float: left; margin-right: 2em\">"
macro.beginfloatright.HTML = "<div style=\"float: right; margin-left: 2em\">"

View File

@ -47,6 +47,9 @@
"and any number of buttons, each with standard or custom texts." \
"<p>Click a button to close the message box. Pressing the Esc button " \
"will activate the detected escape button (if any).")
#define MESSAGE_DETAILS \
Dialog::tr("If a message box has detailed text, the user can reveal it " \
"by pressing the Show Details... button.")
class DialogOptionsWidget : public QGroupBox
@ -466,6 +469,7 @@ void Dialog::warningMessage()
{
QMessageBox msgBox(QMessageBox::Warning, tr("QMessageBox::warning()"),
MESSAGE, 0, this);
msgBox.setDetailedText(MESSAGE_DETAILS);
msgBox.addButton(tr("Save &Again"), QMessageBox::AcceptRole);
msgBox.addButton(tr("&Continue"), QMessageBox::RejectRole);
if (msgBox.exec() == QMessageBox::AcceptRole)

View File

@ -145,7 +145,7 @@
plugin. The Q_INTERFACES macro tells Qt which interfaces the class
implements. In our case we only implement the \c EchoInterface.
If a class implements more than one interface, they are given as
a comma separated list. The Q_PLUGIN_METADATA macro is included next
a space separated list. The Q_PLUGIN_METADATA macro is included next
to the Q_OBJECT macro. It contains the plugins IID and a filename
pointing to a json file containing the metadata for the plugin.
The json file is compiled into the plugin and does not need to be installed.

View File

@ -348,7 +348,8 @@ Option::init(int argc, char **argv)
continue;
QString candidate = currentDir.absoluteFilePath(*p + QLatin1Char('/') + argv0);
#ifdef Q_OS_WIN
candidate += ".exe";
if (!candidate.endsWith(QLatin1String(".exe")))
candidate += QLatin1String(".exe");
#endif
if (QFile::exists(candidate)) {
globals->qmake_abslocation = candidate;

View File

@ -427,7 +427,7 @@ ba2.constData(); // Returns "ca\0" with terminating \0.
QByteArray ba3("ca\0r\0t", 4);
ba3.size(); // Returns 4.
ba2.constData(); // Returns "ca\0r" with terminating \0.
ba3.constData(); // Returns "ca\0r" with terminating \0.
const char cart[] = {'c', 'a', '\0', 'r', '\0', 't'};
QByteArray ba4(QByteArray::fromRawData(cart, 6));

View File

@ -79,7 +79,9 @@
signal must match the signature of the receiving slot. (In fact a
slot may have a shorter signature than the signal it receives
because it can ignore extra arguments.) Since the signatures are
compatible, the compiler can help us detect type mismatches.
compatible, the compiler can help us detect type mismatches when
using the function pointer-based syntax. The string-based SIGNAL
and SLOT syntax will detect type mismatches at runtime.
Signals and slots are loosely coupled: A class which emits a
signal neither knows nor cares which slots receive the signal.
Qt's signals and slots mechanism ensures that if you connect a

View File

@ -284,8 +284,6 @@ bool QDirSortItemComparator::operator()(const QDirSortItem &n1, const QDirSortIt
? f1->filename_cache.localeAwareCompare(f2->filename_cache)
: f1->filename_cache.compare(f2->filename_cache);
}
if (r == 0) // Enforce an order - the order the items appear in the array
r = (&n1) - (&n2);
if (qt_cmp_si_sort_flags & QDir::Reversed)
return r > 0;
return r < 0;

View File

@ -1303,12 +1303,12 @@ void QAbstractItemModel::resetInternalData()
*/
/*!
\fn bool QAbstractItemModel::moveRow(const QModelIndex &sourceParent, int sourceColumn, const QModelIndex &destinationParent, int destinationChild)
\fn bool QAbstractItemModel::moveRow(const QModelIndex &sourceParent, int sourceRow, const QModelIndex &destinationParent, int destinationChild)
On models that support this, moves \a sourceColumn from \a sourceParent to \a destinationChild under
On models that support this, moves \a sourceRow from \a sourceParent to \a destinationChild under
\a destinationParent.
Returns \c{true} if the columns were successfully moved; otherwise returns
Returns \c{true} if the rows were successfully moved; otherwise returns
\c{false}.
\sa moveRows(), moveColumn()

View File

@ -160,11 +160,7 @@ static boolean qt_fill_input_buffer(j_decompress_ptr cinfo)
} else {
src->bytes_in_buffer = num_read;
}
#if defined(Q_OS_UNIXWARE)
return B_TRUE;
#else
return true;
#endif
return TRUE;
}
static void qt_skip_input_data(j_decompress_ptr cinfo, long num_bytes)
@ -363,7 +359,7 @@ static bool read_jpeg_image(QImage *outImage,
// If high quality not required, use fast decompression
if( quality < HIGH_QUALITY_THRESHOLD ) {
info->dct_method = JDCT_IFAST;
info->do_fancy_upsampling = false;
info->do_fancy_upsampling = FALSE;
}
(void) jpeg_calc_output_dimensions(info);
@ -496,11 +492,7 @@ static boolean qt_empty_output_buffer(j_compress_ptr cinfo)
dest->next_output_byte = dest->buffer;
dest->free_in_buffer = max_buf;
#if defined(Q_OS_UNIXWARE)
return B_TRUE;
#else
return true;
#endif
return TRUE;
}
static void qt_term_destination(j_compress_ptr cinfo)
@ -625,13 +617,8 @@ static bool write_jpeg_image(const QImage &image, QIODevice *device, volatile in
int quality = sourceQuality >= 0 ? qMin(int(sourceQuality),100) : 75;
#if defined(Q_OS_UNIXWARE)
jpeg_set_quality(&cinfo, quality, B_TRUE /* limit to baseline-JPEG values */);
jpeg_start_compress(&cinfo, B_TRUE);
#else
jpeg_set_quality(&cinfo, quality, true /* limit to baseline-JPEG values */);
jpeg_start_compress(&cinfo, true);
#endif
jpeg_set_quality(&cinfo, quality, TRUE /* limit to baseline-JPEG values */);
jpeg_start_compress(&cinfo, TRUE);
set_text(image, &cinfo, description);
@ -801,11 +788,7 @@ bool QJpegHandlerPrivate::readJpegHeader(QIODevice *device)
if (!setjmp(err.setjmp_buffer)) {
jpeg_save_markers(&info, JPEG_COM, 0xFFFF);
#if defined(Q_OS_UNIXWARE)
(void) jpeg_read_header(&info, B_TRUE);
#else
(void) jpeg_read_header(&info, true);
#endif
(void) jpeg_read_header(&info, TRUE);
int width = 0;
int height = 0;

View File

@ -502,10 +502,7 @@ WId QWindow::winId() const
if(!d->platformWindow)
const_cast<QWindow *>(this)->create();
WId id = d->platformWindow->winId();
// See the QPlatformWindow::winId() documentation
Q_ASSERT(id != WId(0));
return id;
return d->platformWindow->winId();
}
/*!

View File

@ -137,12 +137,6 @@ private:
friend class QDistanceFieldData;
};
inline QImage Q_GUI_EXPORT qt_renderDistanceFieldGlyph(const QRawFont &f, glyph_t g, bool d)
{ return QDistanceField(f, g, d).toImage(QImage::Format_Indexed8); }
inline QImage Q_GUI_EXPORT qt_renderDistanceFieldGlyph(QFontEngine *fe, glyph_t g, bool d)
{ return QDistanceField(fe, g, d).toImage(QImage::Format_Indexed8); }
QT_END_NAMESPACE
#endif // QDISTANCEFIELD_H

View File

@ -545,6 +545,14 @@ QFontEngine *QFontconfigDatabase::fontEngine(const QFontDef &f, QChar::Script sc
}
}
if (antialias) {
// If antialiasing is not fully disabled, fontconfig may still disable it on a font match basis.
FcBool fc_antialias;
if (FcPatternGetBool(match, FC_ANTIALIAS,0, &fc_antialias) != FcResultMatch)
fc_antialias = true;
antialias = fc_antialias;
}
if (f.hintingPreference == QFont::PreferDefaultHinting) {
const QPlatformServices *services = QGuiApplicationPrivate::platformIntegration()->services();
if (services && (services->desktopEnvironment() == "GNOME" || services->desktopEnvironment() == "UNITY")) {

View File

@ -70,6 +70,7 @@ QT_END_NAMESPACE
Qt::KeyboardModifiers currentWheelModifiers;
bool m_subscribesForGlobalFrameNotifications;
QCocoaGLContext *m_glContext;
bool m_drawRectHasBeenCalled;
bool m_shouldSetGLContextinDrawRect;
}

View File

@ -87,6 +87,7 @@ static QTouchDevice *touchDevice = 0;
m_sendKeyEvent = false;
m_subscribesForGlobalFrameNotifications = false;
m_glContext = 0;
m_drawRectHasBeenCalled = false;
m_shouldSetGLContextinDrawRect = false;
currentCustomDragTypes = 0;
m_sendUpAsRightButton = false;
@ -153,9 +154,9 @@ static QTouchDevice *touchDevice = 0;
- (void) setQCocoaGLContext:(QCocoaGLContext *)context
{
m_glContext = context;
[m_glContext->nsOpenGLContext() setView:self];
if (![m_glContext->nsOpenGLContext() view]) {
//was unable to set view
if (m_drawRectHasBeenCalled) {
[m_glContext->nsOpenGLContext() setView:self];
} else {
m_shouldSetGLContextinDrawRect = true;
}
@ -392,6 +393,8 @@ static QTouchDevice *touchDevice = 0;
m_shouldSetGLContextinDrawRect = false;
}
m_drawRectHasBeenCalled = true;
if (!m_backingStore)
return;

View File

@ -62,4 +62,12 @@ void *QQnxNativeInterface::nativeResourceForWindow(const QByteArray &resource, Q
return 0;
}
void *QQnxNativeInterface::nativeResourceForScreen(const QByteArray &resource, QScreen *screen)
{
if (resource == "QObject*" && screen)
return static_cast<QObject*>(static_cast<QQnxScreen*>(screen->handle()));
return 0;
}
QT_END_NAMESPACE

View File

@ -50,6 +50,7 @@ class QQnxNativeInterface : public QPlatformNativeInterface
{
public:
void *nativeResourceForWindow(const QByteArray &resource, QWindow *window);
void *nativeResourceForScreen(const QByteArray &resource, QScreen *screen);
};
QT_END_NAMESPACE

View File

@ -573,8 +573,10 @@ void QQnxScreen::addUnderlayWindow(screen_window_t window)
void QQnxScreen::removeOverlayOrUnderlayWindow(screen_window_t window)
{
const int numRemoved = m_overlays.removeAll(window) + m_underlays.removeAll(window);
if (numRemoved > 0)
if (numRemoved > 0) {
updateHierarchy();
Q_EMIT foreignWindowClosed(window);
}
}
void QQnxScreen::newWindowCreated(void *window)
@ -608,6 +610,7 @@ void QQnxScreen::newWindowCreated(void *window)
addUnderlayWindow(windowHandle);
else
addOverlayWindow(windowHandle);
Q_EMIT foreignWindowCreated(windowHandle);
}
}
}

View File

@ -98,6 +98,10 @@ public:
QPlatformCursor *cursor() const;
Q_SIGNALS:
void foreignWindowCreated(void *window);
void foreignWindowClosed(void *window);
public Q_SLOTS:
void setRotation(int rotation);
void newWindowCreated(void *window);

View File

@ -88,8 +88,10 @@ void QWindowsBackingStore::flush(QWindow *window, const QRegion &region,
QWindowsWindow *rw = QWindowsWindow::baseWindowOf(window);
#ifndef Q_OS_WINCE
const bool hasAlpha = rw->format().hasAlpha();
const Qt::WindowFlags flags = window->flags();
if ((flags & Qt::FramelessWindowHint) && QWindowsWindow::setWindowLayered(rw->handle(), flags, rw->format().hasAlpha(), rw->opacity())) {
if ((flags & Qt::FramelessWindowHint) && QWindowsWindow::setWindowLayered(rw->handle(), flags, hasAlpha, rw->opacity()) && hasAlpha) {
// Windows with alpha: Use blend function to update.
QRect r = window->frameGeometry();
QPoint frameOffset(window->frameMargins().left(), window->frameMargins().top());
QRect dirtyRect = br.translated(offset + frameOffset);

View File

@ -314,7 +314,8 @@ static void setWindowOpacity(HWND hwnd, Qt::WindowFlags flags, bool hasAlpha, qr
Q_UNUSED(level);
#else
if (QWindowsWindow::setWindowLayered(hwnd, flags, hasAlpha, level)) {
if (flags & Qt::FramelessWindowHint) {
if (hasAlpha && (flags & Qt::FramelessWindowHint)) {
// Windows with alpha: Use blend function to update.
BLENDFUNCTION blend = {AC_SRC_OVER, 0, (BYTE)(255.0 * level), AC_SRC_ALPHA};
QWindowsContext::user32dll.updateLayeredWindow(hwnd, NULL, NULL, NULL, NULL, NULL, 0, &blend, ULW_ALPHA);
} else {

View File

@ -8,16 +8,16 @@ version = $QT_VERSION
sourcedirs = ..
exampledirs = .. \
../examples \
../../../../examples \
config
../examples
imagedirs = ../../../doc/src/templates/images \
../images \
../../../../widgets/doc/images \
imagedirs = ../images \
../../../../widgets/doc/images
# ../../../doc/src/templates/images
tagfile = ../html/qdoc.tags
examples.fileextensions = "*.cpp *.h *.js *.xq *.svg *.xml *.ui *.qhp *.qhcp *.qml *.css *.qdoc *.qdocinc *.sample"
qhp.projects = QDoc
qhp.QDoc.file = qdoc.qhp

View File

@ -123,4 +123,4 @@ setValue() will emit valueChanged() if the new value is different
from the old one. The \l{QSpinBox::}{value} property has a second notifier
signal which includes the spin box's prefix and suffix.
*/
//! [overloaded notifier]
//! [overloaded notifier]

View File

@ -36,7 +36,7 @@
and their public interfaces. The types are grouped into a module, the
\l{UI Components} module.
The \l{componentset/uicomponents.qdoc}{uicomponents.qdoc} file generates
The \l{componentset/uicomponents.qdoc.sample}{uicomponents.qdoc} file generates
the overview page for the \l{UI Components} module page.
The generated documentation is available in the \l{UI Components} module.
@ -82,3 +82,17 @@
inside C++ classes to define the public API of the QML type.
*/
/*!
\qmlmodule UIComponents 1.0
\title UI Components
\brief Basic set of UI components
This is a listing of a list of UI components implemented by QML types. These
files are available for general import and they are based off the \l{Qt
Quick Code Samples}.
This module is part of the \l{componentset}{UIComponents} example.
*/

View File

@ -0,0 +1,67 @@
/*!
\page basicqt.html
\contentspage {Basic Qt} {Contents}
\nextpage Getting Started
\indexpage Index
\startpage Basic Qt
\title Basic Qt
The Qt toolkit is a C++ class library and a set of tools for
building multiplatform GUI programs using a "write once,
compile anywhere approach".
Table of contents:
\list
\li \l {Getting Started}
\li \l {Creating Dialogs}
\li \l {Creating Main Windows}
\endlist
*/
/*!
\page gettingstarted.html
\previouspage Basic Qt
\contentspage {Basic Qt} {Contents}
\nextpage Creating Dialogs
\indexpage Index
\startpage Basic Qt
\title Getting Started
This chapter shows how to combine basic C++ with the
functionality provided by Qt to create a few small graphical
interface (GUI) applications.
*/
/ *!
\page creatingdialogs.html
\previouspage Getting Started
\contentspage {Basic Qt} {Contents}
\indexpage Index
\startpage Basic Qt
\title Creating Dialogs
This chapter will teach you how to create dialog boxes using Qt.
*/
/*!
\page index.html
\indexpage Index
\startpage Basic Qt
\title Index
\list
\li \l {Basic Qt}
\li \l {Creating Dialogs}
\li \l {Getting Started}
\endlist
*/

View File

@ -51,7 +51,7 @@
documentation and an example of a QML type documentation.
For specific QDoc information, consult the
\l{Table of Contents}{QDoc Manual}.
\l{QDoc Manual}.
\section1 Chapters
\list 1
@ -62,7 +62,6 @@
\li \l{C++ Documentation Style}
\li \l{QML Documentation Style}
\endlist
\li \l{Configuration File Example}
\li \l{QML Documentation Example}
\endlist
@ -155,7 +154,7 @@
\section2 Qt Help Framework Configuration
QDoc will also export a \l{Qt Help Project} file, in a \c qhp file.
QDoc will also export a \e {Qt Help Project} file, in a \c qhp file.
The qhp file is then used by the \c qhelpgenerator to package the
documentation into a \c qch file. Qt Creator and Qt Assistant reads the qch
file to display the documentation.
@ -268,6 +267,7 @@
\nextpage Categories of Documentation
\section1 QDoc Comments
Documentation is contained within qdoc \e comments, delimited by
\beginqdoc and \endqdoc comments. Note that these are valid comments
in C++, QML, and JavaScript.
@ -402,7 +402,7 @@
\page qdoc-categories.html
\title Categories of Documentation
\previouspage Writing Documentation
\nextpage Configuration File Example
\nextpage QML Documentation Example
\brief Describes the different types such as How-To's, Tutorials, Overviews,
Examples, and Class Documentation.
@ -532,7 +532,7 @@
A QML type belongs to a \e module. The module
may include all the related types for a platform or contain a certain
version of \l{Qt Quick}. For example, the Qt Quick 2 \l{QML Elements} belong
version of \l{Qt Quick}. For example, the Qt Quick 2 QML types belong
to the Qt Quick 2 module while there is also a Qt Quick 1 module for the older
types introduced in Qt 4.
@ -624,87 +624,10 @@
\l{Input and Output Directories}{exampledirs} variable to find the Qt
Project (\c .pro) file to generate the example files. The generated HTML
will have the filename, \c {declarative-ui-components-tabwidget.html}. QDoc
will also list all of the example code. For reference, view QDoc's generated
page for the \l{UI Components: Tab Widget Example}{Tab Widget} example.
will also list all of the example code.
\note The example's project file must be the same as the
directory name.
*/
/*!
\example config
\title Configuration File Example
\previouspage Categories of Documentation
\brief configuration files for the QDoc Manual and QDoc Guide
The QDoc Manual uses these \c qdocconf files to generate the QDoc Guide and
the \l{Table of Contents}{QDoc Manual}.
\note The configuration files are similar to the Qt Reference Documentation
and the QDoc Manual do not use all of the variables. The variables are
included to demonstrate a full project scenario.
\section1 Macros and other Definitions
\list
\li \l{config/compat.qdocconf}
\li \l{config/macros.qdocconf}
\li \l{config/qt-cpp-ignore.qdocconf}
\li \l{config/qt-defines.qdocconf}
\endlist
QDoc allows macros to help with aliasing and for inputting special HTML
characters within the documentation. Macros are a form of workarounds if
QDoc is unable to resolve formatting issues such as when QDoc should
disregard QDoc comments in documentation paragraphs.
QDoc is also aware of the common C++ and Qt preprocessors and can decide
which documentation to generate according to the definitions in the
configuration files.
\section1 Project Information
\list
\li \l{config/qdoc-online.qdocconf}
\li \l{config/qdoc.qdocconf}
\li \l{config/qdoc-project.qdocconf}
\endlist
These configuration files dictate how QDoc will generate the project.
Depending which configuration file QDoc processes, the formatting and the
information about the project will be different. If QDoc processes
\c{qdoc-online.qdocconf}, QDoc will generate the HTML version of the manual
will have the style suitable for online viewing.
Additionally, the settings for creating the
\l{The Qt Help Framework}{Qt Help File} is in the configuration.
\note The project file uses variables used during Qt's
\l{Configuration Options for Qt}{configuration} step.
\section1 HTML Styles
\list
\li \l{config/qt-html-default-styles.qdocconf}
\li \l{config/qt-html-online-styles.qdocconf}
\li \l{config/qt-html-templates-online.qdocconf}
\li \l{config/qt-html-templates.qdocconf}
\endlist
These files indicate which styles QDoc should use for the HTML formats.
Typically, there are two templates, one for online viewing and one for
offline. Qt Creator is able to fit more content in a page with the offline
template. The templates store HTML information as strings and QDoc will copy
the template to each HTML page.
\section1 Project File
\list
\li \l{config/config.pro}
\endlist
Every example page (such as this one) needs a Qt project file. QDoc will
use the project file to determine which files are part of the example. QDoc
will then create a page listing all the files that are part of the example.
\note the directory name of the example and the name of the project file
must match. The example directory is found using the
\l{qdoc-input-output-dir}{exampledirs} variable.
*/

View File

@ -107,7 +107,7 @@ marked with the \l{c-command}{\\c} command in the case of boolean values.
\section1 Properties
The property documentation resides immediately above the read function's
implementation. The \l{topic-commands}{topic command} for properties is
implementation. The \l{writing-topic-commands}{topic command} for properties is
\l{property-command}{\\property}.
\snippet examples/cpp.qdoc.sample property
@ -138,7 +138,7 @@ The values range from 0.0 (no blur) to maximumRadius (maximum blur). By default,
\endquotation
\section1 Signals, Notifiers, and Slots
The \l{topic-commands}{topic command} for signals, notifiers, and slots
The \l{writing-topic-commands}{topic command} for signals, notifiers, and slots
is \l{fn-command}{\\fn}. Signal documentation state when they are triggered
or emitted.
@ -168,7 +168,7 @@ the notifier.
\section1 Enums, Namespaces, and other Types
Enums, namespaces, and macros have a \l{topic-command} for their documentation:
Enums, namespaces, and macros have a \l{writing-topic-commands}{topic command} for their documentation:
\list
\li \l{enum-command}{\\enum}
\li \l{typedef-command}{\\typedef}

View File

@ -0,0 +1,164 @@
/****************************************************************************
**
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:FDL$
** 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 Digia. For licensing terms and
** conditions see http://qt.digia.com/licensing. For further information
** use the contact form at http://qt.digia.com/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: http://www.gnu.org/copyleft/fdl.html.
** $QT_END_LICENSE$
**
****************************************************************************/
/*!
\page 21-0-qdoc-creating-dita-maps.html
\previouspage Miscellaneous
\contentspage QDoc Manual
\nextpage The QDoc Configuration File
\title Creating DITA Maps
You can create DITA map files using three new qdoc commands, the \l{ditamap-command}
{ditamap} command, the \l{topicref-command} {topicref} command, and the \l{mapref-command}
{mapref} command. How these DITA maps will be used automatically or manually by the
documentation build process is still under consideration. This section will be updated
as the decisions are made.
\section1 What is a DITA map?
A complete description of DITA can be found at the
\l{http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=dita}
{OASIS Darwin Information Typing Architecture} site.
An explanation of the DITA map is found at that site
\l{http://docs.oasis-open.org/dita/v1.2/os/spec/langref/map.html}{here}.
\target ditamap-command
\section1 \\ditamap
The \\ditamap command is for creating a DITA map using qdoc commands.
The \\ditamap command is a kind of \\page command that produces a
\e{.ditamap} instead of a \e{.html} or \e{.xml} file. The file that
is created actually contains XML text, but the \e{.ditamap} suffix is
used to identify the file as containing a DITA MAP.
The argument is the name of the file to be created. In the following
example, the file \e{creator.ditamap} is output:
\code
\ditamap creator.ditamap
\endcode
\target topicref-command
\section1 \\topicref \\endtopicref
The \\topicref \\endtopicref commands are for creating a topicref
in the ditamap. The \\endtopicref command is required because
\\topicref commands can be nested.
\\topicref has two arguments. The first argument becomes the value
of the \e navtitle attribute. Normally, you use the title of the
topic being referenced. This title is often what will appear in a
table of contents constructed from the ditamap.
The second argument is the name of the page being referenced. The
second argument is actually optional, for example if you are using
a topicref as a container for other topicrefs and maprefs. It is
also optional if you want qdoc to find the page name for you by
looking up the title in its internal data structure. It is recommended
that you provide the second parameter if you know the page name.
\code
\topicref {QML Module QtQuick 2} {qtquick-2.xml}
\mapref {Creator Manual} {creator-manual.ditamap} \endmapref
\topicref {QML Mouse Events} {qtquick2-mouseevents.xml} \endtopicref
\topicref {Property Binding} {qtquick2-propertybinding.xml} \endtopicref
\endtopicref
\endcode
\target mapref-command
\section1 \\mapref
The \\mapref command is for creating a mapref in the ditamap. A
mapref refers to another ditamap, which you want to include in
your ditamap. Like the \\topicref command, the \\mapref command
has two arguments, but for the \\mapref command, both arguments
are required. The arguments are essentially the same as described
for \\topicref, but for \\mapref, the second command must be the
name of another ditamap, i.e. it must have the \e{.ditamap}
suffix. You must provide the file name. qdoc can't look up the
file name for you.
\code
\mapref {Creator Manual} {creator-manual.ditamap} \endmapref
\endcode
\section1 An example ditamap page
The following example uses the three qdoc ditamap commands described above.
\code
\ditamap creator.ditamap
\title The DITA Map for Creator
\topicref {QML Module QtQuick 1}
\topicref {QML Mouse Events} \endtopicref
\topicref {Property Binding} \endtopicref
\endtopicref
\topicref {QML Module QtQuick 2} {qtquick-2.xml}
\mapref {Creator Manual} {creator-manual.ditamap} \endmapref
\topicref {QML Mouse Events} {qtquick2-mouseevents.xml} \endtopicref
\topicref {Property Binding} {qtquick2-propertybinding.xml} \endtopicref
\endtopicref
\topicref {QML Module QtQuick.Particles 2} {qtquick-particles-2.xml}
\topicref {Age} {qml-qtquick-particles2-age.xml} \endtopicref
\endtopicref
\endcode
\section1 The resulting ditamap file
This is the \e{.ditamap} file you get when you input the qdoc
ditamap page shown above. Note that you can write ditamap files
directly in XML just as easily as you can write them using the
qdoc commands. The choice is yours.
\code
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE map PUBLIC "-//OASIS//DTD DITA Map//EN" "map.dtd">
<map>
<topicmeta>
<shortdesc>The DITA Map for Creator</shortdesc>
</topicmeta>
<topicref navtitle="QML Module QtQuick 1" href="qtquick-1.xml">
<topicref navtitle="QML Mouse Events" href="qtquick2-mouseevents.xml"/>
<topicref navtitle="Property Binding" href="qtquick2-propertybinding.xml"/>
</topicref>
<topicref navtitle="QML Module QtQuick 2" href="qtquick-2.xml">
<mapref navtitle="Creator Manual" href="creator-manual.ditamap"/>
<topicref navtitle="QML Mouse Events" href="qtquick2-mouseevents.xml"/>
<topicref navtitle="Property Binding" href="qtquick2-propertybinding.xml"/>
</topicref>
<topicref navtitle="QML Module QtQuick.Particles 2" href="qtquick-particles-2.xml">
<topicref navtitle="Age" href="qml-qtquick-particles2-age.xml"/>
</topicref>
</map>
\endcode
*/

View File

@ -0,0 +1,159 @@
/****************************************************************************
**
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:FDL$
** 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 Digia. For licensing terms and
** conditions see http://qt.digia.com/licensing. For further information
** use the contact form at http://qt.digia.com/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: http://www.gnu.org/copyleft/fdl.html.
** $QT_END_LICENSE$
**
****************************************************************************/
/*!
\page 27-qdoc-commands-alphabetical.html
\previouspage Introduction to QDoc
\contentspage QDoc Manual
\nextpage Topic Commands
\title Command Index
This is a complete, alphabetized list of the QDoc commands.
\list
\li \l {04-qdoc-commands-textmarkup.html#a-command} {\\a}
\li \l {11-qdoc-commands-specialcontent.html#abstract-command} {\\abstract}
\li \l {12-0-qdoc-commands-miscellaneous.html#annotatedlist-command} {\\annotatedlist}
\li \l {04-qdoc-commands-textmarkup.html#b-command} {\\b} \span {class="newStuff"} {(new 5/3/2012)}
\li \l {04-qdoc-commands-textmarkup.html#b-command} {\\bold} \span {class="newStuff"} {(deprecated, use \\b)}
\li \l {11-qdoc-commands-specialcontent.html#brief-command} {\\brief}
\li \l {04-qdoc-commands-textmarkup.html#c-command} {\\c}
\li \l {09-qdoc-commands-includingimages.html#caption-command} {\\caption}
\li \l {05-qdoc-commands-documentstructure.html#chapter-command} {\\chapter}
\li \l {13-qdoc-commands-topics.html#class-command} {\\class}
\li \l {06-qdoc-commands-includecodeinline.html#code-command} {\\code}
\li \l {07-0-qdoc-commands-includingexternalcode.html#codeline-command} {\\codeline},
\li \l {16-qdoc-commands-status.html#compat-command} {\\compat}
\li \l {15-qdoc-commands-navigation.html#contentspage-command} {\\contentspage}
\li \l {16-qdoc-commands-status.html#default-command} {\\default}
\li \l {21-0-qdoc-creating-dita-maps.html#ditamap-command} {\\ditamap} \span {class="newStuff"} {(new 05/03/12)}
\li \l {04-qdoc-commands-textmarkup.html#div-command} {\\div}
\li \l {07-0-qdoc-commands-includingexternalcode.html#dots-command} {\\dots}
\li \l {04-qdoc-commands-textmarkup.html#e-command} {\\e} \span {class="newStuff"} {(new 5/3/2012)}
\li \l {12-0-qdoc-commands-miscellaneous.html#else-command} {\\else}
\li \l {12-0-qdoc-commands-miscellaneous.html#endif-command} {\\endif}
\li \l {13-qdoc-commands-topics.html#enum-command} {\\enum}
\li \l {13-qdoc-commands-topics.html#example-command} {\\example}
\li \l {13-qdoc-commands-topics.html#externalpage-command} {\\externalpage}
\li \l {13-qdoc-commands-topics.html#fn-command} {\\fn}
\li \l {11-qdoc-commands-specialcontent.html#footnote-command} {\\footnote}
\li \l {12-0-qdoc-commands-miscellaneous.html#generatelist-command} {\\generatelist}
\li \l {13-qdoc-commands-topics.html#group-command} {\\group}
\li \l {10-qdoc-commands-tablesandlists.html#header-command} {\\header}
\li \l {13-qdoc-commands-topics.html#headerfile-command} {\\headerfile}
\li \l {04-qdoc-commands-textmarkup.html#e-command} {\\i} \span {class="newStuff"} {(deprecated, use \\e)}
\li \l {12-0-qdoc-commands-miscellaneous.html#if-command} {\\if}
\li \l {09-qdoc-commands-includingimages.html#image-command} {\\image}
\li \l {12-0-qdoc-commands-miscellaneous.html#include-command} {\\include}
\li \l {15-qdoc-commands-navigation.html#indexpage-command} {\\indexpage}
\li \l {19-qdoc-commands-grouping.html#ingroup-command} {\\ingroup}
\li \l {18-qdoc-commands-relating.html#inherits-command}{\\inherits}
\li \l {09-qdoc-commands-includingimages.html#inlineimage-command} {\\inlineimage}
\li \l {19-qdoc-commands-grouping.html#inmodule-command} {\\inmodule}
\li \l {13-qdoc-commands-topics.html#inqmlmodule-command} {\\inqmlmodule}
\li \l {13-qdoc-commands-topics.html#instantiates-command} {\\instantiates} \span {class="newStuff"} {(new 27/7/2012)}
\li \l {16-qdoc-commands-status.html#internal-command} {\\internal}
\li \l {08-qdoc-commands-creatinglinks.html#keyword-command} {\\keyword}
\li \l {08-qdoc-commands-creatinglinks.html#l-command} {\\l}
\li \l {11-qdoc-commands-specialcontent.html#legalese-command} {\\legalese}
\li \l {10-qdoc-commands-tablesandlists.html#li-command} {\\li} \span {class="newStuff"} {(new 5/3/2012)}
\li \l {10-qdoc-commands-tablesandlists.html#list-command} {\\list}
\li \l {13-qdoc-commands-topics.html#macro-command} {\\macro}
\li \l {19-qdoc-commands-grouping.html#mainclass-command} {\\mainclass}
\li \l {21-0-qdoc-creating-dita-maps.html#mapref-command} {\\mapref} \span {class="newStuff"} {(new 05/03/12)}
\li \l {12-0-qdoc-commands-miscellaneous.html#meta-command} {\\meta}
\li \l {13-qdoc-commands-topics.html#module-command} {\\module}
\li \l {13-qdoc-commands-topics.html#namespace-command} {\\namespace}
\li \l {15-qdoc-commands-navigation.html#nextpage-command} {\\nextpage}
\li \l {06-qdoc-commands-includecodeinline.html#newcode-command} {\\newcode}
\li \l {17-qdoc-commands-thread.html#nonreentrant-command} {\\nonreentrant}
\li \l {11-qdoc-commands-specialcontent.html#note-command} {\\note}
\li \l {10-qdoc-commands-tablesandlists.html#li-command} {\\o} \span {class="newStuff"} {(deprecated, use \\li)}
\li \l {16-qdoc-commands-status.html#obsolete-command} {\\obsolete}
\li \l {06-qdoc-commands-includecodeinline.html#oldcode-command} {\\oldcode}
\li \l {12-0-qdoc-commands-miscellaneous.html#omit-command} {\\omit}
\li \l {10-qdoc-commands-tablesandlists.html#omitvalue-command} {\\omitvalue}
\li \l {18-qdoc-commands-relating.html#overload-command} {\\overload}
\li \l {13-qdoc-commands-topics.html#page-command} {\\page}
\li \l {05-qdoc-commands-documentstructure.html#part-command} {\\part}
\li \l {16-qdoc-commands-status.html#preliminary-command} {\\preliminary}
\li \l {15-qdoc-commands-navigation.html#previouspage-command} {\\previouspage}
\li \l {07-0-qdoc-commands-includingexternalcode.html#printline-command} {\\printline}
\li \l {07-0-qdoc-commands-includingexternalcode.html#printto-command} {\\printto}
\li \l {07-0-qdoc-commands-includingexternalcode.html#printuntil-command} {\\printuntil}
\li \l {13-qdoc-commands-topics.html#property-command} {\\property}
\li \l {13-qdoc-commands-topics.html#qmlattachedproperty-command} {\\qmlattachedproperty}
\li \l {13-qdoc-commands-topics.html#qmlattachedsignal-command} {\\qmlattachedsignal}
\li \l {13-qdoc-commands-topics.html#qmlbasictype-command} {\\qmlbasictype}
\li \l {13-qdoc-commands-topics.html#qmlclass-command} {\\qmlclass} \span {class="newStuff"} {(deprecated, use \\qmltype)}
\li \l {13-qdoc-commands-topics.html#qmltype-command} {\\qmltype} \span {class="newStuff"} {(new 27/7/2012)}
\li \l {13-qdoc-commands-topics.html#qmlmethod-command} {\\qmlmethod}
\li \l {13-qdoc-commands-topics.html#qmlproperty-command} {\\qmlproperty}
\li \l {13-qdoc-commands-topics.html#qmlsignal-command} {\\qmlsignal}
\li \l {13-qdoc-commands-topics.html#qmlmodule-command} {\\qmlmodule}
\li \l {11-qdoc-commands-specialcontent.html#quotation-command} {\\quotation}
\li \l {07-0-qdoc-commands-includingexternalcode.html#quotefile-command} {\\quotefile}
\li \l {07-0-qdoc-commands-includingexternalcode.html#quotefromfile-command} {\\quotefromfile}
\li \l {12-0-qdoc-commands-miscellaneous.html#raw-command} {\\raw} \span {class="newStuff"} {(avoid)}
\li \l {17-qdoc-commands-thread.html#reentrant-command} {\\reentrant}
\li \l {18-qdoc-commands-relating.html#reimp-command} {\\reimp}
\li \l {18-qdoc-commands-relating.html#relates-command} {\\relates}
\li \l {10-qdoc-commands-tablesandlists.html#row-command} {\\row}
\li \l {08-qdoc-commands-creatinglinks.html#sa-command} {\\sa}
\li \l {05-qdoc-commands-documentstructure.html#sectionOne-command} {\\section1}
\li \l {05-qdoc-commands-documentstructure.html#sectionTwo-command} {\\section2}
\li \l {05-qdoc-commands-documentstructure.html#sectionThree-command} {\\section3}
\li \l {05-qdoc-commands-documentstructure.html#sectionFour-command} {\\section4}
\li \l {13-qdoc-commands-topics.html#service-command} {\\service}
\li \l {16-qdoc-commands-status.html#since-command} {\\since}
\li \l {07-0-qdoc-commands-includingexternalcode.html#skipline-command} {\\skipline}
\li \l {07-0-qdoc-commands-includingexternalcode.html#skipto-command} {\\skipto}
\li \l {07-0-qdoc-commands-includingexternalcode.html#skipuntil-command} {\\skipuntil}
\li \l {07-0-qdoc-commands-includingexternalcode.html#snippet-command} {\\snippet},
\li \l {04-qdoc-commands-textmarkup.html#span-command} {\\span}
\li \l {15-qdoc-commands-navigation.html#startpage-command} {\\startpage}
\li \l {04-qdoc-commands-textmarkup.html#sub-command} {\\sub}
\li \l {20-qdoc-commands-namingthings.html#subtitle-command} {\\subtitle}
\li \l {04-qdoc-commands-textmarkup.html#sup-command} {\\sup}
\li \l {10-qdoc-commands-tablesandlists.html#table-command} {\\table}
\li \l {11-qdoc-commands-specialcontent.html#tableofcontents-command} {\\tableofcontents}
\li \l {08-qdoc-commands-creatinglinks.html#target-command} {\\target}
\li \l {17-qdoc-commands-thread.html#threadsafe-command} {\\threadsafe}
\li \l {20-qdoc-commands-namingthings.html#title-command} {\\title}
\li \l {21-0-qdoc-creating-dita-maps.html#topicref-command} {\\topicref} \span {class="newStuff"} {(new 05/03/12)}
\li \l {04-qdoc-commands-textmarkup.html#tt-command} {\\tt}
\li \l {13-qdoc-commands-topics.html#typedef-command} {\\typedef}
\li \l {04-qdoc-commands-textmarkup.html#uicontrol-command} {\\uicontrol} {(new 25/3/2012)}
\li \l {04-qdoc-commands-textmarkup.html#underline-command} {\\underline}
\li \l {13-qdoc-commands-topics.html#variable-command} {\\variable}
\li \l {10-qdoc-commands-tablesandlists.html#value-command} {\\value}
\li \l {11-qdoc-commands-specialcontent.html#warning-command} {\\warning}
\endlist
*/

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,181 @@
/****************************************************************************
**
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:FDL$
** 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 Digia. For licensing terms and
** conditions see http://qt.digia.com/licensing. For further information
** use the contact form at http://qt.digia.com/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: http://www.gnu.org/copyleft/fdl.html.
** $QT_END_LICENSE$
**
****************************************************************************/
/*!
\page 01-qdoc-manual.html
\contentspage QDoc Manual
\previouspage QDoc Manual
\nextpage Command Index
\title Introduction to QDoc
QDoc is a tool used by Qt Developers to generate documentation for
software projects. It works by extracting \e {QDoc comments} from
project source files and then formatting these comments as HTML
pages or DITA XML documents. QDoc finds QDoc comments in \c
{.cpp} files and in \c {.qdoc} files. QDoc does not look for QDoc
comments in \c {.h} files. A QDoc comment always begins with an
exclamation mark (\b{!})). For example:
\code
/ *!
\class QObject
\brief The QObject class is the base class of all Qt objects.
\ingroup objectmodel
\reentrant
QObject is the heart of the Qt \l{Object Model}. The
central feature in this model is a very powerful mechanism
for seamless object communication called \l{signals and
slots}. You can connect a signal to a slot with connect()
and destroy the connection with disconnect(). To avoid
never ending notification loops you can temporarily block
signals with blockSignals(). The protected functions
connectNotify() and disconnectNotify() make it possible to
track connections.
QObjects organize themselves in \l {Object Trees &
Ownership} {object trees}. When you create a QObject with
another object as parent, the object will automatically
add itself to the parent's \c children() list. The parent
takes ownership of the object. It will automatically
delete its children in its destructor. You can look for an
object by name and optionally type using findChild() or
findChildren().
Every object has an objectName() and its class name can be
found via the corresponding metaObject() (see
QMetaObject::className()). You can determine whether the
object's class inherits another class in the QObject
inheritance hierarchy by using the \c inherits() function.
....
* /
\endcode
From the QDoc comment above, QDoc generates the HTML page
\l {http://qt-project.org/doc/qt-5.0/qtcore/qobject.html#details}
{QObject Class Reference}.
This manual explains how to use the QDoc commands in QDoc comments
to embed good documentation in your source files. It also explains
how to make a \l {The QDoc Configuration File} {QDoc configuration
file}, which you will pass to QDoc on the command line.
\section1 Running QDoc
The current name of the QDoc program is \c {qdoc}. To run qdoc
from the command line, give it the name of a configuration file:
\quotation
\c {$ ../../bin/qdoc ./config.qdocconf}
\endquotation
QDoc recognizes the \c {.qdocconf} suffix as a \l{The QDoc
Configuration File} {QDoc configuration file}. The configuration
file is where you tell QDoc where to find the project source
files, header files, and \c {.qdoc} files. It is also where you
tell QDoc what kind of output to generate (HTML, DITA XML,...),
and where to put the generated documentation. The configuration
file also contains other information for QDoc.
See \l{The QDoc Configuration File} for instructions on how to
set up a QDoc configuration file.
\section1 How QDoc works
QDoc begins by reading the configuration file you specified on the
command line. It stores all the variables from the configuration
file for later use. One of the first variables it uses is \c
{outputformats}. This variable tells QDoc which output generators
it will run. The default value is \e {HTML}, so if you don't set
\c {outputformats} in your configuration file, QDoc will generate
HTML output. That's usually what you will want anyway, but you can
also specify \e {DITAXML} to get DITA XML output instead.
Next, QDoc uses the values of the
\l {22-qdoc-configuration-generalvariables.html#headerdirs-variable}
{headerdirs} variable and/or the \l
{22-qdoc-configuration-generalvariables.html#headers-variable}
{headers} variable to find and parse all the header files for your
project. QDoc does \e not scan header files for QDoc comments. It
parses the header files to build a master tree of all the items
that should be documented, in other words, the items that QDoc should find
QDoc comments for.
After parsing all the header files and building the master tree of
items to be documented, QDoc uses the value of the \l
{22-qdoc-configuration-generalvariables.html#sourcedirs-variable}
{sourcedirs} variable and/or the value of the \l
{22-qdoc-configuration-generalvariables.html#sources-variable}
{sources} variable to find and parse all the \c {.cpp} and \c
{.qdoc} files for your project. These are the files QDoc scans for
\e {QDoc comments}. Remember that a QDoc comment begins with
an exclamation mark: \b {/*!} .
For each QDoc comment it finds, it searches the master tree for
the item where the documentation belongs. Then it interprets the
qdoc commands in the comment and stores the interpreted commands
and the comment text in the tree node for the item.
Finally, QDoc traverses the master tree. For each node, if the
node has stored documentation, QDoc calls the output generator
specified by the \c {outputformats} variable to format and write
the documentation in the directory specified in the configuration
file in the \l
{22-qdoc-configuration-generalvariables.html#outputdir-variable}
{outputdir} variable.
\section1 Command Types
QDoc interprets three types of commands:
\list
\li \l {Topic Commands}
\li \l {Context Commands}
\li \l {Markup Commands}
\endlist
Topic commands identify the element you are documenting, for example
a C++ class, function, type, or an extra page of text
that doesn't map to an underlying C++ element.
Context commands tell QDoc how the element being documented
relates to other documented elements, for example, next and previous page
links, inclusion in page groups, or library modules. Context
commands can also provide information about the documented element
that QDoc can't get from the source files, for example, whether the
element is thread-safe, whether it is an overloaded or reimplemented function,
or whether it has been deprecated.
Markup commands tell QDoc how text and image elements in the
document should be rendered, or about the document's outline
structure.
*/

File diff suppressed because it is too large Load Diff

View File

@ -1,78 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:FDL$
** 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 Digia. For licensing terms and
** conditions see http://qt.digia.com/licensing. For further information
** use the contact form at http://qt.digia.com/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: http://www.gnu.org/copyleft/fdl.html.
** $QT_END_LICENSE$
**
****************************************************************************/
/*!
\page qdoc-manual-qdocconf-minimal
\title Minimal qdocconf file
\brief Describes a qdocconf file with a minimal number of statements
The full contents of the minimal qdocconf file:
\code
#include(compat.qdocconf)
headerdirs = .
sourcedirs = .
exampledirs = .
imagedirs = ./images
\endcode
\title Statements with Comments
\code
#include(compat.qdocconf)
\endcode
In order to avoid compatibility issues between different versions of QDoc,
it is advised to include compat.qdocconf.
\code
headerdirs = .
\endcode
The header files associated with the .cpp source files can be found in the
current directory.
\code
#sourcedirs = .
\endcode
The .cpp or .qdoc files can be found in the current directory.
\code
exampledirs = .
\endcode
The source code of the example files can be found in the current directory.
\code
imagedirs = ./images
\endcode
The images used in the documentation can be found in subdirectory \e images.
\note Please take care with this minimal qdocconf file. Using it in the wrong directory could cause qdoc to include a large number of files.
*/

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -26,7 +26,8 @@
****************************************************************************/
/*!
\page qdoc-minimum-qdocconf.html
\title A minimal qdocconf file with Comments
\target minimal-qdocconf
\title A minimal qdocconf file
\brief Describes a minimal .qdocconf file

View File

@ -289,7 +289,7 @@ When executed, QDoc will ignore the directories listed.
exampledirs += ../../../examples/gui \
snippets
\endcode
\sa examples
\sa {examples-variable}{examples}
\sa examplesinstallpath
Add the two directories specified to the list of directories containing the source

View File

@ -143,6 +143,11 @@ public:
#endif
}
void selectAll()
{
textEdit->selectAll();
}
private slots:
void textCopyAvailable(bool available)
{
@ -1405,6 +1410,10 @@ void QMessageBox::keyPressEvent(QKeyEvent *e)
e->setAccepted(true);
return;
}
} else if (e == QKeySequence::SelectAll && d->detailsText && d->detailsText->isVisible()) {
d->detailsText->selectAll();
e->setAccepted(true);
return;
}
#endif // !QT_NO_TEXTEDIT
@ -1437,7 +1446,7 @@ void QMessageBox::keyPressEvent(QKeyEvent *e)
#endif // !QT_NO_CLIPBOARD && !QT_NO_SHORTCUT
#ifndef QT_NO_SHORTCUT
if (!(e->modifiers() & Qt::AltModifier)) {
if (!(e->modifiers() & (Qt::AltModifier | Qt::ControlModifier | Qt::MetaModifier))) {
int key = e->key() & ~Qt::MODIFIER_MASK;
if (key) {
const QList<QAbstractButton *> buttons = d->buttonBox->buttons();

View File

@ -2033,14 +2033,14 @@
\li Used to remove rows and the items of data they contain from all types of model.
Implementations must call
\l{QAbstractItemModel::beginRemoveRows()}{beginRemoveRows()}
\e before inserting new columns into any underlying data structures, and call
\e before rows are removed from any underlying data structures, and call
\l{QAbstractItemModel::endRemoveRows()}{endRemoveRows()}
\e{immediately afterwards}.
\row \li \l{QAbstractItemModel::insertColumns()}{insertColumns()}
\li Used to add new columns and items of data to table models and hierarchical models.
Implementations must call
\l{QAbstractItemModel::beginInsertColumns()}{beginInsertColumns()} \e before
rows are removed from any underlying data structures, and call
inserting new columns into any underlying data structures, and call
\l{QAbstractItemModel::endInsertColumns()}{endInsertColumns()}
\e{immediately afterwards}.
\row \li \l{QAbstractItemModel::removeColumns()}{removeColumns()}

View File

@ -153,7 +153,10 @@ void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyO
}
setWindowModified_helper();
setWinId(win->winId());
WId id = win->winId();
// See the QPlatformWindow::winId() documentation
Q_ASSERT(id != WId(0));
setWinId(id);
// Check children and create windows for them if necessary
q_createNativeChildrenAndSetParent(q);

View File

@ -1526,7 +1526,10 @@ void QCommonStyle::drawControl(ControlElement element, const QStyleOption *opt,
QRect aligned = alignedRect(header->direction, QFlag(header->iconAlignment), pixmap.size() / pixmap.devicePixelRatio(), rect);
QRect inter = aligned.intersected(rect);
p->drawPixmap(inter.x(), inter.y(), pixmap, inter.x() - aligned.x(), inter.y() - aligned.y(), inter.width(), inter.height());
p->drawPixmap(inter.x(), inter.y(), pixmap,
inter.x() - aligned.x(), inter.y() - aligned.y(),
aligned.width() * pixmap.devicePixelRatio(),
pixmap.height() * pixmap.devicePixelRatio());
if (header->direction == Qt::LeftToRight)
rect.setLeft(rect.left() + pixw + 2);

View File

@ -582,6 +582,12 @@ int QWindowsStyle::styleHint(StyleHint hint, const QStyleOption *opt, const QWid
ret = 1;
}
}
#ifndef QT_NO_ACCESSIBILITY
if (!ret && opt && opt->type == QStyleOption::SO_MenuItem
&& QStyleHelper::isInstanceOf(opt->styleObject, QAccessible::MenuItem)
&& opt->styleObject->property("_q_showUnderlined").toBool())
ret = 1;
#endif // QT_NO_ACCESSIBILITY
break;
}
#endif

View File

@ -4209,7 +4209,7 @@ void Configure::readLicense()
}
#ifdef COMMERCIAL_VERSION
else {
Tools::checkLicense(dictionary, licenseInfo, firstLicensePath());
Tools::checkLicense(dictionary, licenseInfo, firstLicensePath(), sourcePath);
if (dictionary["DONE"] != "error") {
// give the user some feedback, and prompt for license acceptance
cout << endl << "This is the " << dictionary["PLATFORM NAME"] << " " << dictionary["EDITION"] << " Edition."<< endl << endl;

View File

@ -56,16 +56,16 @@ std::ostream &operator<<(std::ostream &s, const QString &val); // defined in con
using namespace std;
void Tools::checkLicense(QMap<QString,QString> &dictionary, QMap<QString,QString> &licenseInfo,
const QString &path)
const QString &path, const QString &sourcePath)
{
QString tpLicense = dictionary["QT_SOURCE_TREE"] + "/LICENSE.PREVIEW.OPENSOURCE";
QString tpLicense = sourcePath + "/LICENSE.PREVIEW.OPENSOURCE";
if (QFile::exists(tpLicense)) {
dictionary["EDITION"] = "Preview";
dictionary["LICENSE FILE"] = tpLicense;
dictionary["QT_EDITION"] = "QT_EDITION_OPENSOURCE";
return; // No license key checking in Tech Preview
}
tpLicense = dictionary["QT_SOURCE_TREE"] + "/LICENSE.PREVIEW.COMMERCIAL";
tpLicense = sourcePath + "/LICENSE.PREVIEW.COMMERCIAL";
if (QFile::exists(tpLicense)) {
dictionary["EDITION"] = "Preview";
dictionary["LICENSE FILE"] = tpLicense;
@ -204,7 +204,7 @@ void Tools::checkLicense(QMap<QString,QString> &dictionary, QMap<QString,QString
if (dictionary["EDITION"] == "Evaluation")
dictionary["LICENSE_EXTENSION"] = "-EVALUATION";
if (QFile::exists(dictionary["QT_SOURCE_TREE"] + "/.LICENSE")) {
if (QFile::exists(sourcePath + "/.LICENSE")) {
// Generic, no-suffix license
dictionary["LICENSE_EXTENSION"].clear();
} else if (dictionary["LICENSE_EXTENSION"].isEmpty()) {
@ -220,8 +220,8 @@ void Tools::checkLicense(QMap<QString,QString> &dictionary, QMap<QString,QString
}
// copy one of .LICENSE-*(-US) to LICENSE
QString toLicenseFile = dictionary["QT_SOURCE_TREE"] + "/LICENSE";
QString fromLicenseFile = dictionary["QT_SOURCE_TREE"] + "/.LICENSE" + dictionary["LICENSE_EXTENSION"];
QString toLicenseFile = sourcePath + "/LICENSE";
QString fromLicenseFile = sourcePath + "/.LICENSE" + dictionary["LICENSE_EXTENSION"];
if (licenseFeatures == 'B' || licenseFeatures == 'G'
|| licenseFeatures == 'L' || licenseFeatures == 'Y')
fromLicenseFile += "-US";

View File

@ -51,7 +51,7 @@ class Tools
{
public:
static void checkLicense(QMap<QString,QString> &dictionary, QMap<QString,QString> &licenseInfo,
const QString &path);
const QString &path, const QString &sourcePath);
};
#endif // _TOOLS_H_