Qt5/Documentation/OverviewStructure: Difference between revisions

From KDE Community Wiki
No edit summary
 
(17 intermediate revisions by 4 users not shown)
Line 1: Line 1:
==Qt 5 Topics and Overviews==
See [[Qt5/Documentation/OverviewClassification ]] for a classification of existing documentation pages based on this structure.


This page maps and outlines the topics covered in Qt 5 documentation.
==Qt 5 Documentation Landing page==


The Qt 5 documentation landing page consists of an Introduction section at the top, plus three vertical sections, namely "References", "Examples", and "Overviews".


===Qt Topics and Aspects===
===Introduction===
 
Sub-parts:
* Sales pitch, aka "What is Qt", high level introduction
* 10-15 line snippet of QML
* Link to SDK
* Getting started, link to Hello Word example (QML? Widgets? Both?) (What about GraphicsScene and Console?)
* What's new in Qt 5
* Licensing / legal information
 
===References===
 
This section contains links to pages listing all modules, all C++ classes, and all QML components. Maybe a page listing manuals, like the qmake manual etc, + tools.
 
===Examples===
 
Waiting for example project.
 
===Overviews===
 
This section / page maps and outlines the topics covered in Qt 5 documentation. The most important topics can be listed on the documentation landing page.
 
====Qt Topics and Aspects====


Topics in this context are the aspects of applications that developers are concerned with. These topics involve several Qt modules and should reside in qt5/qtdoc repository. These overviews tie in the relevant features provided by the relevant modules. The emphasis is on functionality, not the module. This means that we should assume that the developer is not heavily concerned about the difference between the modules or the Essential/Add-On distinction. They simply import which classes or QML types they wish.
Topics in this context are the aspects of applications that developers are concerned with. These topics involve several Qt modules and should reside in qt5/qtdoc repository. These overviews tie in the relevant features provided by the relevant modules. The emphasis is on functionality, not the module. This means that we should assume that the developer is not heavily concerned about the difference between the modules or the Essential/Add-On distinction. They simply import which classes or QML types they wish.


