summaryrefslogtreecommitdiffstats
path: root/examples/doc/treename.qdoc
diff options
context:
space:
mode:
Diffstat (limited to 'examples/doc/treename.qdoc')
-rw-r--r--examples/doc/treename.qdoc144
1 files changed, 144 insertions, 0 deletions
diff --git a/examples/doc/treename.qdoc b/examples/doc/treename.qdoc
new file mode 100644
index 000000000..774b6e1fa
--- /dev/null
+++ b/examples/doc/treename.qdoc
@@ -0,0 +1,144 @@
+/****************************************************************************
+**
+** Copyright (C) 2022 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Installer Framework.
+**
+** $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 The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/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: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \example treename
+ \ingroup qtifwexamples
+ \title Tree Name Example
+
+ \brief Using components' package.xml files to define custom locations in the component tree.
+
+ \image qtifw-examples-treename.png
+
+ \e{Tree Name} illustrates how to specify custom locations for components in
+ the component tree view and how that influences the installation and
+ maintenance processes.
+
+ \include installerfw-examples-configuring.qdocinc
+
+ \list
+ \li The \c <WizardShowPageList> element is set to \c false to hide the page
+ list widget on the left side of the installer wizard window.
+ \endlist
+
+ \quotefile treename/config/config.xml
+
+ \include installerfw-examples-packaging.qdocinc
+
+ \list
+ \li The \c <TreeName> element specifies the location of the component in the
+ component tree. The element accepts an optional \c moveChildren attribute
+ with a boolean value. If the value is set to \c true, any child components
+ of this component are also moved to the modified location.
+
+ \note Without this element the identifier of this component decides the location
+ in the component tree.
+ \endlist
+
+ In this example, the package.xml files for the components contain additional
+ elements that specify the component tree locations. The following sections illustrate
+ how the elements are used.
+
+ \section1 Specifying Tree Name to Root Node
+
+ We define a tree name \e ASub1ToRoot for component \e{A subcomponent 1}.
+ Thus, this child component of \e A becomes a new root component.
+ By default the children are not moved to the new location, so
+ \e {A sub-subcomponent1} becomes a new direct child of \e A.
+
+ \quotefile treename/packages/A.sub1/meta/package.xml
+
+ \section1 Specifying Tree Name and Moving Children
+
+ As above, we define a tree name \e BSub1ToRoot for component \e{B subcomponent 1}, but
+ this time we set the \c moveChildren attribute to \c true. The component becomes a new
+ root component and the child component \e {B sub-subcomponent 1} of this
+ component moves to the new location with the parent.
+
+ \quotefile treename/packages/B.sub1/meta/package.xml
+
+ \section1 Specifying Tree Name to Sub Node
+
+ We define a tree name \e{A.subC} for component \e C and set the \c moveChildren attribute
+ to \c true. Thus, this originally root component is moved as a child component of \e A.
+ The child components \e {C subcomponent 1} and \e {C subcomponent 2} move
+ to the new location with the parent.
+
+ \quotefile treename/packages/C/meta/package.xml
+
+ \section1 Specifying Tree Name to Existing Node
+
+ We define a tree name \e D for component \e E. Node \e D is already a part of an existing
+ component identifier for \e {D subcomponent 1} (\e{D.sub1}), but the packages
+ directory does not contain a component for the identifier, so it is possible to declare a
+ tree name \e D. The component \e E becomes a new root component and parent of
+ \e {D subcomponent 1}. As the \c moveChildren attribute is set to \c true, the
+ child component \e {E subcomponent 2} is moved with the parent.
+
+ \quotefile treename/packages/E/meta/package.xml
+
+ \section1 Other Considerations
+
+ \section2 Multiple Tree Names in One Component Branch
+
+ Components in a single branch (\e A, \e{A.sub1}, \e{A.sub1.sub1}, \e{A.sub1.sub1.sub2} and so
+ on) may each declare a separate tree name. The installer or \MT calculates the
+ new locations for components in an ascending order from leaf components to root components, so that
+ \e{A.sub1.sub1.sub2} is moved first and \e A last.
+
+ \section2 Tree Names of Installed and Remote Components
+
+ For online installers, the repositories may declare updated tree names for components,
+ so the following rules apply:
+
+ \list
+ \li The tree names for components become static after being installed. Therefore, if the user
+ of the installer has installed component \e A with tree name \e ANewName1, and the
+ repository is updated with a new version of component \e A that declares tree name
+ \e ANewName2, the new location is only applied when the user updates the component
+ locally with the \MT.
+ \li The automatic tree names of children of components with tree name and \c moveChildren
+ set to \c true are moved with the parent regardless if installed or not. Therefore, if
+ the user has installed component \e{A.sub1} but not component \e A, and \e A is updated
+ in the repository with a new tree name, the \e{A.sub1} uses also the new tree name in
+ \MT's component tree.
+ \endlist
+
+ \section2 Tree Name and Name Conflicts
+
+ The tree names may conflict with existing component names or other tree names. Depending on whether
+ the installer or \MT is configured to allow unstable components with
+ \c <AllowUnstableComponents> configuration file element, the offending components are either
+ registered as unstable components with their original name or not registered at all.
+
+ \note Components from remote repositories can never override already installed
+ components in the tree view. If a conflicting remote component cannot be registered with
+ the original name either in case a local component has reserved it with a tree name, the
+ component is not registered.
+
+ \include installerfw-examples-generating.qdocinc
+*/