From 6f6f6d3f970c3b5f04ee96c92b00ff23f04e604a Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Wed, 14 Jun 2023 16:08:24 +0200 Subject: [PATCH] Solutions: Add a common Solutions page Add also The Tasking solution page. Add some hints into README.md file. Change-Id: I4e355c95977d668fbc2f7bd286f9446e4e4b1f69 Reviewed-by: Jarek Kobus --- doc/qtcreatordev/src/qtcreator-module.qdoc | 19 ++++++++++++- doc/qtcreatordev/src/solutions-index.qdoc | 12 ++++++++ src/libs/solutions/README.md | 20 +++++++++++++ src/libs/solutions/tasking/tasktree.cpp | 33 ++++++++++++---------- 4 files changed, 68 insertions(+), 16 deletions(-) create mode 100644 doc/qtcreatordev/src/solutions-index.qdoc diff --git a/doc/qtcreatordev/src/qtcreator-module.qdoc b/doc/qtcreatordev/src/qtcreator-module.qdoc index 18a56103353..a86699733ab 100644 --- a/doc/qtcreatordev/src/qtcreator-module.qdoc +++ b/doc/qtcreatordev/src/qtcreator-module.qdoc @@ -1,4 +1,4 @@ -// Copyright (C) 2020 The Qt Company Ltd. +// Copyright (C) 2023 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only /*! @@ -109,12 +109,29 @@ \endomit \endtable + \section1 Solutions + + \QC uses object libraries that are independent of any \QC-specific code, and + are threfore ready to be a part of Qt. + + \table + \header + \li Solution Name + \li Description + + \row + \li \l{Tasking Solution}{Tasking} + \li Enables you to build extensible, declarative task tree structures + that contain possibly asynchronous tasks. + \endtable + \section1 Reference \list \li \l {Qt Creator C++ Classes} \li \l {Qt Creator Namespaces} \li \l {Qt Creator Functions} + \li \l {Solutions} \endlist */ diff --git a/doc/qtcreatordev/src/solutions-index.qdoc b/doc/qtcreatordev/src/solutions-index.qdoc new file mode 100644 index 00000000000..1eb4135b890 --- /dev/null +++ b/doc/qtcreatordev/src/solutions-index.qdoc @@ -0,0 +1,12 @@ +// Copyright (C) 2023 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +/*! + \page solutions-index.html + \title Solutions + \brief A collection of reusable object libraries. + + This topic lists the available solutions: + + \annotatedlist solutions-modules +*/ diff --git a/src/libs/solutions/README.md b/src/libs/solutions/README.md index ab4cc9727d3..4fd7234a286 100644 --- a/src/libs/solutions/README.md +++ b/src/libs/solutions/README.md @@ -46,3 +46,23 @@ integrated into Qt when they: - Have full docs. - Have auto tests. - Have at least one example (however, autotests often play this role, too). + +## Documentation + +The common Solutions doc (doc/qtcreatordev/src/solutions-index.qdoc) +lists all the solutions added to the solutions-modules group. +In order to gather all the available solutions in this common page, +define the module and refer to it like: + +/*! + \module TaskingSolution + \title The Tasking Solution + \ingroup solutions-modules + \brief (... add a brief description here...) +*/ + +The \ingroup will put the item above to the common Solutions page. +Don't add more \ingroup references from class docs, add \inmodule instead. + + + diff --git a/src/libs/solutions/tasking/tasktree.cpp b/src/libs/solutions/tasking/tasktree.cpp index c28e7b0e6aa..985343ab517 100644 --- a/src/libs/solutions/tasking/tasktree.cpp +++ b/src/libs/solutions/tasking/tasktree.cpp @@ -42,11 +42,25 @@ private: Guard &m_guard; }; +/*! + \module TaskingSolution + \title Tasking Solution + \ingroup solutions-modules + \brief Contains a general purpose Tasking solution. + + The Tasking solution depends on Qt only, and doesn't depend on any \QC specific code. +*/ + +/*! + \namespace Tasking + \inmodule TaskingSolution + \brief The Tasking namespace encloses all classes and global functions of the Tasking solution. +*/ + /*! \class Tasking::GroupItem \inheaderfile solutions/tasking/tasktree.h - \inmodule QtCreator - \ingroup mainclasses + \inmodule TaskingSolution \brief The GroupItem class represents the basic element for composing nested tree structures. */ @@ -1104,22 +1118,11 @@ void TaskNode::invokeEndHandler(bool success) m_container.m_constData.m_taskTreePrivate->advanceProgress(1); } -/*! - \namespace Tasking - \inmodule QtCreator - \brief The Tasking namespace contains a general purpose TaskTree solution. - - The Tasking namespace depends on Qt only, and doesn't depend on any \QC - specific code. -*/ - /*! \class Tasking::TaskTree \inheaderfile solutions/tasking/tasktree.h - \inmodule QtCreator - \ingroup mainclasses - \brief The TaskTree class runs an async task tree structure defined in a - declarative way. + \inmodule TaskingSolution + \brief The TaskTree class runs an async task tree structure defined in a declarative way. Use the Tasking namespace to build extensible, declarative task tree structures that contain possibly asynchronous tasks, such as Process,