For example, the [http://doc-snapshot.qt-project.org/5.0/sql-programming.html SQL Programming] article is linked _both_ from the [http://doc-snapshot.qt-project.org/5.0/qtsql-index.html Qt SQL] landing page _and_ the SQL section of the  "Data Structure and Storage" topic page. Readers who know which module to read will go to the Qt SQL landing page and find the article, but people who are concerned about the data storage options will find the page from the topic page.
For example, the [http://doc-snapshot.qt-project.org/5.0/sql-programming.html SQL Programming] article is linked _both_ from the [http://doc-snapshot.qt-project.org/5.0/qtsql-index.html Qt SQL] landing page _and_ the SQL section of the  "Data Structure and Storage" topic page. Readers who know which module to read will go to the Qt SQL landing page and find the article, but people who are concerned about the data storage options will find the page from the topic page. The first six of these goes in the front page. All of them are listed in the "overviews" landing page.


Possible list of topics:
Possible list of topics:
* Application Development (tools and Qt Creator)
* Application Development (tools and Qt Creator)
* Testing (UI testing, debugging)
* User Interfaces
* User Interfaces
* Graphics
* Core fundamentals (IPC, containers, signals/slots, properties, meta-object, and so on.)
* Data Structure and Storage
* Multimedia
* Multimedia
* Networking and Connectivity
* Networking and Connectivity
* Data Structure and Storage
<br/>
* Graphics
* Scripting
* Scripting
* Contacts
* Sensors
* Location
* Core fundamentals (IPC, containers, signals/slots, properties, meta-object, and so on.)
* Web applications
* Web applications
* Testing (UI testing, debugging)
* Add-ons (Contacts, Sensors, Location, Qt 3D etc)
* Porting guide from Qt 4?
* Porting guide from Qt 4?


===Feature Overviews===
====Feature Overviews====


A feature is what Qt 5 offers. For examples, QML is an offering and requires an overview or some sort of documentation that connects all the relevant material together. Different topics have various feature overviews. These feature overviews may be specific to a Qt module and may reside in the module's repository.
A feature is what Qt 5 offers. For examples, QML is an offering and requires an overview or some sort of documentation that connects all the relevant material together. Different topics have various feature overviews. These feature overviews may be specific to a Qt module and may reside in the module's repository.


=="User Interface" Topic Page==
===="Application Development (tools and Qt Creator)" Topic Page====
* SDK
* Creator
* Linguist
* Qmake
 
===="Graphics" Topic Page====
 
Graphics Stack - about Qt's graphic stack and the processes involved
* 2D graphics
* enablers
* painting
* math classes
* raster
* rendering
* OpenGL
 
===="User Interface" Topic Page====


A page describing the UI options in Qt 5. This page includes links to the overviews from various repositories and modules.
A page describing the UI options in Qt 5. This page includes links to the overviews from various repositories and modules.
Line 37: Line 76:
* [http://doc-snapshot.qt-project.org/5.0/qtquick-applicationdevelopers.html QML]- talks about "declarative" and the use of JavaScript to provide "highly dynamic interfaces".
* [http://doc-snapshot.qt-project.org/5.0/qtquick-applicationdevelopers.html QML]- talks about "declarative" and the use of JavaScript to provide "highly dynamic interfaces".
* Widgets -what can be done with widgets such as layouts, themes, platform implementation.
* Widgets -what can be done with widgets such as layouts, themes, platform implementation.
* 3D Interfaces - mentions which modules provide 3D related APIs. (Should we have this? Probably not since Qt3D is not an essential)
* Web Interfaces - about CSS, HTML, WebView, and so on.
* Web Interfaces - about CSS, HTML, WebView, and so on.
* Graphics Stack - about Qt's graphic stack and the processes involved (2D graphics, enablers, painting, math classes, raster, rendering, and OpenGL)
** Should this be under "core fundamentals" instead? Edit: or both
* Model/View programming
* Model/View programming
* Links to guides on using Qt Creator for designing widget- and QML-based UIs?
* Links to guides on using Qt Creator for designing widget- and QML-based UIs?
Line 51: Line 87:
* I18N
* I18N


=="Data Structure and Storage" Topic Page==
===="Data Structure and Storage" Topic Page====


A page describing the data storage options in Qt 5. This page includes links to the overviews from various repositories and modules.
A page describing the data storage options in Qt 5. This page includes links to the overviews from various repositories and modules.
Line 61: Line 97:
* [http://doc-snapshot.qt-project.org/5.0/sql-programming.html SQL] and related database APIs
* [http://doc-snapshot.qt-project.org/5.0/sql-programming.html SQL] and related database APIs
* JavaScript Storage (available from Qt WebKit and Qt Quick)
* JavaScript Storage (available from Qt WebKit and Qt Quick)
* JSON DB
* QSettings
* QSettings
* Qt resources?
* Qt resources?


=="Multimedia" Topic Page==
===="Multimedia" Topic Page====


A page describing the multimedia story in Qt 5. This page includes links to the overviews from various repositories and modules.
A page describing the multimedia story in Qt 5. This page includes links to the overviews from various repositories and modules.
Line 80: Line 115:
Candidate: [http://doc-snapshot.qt-project.org/5.0/multimediaoverview.html Qt Multimedia Overview] (Maybe renamed to "Multimedia in Qt"?)
Candidate: [http://doc-snapshot.qt-project.org/5.0/multimediaoverview.html Qt Multimedia Overview] (Maybe renamed to "Multimedia in Qt"?)


=="Connectivity and Networking" Topic Page==
===="Connectivity and Networking" Topic Page====


A page describing the connectivity and networking offering in Qt 5. This can mean communication between the same application, inside the application, to the operating system, or through the internet or bluetooth.
A page describing the connectivity and networking offering in Qt 5. This can mean communication between the same application, inside the application, to the operating system, or through the internet or bluetooth.
Line 92: Line 127:
* WebKit?
* WebKit?


== "Core fundamentals" Topic Page ==
==== "Core fundamentals" Topic Page ====


A list of topics in this topic page:
A list of topics in this topic page:
Line 102: Line 137:
* Events
* Events
* State Machine Framework?
* State Machine Framework?
* Object ownership model
* QString / Unicode
* Text codecs
* Text codecs
* Meta-object  
* Meta-object  
Line 112: Line 149:
** Platform specific development
** Platform specific development
* Plugins
* Plugins
==== "Scripting" Topic Page ====
A list of topics in this topic page:
* QtScript
* QJSEngine / QJSValue etc
* QQmlEngine, link to a guide on using QML for non-graphical purposes if such a thing makes sense?
* Something about web / JavaScript ?

Latest revision as of 12:10, 19 November 2012

See Qt5/Documentation/OverviewClassification for a classification of existing documentation pages based on this structure.

Qt 5 Documentation Landing page

The Qt 5 documentation landing page consists of an Introduction section at the top, plus three vertical sections, namely "References", "Examples", and "Overviews".

Introduction

Sub-parts:

  • Sales pitch, aka "What is Qt", high level introduction
  • 10-15 line snippet of QML
  • Link to SDK
  • Getting started, link to Hello Word example (QML? Widgets? Both?) (What about GraphicsScene and Console?)
  • What's new in Qt 5
  • Licensing / legal information

References

This section contains links to pages listing all modules, all C++ classes, and all QML components. Maybe a page listing manuals, like the qmake manual etc, + tools.

Examples

Waiting for example project.

Overviews

This section / page maps and outlines the topics covered in Qt 5 documentation. The most important topics can be listed on the documentation landing page.

Qt Topics and Aspects

Topics in this context are the aspects of applications that developers are concerned with. These topics involve several Qt modules and should reside in qt5/qtdoc repository. These overviews tie in the relevant features provided by the relevant modules. The emphasis is on functionality, not the module. This means that we should assume that the developer is not heavily concerned about the difference between the modules or the Essential/Add-On distinction. They simply import which classes or QML types they wish.

For example, the SQL Programming article is linked _both_ from the Qt SQL landing page _and_ the SQL section of the "Data Structure and Storage" topic page. Readers who know which module to read will go to the Qt SQL landing page and find the article, but people who are concerned about the data storage options will find the page from the topic page. The first six of these goes in the front page. All of them are listed in the "overviews" landing page.

Possible list of topics:

  • Application Development (tools and Qt Creator)
  • User Interfaces
  • Core fundamentals (IPC, containers, signals/slots, properties, meta-object, and so on.)
  • Data Structure and Storage
  • Multimedia
  • Networking and Connectivity


  • Graphics
  • Scripting
  • Web applications
  • Testing (UI testing, debugging)
  • Add-ons (Contacts, Sensors, Location, Qt 3D etc)
  • Porting guide from Qt 4?

Feature Overviews

A feature is what Qt 5 offers. For examples, QML is an offering and requires an overview or some sort of documentation that connects all the relevant material together. Different topics have various feature overviews. These feature overviews may be specific to a Qt module and may reside in the module's repository.

"Application Development (tools and Qt Creator)" Topic Page

  • SDK
  • Creator
  • Linguist
  • Qmake

"Graphics" Topic Page

Graphics Stack - about Qt's graphic stack and the processes involved

  • 2D graphics
  • enablers
  • painting
  • math classes
  • raster
  • rendering
  • OpenGL

"User Interface" Topic Page

A page describing the UI options in Qt 5. This page includes links to the overviews from various repositories and modules.

A list of sections in this topic page (with links to the feature overviews):

  • QML- talks about "declarative" and the use of JavaScript to provide "highly dynamic interfaces".
  • Widgets -what can be done with widgets such as layouts, themes, platform implementation.
  • Web Interfaces - about CSS, HTML, WebView, and so on.
  • Model/View programming
  • Links to guides on using Qt Creator for designing widget- and QML-based UIs?
  • Animation framework?
  • Accessibility
  • Drag and drop (is this under Widgets or do we support it in QML?)
  • Rich text engines?
    • QTextDocument in QML and Widgets
    • WebKit
  • I18N

"Data Structure and Storage" Topic Page

A page describing the data storage options in Qt 5. This page includes links to the overviews from various repositories and modules.

A list of sections in this topic page (with links to the feature overviews):

  • Containers
  • Saving and Loading Data (maybe about QIODevice, QTextStream, QDataStream and QFile)
  • XML
  • SQL and related database APIs
  • JavaScript Storage (available from Qt WebKit and Qt Quick)
  • QSettings
  • Qt resources?

"Multimedia" Topic Page

A page describing the multimedia story in Qt 5. This page includes links to the overviews from various repositories and modules.

A list of sections in this topic page (with links to the feature overviews):

  • Backend/engine
  • Supported platforms, media, codecs, and so on.
  • Audio API
  • Video API
  • Camera API
  • Radio API
  • Printing API?

Candidate: Qt Multimedia Overview (Maybe renamed to "Multimedia in Qt"?)

"Connectivity and Networking" Topic Page

A page describing the connectivity and networking offering in Qt 5. This can mean communication between the same application, inside the application, to the operating system, or through the internet or bluetooth.

A list of sections in this topic page (with links to the feature overviews):

  • TCP/IP
  • Bluetooth
  • Bearer Management
  • QNetworkAccessManager
  • Network transparency in QML
  • WebKit?

"Core fundamentals" Topic Page

A list of topics in this topic page:

  • IPC
  • Threading
  • QProcess
  • Containers
  • Events
  • State Machine Framework?
  • Object ownership model
  • QString / Unicode
  • Text codecs
  • Meta-object
    • Signals and slots
    • Property system
    • Meta-object and the moc
    • The meta-object in QML
  • QPA
    • Wayland
    • Platform specific development
  • Plugins

"Scripting" Topic Page

A list of topics in this topic page:

  • QtScript
  • QJSEngine / QJSValue etc
  • QQmlEngine, link to a guide on using QML for non-graphical purposes if such a thing makes sense?
  • Something about web / JavaScript ?