Sophie

Sophie

distrib > Mageia > 7 > i586 > by-pkgid > c936229ef0138f42857f36beadbeda30 > files > 646

qt3d5-doc-5.12.2-2.mga7.noarch.rpm

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- qanimationcontroller.cpp -->
  <title>QAnimationController Class | Qt 3D 5.12.2</title>
  <link rel="stylesheet" type="text/css" href="style/offline-simple.css" />
  <script type="text/javascript">
    document.getElementsByTagName("link").item(0).setAttribute("href", "style/offline.css");
    // loading style sheet breaks anchors that were jumped to before
    // so force jumping to anchor again
    setTimeout(function() {
        var anchor = location.hash;
        // need to jump to different anchor first (e.g. none)
        location.hash = "#";
        setTimeout(function() {
            location.hash = anchor;
        }, 0);
    }, 0);
  </script>
</head>
<body>
<div class="header" id="qtdocheader">
  <div class="main">
    <div class="main-rounded">
      <div class="navigationbar">
        <table><tr>
<td >Qt 5.12</td><td ><a href="qt3d-index.html">Qt 3D</a></td><td ><a href="qt3d-cpp.html">C++ Classes</a></td><td >QAnimationController</td></tr></table><table class="buildversion"><tr>
<td id="buildversion" width="100%" align="right"><a href="qt3d-index.html">Qt 5.12.2 Reference Documentation</a></td>
        </tr></table>
      </div>
    </div>
