From baf5ad5fa7a9629a56229e18821bc35aaae565df Mon Sep 17 00:00:00 2001
From: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
Date: Thu, 4 Oct 2012 16:24:58 +0200
Subject: [PATCH] Skeleton for data structures and storage page

Added a section for container classes and some information on
what the content should be in the other sections of this
document.

Change-Id: I94e2c633daadc9d13e4e55493ea58e6cce26eb82
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
---
 doc/src/datastorage.qdoc | 106 +++++++++++++++++++++++++++++++++++----
 1 file changed, 96 insertions(+), 10 deletions(-)

diff --git a/doc/src/datastorage.qdoc b/doc/src/datastorage.qdoc
index 51eb1b7a..7d5ea300 100644
--- a/doc/src/datastorage.qdoc
+++ b/doc/src/datastorage.qdoc
@@ -30,17 +30,103 @@
 \title Data Structure and Storage
 \brief Qt's data and storage features
 
-A page describing the data storage options in Qt 5. This page includes links to the overviews from various repositories and modules.
+### A brief introduction to the concept of storing data leading into the overview
+of different ways this can be achieved in Qt.
+
+\section1 Container Classes
+
+Qt provides a set of general purpose, template-based container classes that can be used to
+store data in memory. For most purposes, QList will be the best choice, but Qt also provides
+other data structures which might be more appropriate for a given use case due to performance
+characteristics or API. See the full list of \l {container classes} for more details.
+
+\section1 Saving and Loading Data
+
+### Talk about using the disk to store data and point to documentation for QIODevice, QFile,
+QTextStream, QDataStream, as well addressing the fact that disk access API is not available
+by default in QML, but that you can easily create a C++ extension which suits your needs.
+
+In addition, make sure the following pages are reachable via links from this section:
+
+\list
+\li \l {Input/Output and Networking} (list of I/O related classes)
+\li \l {Serializing Qt Data Types}
+\endlist
+
+\section1 SQL support in Qt
+
+### Talk about databases and SQL support in Qt, with backend drivers such as MySQL for
+full database support or SQLite for local storage. Mention that this integrates with Model/View
+classes, QWidgets and can also be used in QML.
+
+Make sure the following pages are linked from this section, either indirectly or directly:
+
+\list
+\li \l {SQL in Qt}
+\li \l {Qt SQL}
+\li \l {Qt SQL Module - C++ Classes}
+\li \l {Connecting to Databases}
+\li \l {SQL Database Drivers}
+\li \l {Creating Data-Aware Forms}
+\li \l {Using the SQL Model Classes}
+\li \l {Presenting Data in a Table View}
+\li \l {SQL Programming}
+\li \l {Executing SQL Statements}
+\li \l {Data Types for Qt-supported Database Systems}
+\li \l {QML Module QtQuick.LocalStorage 2.0}
+\endlist
+
+\section1 XML Support in Qt
+
+### Talk briefly about XML as a storage format and mention main classes QXMLStreamReader and
+QXMLStreamWriter, as well as XML usage in QML.
+
+In addition, make sure the following pages are reachable from this section, either directly
+or indirectly:
 
-A list of sections in this topic page (with links to the feature overviews):
 \list
-\li Containers
-\li Saving and Loading Data (maybe about QIODevice, QTextStream, QDataStream and QFile)
-\li XML
-\li SQL and related database APIs
-\li JavaScript Storage (available from Qt WebKit and Qt Quick)
-\li QSettings
-\li JSON
-\li Qt resources?
+\li \l {An Introduction to Namespaces}
+\li \l {Working with the DOM tree}
+\li \l {XML Processing}
+\li \l {XQuery}
+\li \l {The SAX Interface}
+\li \l {XML Streaming}
+\li \l {XML Classes}
+\li \l {A Short Path to XQuery}
+\li \l {QML Module QtQuick.XmlListModel 2.0}
 \endlist
+
+\section1 JSON in Qt
+
+### Talk briefly about JSON as a storage format. Make sure the following page is reachable from
+this section:
+
+\list
+\li \l {JSON Support in Qt}
+\endlist
+
+\section1 JavaScript Storage
+
+### Discuss the use of JavaScript storage in Webkit and QML with links to the relevant pages
+under both of those technologies.
+
+\section1 QSettings
+
+### Talk about using QSettings for storing user preferences and small amounts of data in
+a cross-platform manner.
+
+\section1 Resources
+
+### Talk about using Qt Resources to store data that is used by your application. Mention that
+the resources can be embedded in the executable (for smaller resources) or in a separate binary
+file. Mention the benefit that the resources can be accessed by the application as if they were
+part of a regular file system with relative paths etc. and that this file system also becomes
+available to QML with the qrc: url scheme.
+
+Make sure the following page is linked from this section:
+
+\list
+\li \l {The Qt Resource System}
+\endlist
+
 */
-- 
GitLab