#The online onfiguration for a Qt 5 module, including Add-Ons and Tools.
#Include this file for a standard Qt 5 module; builds with the online style.

# Start of footer - the rest is defined in qt-html-templates-online.qdocconf
HTML.footer = \
    "   </div>\n" \
    "   <p class=\"copy-notice\">\n" \
    "   <acronym title=\"Copyright\">&copy;</acronym> 2020 The Qt Company Ltd.\n" \
    "   Documentation contributions included herein are the copyrights of\n" \
    "   their respective owners. " \
    "   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. " \
    "   Qt and respective logos are trademarks of The Qt Company Ltd. " \
    "   in Finland and/or other countries worldwide. All other trademarks are property\n" \
    "   of their respective owners. </p>\n"

#include standard set of macros and C++ defines and ignores
include(macros.qdocconf)
include(qt-cpp-defines.qdocconf)
include(compat.qdocconf)
include(manifest-meta.qdocconf)
include(fileextensions.qdocconf)
include(qt-html-templates-online.qdocconf)

#extra configuration data DITA information
include(config.qdocconf)

# single-directory output mode
HTML.nosubdirs = "true"
HTML.outputsubdir = "html"
