include(compat.qdocconf)
include(macros.qdocconf)
include(qt-cpp-ignore.qdocconf)
include(qt-html-templates.qdocconf)
include(qt-defines.qdocconf)

project                 = Qt Assistant
description             = Qt Assistant Manual
url                     = http://doc.qt.nokia.com/4.7/

indexes                 = $QT_BUILD_TREE/doc-build/html-qt/qt.index

qhp.projects            = Assistant

qhp.Assistant.file                = assistant.qhp
qhp.Assistant.namespace           = com.trolltech.assistant.474
qhp.Assistant.virtualFolder       = qdoc
qhp.Assistant.indexTitle          = Qt Assistant Manual
qhp.Assistant.extraFiles          = images/bg_l.png \
				    images/bg_l_blank.png \
		     		    images/bg_ll_blank.png \
			     	    images/bg_ul_blank.png \
			     	    images/header_bg.png \
                             	    images/bg_r.png \
				    images/box_bg.png \
				    images/breadcrumb.png \
				    images/bullet_gt.png \
                             	    images/bullet_dn.png \
				    images/bullet_sq.png \
                             	    images/bullet_up.png \
				    images/arrow_down.png \
                             	    images/feedbackground.png \
                             	    images/horBar.png \
				    images/page.png \
				    images/page_bg.png \
				    images/sprites-combined.png \
				    images/spinner.gif \
                             	    images/stylesheet-coffee-plastique.png \
                             	    images/taskmenuextension-example.png \
                             	    images/coloreditorfactoryimage.png \
                             	    images/dynamiclayouts-example.png \
			     	    scripts/functions.js \
			     	    scripts/jquery.js \
			     	    scripts/narrow.js \
			     	    scripts/superfish.js \
			     	    style/narrow.css \
			     	    style/superfish.css \
			     	    style/style_ie6.css \
			     	    style/style_ie7.css \
			     	    style/style_ie8.css \
			     	    style/style.css

qhp.Assistant.filterAttributes    = qt 4.7.4 tools assistant
qhp.Assistant.customFilters.Assistant.name = Qt Assistant Manual
qhp.Assistant.customFilters.Assistant.filterAttributes = qt tools assistant
qhp.Assistant.subprojects         = manual examples
qhp.Assistant.subprojects.manual.title = Manual
qhp.Assistant.subprojects.manual.indexTitle = Qt Assistant Manual
qhp.Assistant.subprojects.manual.selectors = fake:page
qhp.Assistant.subprojects.examples.title = Examples
qhp.Assistant.subprojects.examples.indexTitle = Qt Examples
qhp.Assistant.subprojects.examples.selectors = fake:example
qhp.Assistant.subprojects.examples.sortPages = true

language                = Cpp

sources                 = $QT_SOURCE_TREE/doc/src/development/assistant-manual.qdoc \
                          $QT_SOURCE_TREE/doc/src/examples/simpletextviewer.qdoc

sources.fileextensions  = "*.cpp *.qdoc"

exampledirs             = $QT_SOURCE_TREE \
                          $QT_SOURCE_TREE/examples \
                          $QT_SOURCE_TREE/doc/src

imagedirs               = $QT_SOURCE_TREE/doc/src/images \
			  $QT_SOURCE_TREE/doc/src/template/images
outputdir               = $QT_BUILD_TREE/doc-build/html-assistant
base                    = file:$QT_BUILD_TREE/doc-build/html-assistant
