summaryrefslogtreecommitdiffstats
path: root/examples/tools/doc
diff options
context:
space:
mode:
authorTopi Reinio <topi.reinio@digia.com>2014-10-15 13:50:27 +0200
committerTopi Reiniƶ <topi.reinio@digia.com>2014-10-17 14:57:13 +0200
commitcf8f369f8575dcb9ca4d5116f3afc7cff4a080af (patch)
treea685f393b50786a892fcd3ad638b4c01e9002894 /examples/tools/doc
parent45485d9eb47d3129b8a74c2e9d854c07673161cd (diff)
Move Qt Core examples under a common subdirectory
Qt Core examples were scattered into several subdirectories under qtbase/examples. This caused an issue with the example manifest file generated by QDoc; it expects to find all examples under a common directory in order to produde correct paths to the example .pro files. Qt Creator will not find the examples without a valid manifest file. This change moves the examples and edits the documentation files accordingly. Task-number: QTBUG-41963 Change-Id: I51d86782e0ba21c5c9bae5f15401ec774abe5cf8 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Diffstat (limited to 'examples/tools/doc')
-rw-r--r--examples/tools/doc/contiguouscache.qdoc83
-rw-r--r--examples/tools/doc/src/customtype.qdoc143
2 files changed, 0 insertions, 226 deletions
diff --git a/examples/tools/doc/contiguouscache.qdoc b/examples/tools/doc/contiguouscache.qdoc
deleted file mode 100644
index 2f7ea716e6..0000000000
--- a/examples/tools/doc/contiguouscache.qdoc
+++ /dev/null
@@ -1,83 +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$
-**
-****************************************************************************/
-
-/*!
- \example contiguouscache
- \title Contiguous Cache Example
-
- \brief The Contiguous Cache example shows how to use QContiguousCache to manage memory usage for
- very large models. In some environments memory is limited and, even when it
- isn't, users still dislike an application using excessive memory.
- Using QContiguousCache to manage a list, rather than loading
- the entire list into memory, allows the application to limit the amount
- of memory it uses, regardless of the size of the data set it accesses
-
- The simplest way to use QContiguousCache is to cache as items are requested. When
- a view requests an item at row N it is also likely to ask for items at rows near
- to N.
-
- \snippet contiguouscache/randomlistmodel.cpp 0
-
- After getting the row, the class determines if the row is in the bounds
- of the contiguous cache's current range. It would have been equally valid to
- simply have the following code instead.
-
- \code
- while (row > m_rows.lastIndex())
- m_rows.append(fetchWord(m_rows.lastIndex()+1);
- while (row < m_rows.firstIndex())
- m_rows.prepend(fetchWord(m_rows.firstIndex()-1);
- \endcode
-
- However a list will often jump rows if the scroll bar is used directly, resulting in
- the code above causing every row between the old and new rows to be fetched.
-
- Using QContiguousCache::lastIndex() and QContiguousCache::firstIndex() allows
- the example to determine what part of the list the cache is currently caching.
- These values don't represent the indexes into the cache's own memory, but rather
- a virtual infinite array that the cache represents.
-
- By using QContiguousCache::append() and QContiguousCache::prepend() the code ensures
- that items that may be still on the screen are not lost when the requested row
- has not moved far from the current cache range. QContiguousCache::insert() can
- potentially remove more than one item from the cache as QContiguousCache does not
- allow for gaps. If your cache needs to quickly jump back and forth between
- rows with significant gaps between them consider using QCache instead.
-
- And thats it. A perfectly reasonable cache, using minimal memory for a very large
- list. In this case the accessor for getting the words into the cache
- generates random information rather than fixed information. This allows you
- to see how the cache range is kept for a local number of rows when running the
- example.
-
- \snippet contiguouscache/randomlistmodel.cpp 1
-
- It is also worth considering pre-fetching items into the cache outside of the
- application's paint routine. This can be done either with a separate thread
- or using a QTimer to incrementally expand the range of the cache prior to
- rows being requested out of the current cache range.
-*/
diff --git a/examples/tools/doc/src/customtype.qdoc b/examples/tools/doc/src/customtype.qdoc
deleted file mode 100644
index e016933e04..0000000000
--- a/examples/tools/doc/src/customtype.qdoc
+++ /dev/null
@@ -1,143 +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$
-**
-****************************************************************************/
-
-/*!
- \example customtype
- \title Custom Type Example
-
- \brief The Custom Type example shows how to integrate a custom type into Qt's
- meta-object system.
-
- Contents:
-
- \tableofcontents
-
- \section1 Overview
-
- Qt provides a range of standard value types that are used to provide
- rich and meaningful APIs. These types are integrated with the meta-object
- system, enabling them to be stored in QVariant objects, written out in
- debugging information and sent between components in signal-slot
- communication.
-
- Custom types can also be integrated with the meta-object system as long as
- they are written to conform to some simple guidelines. In this example, we
- introduce a simple \c Message class, we describe how we make it work with
- QVariant, and we show how it can be extended to generate a printable
- representation of itself for use in debugging output.
-
- \section1 The Message Class Definition
-
- The \c Message class is a simple value class that contains two pieces
- of information (a QString and a QStringList), each of which can be read
- using trivial getter functions:
-
- \snippet customtype/message.h custom type definition
-
- The default constructor, copy constructor and destructor are
- all required, and must be public, if the type is to be integrated into the
- meta-object system. Other than this, we are free to implement whatever we
- need to make the type do what we want, so we also include a constructor
- that lets us set the type's data members.
-
- To enable the type to be used with QVariant, we declare it using the
- Q_DECLARE_METATYPE() macro:
-
- \snippet customtype/message.h custom type meta-type declaration
-
- We do not need to write any additional code to accompany this macro.
-
- To allow us to see a readable description of each \c Message object when it
- is sent to the debug output stream, we define a streaming operator:
-
- \snippet customtype/message.h custom type streaming operator
-
- This facility is useful if you need to insert tracing statements in your
- code for debugging purposes.
-
- \section1 The Message Class Implementation
-
- The implementation of the default constructor, copy constructor and destructor
- are straightforward for the \c Message class:
-
- \snippet customtype/message.cpp Message class implementation
-
- The streaming operator is implemented in the following way:
-
- \snippet customtype/message.cpp custom type streaming operator
-
- Here, we want to represent each value depending on how many lines are stored
- in the message body. We stream text to the QDebug object passed to the
- operator and return the QDebug object obtained from its maybeSpace() member
- function; this is described in more detail in the
- \l{Creating Custom Qt Types#Making the Type Printable}{Creating Custom Qt Types}
- document.
-
- We include the code for the getter functions for completeness:
-
- \snippet customtype/message.cpp getter functions
-
- With the type fully defined, implemented, and integrated with the
- meta-object system, we can now use it.
-
- \section1 Using the Message
-
- In the example's \c{main()} function, we show how a \c Message object can
- be printed to the console by sending it to the debug stream:
-
- \snippet customtype/main.cpp printing a custom type
-
- You can use the type with QVariant in exactly the same way as you would
- use standard Qt value types. Here's how to store a value using the
- QVariant::setValue() function:
-
- \snippet customtype/main.cpp storing a custom value
-
- Alternatively, the QVariant::fromValue() and qVariantSetValue() functions
- can be used if you are using a compiler without support for member template
- functions.
-
- The value can be retrieved using the QVariant::value() member template
- function:
-
- \snippet customtype/main.cpp retrieving a custom value
-
- Alternatively, the qVariantValue() template function can be used if
- you are using a compiler without support for member template functions.
-
- \section1 Further Reading
-
- The custom \c Message type can also be used with direct signal-slot
- connections.
-
- To register a custom type for use with queued signals and slots, such as
- those used in cross-thread communication, see the
- \l{Queued Custom Type Example}.
-
- More information on using custom types with Qt can be found in the
- \l{Creating Custom Qt Types} document.
-*/