<div class="content">
<div class="line">
<div class="content mainContent">
<div class="sidebar">
<div class="toc">
<h3><a name="toc">Contents</a></h3>
<ul>
<li class="level1"><a href="#properties">Properties</a></li>
<li class="level1"><a href="#public-functions">Public Functions</a></li>
<li class="level1"><a href="#public-slots">Public Slots</a></li>
<li class="level1"><a href="#signals">Signals</a></li>
<li class="level1"><a href="#static-public-members">Static Public Members</a></li>
<li class="level1"><a href="#details">Detailed Description</a></li>
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
<h1 class="title">QAnimationController Class</h1>
<span class="small-subtitle">(<a href="qt3danimation-qanimationcontroller.html">Qt3DAnimation::QAnimationController</a>)<br/></span>
<!-- $$$QAnimationController-brief -->
<p>A controller class for animations. <a href="#details">More...</a></p>
<!-- @@@QAnimationController -->
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> Header:</td><td class="memItemRight bottomAlign">   <span class="preprocessor">#include &lt;QAnimationController&gt;</span>
</td></tr><tr><td class="memItemLeft rightAlign topAlign"> qmake:</td><td class="memItemRight bottomAlign"> QT += 3danimation</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Since:</td><td class="memItemRight bottomAlign">  Qt 5.9</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Instantiated By:</td><td class="memItemRight bottomAlign"> <a href="qml-qt3d-animation-animationcontroller.html">AnimationController</a></td></tr></table></div><ul>
<li><a href="qt3danimation-qanimationcontroller-members.html">List of all members, including inherited members</a></li>
</ul>
<a name="properties"></a>
<h2 id="properties">Properties</h2>
<div class="table"><table class="propsummary">
<tr><td class="topAlign"><ul>
<li class="fn"><b><a href="qt3danimation-qanimationcontroller.html#activeAnimationGroup-prop">activeAnimationGroup</a></b> : int</li>
<li class="fn"><b><a href="qt3danimation-qanimationcontroller.html#entity-prop">entity</a></b> : Qt3DCore::QEntity*</li>
<li class="fn"><b><a href="qt3danimation-qanimationcontroller.html#position-prop">position</a></b> : float</li>
</ul></td><td class="topAlign"><ul>
<li class="fn"><b><a href="qt3danimation-qanimationcontroller.html#positionOffset-prop">positionOffset</a></b> : float</li>
<li class="fn"><b><a href="qt3danimation-qanimationcontroller.html#positionScale-prop">positionScale</a></b> : float</li>
<li class="fn"><b><a href="qt3danimation-qanimationcontroller.html#recursive-prop">recursive</a></b> : bool</li>
</ul>
</td></tr>
</table></div>
<a name="public-functions"></a>
<h2 id="public-functions">Public Functions</h2>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="qt3danimation-qanimationcontroller.html#QAnimationController">QAnimationController</a></b>(QObject *<i>parent</i> = nullptr)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="qt3danimation-qanimationcontroller.html#activeAnimationGroup-prop">activeAnimationGroup</a></b>() const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qt3danimation-qanimationcontroller.html#addAnimationGroup">addAnimationGroup</a></b>(Qt3DAnimation::QAnimationGroup *<i>animationGroup</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QVector&lt;Qt3DAnimation::QAnimationGroup *&gt; </td><td class="memItemRight bottomAlign"><b><a href="qt3danimation-qanimationcontroller.html#animationGroupList">animationGroupList</a></b>()</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> Qt3DCore::QEntity *</td><td class="memItemRight bottomAlign"><b><a href="qt3danimation-qanimationcontroller.html#entity-prop">entity</a></b>() const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="qt3danimation-qanimationcontroller.html#getAnimationIndex">getAnimationIndex</a></b>(const QString &amp;<i>name</i>) const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> Qt3DAnimation::QAnimationGroup *</td><td class="memItemRight bottomAlign"><b><a href="qt3danimation-qanimationcontroller.html#getGroup">getGroup</a></b>(int <i>index</i>) const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> float </td><td class="memItemRight bottomAlign"><b><a href="qt3danimation-qanimationcontroller.html#position-prop">position</a></b>() const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> float </td><td class="memItemRight bottomAlign"><b><a href="qt3danimation-qanimationcontroller.html#positionOffset-prop">positionOffset</a></b>() const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> float </td><td class="memItemRight bottomAlign"><b><a href="qt3danimation-qanimationcontroller.html#positionScale-prop">positionScale</a></b>() const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> bool </td><td class="memItemRight bottomAlign"><b><a href="qt3danimation-qanimationcontroller.html#recursive-prop">recursive</a></b>() const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qt3danimation-qanimationcontroller.html#removeAnimationGroup">removeAnimationGroup</a></b>(Qt3DAnimation::QAnimationGroup *<i>animationGroup</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qt3danimation-qanimationcontroller.html#setAnimationGroups">setAnimationGroups</a></b>(const QVector&lt;Qt3DAnimation::QAnimationGroup *&gt; &amp;<i>animationGroups</i>)</td></tr>
</table></div>
<a name="public-slots"></a>
<h2 id="public-slots">Public Slots</h2>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qt3danimation-qanimationcontroller.html#activeAnimationGroup-prop">setActiveAnimationGroup</a></b>(int <i>index</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qt3danimation-qanimationcontroller.html#entity-prop">setEntity</a></b>(Qt3DCore::QEntity *<i>entity</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qt3danimation-qanimationcontroller.html#position-prop">setPosition</a></b>(float <i>position</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qt3danimation-qanimationcontroller.html#positionOffset-prop">setPositionOffset</a></b>(float <i>offset</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qt3danimation-qanimationcontroller.html#positionScale-prop">setPositionScale</a></b>(float <i>scale</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qt3danimation-qanimationcontroller.html#recursive-prop">setRecursive</a></b>(bool <i>recursive</i>)</td></tr>
</table></div>
<a name="signals"></a>
<h2 id="signals">Signals</h2>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qt3danimation-qanimationcontroller.html#activeAnimationGroup-prop">activeAnimationGroupChanged</a></b>(int <i>index</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qt3danimation-qanimationcontroller.html#entity-prop">entityChanged</a></b>(Qt3DCore::QEntity *<i>entity</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qt3danimation-qanimationcontroller.html#position-prop">positionChanged</a></b>(float <i>position</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qt3danimation-qanimationcontroller.html#positionOffset-prop">positionOffsetChanged</a></b>(float <i>offset</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qt3danimation-qanimationcontroller.html#positionScale-prop">positionScaleChanged</a></b>(float <i>scale</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qt3danimation-qanimationcontroller.html#recursive-prop">recursiveChanged</a></b>(bool <i>recursive</i>)</td></tr>
</table></div>
<a name="static-public-members"></a>
<h2 id="static-public-members">Static Public Members</h2>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> const QMetaObject </td><td class="memItemRight bottomAlign"><b><a href="qt3danimation-qanimationcontroller.html#staticMetaObject-var">staticMetaObject</a></b></td></tr>
</table></div>
<a name="details"></a>
<!-- $$$QAnimationController-description -->
<div class="descr">
<h2 id="details">Detailed Description</h2>
<p>A controller class for animations.</p>
<p><a href="qt3danimation-qanimationcontroller.html">Qt3DAnimation::QAnimationController</a> class controls the selection and playback of animations. The class can be used to find all animations from <a href="qt3dcore-qentity.html">Qt3DCore::QEntity</a> tree and create <a href="qt3danimation-qanimationgroup.html">QAnimationGroups</a> from the animations with the same name. The user can select which animation group is currently controlled with the animation controller by setting the active animation. The animation position is then propagated to that group after scaling and offsetting the provided position value with the <a href="qt3danimation-qanimationcontroller.html#positionScale-prop">positionScale</a> and <a href="qt3danimation-qanimationcontroller.html#positionOffset-prop">positionOffset</a> values.</p>
<p><b>Note: </b>that the animation controller doesn't have internal timer, but instead the user is responsible for updating the position property in timely manner.</p></div>
<!-- @@@QAnimationController -->
<div class="prop">
<h2>Property Documentation</h2>
<!-- $$$activeAnimationGroup-prop$$$activeAnimationGroup$$$setActiveAnimationGroupint$$$activeAnimationGroupChangedint -->
<h3 class="fn" id="activeAnimationGroup-prop"><a name="activeAnimationGroup-prop"></a><span class="name">activeAnimationGroup</span> : <span class="type">int</span></h3>
<p>Holds the currectly active animation group.</p>
<p><b>Access functions:</b></p>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>activeAnimationGroup</b></span>() const</td></tr>
<tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setActiveAnimationGroup</b></span>(int <i>index</i>)</td></tr>
</table></div>
<p><b>Notifier signal:</b></p>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>activeAnimationGroupChanged</b></span>(int <i>index</i>)</td></tr>
</table></div>
<!-- @@@activeAnimationGroup -->
<!-- $$$entity-prop$$$entity$$$setEntityQt3DCore::QEntity*$$$entityChangedQt3DCore::QEntity* -->
<h3 class="fn" id="entity-prop"><a name="entity-prop"></a><span class="name">entity</span> : <span class="type"><a href="qt3dcore-qentity.html">Qt3DCore::QEntity</a></span>*</h3>
<p>Holds the entity animations are gathered and grouped from. If the controller already holds animations, they are cleared.</p>
<p><b>Access functions:</b></p>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft topAlign rightAlign"> Qt3DCore::QEntity *</td><td class="memItemRight bottomAlign"><span class="name"><b>entity</b></span>() const</td></tr>
<tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setEntity</b></span>(Qt3DCore::QEntity *<i>entity</i>)</td></tr>
</table></div>
<p><b>Notifier signal:</b></p>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>entityChanged</b></span>(Qt3DCore::QEntity *<i>entity</i>)</td></tr>
</table></div>
<!-- @@@entity -->
<!-- $$$position-prop$$$position$$$setPositionfloat$$$positionChangedfloat -->
<h3 class="fn" id="position-prop"><a name="position-prop"></a><span class="name">position</span> : <span class="type">float</span></h3>
<p>Holds the current position of the animation. When the position is set, it is scaled and offset with <a href="qt3danimation-qanimationcontroller.html#positionScale-prop">positionScale</a>/<a href="qt3danimation-qanimationcontroller.html#positionOffset-prop">positionOffset</a> and propagated to the active animation group.</p>
<p><b>Access functions:</b></p>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>position</b></span>() const</td></tr>
<tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setPosition</b></span>(float <i>position</i>)</td></tr>
</table></div>
<p><b>Notifier signal:</b></p>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>positionChanged</b></span>(float <i>position</i>)</td></tr>
</table></div>
<!-- @@@position -->
<!-- $$$positionOffset-prop$$$positionOffset$$$setPositionOffsetfloat$$$positionOffsetChangedfloat -->
<h3 class="fn" id="positionOffset-prop"><a name="positionOffset-prop"></a><span class="name">positionOffset</span> : <span class="type">float</span></h3>
<p>Holds the position offset of the animation.</p>
<p><b>Access functions:</b></p>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>positionOffset</b></span>() const</td></tr>
<tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setPositionOffset</b></span>(float <i>offset</i>)</td></tr>
</table></div>
<p><b>Notifier signal:</b></p>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>positionOffsetChanged</b></span>(float <i>offset</i>)</td></tr>
</table></div>
<!-- @@@positionOffset -->
<!-- $$$positionScale-prop$$$positionScale$$$setPositionScalefloat$$$positionScaleChangedfloat -->
<h3 class="fn" id="positionScale-prop"><a name="positionScale-prop"></a><span class="name">positionScale</span> : <span class="type">float</span></h3>
<p>Holds the position scale of the animation.</p>
<p><b>Access functions:</b></p>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>positionScale</b></span>() const</td></tr>
<tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setPositionScale</b></span>(float <i>scale</i>)</td></tr>
</table></div>
<p><b>Notifier signal:</b></p>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>positionScaleChanged</b></span>(float <i>scale</i>)</td></tr>
</table></div>
<!-- @@@positionScale -->
<!-- $$$recursive-prop$$$recursive$$$setRecursivebool$$$recursiveChangedbool -->
<h3 class="fn" id="recursive-prop"><a name="recursive-prop"></a><span class="name">recursive</span> : <span class="type">bool</span></h3>
<p>Holds whether the recursively search the entity tree when gathering animations from the entity. If set to true, the animations are searched also from the child entities of the entity. If set to false, only the entity passed to the controller is searched.</p>
<p><b>Access functions:</b></p>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>recursive</b></span>() const</td></tr>
<tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setRecursive</b></span>(bool <i>recursive</i>)</td></tr>
</table></div>
<p><b>Notifier signal:</b></p>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>recursiveChanged</b></span>(bool <i>recursive</i>)</td></tr>
</table></div>
<!-- @@@recursive -->
</div>
<div class="func">
<h2>Member Function Documentation</h2>
<!-- $$$QAnimationController[overload1]$$$QAnimationControllerQObject* -->
<h3 class="fn" id="QAnimationController"><a name="QAnimationController"></a>QAnimationController::<span class="name">QAnimationController</span>(<span class="type">QObject</span> *<i>parent</i> = nullptr)</h3>
<p>Constructs a new <a href="qt3danimation-qanimationcontroller.html">QAnimationController</a> with <i>parent</i>.</p>
<!-- @@@QAnimationController -->
<!-- $$$addAnimationGroup[overload1]$$$addAnimationGroupQt3DAnimation::QAnimationGroup* -->
<h3 class="fn" id="addAnimationGroup"><a name="addAnimationGroup"></a><span class="type">void</span> QAnimationController::<span class="name">addAnimationGroup</span>(<span class="type"><a href="qt3danimation-qanimationgroup.html">Qt3DAnimation::QAnimationGroup</a></span> *<i>animationGroup</i>)</h3>
<p>Adds the given <i>animationGroup</i> to the controller.</p>
<!-- @@@addAnimationGroup -->
<!-- $$$animationGroupList[overload1]$$$animationGroupList -->
<h3 class="fn" id="animationGroupList"><a name="animationGroupList"></a><span class="type">QVector</span>&lt;<span class="type"><a href="qt3danimation-qanimationgroup.html">Qt3DAnimation::QAnimationGroup</a></span> *&gt; QAnimationController::<span class="name">animationGroupList</span>()</h3>
<p>Returns the list of animation groups the conroller is currently holding.</p>
<!-- @@@animationGroupList -->
<!-- $$$getAnimationIndex[overload1]$$$getAnimationIndexconstQString& -->
<h3 class="fn" id="getAnimationIndex"><a name="getAnimationIndex"></a><span class="type">int</span> QAnimationController::<span class="name">getAnimationIndex</span>(const <span class="type">QString</span> &amp;<i>name</i>) const</h3>
<p>Returns the index of the animation with <i>name</i>. Returns -1 if no <a href="qml-qt3d-animation-animationgroup.html">AnimationGroup</a> with the given name is found.</p>
<p><b>Note: </b>This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.</p>
<!-- @@@getAnimationIndex -->
<!-- $$$getGroup[overload1]$$$getGroupint -->
<h3 class="fn" id="getGroup"><a name="getGroup"></a><span class="type"><a href="qt3danimation-qanimationgroup.html">Qt3DAnimation::QAnimationGroup</a></span> *QAnimationController::<span class="name">getGroup</span>(<span class="type">int</span> <i>index</i>) const</h3>
<p>Returns the <a href="qml-qt3d-animation-animationgroup.html">AnimationGroup</a> with the given <i>index</i>.</p>
<p><b>Note: </b>This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.</p>
<!-- @@@getGroup -->
<!-- $$$removeAnimationGroup[overload1]$$$removeAnimationGroupQt3DAnimation::QAnimationGroup* -->
<h3 class="fn" id="removeAnimationGroup"><a name="removeAnimationGroup"></a><span class="type">void</span> QAnimationController::<span class="name">removeAnimationGroup</span>(<span class="type"><a href="qt3danimation-qanimationgroup.html">Qt3DAnimation::QAnimationGroup</a></span> *<i>animationGroup</i>)</h3>
<p>Removes the given <i>animationGroup</i> from the controller.</p>
<!-- @@@removeAnimationGroup -->
<!-- $$$setAnimationGroups[overload1]$$$setAnimationGroupsconstQVector<Qt3DAnimation::QAnimationGroup*>& -->
<h3 class="fn" id="setAnimationGroups"><a name="setAnimationGroups"></a><span class="type">void</span> QAnimationController::<span class="name">setAnimationGroups</span>(const <span class="type">QVector</span>&lt;<span class="type"><a href="qt3danimation-qanimationgroup.html">Qt3DAnimation::QAnimationGroup</a></span> *&gt; &amp;<i>animationGroups</i>)</h3>
<p>Sets the <i>animationGroups</i> for the controller. Old groups are cleared.</p>
<!-- @@@setAnimationGroups -->
</div>
        </div>
       </div>
   </div>
   </div>
</div>
<div class="footer">
   <p>
   <acronym title="Copyright">&copy;</acronym> 2019 The Qt Company Ltd.
   Documentation contributions included herein are the copyrights of
   their respective owners.<br/>    The documentation provided herein is licensed under the terms of the    <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation    License version 1.3</a> as published by the Free Software Foundation.<br/>    Qt and respective logos are trademarks of The Qt Company Ltd.     in Finland and/or other countries worldwide. All other trademarks are property
   of their respective owners. </p>
</div>
</body>
</html>