on xenial help sign in
Merge
commit8e4f2b9f8306f318a993f57ae98d0720a6a30f2a authorAlbert Astals <albert.astals@canonical.com> dateWed 5 Feb 2014, 09:18 (13 years ago) parent775d002c87b241
32 files changed+3156−164
CMakeLists.txt+5 build+1 data/unity8.conf+2 data/unity8.desktop.in−1 data/unity8.override−1 debian/changelog+39 debian/control+11 debian/rules+4 debian/unity8-autopilot.install−1 debian/unity8-doc.install+1 doc/CMakeLists.txt+38 doc/Doxyfile.in+2317 po/eu.po+7−7 qml/Dash/Card.qml+6−13 qml/Dash/CardHeader.qml+23−6 qml/Dash/CardTool.qml+136 qml/Dash/DashPreview.qml+2 qml/Dash/Generic/GenericPreview.qml+2−1 qml/Dash/GenericScopeView.qml+1−1 qml/Dash/graphics/checkers.png tests/autopilot/unity8/shell/emulators/create_interactive_notification.py+1−1 tests/autopilot/unity8/shell/emulators/dash.py+48−30 tests/autopilot/unity8/shell/fixture_setup.py+53 tests/autopilot/unity8/shell/tests/test_emulators.py+37−29 tests/autopilot/unity8/shell/tests/test_system_integration.py+3−1 tests/qmltests/CMakeLists.txt+1 tests/qmltests/Dash/CardHelpers.js+45 tests/qmltests/Dash/tst_Card.qml+50−69 tests/qmltests/Dash/tst_CardHeader.qml+3−3 tests/qmltests/Dash/tst_CardTool.qml+300 tests/qmltests/Dash/tst_GenericPreview.qml+8 tests/qmltests/Dash/tst_GenericScopeView.qml+12
CMakeLists.txt+5
@@ -120,3 +120,8 @@ add_subdirectory(data)
120120# Translation
121121#
122122add_subdirectory(po)
123+
124+#
125+# Documentation
126+#
127+add_subdirectory(doc)
build+1
@@ -45,6 +45,7 @@ install_dependencies() {
4545 qtdeclarative5-dee-plugin \
4646 qtdeclarative5-gsettings1.0 \
4747 qtdeclarative5-ubuntu-ui-toolkit-plugin \
48+ qtdeclarative5-ubuntu-settings-components \
4849 unity-notifications-impl \
4950 qtdeclarative5-xmllistmodel-plugin \
5051 ubuntu-mobile-icons \
data/unity8.conf+2
@@ -4,6 +4,8 @@ author "Ricardo Mendoza <ricmm@ubuntu.com>"
44start on ((xsession SESSION=ubuntu-touch) or (xsession SESSION=ubuntu-touch-surfaceflinger)) and started dbus
55stop on desktop-end
66
7+kill timeout 30
8+
79respawn
810expect stop
911
data/unity8.desktop.in−1
@@ -1,7 +1,6 @@
11[Desktop Entry]
22Type=Application
33Name=Unity 8
4−GenericName=unity8
54Comment=The converged Unity shell
65Exec=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_BINDIR@/unity8
76Terminal=false
data/unity8.overridedeleted−1
@@ -1 +0,0 @@
1−kill timeout 30
debian/changelog+39
@@ -1,3 +1,42 @@
1+unity8 (7.84+14.04.20140204-0ubuntu1) trusty; urgency=low
2+
3+ [ Michael Terry ]
4+ * Disable NM integration test, jenkins has a problem with it because
5+ logind isn't configured
6+
7+ [ Ubuntu daily release ]
8+ * New rebuild forced
9+
10+ [ Michał Sawicz ]
11+ * Add ubuntu-settings-components to build script. Revert workaround
12+ for bug #1268578, got fixed upstream. Drop GenericName from
13+ unity8.desktop. (LP: #1268578)
14+ * Improve Card and CardHeader layouts: anchor summary to art when no
15+ header. don't indent header when no mascot. reduce header and
16+ summary font sizes and weights. increase art shape radius .
17+ * Add doxygen-based documentation generator.
18+ * Add CardTool to determine category-wide card properties based on the
19+ category template. Clean up test configurations, too.
20+ * Move upstart kill timeout to the unity8 job itself.
21+ * Don't treat scope as active when preview open to inhibit model
22+ updates and reset processing on previewData changes. (LP: #1275832)
23+
24+ [ Leo Arias ]
25+ * Added the DashPreview autopilot helper.
26+
27+ [ Michał Karnicki ]
28+ * CardHeader mascot improvements.
29+
30+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 04 Feb 2014 14:09:14 +0000
31+
32+unity8 (7.84+14.04.20140130-0ubuntu1) trusty; urgency=low
33+
34+ [ Michał Sawicz ]
35+ * Bring back libunity-mir1, it's dlopen'ed, so not linked to unity8,
36+ so not in shlibs.
37+
38+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 30 Jan 2014 14:00:40 +0000
39+
140unity8 (7.84+14.04.20140129-0ubuntu1) trusty; urgency=low
241
342 [ Nick Dedekind ]
debian/control+11
@@ -5,6 +5,8 @@ Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
55Build-Depends: cmake,
66 dbus-test-runner,
77 debhelper (>= 9),
8+ doxyqml,
9+ graphviz,
810 libdee-qt5-dev (>= 3.2),
911 libgl1-mesa-dev[!armhf] | libgl-dev[!armhf],
1012 libgl1-mesa-dri,
@@ -74,6 +76,7 @@ Architecture: any
7476Provides: indicator-renderer,
7577Depends: gsettings-desktop-schemas,
7678 libglib2.0-bin,
79+ libunity-mir1,
7780 qmenumodel-qml (>= 0.2.7),
7881 qtdeclarative5-dee-plugin,
7982 qtdeclarative5-gsettings1.0,
@@ -140,3 +143,11 @@ Description: Unity 8 private libs
140143 .
141144 This package contains the private libraries for QML and other components
142145 only used by the shell.
146+
147+Package: unity8-doc
148+Section: doc
149+Architecture: all
150+Multi-Arch: foreign
151+Depends: ${misc:Depends},
152+Description: Documentation for Unity8
153+ The Unity 8 shell is the primary user interface for Ubuntu devices. (documentation)
debian/rules+4
@@ -21,6 +21,10 @@ override_dh_auto_configure:
2121 # So until Debian bug 719148 is fixed, do it ourselves.
2222 dh_auto_configure -- -DCMAKE_INSTALL_LOCALSTATEDIR="/var"
2323
24+override_dh_auto_build:
25+ # doc is not a default target
26+ dh_auto_build -- all doc
27+
2428override_dh_install:
2529 # install autopilot tests
2630 cd tests/autopilot; \
debian/unity8-autopilot.install−1
@@ -1,2 +1 @@
11usr/lib/python*/*/unity*
2−data/unity8.override usr/share/upstart/sessions
debian/unity8-doc.installnew file+1
@@ -0,0 +1 @@
1+usr/share/doc/unity8/*
doc/CMakeLists.txtnew file+38
@@ -0,0 +1,38 @@
1+#
2+# Documentation
3+#
4+
5+find_package(Doxygen)
6+find_program(DOT_EXECUTABLE dot /usr/bin)
7+find_program(DOXYQML_EXECUTABLE doxyqml /usr/bin)
8+if (NOT DOXYGEN_FOUND OR NOT DOT_EXECUTABLE OR NOT DOXYQML_EXECUTABLE)
9+ message(WARNING "Cannot generate documentation: doxygen, doxyqml and/or graphviz not found")
10+else()
11+ file(GLOB_RECURSE DOC_FILES
12+ ${CMAKE_BINARY_DIR}/include/*.h
13+ ${CMAKE_SOURCE_DIR}/include/*.h
14+ ${CMAKE_SOURCE_DIR}/src/*.h
15+ ${CMAKE_SOURCE_DIR}/src/*.cpp
16+ ${CMAKE_SOURCE_DIR}/plugins/*.h
17+ ${CMAKE_SOURCE_DIR}/plugins/*.cpp
18+ ${CMAKE_SOURCE_DIR}/qml/*.qml
19+ ${CMAKE_SOURCE_DIR}/qml/*.js
20+ ${CMAKE_SOURCE_DIR}/tests/autopilot/*.py
21+ ${CMAKE_SOURCE_DIR}/tests/utils/*.h
22+ ${CMAKE_SOURCE_DIR}/tests/utils/*.cpp
23+ ${CMAKE_SOURCE_DIR}/tests/utils/*.qml
24+ ${CMAKE_SOURCE_DIR}/tests/utils/*.js
25+ ${CMAKE_SOURCE_DIR}/tests/autopilot/unity8/shell/emulators/*.py
26+ ${CMAKE_SOURCE_DIR}/tests/autopilot/unity8/process_helpers.py)
27+
28+ string(REPLACE ";" " " DOXYGEN_INPUT "${DOC_FILES}")
29+
30+ configure_file(${PROJECT_SOURCE_DIR}/doc/Doxyfile.in ${PROJECT_BINARY_DIR}/doc/Doxyfile @ONLY IMMEDIATE)
31+ add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/doc/${PROJECT_NAME}/index.html
32+ COMMAND ${DOXYGEN_EXECUTABLE} ${PROJECT_BINARY_DIR}/doc/Doxyfile
33+ DEPENDS ${PROJECT_BINARY_DIR}/doc/Doxyfile ${DOC_FILES})
34+ add_custom_target(doc DEPENDS ${PROJECT_BINARY_DIR}/doc/${PROJECT_NAME}/index.html)
35+ install(DIRECTORY ${PROJECT_BINARY_DIR}/doc/${PROJECT_NAME}
36+ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/doc
37+ OPTIONAL)
38+endif()
doc/Doxyfile.innew file+2317
@@ -0,0 +1,2317 @@
1+# Doxyfile 1.8.6
2+
3+# This file describes the settings to be used by the documentation system
4+# doxygen (www.doxygen.org) for a project.
5+#
6+# All text after a double hash (##) is considered a comment and is placed in
7+# front of the TAG it is preceding.
8+#
9+# All text after a single hash (#) is considered a comment and will be ignored.
10+# The format is:
11+# TAG = value [value, ...]
12+# For lists, items can also be appended using:
13+# TAG += value [value, ...]
14+# Values that contain spaces should be placed between quotes (\" \").
15+
16+#---------------------------------------------------------------------------
17+# Project related configuration options
18+#---------------------------------------------------------------------------
19+
20+# This tag specifies the encoding used for all characters in the config file
21+# that follow. The default is UTF-8 which is also the encoding used for all text
22+# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
23+# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
24+# for the list of possible encodings.
25+# The default value is: UTF-8.
26+
27+DOXYFILE_ENCODING = UTF-8
28+
29+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
30+# double-quotes, unless you are using Doxywizard) that should identify the
31+# project for which the documentation is generated. This name is used in the
32+# title of most generated pages and in a few other places.
33+# The default value is: My Project.
34+
35+PROJECT_NAME = "Unity 8"
36+
37+# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
38+# could be handy for archiving the generated documentation or if some version
39+# control system is used.
40+
41+PROJECT_NUMBER =
42+
43+# Using the PROJECT_BRIEF tag one can provide an optional one line description
44+# for a project that appears at the top of each page and should give viewer a
45+# quick idea about the purpose of the project. Keep the description short.
46+
47+PROJECT_BRIEF =
48+
49+# With the PROJECT_LOGO tag one can specify an logo or icon that is included in
50+# the documentation. The maximum height of the logo should not exceed 55 pixels
51+# and the maximum width should not exceed 200 pixels. Doxygen will copy the logo
52+# to the output directory.
53+
54+PROJECT_LOGO =
55+
56+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
57+# into which the generated documentation will be written. If a relative path is
58+# entered, it will be relative to the location where doxygen was started. If
59+# left blank the current directory will be used.
60+
61+OUTPUT_DIRECTORY = @PROJECT_BINARY_DIR@/doc
62+
63+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub-
64+# directories (in 2 levels) under the output directory of each output format and
65+# will distribute the generated files over these directories. Enabling this
66+# option can be useful when feeding doxygen a huge amount of source files, where
67+# putting all generated files in the same directory would otherwise causes
68+# performance problems for the file system.
69+# The default value is: NO.
70+
71+CREATE_SUBDIRS = NO
72+
73+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
74+# documentation generated by doxygen is written. Doxygen will use this
75+# information to generate all constant output in the proper language.
76+# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
77+# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
78+# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
79+# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
80+# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
81+# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
82+# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
83+# Ukrainian and Vietnamese.
84+# The default value is: English.
85+
86+OUTPUT_LANGUAGE = English
87+
88+# If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member
89+# descriptions after the members that are listed in the file and class
90+# documentation (similar to Javadoc). Set to NO to disable this.
91+# The default value is: YES.
92+
93+BRIEF_MEMBER_DESC = YES
94+
95+# If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief
96+# description of a member or function before the detailed description
97+#
98+# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
99+# brief descriptions will be completely suppressed.
100+# The default value is: YES.
101+
102+REPEAT_BRIEF = YES
103+
104+# This tag implements a quasi-intelligent brief description abbreviator that is
105+# used to form the text in various listings. Each string in this list, if found
106+# as the leading text of the brief description, will be stripped from the text
107+# and the result, after processing the whole list, is used as the annotated
108+# text. Otherwise, the brief description is used as-is. If left blank, the
109+# following values are used ($name is automatically replaced with the name of
110+# the entity):The $name class, The $name widget, The $name file, is, provides,
111+# specifies, contains, represents, a, an and the.
112+
113+ABBREVIATE_BRIEF = "The $name class" \
114+ "The $name widget" \
115+ "The $name file" \
116+ is \
117+ provides \
118+ specifies \
119+ contains \
120+ represents \
121+ a \
122+ an \
123+ the
124+
125+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
126+# doxygen will generate a detailed section even if there is only a brief
127+# description.
128+# The default value is: NO.
129+
130+ALWAYS_DETAILED_SEC = NO
131+
132+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
133+# inherited members of a class in the documentation of that class as if those
134+# members were ordinary class members. Constructors, destructors and assignment
135+# operators of the base classes will not be shown.
136+# The default value is: NO.
137+
138+INLINE_INHERITED_MEMB = NO
139+
140+# If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path
141+# before files name in the file list and in the header files. If set to NO the
142+# shortest path that makes the file name unique will be used
143+# The default value is: YES.
144+
145+FULL_PATH_NAMES = YES
146+
147+# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
148+# Stripping is only done if one of the specified strings matches the left-hand
149+# part of the path. The tag can be used to show relative paths in the file list.
150+# If left blank the directory from which doxygen is run is used as the path to
151+# strip.
152+#
153+# Note that you can specify absolute paths here, but also relative paths, which
154+# will be relative from the directory where doxygen is started.
155+# This tag requires that the tag FULL_PATH_NAMES is set to YES.
156+
157+STRIP_FROM_PATH = @PROJECT_SOURCE_DIR@ @PROJECT_BINARY_DIR@
158+
159+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
160+# path mentioned in the documentation of a class, which tells the reader which
161+# header file to include in order to use a class. If left blank only the name of
162+# the header file containing the class definition is used. Otherwise one should
163+# specify the list of include paths that are normally passed to the compiler
164+# using the -I flag.
165+
166+STRIP_FROM_INC_PATH = @PROJECT_SOURCE_DIR@ @PROJECT_BINARY_DIR@
167+
168+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
169+# less readable) file names. This can be useful is your file systems doesn't
170+# support long names like on DOS, Mac, or CD-ROM.
171+# The default value is: NO.
172+
173+SHORT_NAMES = NO
174+
175+# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
176+# first line (until the first dot) of a Javadoc-style comment as the brief
177+# description. If set to NO, the Javadoc-style will behave just like regular Qt-
178+# style comments (thus requiring an explicit @brief command for a brief
179+# description.)
180+# The default value is: NO.
181+
182+JAVADOC_AUTOBRIEF = NO
183+
184+# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
185+# line (until the first dot) of a Qt-style comment as the brief description. If
186+# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
187+# requiring an explicit \brief command for a brief description.)
188+# The default value is: NO.
189+
190+QT_AUTOBRIEF = NO
191+
192+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
193+# multi-line C++ special comment block (i.e. a block of //! or /// comments) as
194+# a brief description. This used to be the default behavior. The new default is
195+# to treat a multi-line C++ comment block as a detailed description. Set this
196+# tag to YES if you prefer the old behavior instead.
197+#
198+# Note that setting this tag to YES also means that rational rose comments are
199+# not recognized any more.
200+# The default value is: NO.
201+
202+MULTILINE_CPP_IS_BRIEF = NO
203+
204+# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
205+# documentation from any documented member that it re-implements.
206+# The default value is: YES.
207+
208+INHERIT_DOCS = YES
209+
210+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a
211+# new page for each member. If set to NO, the documentation of a member will be
212+# part of the file/class/namespace that contains it.
213+# The default value is: NO.
214+
215+SEPARATE_MEMBER_PAGES = NO
216+
217+# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
218+# uses this value to replace tabs by spaces in code fragments.
219+# Minimum value: 1, maximum value: 16, default value: 4.
220+
221+TAB_SIZE = 4
222+
223+# This tag can be used to specify a number of aliases that act as commands in
224+# the documentation. An alias has the form:
225+# name=value
226+# For example adding
227+# "sideeffect=@par Side Effects:\n"
228+# will allow you to put the command \sideeffect (or @sideeffect) in the
229+# documentation, which will result in a user-defined paragraph with heading
230+# "Side Effects:". You can put \n's in the value part of an alias to insert
231+# newlines.
232+
233+ALIASES = "accessors=\par Accessors:\n" "notifier=\par Notifier:\n"
234+
235+# This tag can be used to specify a number of word-keyword mappings (TCL only).
236+# A mapping has the form "name=value". For example adding "class=itcl::class"
237+# will allow you to use the command class in the itcl::class meaning.
238+
239+TCL_SUBST =
240+
241+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
242+# only. Doxygen will then generate output that is more tailored for C. For
243+# instance, some of the names that are used will be different. The list of all
244+# members will be omitted, etc.
245+# The default value is: NO.
246+
247+OPTIMIZE_OUTPUT_FOR_C = NO
248+
249+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
250+# Python sources only. Doxygen will then generate output that is more tailored
251+# for that language. For instance, namespaces will be presented as packages,
252+# qualified scopes will look different, etc.
253+# The default value is: NO.
254+
255+OPTIMIZE_OUTPUT_JAVA = NO
256+
257+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
258+# sources. Doxygen will then generate output that is tailored for Fortran.
259+# The default value is: NO.
260+
261+OPTIMIZE_FOR_FORTRAN = NO
262+
263+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
264+# sources. Doxygen will then generate output that is tailored for VHDL.
265+# The default value is: NO.
266+
267+OPTIMIZE_OUTPUT_VHDL = NO
268+
269+# Doxygen selects the parser to use depending on the extension of the files it
270+# parses. With this tag you can assign which parser to use for a given
271+# extension. Doxygen has a built-in mapping, but you can override or extend it
272+# using this tag. The format is ext=language, where ext is a file extension, and
273+# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
274+# C#, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL. For instance to make
275+# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
276+# (default is Fortran), use: inc=Fortran f=C.
277+#
278+# Note For files without extension you can use no_extension as a placeholder.
279+#
280+# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
281+# the files are not read by doxygen.
282+
283+EXTENSION_MAPPING =
284+
285+# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
286+# according to the Markdown format, which allows for more readable
287+# documentation. See http://daringfireball.net/projects/markdown/ for details.
288+# The output of markdown processing is further processed by doxygen, so you can
289+# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
290+# case of backward compatibilities issues.
291+# The default value is: YES.
292+
293+MARKDOWN_SUPPORT = YES
294+
295+# When enabled doxygen tries to link words that correspond to documented
296+# classes, or namespaces to their corresponding documentation. Such a link can
297+# be prevented in individual cases by by putting a % sign in front of the word
298+# or globally by setting AUTOLINK_SUPPORT to NO.
299+# The default value is: YES.
300+
301+AUTOLINK_SUPPORT = YES
302+
303+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
304+# to include (a tag file for) the STL sources as input, then you should set this
305+# tag to YES in order to let doxygen match functions declarations and
306+# definitions whose arguments contain STL classes (e.g. func(std::string);
307+# versus func(std::string) {}). This also make the inheritance and collaboration
308+# diagrams that involve STL classes more complete and accurate.
309+# The default value is: NO.
310+
311+BUILTIN_STL_SUPPORT = NO
312+
313+# If you use Microsoft's C++/CLI language, you should set this option to YES to
314+# enable parsing support.
315+# The default value is: NO.
316+
317+CPP_CLI_SUPPORT = NO
318+
319+# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
320+# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
321+# will parse them like normal C++ but will assume all classes use public instead
322+# of private inheritance when no explicit protection keyword is present.
323+# The default value is: NO.
324+
325+SIP_SUPPORT = NO
326+
327+# For Microsoft's IDL there are propget and propput attributes to indicate
328+# getter and setter methods for a property. Setting this option to YES will make
329+# doxygen to replace the get and set methods by a property in the documentation.
330+# This will only work if the methods are indeed getting or setting a simple
331+# type. If this is not the case, or you want to show the methods anyway, you
332+# should set this option to NO.
333+# The default value is: YES.
334+
335+IDL_PROPERTY_SUPPORT = YES
336+
337+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
338+# tag is set to YES, then doxygen will reuse the documentation of the first
339+# member in the group (if any) for the other members of the group. By default
340+# all members of a group must be documented explicitly.
341+# The default value is: NO.
342+
343+DISTRIBUTE_GROUP_DOC = NO
344+
345+# Set the SUBGROUPING tag to YES to allow class member groups of the same type
346+# (for instance a group of public functions) to be put as a subgroup of that
347+# type (e.g. under the Public Functions section). Set it to NO to prevent
348+# subgrouping. Alternatively, this can be done per class using the
349+# \nosubgrouping command.
350+# The default value is: YES.
351+
352+SUBGROUPING = YES
353+
354+# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
355+# are shown inside the group in which they are included (e.g. using \ingroup)
356+# instead of on a separate page (for HTML and Man pages) or section (for LaTeX
357+# and RTF).
358+#
359+# Note that this feature does not work in combination with
360+# SEPARATE_MEMBER_PAGES.
361+# The default value is: NO.
362+
363+INLINE_GROUPED_CLASSES = NO
364+
365+# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
366+# with only public data fields or simple typedef fields will be shown inline in
367+# the documentation of the scope in which they are defined (i.e. file,
368+# namespace, or group documentation), provided this scope is documented. If set
369+# to NO, structs, classes, and unions are shown on a separate page (for HTML and
370+# Man pages) or section (for LaTeX and RTF).
371+# The default value is: NO.
372+
373+INLINE_SIMPLE_STRUCTS = NO
374+
375+# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
376+# enum is documented as struct, union, or enum with the name of the typedef. So
377+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
378+# with name TypeT. When disabled the typedef will appear as a member of a file,
379+# namespace, or class. And the struct will be named TypeS. This can typically be
380+# useful for C code in case the coding convention dictates that all compound
381+# types are typedef'ed and only the typedef is referenced, never the tag name.
382+# The default value is: NO.
383+
384+TYPEDEF_HIDES_STRUCT = NO
385+
386+# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
387+# cache is used to resolve symbols given their name and scope. Since this can be
388+# an expensive process and often the same symbol appears multiple times in the
389+# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
390+# doxygen will become slower. If the cache is too large, memory is wasted. The
391+# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
392+# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
393+# symbols. At the end of a run doxygen will report the cache usage and suggest
394+# the optimal cache size from a speed point of view.
395+# Minimum value: 0, maximum value: 9, default value: 0.
396+
397+LOOKUP_CACHE_SIZE = 0
398+
399+#---------------------------------------------------------------------------
400+# Build related configuration options
401+#---------------------------------------------------------------------------
402+
403+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
404+# documentation are documented, even if no documentation was available. Private
405+# class members and static file members will be hidden unless the
406+# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
407+# Note: This will also disable the warnings about undocumented members that are
408+# normally produced when WARNINGS is set to YES.
409+# The default value is: NO.
410+
411+EXTRACT_ALL = NO
412+
413+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class will
414+# be included in the documentation.
415+# The default value is: NO.
416+
417+EXTRACT_PRIVATE = NO
418+
419+# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal
420+# scope will be included in the documentation.
421+# The default value is: NO.
422+
423+EXTRACT_PACKAGE = NO
424+
425+# If the EXTRACT_STATIC tag is set to YES all static members of a file will be
426+# included in the documentation.
427+# The default value is: NO.
428+
429+EXTRACT_STATIC = NO
430+
431+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined
432+# locally in source files will be included in the documentation. If set to NO
433+# only classes defined in header files are included. Does not have any effect
434+# for Java sources.
435+# The default value is: YES.
436+
437+EXTRACT_LOCAL_CLASSES = YES
438+
439+# This flag is only useful for Objective-C code. When set to YES local methods,
440+# which are defined in the implementation section but not in the interface are
441+# included in the documentation. If set to NO only methods in the interface are
442+# included.
443+# The default value is: NO.
444+
445+EXTRACT_LOCAL_METHODS = NO
446+
447+# If this flag is set to YES, the members of anonymous namespaces will be
448+# extracted and appear in the documentation as a namespace called
449+# 'anonymous_namespace{file}', where file will be replaced with the base name of
450+# the file that contains the anonymous namespace. By default anonymous namespace
451+# are hidden.
452+# The default value is: NO.
453+
454+EXTRACT_ANON_NSPACES = NO
455+
456+# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
457+# undocumented members inside documented classes or files. If set to NO these
458+# members will be included in the various overviews, but no documentation
459+# section is generated. This option has no effect if EXTRACT_ALL is enabled.
460+# The default value is: NO.
461+
462+HIDE_UNDOC_MEMBERS = NO
463+
464+# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
465+# undocumented classes that are normally visible in the class hierarchy. If set
466+# to NO these classes will be included in the various overviews. This option has
467+# no effect if EXTRACT_ALL is enabled.
468+# The default value is: NO.
469+
470+HIDE_UNDOC_CLASSES = YES
471+
472+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
473+# (class|struct|union) declarations. If set to NO these declarations will be
474+# included in the documentation.
475+# The default value is: NO.
476+
477+HIDE_FRIEND_COMPOUNDS = NO
478+
479+# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
480+# documentation blocks found inside the body of a function. If set to NO these
481+# blocks will be appended to the function's detailed documentation block.
482+# The default value is: NO.
483+
484+HIDE_IN_BODY_DOCS = NO
485+
486+# The INTERNAL_DOCS tag determines if documentation that is typed after a
487+# \internal command is included. If the tag is set to NO then the documentation
488+# will be excluded. Set it to YES to include the internal documentation.
489+# The default value is: NO.
490+
491+INTERNAL_DOCS = NO
492+
493+# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
494+# names in lower-case letters. If set to YES upper-case letters are also
495+# allowed. This is useful if you have classes or files whose names only differ
496+# in case and if your file system supports case sensitive file names. Windows
497+# and Mac users are advised to set this option to NO.
498+# The default value is: system dependent.
499+
500+CASE_SENSE_NAMES = NO
501+
502+# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
503+# their full class and namespace scopes in the documentation. If set to YES the
504+# scope will be hidden.
505+# The default value is: NO.
506+
507+HIDE_SCOPE_NAMES = NO
508+
509+# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
510+# the files that are included by a file in the documentation of that file.
511+# The default value is: YES.
512+
513+SHOW_INCLUDE_FILES = YES
514+
515+# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
516+# grouped member an include statement to the documentation, telling the reader
517+# which file to include in order to use the member.
518+# The default value is: NO.
519+
520+SHOW_GROUPED_MEMB_INC = NO
521+
522+# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
523+# files with double quotes in the documentation rather than with sharp brackets.
524+# The default value is: NO.
525+
526+FORCE_LOCAL_INCLUDES = NO
527+
528+# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
529+# documentation for inline members.
530+# The default value is: YES.
531+
532+INLINE_INFO = YES
533+
534+# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
535+# (detailed) documentation of file and class members alphabetically by member
536+# name. If set to NO the members will appear in declaration order.
537+# The default value is: YES.
538+
539+SORT_MEMBER_DOCS = YES
540+
541+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
542+# descriptions of file, namespace and class members alphabetically by member
543+# name. If set to NO the members will appear in declaration order. Note that
544+# this will also influence the order of the classes in the class list.
545+# The default value is: NO.
546+
547+SORT_BRIEF_DOCS = NO
548+
549+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
550+# (brief and detailed) documentation of class members so that constructors and
551+# destructors are listed first. If set to NO the constructors will appear in the
552+# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
553+# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
554+# member documentation.
555+# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
556+# detailed member documentation.
557+# The default value is: NO.
558+
559+SORT_MEMBERS_CTORS_1ST = NO
560+
561+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
562+# of group names into alphabetical order. If set to NO the group names will
563+# appear in their defined order.
564+# The default value is: NO.
565+
566+SORT_GROUP_NAMES = NO
567+
568+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
569+# fully-qualified names, including namespaces. If set to NO, the class list will
570+# be sorted only by class name, not including the namespace part.
571+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
572+# Note: This option applies only to the class list, not to the alphabetical
573+# list.
574+# The default value is: NO.
575+
576+SORT_BY_SCOPE_NAME = NO
577+
578+# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
579+# type resolution of all parameters of a function it will reject a match between
580+# the prototype and the implementation of a member function even if there is
581+# only one candidate or it is obvious which candidate to choose by doing a
582+# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
583+# accept a match between prototype and implementation in such cases.
584+# The default value is: NO.
585+
586+STRICT_PROTO_MATCHING = NO
587+
588+# The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the
589+# todo list. This list is created by putting \todo commands in the
590+# documentation.
591+# The default value is: YES.
592+
593+GENERATE_TODOLIST = YES
594+
595+# The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the
596+# test list. This list is created by putting \test commands in the
597+# documentation.
598+# The default value is: YES.
599+
600+GENERATE_TESTLIST = YES
601+
602+# The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug
603+# list. This list is created by putting \bug commands in the documentation.
604+# The default value is: YES.
605+
606+GENERATE_BUGLIST = YES
607+
608+# The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO)
609+# the deprecated list. This list is created by putting \deprecated commands in
610+# the documentation.
611+# The default value is: YES.
612+
613+GENERATE_DEPRECATEDLIST= YES
614+
615+# The ENABLED_SECTIONS tag can be used to enable conditional documentation
616+# sections, marked by \if <section_label> ... \endif and \cond <section_label>
617+# ... \endcond blocks.
618+
619+ENABLED_SECTIONS =
620+
621+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
622+# initial value of a variable or macro / define can have for it to appear in the
623+# documentation. If the initializer consists of more lines than specified here
624+# it will be hidden. Use a value of 0 to hide initializers completely. The
625+# appearance of the value of individual variables and macros / defines can be
626+# controlled using \showinitializer or \hideinitializer command in the
627+# documentation regardless of this setting.
628+# Minimum value: 0, maximum value: 10000, default value: 30.
629+
630+MAX_INITIALIZER_LINES = 30
631+
632+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
633+# the bottom of the documentation of classes and structs. If set to YES the list
634+# will mention the files that were used to generate the documentation.
635+# The default value is: YES.
636+
637+SHOW_USED_FILES = YES
638+
639+# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
640+# will remove the Files entry from the Quick Index and from the Folder Tree View
641+# (if specified).
642+# The default value is: YES.
643+
644+SHOW_FILES = YES
645+
646+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
647+# page. This will remove the Namespaces entry from the Quick Index and from the
648+# Folder Tree View (if specified).
649+# The default value is: YES.
650+
651+SHOW_NAMESPACES = YES
652+
653+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
654+# doxygen should invoke to get the current version for each file (typically from
655+# the version control system). Doxygen will invoke the program by executing (via
656+# popen()) the command command input-file, where command is the value of the
657+# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
658+# by doxygen. Whatever the program writes to standard output is used as the file
659+# version. For an example see the documentation.
660+
661+FILE_VERSION_FILTER =
662+
663+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
664+# by doxygen. The layout file controls the global structure of the generated
665+# output files in an output format independent way. To create the layout file
666+# that represents doxygen's defaults, run doxygen with the -l option. You can
667+# optionally specify a file name after the option, if omitted DoxygenLayout.xml
668+# will be used as the name of the layout file.
669+#
670+# Note that if you run doxygen from a directory containing a file called
671+# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
672+# tag is left empty.
673+
674+LAYOUT_FILE =
675+
676+# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
677+# the reference definitions. This must be a list of .bib files. The .bib
678+# extension is automatically appended if omitted. This requires the bibtex tool
679+# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
680+# For LaTeX the style of the bibliography can be controlled using
681+# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
682+# search path. Do not use file names with spaces, bibtex cannot handle them. See
683+# also \cite for info how to create references.
684+
685+CITE_BIB_FILES =
686+
687+#---------------------------------------------------------------------------
688+# Configuration options related to warning and progress messages
689+#---------------------------------------------------------------------------
690+
691+# The QUIET tag can be used to turn on/off the messages that are generated to
692+# standard output by doxygen. If QUIET is set to YES this implies that the
693+# messages are off.
694+# The default value is: NO.
695+
696+QUIET = YES
697+
698+# The WARNINGS tag can be used to turn on/off the warning messages that are
699+# generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES
700+# this implies that the warnings are on.
701+#
702+# Tip: Turn warnings on while writing the documentation.
703+# The default value is: YES.
704+
705+WARNINGS = YES
706+
707+# If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate
708+# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
709+# will automatically be disabled.
710+# The default value is: YES.
711+
712+WARN_IF_UNDOCUMENTED = NO
713+
714+# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
715+# potential errors in the documentation, such as not documenting some parameters
716+# in a documented function, or documenting parameters that don't exist or using
717+# markup commands wrongly.
718+# The default value is: YES.
719+
720+WARN_IF_DOC_ERROR = YES
721+
722+# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
723+# are documented, but have no documentation for their parameters or return
724+# value. If set to NO doxygen will only warn about wrong or incomplete parameter
725+# documentation, but not about the absence of documentation.
726+# The default value is: NO.
727+
728+WARN_NO_PARAMDOC = NO
729+
730+# The WARN_FORMAT tag determines the format of the warning messages that doxygen
731+# can produce. The string should contain the $file, $line, and $text tags, which
732+# will be replaced by the file and line number from which the warning originated
733+# and the warning text. Optionally the format may contain $version, which will
734+# be replaced by the version of the file (if it could be obtained via
735+# FILE_VERSION_FILTER)
736+# The default value is: $file:$line: $text.
737+
738+WARN_FORMAT = "$file:$line: $text"
739+
740+# The WARN_LOGFILE tag can be used to specify a file to which warning and error
741+# messages should be written. If left blank the output is written to standard
742+# error (stderr).
743+
744+WARN_LOGFILE =
745+
746+#---------------------------------------------------------------------------
747+# Configuration options related to the input files
748+#---------------------------------------------------------------------------
749+
750+# The INPUT tag is used to specify the files and/or directories that contain
751+# documented source files. You may enter file names like myfile.cpp or
752+# directories like /usr/src/myproject. Separate the files or directories with
753+# spaces.
754+# Note: If this tag is empty the current directory is searched.
755+
756+INPUT = @DOXYGEN_INPUT@
757+
758+# This tag can be used to specify the character encoding of the source files
759+# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
760+# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
761+# documentation (see: http://www.gnu.org/software/libiconv) for the list of
762+# possible encodings.
763+# The default value is: UTF-8.
764+
765+INPUT_ENCODING = UTF-8
766+
767+# If the value of the INPUT tag contains directories, you can use the
768+# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
769+# *.h) to filter out the source-files in the directories. If left blank the
770+# following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii,
771+# *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp,
772+# *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown,
773+# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,
774+# *.qsf, *.as and *.js.
775+
776+FILE_PATTERNS = *.cpp \
777+ *.h \
778+ *.py \
779+ *.js \
780+ *.qml
781+
782+# The RECURSIVE tag can be used to specify whether or not subdirectories should
783+# be searched for input files as well.
784+# The default value is: NO.
785+
786+RECURSIVE = YES
787+
788+# The EXCLUDE tag can be used to specify files and/or directories that should be
789+# excluded from the INPUT source files. This way you can easily exclude a
790+# subdirectory from a directory tree whose root is specified with the INPUT tag.
791+#
792+# Note that relative paths are relative to the directory from which doxygen is
793+# run.
794+
795+EXCLUDE =
796+
797+# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
798+# directories that are symbolic links (a Unix file system feature) are excluded
799+# from the input.
800+# The default value is: NO.
801+
802+EXCLUDE_SYMLINKS = NO
803+
804+# If the value of the INPUT tag contains directories, you can use the
805+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
806+# certain files from those directories.
807+#
808+# Note that the wildcards are matched against the file with absolute path, so to
809+# exclude all test directories for example use the pattern */test/*
810+
811+EXCLUDE_PATTERNS =
812+
813+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
814+# (namespaces, classes, functions, etc.) that should be excluded from the
815+# output. The symbol name can be a fully qualified name, a word, or if the
816+# wildcard * is used, a substring. Examples: ANamespace, AClass,
817+# AClass::ANamespace, ANamespace::*Test
818+#
819+# Note that the wildcards are matched against the file with absolute path, so to
820+# exclude all test directories use the pattern */test/*
821+
822+EXCLUDE_SYMBOLS =
823+
824+# The EXAMPLE_PATH tag can be used to specify one or more files or directories
825+# that contain example code fragments that are included (see the \include
826+# command).
827+
828+EXAMPLE_PATH =
829+
830+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
831+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
832+# *.h) to filter out the source-files in the directories. If left blank all
833+# files are included.
834+
835+EXAMPLE_PATTERNS =
836+
837+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
838+# searched for input files to be used with the \include or \dontinclude commands
839+# irrespective of the value of the RECURSIVE tag.
840+# The default value is: NO.
841+
842+EXAMPLE_RECURSIVE = NO
843+
844+# The IMAGE_PATH tag can be used to specify one or more files or directories
845+# that contain images that are to be included in the documentation (see the
846+# \image command).
847+
848+IMAGE_PATH =
849+
850+# The INPUT_FILTER tag can be used to specify a program that doxygen should
851+# invoke to filter for each input file. Doxygen will invoke the filter program
852+# by executing (via popen()) the command:
853+#
854+# <filter> <input-file>
855+#
856+# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
857+# name of an input file. Doxygen will then use the output that the filter
858+# program writes to standard output. If FILTER_PATTERNS is specified, this tag
859+# will be ignored.
860+#
861+# Note that the filter must not add or remove lines; it is applied before the
862+# code is scanned, but not when the output code is generated. If lines are added
863+# or removed, the anchors will not be placed correctly.
864+
865+INPUT_FILTER =
866+
867+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
868+# basis. Doxygen will compare the file name with each pattern and apply the
869+# filter if there is a match. The filters are a list of the form: pattern=filter
870+# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
871+# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
872+# patterns match the file name, INPUT_FILTER is applied.
873+
874+FILTER_PATTERNS = *.qml=doxyqml
875+
876+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
877+# INPUT_FILTER ) will also be used to filter the input files that are used for
878+# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
879+# The default value is: NO.
880+
881+FILTER_SOURCE_FILES = NO
882+
883+# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
884+# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
885+# it is also possible to disable source filtering for a specific pattern using
886+# *.ext= (so without naming a filter).
887+# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
888+
889+FILTER_SOURCE_PATTERNS =
890+
891+# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
892+# is part of the input, its contents will be placed on the main page
893+# (index.html). This can be useful if you have a project on for instance GitHub
894+# and want to reuse the introduction page also for the doxygen output.
895+
896+USE_MDFILE_AS_MAINPAGE =
897+
898+#---------------------------------------------------------------------------
899+# Configuration options related to source browsing
900+#---------------------------------------------------------------------------
901+
902+# If the SOURCE_BROWSER tag is set to YES then a list of source files will be
903+# generated. Documented entities will be cross-referenced with these sources.
904+#
905+# Note: To get rid of all source code in the generated output, make sure that
906+# also VERBATIM_HEADERS is set to NO.
907+# The default value is: NO.
908+
909+SOURCE_BROWSER = YES
910+
911+# Setting the INLINE_SOURCES tag to YES will include the body of functions,
912+# classes and enums directly into the documentation.
913+# The default value is: NO.
914+
915+INLINE_SOURCES = YES
916+
917+# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
918+# special comment blocks from generated source code fragments. Normal C, C++ and
919+# Fortran comments will always remain visible.
920+# The default value is: YES.
921+
922+STRIP_CODE_COMMENTS = YES
923+
924+# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
925+# function all documented functions referencing it will be listed.
926+# The default value is: NO.
927+
928+REFERENCED_BY_RELATION = NO
929+
930+# If the REFERENCES_RELATION tag is set to YES then for each documented function
931+# all documented entities called/used by that function will be listed.
932+# The default value is: NO.
933+
934+REFERENCES_RELATION = NO
935+
936+# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
937+# to YES, then the hyperlinks from functions in REFERENCES_RELATION and
938+# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
939+# link to the documentation.
940+# The default value is: YES.
941+
942+REFERENCES_LINK_SOURCE = YES
943+
944+# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
945+# source code will show a tooltip with additional information such as prototype,
946+# brief description and links to the definition and documentation. Since this
947+# will make the HTML file larger and loading of large files a bit slower, you
948+# can opt to disable this feature.
949+# The default value is: YES.
950+# This tag requires that the tag SOURCE_BROWSER is set to YES.
951+
952+SOURCE_TOOLTIPS = YES
953+
954+# If the USE_HTAGS tag is set to YES then the references to source code will
955+# point to the HTML generated by the htags(1) tool instead of doxygen built-in
956+# source browser. The htags tool is part of GNU's global source tagging system
957+# (see http://www.gnu.org/software/global/global.html). You will need version
958+# 4.8.6 or higher.
959+#
960+# To use it do the following:
961+# - Install the latest version of global
962+# - Enable SOURCE_BROWSER and USE_HTAGS in the config file
963+# - Make sure the INPUT points to the root of the source tree
964+# - Run doxygen as normal
965+#
966+# Doxygen will invoke htags (and that will in turn invoke gtags), so these
967+# tools must be available from the command line (i.e. in the search path).
968+#
969+# The result: instead of the source browser generated by doxygen, the links to
970+# source code will now point to the output of htags.
971+# The default value is: NO.
972+# This tag requires that the tag SOURCE_BROWSER is set to YES.
973+
974+USE_HTAGS = NO
975+
976+# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
977+# verbatim copy of the header file for each class for which an include is
978+# specified. Set to NO to disable this.
979+# See also: Section \class.
980+# The default value is: YES.
981+
982+VERBATIM_HEADERS = YES
983+
984+#---------------------------------------------------------------------------
985+# Configuration options related to the alphabetical class index
986+#---------------------------------------------------------------------------
987+
988+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
989+# compounds will be generated. Enable this if the project contains a lot of
990+# classes, structs, unions or interfaces.
991+# The default value is: YES.
992+
993+ALPHABETICAL_INDEX = YES
994+
995+# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
996+# which the alphabetical index list will be split.
997+# Minimum value: 1, maximum value: 20, default value: 5.
998+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
999+
1000+COLS_IN_ALPHA_INDEX = 5
1001+
1002+# In case all classes in a project start with a common prefix, all classes will
1003+# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
1004+# can be used to specify a prefix (or a list of prefixes) that should be ignored
1005+# while generating the index headers.
1006+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
1007+
1008+IGNORE_PREFIX =
1009+
1010+#---------------------------------------------------------------------------
1011+# Configuration options related to the HTML output
1012+#---------------------------------------------------------------------------
1013+
1014+# If the GENERATE_HTML tag is set to YES doxygen will generate HTML output
1015+# The default value is: YES.
1016+
1017+GENERATE_HTML = YES
1018+
1019+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
1020+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
1021+# it.
1022+# The default directory is: html.
1023+# This tag requires that the tag GENERATE_HTML is set to YES.
1024+
1025+HTML_OUTPUT = unity8
1026+
1027+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
1028+# generated HTML page (for example: .htm, .php, .asp).
1029+# The default value is: .html.
1030+# This tag requires that the tag GENERATE_HTML is set to YES.
1031+
1032+HTML_FILE_EXTENSION = .html
1033+
1034+# The HTML_HEADER tag can be used to specify a user-defined HTML header file for
1035+# each generated HTML page. If the tag is left blank doxygen will generate a
1036+# standard header.
1037+#
1038+# To get valid HTML the header file that includes any scripts and style sheets
1039+# that doxygen needs, which is dependent on the configuration options used (e.g.
1040+# the setting GENERATE_TREEVIEW). It is highly recommended to start with a
1041+# default header using
1042+# doxygen -w html new_header.html new_footer.html new_stylesheet.css
1043+# YourConfigFile
1044+# and then modify the file new_header.html. See also section "Doxygen usage"
1045+# for information on how to generate the default header that doxygen normally
1046+# uses.
1047+# Note: The header is subject to change so you typically have to regenerate the
1048+# default header when upgrading to a newer version of doxygen. For a description
1049+# of the possible markers and block names see the documentation.
1050+# This tag requires that the tag GENERATE_HTML is set to YES.
1051+
1052+HTML_HEADER =
1053+
1054+# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
1055+# generated HTML page. If the tag is left blank doxygen will generate a standard
1056+# footer. See HTML_HEADER for more information on how to generate a default
1057+# footer and what special commands can be used inside the footer. See also
1058+# section "Doxygen usage" for information on how to generate the default footer
1059+# that doxygen normally uses.
1060+# This tag requires that the tag GENERATE_HTML is set to YES.
1061+
1062+HTML_FOOTER =
1063+
1064+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
1065+# sheet that is used by each HTML page. It can be used to fine-tune the look of
1066+# the HTML output. If left blank doxygen will generate a default style sheet.
1067+# See also section "Doxygen usage" for information on how to generate the style
1068+# sheet that doxygen normally uses.
1069+# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
1070+# it is more robust and this tag (HTML_STYLESHEET) will in the future become
1071+# obsolete.
1072+# This tag requires that the tag GENERATE_HTML is set to YES.
1073+
1074+HTML_STYLESHEET =
1075+
1076+# The HTML_EXTRA_STYLESHEET tag can be used to specify an additional user-
1077+# defined cascading style sheet that is included after the standard style sheets
1078+# created by doxygen. Using this option one can overrule certain style aspects.
1079+# This is preferred over using HTML_STYLESHEET since it does not replace the
1080+# standard style sheet and is therefor more robust against future updates.
1081+# Doxygen will copy the style sheet file to the output directory. For an example
1082+# see the documentation.
1083+# This tag requires that the tag GENERATE_HTML is set to YES.
1084+
1085+HTML_EXTRA_STYLESHEET =
1086+
1087+# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
1088+# other source files which should be copied to the HTML output directory. Note
1089+# that these files will be copied to the base HTML output directory. Use the
1090+# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
1091+# files. In the HTML_STYLESHEET file, use the file name only. Also note that the
1092+# files will be copied as-is; there are no commands or markers available.
1093+# This tag requires that the tag GENERATE_HTML is set to YES.
1094+
1095+HTML_EXTRA_FILES =
1096+
1097+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
1098+# will adjust the colors in the stylesheet and background images according to
1099+# this color. Hue is specified as an angle on a colorwheel, see
1100+# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
1101+# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
1102+# purple, and 360 is red again.
1103+# Minimum value: 0, maximum value: 359, default value: 220.
1104+# This tag requires that the tag GENERATE_HTML is set to YES.
1105+
1106+HTML_COLORSTYLE_HUE = 220
1107+
1108+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
1109+# in the HTML output. For a value of 0 the output will use grayscales only. A
1110+# value of 255 will produce the most vivid colors.
1111+# Minimum value: 0, maximum value: 255, default value: 100.
1112+# This tag requires that the tag GENERATE_HTML is set to YES.
1113+
1114+HTML_COLORSTYLE_SAT = 100
1115+
1116+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
1117+# luminance component of the colors in the HTML output. Values below 100
1118+# gradually make the output lighter, whereas values above 100 make the output
1119+# darker. The value divided by 100 is the actual gamma applied, so 80 represents
1120+# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
1121+# change the gamma.
1122+# Minimum value: 40, maximum value: 240, default value: 80.
1123+# This tag requires that the tag GENERATE_HTML is set to YES.
1124+
1125+HTML_COLORSTYLE_GAMMA = 80
1126+
1127+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
1128+# page will contain the date and time when the page was generated. Setting this
1129+# to NO can help when comparing the output of multiple runs.
1130+# The default value is: YES.
1131+# This tag requires that the tag GENERATE_HTML is set to YES.
1132+
1133+HTML_TIMESTAMP = YES
1134+
1135+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
1136+# documentation will contain sections that can be hidden and shown after the
1137+# page has loaded.
1138+# The default value is: NO.
1139+# This tag requires that the tag GENERATE_HTML is set to YES.
1140+
1141+HTML_DYNAMIC_SECTIONS = NO
1142+
1143+# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
1144+# shown in the various tree structured indices initially; the user can expand
1145+# and collapse entries dynamically later on. Doxygen will expand the tree to
1146+# such a level that at most the specified number of entries are visible (unless
1147+# a fully collapsed tree already exceeds this amount). So setting the number of
1148+# entries 1 will produce a full collapsed tree by default. 0 is a special value
1149+# representing an infinite number of entries and will result in a full expanded
1150+# tree by default.
1151+# Minimum value: 0, maximum value: 9999, default value: 100.
1152+# This tag requires that the tag GENERATE_HTML is set to YES.
1153+
1154+HTML_INDEX_NUM_ENTRIES = 100
1155+
1156+# If the GENERATE_DOCSET tag is set to YES, additional index files will be
1157+# generated that can be used as input for Apple's Xcode 3 integrated development
1158+# environment (see: http://developer.apple.com/tools/xcode/), introduced with
1159+# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
1160+# Makefile in the HTML output directory. Running make will produce the docset in
1161+# that directory and running make install will install the docset in
1162+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
1163+# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
1164+# for more information.
1165+# The default value is: NO.
1166+# This tag requires that the tag GENERATE_HTML is set to YES.
1167+
1168+GENERATE_DOCSET = NO
1169+
1170+# This tag determines the name of the docset feed. A documentation feed provides
1171+# an umbrella under which multiple documentation sets from a single provider
1172+# (such as a company or product suite) can be grouped.
1173+# The default value is: Doxygen generated docs.
1174+# This tag requires that the tag GENERATE_DOCSET is set to YES.
1175+
1176+DOCSET_FEEDNAME = "Doxygen generated docs"
1177+
1178+# This tag specifies a string that should uniquely identify the documentation
1179+# set bundle. This should be a reverse domain-name style string, e.g.
1180+# com.mycompany.MyDocSet. Doxygen will append .docset to the name.
1181+# The default value is: org.doxygen.Project.
1182+# This tag requires that the tag GENERATE_DOCSET is set to YES.
1183+
1184+DOCSET_BUNDLE_ID = org.doxygen.Project
1185+
1186+# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
1187+# the documentation publisher. This should be a reverse domain-name style
1188+# string, e.g. com.mycompany.MyDocSet.documentation.
1189+# The default value is: org.doxygen.Publisher.
1190+# This tag requires that the tag GENERATE_DOCSET is set to YES.
1191+
1192+DOCSET_PUBLISHER_ID = org.doxygen.Publisher
1193+
1194+# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
1195+# The default value is: Publisher.
1196+# This tag requires that the tag GENERATE_DOCSET is set to YES.
1197+
1198+DOCSET_PUBLISHER_NAME = Publisher
1199+
1200+# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
1201+# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
1202+# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
1203+# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
1204+# Windows.
1205+#
1206+# The HTML Help Workshop contains a compiler that can convert all HTML output
1207+# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
1208+# files are now used as the Windows 98 help format, and will replace the old
1209+# Windows help format (.hlp) on all Windows platforms in the future. Compressed
1210+# HTML files also contain an index, a table of contents, and you can search for
1211+# words in the documentation. The HTML workshop also contains a viewer for
1212+# compressed HTML files.
1213+# The default value is: NO.
1214+# This tag requires that the tag GENERATE_HTML is set to YES.
1215+
1216+GENERATE_HTMLHELP = NO
1217+
1218+# The CHM_FILE tag can be used to specify the file name of the resulting .chm
1219+# file. You can add a path in front of the file if the result should not be
1220+# written to the html output directory.
1221+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
1222+
1223+CHM_FILE =
1224+
1225+# The HHC_LOCATION tag can be used to specify the location (absolute path
1226+# including file name) of the HTML help compiler ( hhc.exe). If non-empty
1227+# doxygen will try to run the HTML help compiler on the generated index.hhp.
1228+# The file has to be specified with full path.
1229+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
1230+
1231+HHC_LOCATION =
1232+
1233+# The GENERATE_CHI flag controls if a separate .chi index file is generated (
1234+# YES) or that it should be included in the master .chm file ( NO).
1235+# The default value is: NO.
1236+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
1237+
1238+GENERATE_CHI = NO
1239+
1240+# The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc)
1241+# and project file content.
1242+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
1243+
1244+CHM_INDEX_ENCODING =
1245+
1246+# The BINARY_TOC flag controls whether a binary table of contents is generated (
1247+# YES) or a normal table of contents ( NO) in the .chm file.
1248+# The default value is: NO.
1249+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
1250+
1251+BINARY_TOC = NO
1252+
1253+# The TOC_EXPAND flag can be set to YES to add extra items for group members to
1254+# the table of contents of the HTML help documentation and to the tree view.
1255+# The default value is: NO.
1256+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
1257+
1258+TOC_EXPAND = NO
1259+
1260+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
1261+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
1262+# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
1263+# (.qch) of the generated HTML documentation.
1264+# The default value is: NO.
1265+# This tag requires that the tag GENERATE_HTML is set to YES.
1266+
1267+GENERATE_QHP = NO
1268+
1269+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
1270+# the file name of the resulting .qch file. The path specified is relative to
1271+# the HTML output folder.
1272+# This tag requires that the tag GENERATE_QHP is set to YES.
1273+
1274+QCH_FILE =
1275+
1276+# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
1277+# Project output. For more information please see Qt Help Project / Namespace
1278+# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
1279+# The default value is: org.doxygen.Project.
1280+# This tag requires that the tag GENERATE_QHP is set to YES.
1281+
1282+QHP_NAMESPACE = org.doxygen.Project
1283+
1284+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
1285+# Help Project output. For more information please see Qt Help Project / Virtual
1286+# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
1287+# folders).
1288+# The default value is: doc.
1289+# This tag requires that the tag GENERATE_QHP is set to YES.
1290+
1291+QHP_VIRTUAL_FOLDER = doc
1292+
1293+# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
1294+# filter to add. For more information please see Qt Help Project / Custom
1295+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
1296+# filters).
1297+# This tag requires that the tag GENERATE_QHP is set to YES.
1298+
1299+QHP_CUST_FILTER_NAME =
1300+
1301+# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
1302+# custom filter to add. For more information please see Qt Help Project / Custom
1303+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
1304+# filters).
1305+# This tag requires that the tag GENERATE_QHP is set to YES.
1306+
1307+QHP_CUST_FILTER_ATTRS =
1308+
1309+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
1310+# project's filter section matches. Qt Help Project / Filter Attributes (see:
1311+# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
1312+# This tag requires that the tag GENERATE_QHP is set to YES.
1313+
1314+QHP_SECT_FILTER_ATTRS =
1315+
1316+# The QHG_LOCATION tag can be used to specify the location of Qt's
1317+# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
1318+# generated .qhp file.
1319+# This tag requires that the tag GENERATE_QHP is set to YES.
1320+
1321+QHG_LOCATION =
1322+
1323+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
1324+# generated, together with the HTML files, they form an Eclipse help plugin. To
1325+# install this plugin and make it available under the help contents menu in
1326+# Eclipse, the contents of the directory containing the HTML and XML files needs
1327+# to be copied into the plugins directory of eclipse. The name of the directory
1328+# within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
1329+# After copying Eclipse needs to be restarted before the help appears.
1330+# The default value is: NO.
1331+# This tag requires that the tag GENERATE_HTML is set to YES.
1332+
1333+GENERATE_ECLIPSEHELP = NO
1334+
1335+# A unique identifier for the Eclipse help plugin. When installing the plugin
1336+# the directory name containing the HTML and XML files should also have this
1337+# name. Each documentation set should have its own identifier.
1338+# The default value is: org.doxygen.Project.
1339+# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
1340+
1341+ECLIPSE_DOC_ID = org.doxygen.Project
1342+
1343+# If you want full control over the layout of the generated HTML pages it might
1344+# be necessary to disable the index and replace it with your own. The
1345+# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
1346+# of each HTML page. A value of NO enables the index and the value YES disables
1347+# it. Since the tabs in the index contain the same information as the navigation
1348+# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
1349+# The default value is: NO.
1350+# This tag requires that the tag GENERATE_HTML is set to YES.
1351+
1352+DISABLE_INDEX = NO
1353+
1354+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
1355+# structure should be generated to display hierarchical information. If the tag
1356+# value is set to YES, a side panel will be generated containing a tree-like
1357+# index structure (just like the one that is generated for HTML Help). For this
1358+# to work a browser that supports JavaScript, DHTML, CSS and frames is required
1359+# (i.e. any modern browser). Windows users are probably better off using the
1360+# HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can
1361+# further fine-tune the look of the index. As an example, the default style
1362+# sheet generated by doxygen has an example that shows how to put an image at
1363+# the root of the tree instead of the PROJECT_NAME. Since the tree basically has
1364+# the same information as the tab index, you could consider setting
1365+# DISABLE_INDEX to YES when enabling this option.
1366+# The default value is: NO.
1367+# This tag requires that the tag GENERATE_HTML is set to YES.
1368+
1369+GENERATE_TREEVIEW = YES
1370+
1371+# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
1372+# doxygen will group on one line in the generated HTML documentation.
1373+#
1374+# Note that a value of 0 will completely suppress the enum values from appearing
1375+# in the overview section.
1376+# Minimum value: 0, maximum value: 20, default value: 4.
1377+# This tag requires that the tag GENERATE_HTML is set to YES.
1378+
1379+ENUM_VALUES_PER_LINE = 4
1380+
1381+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
1382+# to set the initial width (in pixels) of the frame in which the tree is shown.
1383+# Minimum value: 0, maximum value: 1500, default value: 250.
1384+# This tag requires that the tag GENERATE_HTML is set to YES.
1385+
1386+TREEVIEW_WIDTH = 250
1387+
1388+# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to
1389+# external symbols imported via tag files in a separate window.
1390+# The default value is: NO.
1391+# This tag requires that the tag GENERATE_HTML is set to YES.
1392+
1393+EXT_LINKS_IN_WINDOW = NO
1394+
1395+# Use this tag to change the font size of LaTeX formulas included as images in
1396+# the HTML documentation. When you change the font size after a successful
1397+# doxygen run you need to manually remove any form_*.png images from the HTML
1398+# output directory to force them to be regenerated.
1399+# Minimum value: 8, maximum value: 50, default value: 10.
1400+# This tag requires that the tag GENERATE_HTML is set to YES.
1401+
1402+FORMULA_FONTSIZE = 10
1403+
1404+# Use the FORMULA_TRANPARENT tag to determine whether or not the images
1405+# generated for formulas are transparent PNGs. Transparent PNGs are not
1406+# supported properly for IE 6.0, but are supported on all modern browsers.
1407+#
1408+# Note that when changing this option you need to delete any form_*.png files in
1409+# the HTML output directory before the changes have effect.
1410+# The default value is: YES.
1411+# This tag requires that the tag GENERATE_HTML is set to YES.
1412+
1413+FORMULA_TRANSPARENT = YES
1414+
1415+# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
1416+# http://www.mathjax.org) which uses client side Javascript for the rendering
1417+# instead of using prerendered bitmaps. Use this if you do not have LaTeX
1418+# installed or if you want to formulas look prettier in the HTML output. When
1419+# enabled you may also need to install MathJax separately and configure the path
1420+# to it using the MATHJAX_RELPATH option.
1421+# The default value is: NO.
1422+# This tag requires that the tag GENERATE_HTML is set to YES.
1423+
1424+USE_MATHJAX = NO
1425+
1426+# When MathJax is enabled you can set the default output format to be used for
1427+# the MathJax output. See the MathJax site (see:
1428+# http://docs.mathjax.org/en/latest/output.html) for more details.
1429+# Possible values are: HTML-CSS (which is slower, but has the best
1430+# compatibility), NativeMML (i.e. MathML) and SVG.
1431+# The default value is: HTML-CSS.
1432+# This tag requires that the tag USE_MATHJAX is set to YES.
1433+
1434+MATHJAX_FORMAT = HTML-CSS
1435+
1436+# When MathJax is enabled you need to specify the location relative to the HTML
1437+# output directory using the MATHJAX_RELPATH option. The destination directory
1438+# should contain the MathJax.js script. For instance, if the mathjax directory
1439+# is located at the same level as the HTML output directory, then
1440+# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
1441+# Content Delivery Network so you can quickly see the result without installing
1442+# MathJax. However, it is strongly recommended to install a local copy of
1443+# MathJax from http://www.mathjax.org before deployment.
1444+# The default value is: http://cdn.mathjax.org/mathjax/latest.
1445+# This tag requires that the tag USE_MATHJAX is set to YES.
1446+
1447+MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
1448+
1449+# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
1450+# extension names that should be enabled during MathJax rendering. For example
1451+# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
1452+# This tag requires that the tag USE_MATHJAX is set to YES.
1453+
1454+MATHJAX_EXTENSIONS =
1455+
1456+# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
1457+# of code that will be used on startup of the MathJax code. See the MathJax site
1458+# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
1459+# example see the documentation.
1460+# This tag requires that the tag USE_MATHJAX is set to YES.
1461+
1462+MATHJAX_CODEFILE =
1463+
1464+# When the SEARCHENGINE tag is enabled doxygen will generate a search box for
1465+# the HTML output. The underlying search engine uses javascript and DHTML and
1466+# should work on any modern browser. Note that when using HTML help
1467+# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
1468+# there is already a search function so this one should typically be disabled.
1469+# For large projects the javascript based search engine can be slow, then
1470+# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
1471+# search using the keyboard; to jump to the search box use <access key> + S
1472+# (what the <access key> is depends on the OS and browser, but it is typically
1473+# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
1474+# key> to jump into the search results window, the results can be navigated
1475+# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
1476+# the search. The filter options can be selected when the cursor is inside the
1477+# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
1478+# to select a filter and <Enter> or <escape> to activate or cancel the filter
1479+# option.
1480+# The default value is: YES.
1481+# This tag requires that the tag GENERATE_HTML is set to YES.
1482+
1483+SEARCHENGINE = YES
1484+
1485+# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
1486+# implemented using a web server instead of a web client using Javascript. There
1487+# are two flavours of web server based searching depending on the
1488+# EXTERNAL_SEARCH setting. When disabled, doxygen will generate a PHP script for
1489+# searching and an index file used by the script. When EXTERNAL_SEARCH is
1490+# enabled the indexing and searching needs to be provided by external tools. See
1491+# the section "External Indexing and Searching" for details.
1492+# The default value is: NO.
1493+# This tag requires that the tag SEARCHENGINE is set to YES.
1494+
1495+SERVER_BASED_SEARCH = NO
1496+
1497+# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
1498+# script for searching. Instead the search results are written to an XML file
1499+# which needs to be processed by an external indexer. Doxygen will invoke an
1500+# external search engine pointed to by the SEARCHENGINE_URL option to obtain the
1501+# search results.
1502+#
1503+# Doxygen ships with an example indexer ( doxyindexer) and search engine
1504+# (doxysearch.cgi) which are based on the open source search engine library
1505+# Xapian (see: http://xapian.org/).
1506+#
1507+# See the section "External Indexing and Searching" for details.
1508+# The default value is: NO.
1509+# This tag requires that the tag SEARCHENGINE is set to YES.
1510+
1511+EXTERNAL_SEARCH = NO
1512+
1513+# The SEARCHENGINE_URL should point to a search engine hosted by a web server
1514+# which will return the search results when EXTERNAL_SEARCH is enabled.
1515+#
1516+# Doxygen ships with an example indexer ( doxyindexer) and search engine
1517+# (doxysearch.cgi) which are based on the open source search engine library
1518+# Xapian (see: http://xapian.org/). See the section "External Indexing and
1519+# Searching" for details.
1520+# This tag requires that the tag SEARCHENGINE is set to YES.
1521+
1522+SEARCHENGINE_URL =
1523+
1524+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
1525+# search data is written to a file for indexing by an external tool. With the
1526+# SEARCHDATA_FILE tag the name of this file can be specified.
1527+# The default file is: searchdata.xml.
1528+# This tag requires that the tag SEARCHENGINE is set to YES.
1529+
1530+SEARCHDATA_FILE = searchdata.xml
1531+
1532+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
1533+# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
1534+# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
1535+# projects and redirect the results back to the right project.
1536+# This tag requires that the tag SEARCHENGINE is set to YES.
1537+
1538+EXTERNAL_SEARCH_ID =
1539+
1540+# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
1541+# projects other than the one defined by this configuration file, but that are
1542+# all added to the same external search index. Each project needs to have a
1543+# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
1544+# to a relative location where the documentation can be found. The format is:
1545+# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
1546+# This tag requires that the tag SEARCHENGINE is set to YES.
1547+
1548+EXTRA_SEARCH_MAPPINGS =
1549+
1550+#---------------------------------------------------------------------------
1551+# Configuration options related to the LaTeX output
1552+#---------------------------------------------------------------------------
1553+
1554+# If the GENERATE_LATEX tag is set to YES doxygen will generate LaTeX output.
1555+# The default value is: YES.
1556+
1557+GENERATE_LATEX = NO
1558+
1559+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
1560+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
1561+# it.
1562+# The default directory is: latex.
1563+# This tag requires that the tag GENERATE_LATEX is set to YES.
1564+
1565+LATEX_OUTPUT = latex
1566+
1567+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
1568+# invoked.
1569+#
1570+# Note that when enabling USE_PDFLATEX this option is only used for generating
1571+# bitmaps for formulas in the HTML output, but not in the Makefile that is
1572+# written to the output directory.
1573+# The default file is: latex.
1574+# This tag requires that the tag GENERATE_LATEX is set to YES.
1575+
1576+LATEX_CMD_NAME = latex
1577+
1578+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
1579+# index for LaTeX.
1580+# The default file is: makeindex.
1581+# This tag requires that the tag GENERATE_LATEX is set to YES.
1582+
1583+MAKEINDEX_CMD_NAME = makeindex
1584+
1585+# If the COMPACT_LATEX tag is set to YES doxygen generates more compact LaTeX
1586+# documents. This may be useful for small projects and may help to save some
1587+# trees in general.
1588+# The default value is: NO.
1589+# This tag requires that the tag GENERATE_LATEX is set to YES.
1590+
1591+COMPACT_LATEX = NO
1592+
1593+# The PAPER_TYPE tag can be used to set the paper type that is used by the
1594+# printer.
1595+# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
1596+# 14 inches) and executive (7.25 x 10.5 inches).
1597+# The default value is: a4.
1598+# This tag requires that the tag GENERATE_LATEX is set to YES.
1599+
1600+PAPER_TYPE = a4
1601+
1602+# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
1603+# that should be included in the LaTeX output. To get the times font for
1604+# instance you can specify
1605+# EXTRA_PACKAGES=times
1606+# If left blank no extra packages will be included.
1607+# This tag requires that the tag GENERATE_LATEX is set to YES.
1608+
1609+EXTRA_PACKAGES =
1610+
1611+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
1612+# generated LaTeX document. The header should contain everything until the first
1613+# chapter. If it is left blank doxygen will generate a standard header. See
1614+# section "Doxygen usage" for information on how to let doxygen write the
1615+# default header to a separate file.
1616+#
1617+# Note: Only use a user-defined header if you know what you are doing! The
1618+# following commands have a special meaning inside the header: $title,
1619+# $datetime, $date, $doxygenversion, $projectname, $projectnumber. Doxygen will
1620+# replace them by respectively the title of the page, the current date and time,
1621+# only the current date, the version number of doxygen, the project name (see
1622+# PROJECT_NAME), or the project number (see PROJECT_NUMBER).
1623+# This tag requires that the tag GENERATE_LATEX is set to YES.
1624+
1625+LATEX_HEADER =
1626+
1627+# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
1628+# generated LaTeX document. The footer should contain everything after the last
1629+# chapter. If it is left blank doxygen will generate a standard footer.
1630+#
1631+# Note: Only use a user-defined footer if you know what you are doing!
1632+# This tag requires that the tag GENERATE_LATEX is set to YES.
1633+
1634+LATEX_FOOTER =
1635+
1636+# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
1637+# other source files which should be copied to the LATEX_OUTPUT output
1638+# directory. Note that the files will be copied as-is; there are no commands or
1639+# markers available.
1640+# This tag requires that the tag GENERATE_LATEX is set to YES.
1641+
1642+LATEX_EXTRA_FILES =
1643+
1644+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
1645+# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
1646+# contain links (just like the HTML output) instead of page references. This
1647+# makes the output suitable for online browsing using a PDF viewer.
1648+# The default value is: YES.
1649+# This tag requires that the tag GENERATE_LATEX is set to YES.
1650+
1651+PDF_HYPERLINKS = YES
1652+
1653+# If the LATEX_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
1654+# the PDF file directly from the LaTeX files. Set this option to YES to get a
1655+# higher quality PDF documentation.
1656+# The default value is: YES.
1657+# This tag requires that the tag GENERATE_LATEX is set to YES.
1658+
1659+USE_PDFLATEX = YES
1660+
1661+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
1662+# command to the generated LaTeX files. This will instruct LaTeX to keep running
1663+# if errors occur, instead of asking the user for help. This option is also used
1664+# when generating formulas in HTML.
1665+# The default value is: NO.
1666+# This tag requires that the tag GENERATE_LATEX is set to YES.
1667+
1668+LATEX_BATCHMODE = NO
1669+
1670+# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
1671+# index chapters (such as File Index, Compound Index, etc.) in the output.
1672+# The default value is: NO.
1673+# This tag requires that the tag GENERATE_LATEX is set to YES.
1674+
1675+LATEX_HIDE_INDICES = NO
1676+
1677+# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
1678+# code with syntax highlighting in the LaTeX output.
1679+#
1680+# Note that which sources are shown also depends on other settings such as
1681+# SOURCE_BROWSER.
1682+# The default value is: NO.
1683+# This tag requires that the tag GENERATE_LATEX is set to YES.
1684+
1685+LATEX_SOURCE_CODE = NO
1686+
1687+# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
1688+# bibliography, e.g. plainnat, or ieeetr. See
1689+# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
1690+# The default value is: plain.
1691+# This tag requires that the tag GENERATE_LATEX is set to YES.
1692+
1693+LATEX_BIB_STYLE = plain
1694+
1695+#---------------------------------------------------------------------------
1696+# Configuration options related to the RTF output
1697+#---------------------------------------------------------------------------
1698+
1699+# If the GENERATE_RTF tag is set to YES doxygen will generate RTF output. The
1700+# RTF output is optimized for Word 97 and may not look too pretty with other RTF
1701+# readers/editors.
1702+# The default value is: NO.
1703+
1704+GENERATE_RTF = NO
1705+
1706+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
1707+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
1708+# it.
1709+# The default directory is: rtf.
1710+# This tag requires that the tag GENERATE_RTF is set to YES.
1711+
1712+RTF_OUTPUT = rtf
1713+
1714+# If the COMPACT_RTF tag is set to YES doxygen generates more compact RTF
1715+# documents. This may be useful for small projects and may help to save some
1716+# trees in general.
1717+# The default value is: NO.
1718+# This tag requires that the tag GENERATE_RTF is set to YES.
1719+
1720+COMPACT_RTF = NO
1721+
1722+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
1723+# contain hyperlink fields. The RTF file will contain links (just like the HTML
1724+# output) instead of page references. This makes the output suitable for online
1725+# browsing using Word or some other Word compatible readers that support those
1726+# fields.
1727+#
1728+# Note: WordPad (write) and others do not support links.
1729+# The default value is: NO.
1730+# This tag requires that the tag GENERATE_RTF is set to YES.
1731+
1732+RTF_HYPERLINKS = NO
1733+
1734+# Load stylesheet definitions from file. Syntax is similar to doxygen's config
1735+# file, i.e. a series of assignments. You only have to provide replacements,
1736+# missing definitions are set to their default value.
1737+#
1738+# See also section "Doxygen usage" for information on how to generate the
1739+# default style sheet that doxygen normally uses.
1740+# This tag requires that the tag GENERATE_RTF is set to YES.
1741+
1742+RTF_STYLESHEET_FILE =
1743+
1744+# Set optional variables used in the generation of an RTF document. Syntax is
1745+# similar to doxygen's config file. A template extensions file can be generated
1746+# using doxygen -e rtf extensionFile.
1747+# This tag requires that the tag GENERATE_RTF is set to YES.
1748+
1749+RTF_EXTENSIONS_FILE =
1750+
1751+#---------------------------------------------------------------------------
1752+# Configuration options related to the man page output
1753+#---------------------------------------------------------------------------
1754+
1755+# If the GENERATE_MAN tag is set to YES doxygen will generate man pages for
1756+# classes and files.
1757+# The default value is: NO.
1758+
1759+GENERATE_MAN = NO
1760+
1761+# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
1762+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
1763+# it. A directory man3 will be created inside the directory specified by
1764+# MAN_OUTPUT.
1765+# The default directory is: man.
1766+# This tag requires that the tag GENERATE_MAN is set to YES.
1767+
1768+MAN_OUTPUT = man
1769+
1770+# The MAN_EXTENSION tag determines the extension that is added to the generated
1771+# man pages. In case the manual section does not start with a number, the number
1772+# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
1773+# optional.
1774+# The default value is: .3.
1775+# This tag requires that the tag GENERATE_MAN is set to YES.
1776+
1777+MAN_EXTENSION = .3
1778+
1779+# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
1780+# will generate one additional man file for each entity documented in the real
1781+# man page(s). These additional files only source the real man page, but without
1782+# them the man command would be unable to find the correct page.
1783+# The default value is: NO.
1784+# This tag requires that the tag GENERATE_MAN is set to YES.
1785+
1786+MAN_LINKS = NO
1787+
1788+#---------------------------------------------------------------------------
1789+# Configuration options related to the XML output
1790+#---------------------------------------------------------------------------
1791+
1792+# If the GENERATE_XML tag is set to YES doxygen will generate an XML file that
1793+# captures the structure of the code including all documentation.
1794+# The default value is: NO.
1795+
1796+GENERATE_XML = NO
1797+
1798+# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
1799+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
1800+# it.
1801+# The default directory is: xml.
1802+# This tag requires that the tag GENERATE_XML is set to YES.
1803+
1804+XML_OUTPUT = xml
1805+
1806+# The XML_SCHEMA tag can be used to specify a XML schema, which can be used by a
1807+# validating XML parser to check the syntax of the XML files.
1808+# This tag requires that the tag GENERATE_XML is set to YES.
1809+
1810+XML_SCHEMA =
1811+
1812+# The XML_DTD tag can be used to specify a XML DTD, which can be used by a
1813+# validating XML parser to check the syntax of the XML files.
1814+# This tag requires that the tag GENERATE_XML is set to YES.
1815+
1816+XML_DTD =
1817+
1818+# If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program
1819+# listings (including syntax highlighting and cross-referencing information) to
1820+# the XML output. Note that enabling this will significantly increase the size
1821+# of the XML output.
1822+# The default value is: YES.
1823+# This tag requires that the tag GENERATE_XML is set to YES.
1824+
1825+XML_PROGRAMLISTING = YES
1826+
1827+#---------------------------------------------------------------------------
1828+# Configuration options related to the DOCBOOK output
1829+#---------------------------------------------------------------------------
1830+
1831+# If the GENERATE_DOCBOOK tag is set to YES doxygen will generate Docbook files
1832+# that can be used to generate PDF.
1833+# The default value is: NO.
1834+
1835+GENERATE_DOCBOOK = NO
1836+
1837+# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
1838+# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
1839+# front of it.
1840+# The default directory is: docbook.
1841+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
1842+
1843+DOCBOOK_OUTPUT = docbook
1844+
1845+#---------------------------------------------------------------------------
1846+# Configuration options for the AutoGen Definitions output
1847+#---------------------------------------------------------------------------
1848+
1849+# If the GENERATE_AUTOGEN_DEF tag is set to YES doxygen will generate an AutoGen
1850+# Definitions (see http://autogen.sf.net) file that captures the structure of
1851+# the code including all documentation. Note that this feature is still
1852+# experimental and incomplete at the moment.
1853+# The default value is: NO.
1854+
1855+GENERATE_AUTOGEN_DEF = NO
1856+
1857+#---------------------------------------------------------------------------
1858+# Configuration options related to the Perl module output
1859+#---------------------------------------------------------------------------
1860+
1861+# If the GENERATE_PERLMOD tag is set to YES doxygen will generate a Perl module
1862+# file that captures the structure of the code including all documentation.
1863+#
1864+# Note that this feature is still experimental and incomplete at the moment.
1865+# The default value is: NO.
1866+
1867+GENERATE_PERLMOD = NO
1868+
1869+# If the PERLMOD_LATEX tag is set to YES doxygen will generate the necessary
1870+# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
1871+# output from the Perl module output.
1872+# The default value is: NO.
1873+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
1874+
1875+PERLMOD_LATEX = NO
1876+
1877+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be nicely
1878+# formatted so it can be parsed by a human reader. This is useful if you want to
1879+# understand what is going on. On the other hand, if this tag is set to NO the
1880+# size of the Perl module output will be much smaller and Perl will parse it
1881+# just the same.
1882+# The default value is: YES.
1883+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
1884+
1885+PERLMOD_PRETTY = YES
1886+
1887+# The names of the make variables in the generated doxyrules.make file are
1888+# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
1889+# so different doxyrules.make files included by the same Makefile don't
1890+# overwrite each other's variables.
1891+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
1892+
1893+PERLMOD_MAKEVAR_PREFIX =
1894+
1895+#---------------------------------------------------------------------------
1896+# Configuration options related to the preprocessor
1897+#---------------------------------------------------------------------------
1898+
1899+# If the ENABLE_PREPROCESSING tag is set to YES doxygen will evaluate all
1900+# C-preprocessor directives found in the sources and include files.
1901+# The default value is: YES.
1902+
1903+ENABLE_PREPROCESSING = YES
1904+
1905+# If the MACRO_EXPANSION tag is set to YES doxygen will expand all macro names
1906+# in the source code. If set to NO only conditional compilation will be
1907+# performed. Macro expansion can be done in a controlled way by setting
1908+# EXPAND_ONLY_PREDEF to YES.
1909+# The default value is: NO.
1910+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
1911+
1912+MACRO_EXPANSION = NO
1913+
1914+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
1915+# the macro expansion is limited to the macros specified with the PREDEFINED and
1916+# EXPAND_AS_DEFINED tags.
1917+# The default value is: NO.
1918+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
1919+
1920+EXPAND_ONLY_PREDEF = NO
1921+
1922+# If the SEARCH_INCLUDES tag is set to YES the includes files in the
1923+# INCLUDE_PATH will be searched if a #include is found.
1924+# The default value is: YES.
1925+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
1926+
1927+SEARCH_INCLUDES = YES
1928+
1929+# The INCLUDE_PATH tag can be used to specify one or more directories that
1930+# contain include files that are not input files but should be processed by the
1931+# preprocessor.
1932+# This tag requires that the tag SEARCH_INCLUDES is set to YES.
1933+
1934+INCLUDE_PATH =
1935+
1936+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
1937+# patterns (like *.h and *.hpp) to filter out the header-files in the
1938+# directories. If left blank, the patterns specified with FILE_PATTERNS will be
1939+# used.
1940+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
1941+
1942+INCLUDE_FILE_PATTERNS =
1943+
1944+# The PREDEFINED tag can be used to specify one or more macro names that are
1945+# defined before the preprocessor is started (similar to the -D option of e.g.
1946+# gcc). The argument of the tag is a list of macros of the form: name or
1947+# name=definition (no spaces). If the definition and the "=" are omitted, "=1"
1948+# is assumed. To prevent a macro definition from being undefined via #undef or
1949+# recursively expanded use the := operator instead of the = operator.
1950+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
1951+
1952+PREDEFINED =
1953+
1954+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
1955+# tag can be used to specify a list of macro names that should be expanded. The
1956+# macro definition that is found in the sources will be used. Use the PREDEFINED
1957+# tag if you want to use a different macro definition that overrules the
1958+# definition found in the source code.
1959+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
1960+
1961+EXPAND_AS_DEFINED =
1962+
1963+# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
1964+# remove all refrences to function-like macros that are alone on a line, have an
1965+# all uppercase name, and do not end with a semicolon. Such function macros are
1966+# typically used for boiler-plate code, and will confuse the parser if not
1967+# removed.
1968+# The default value is: YES.
1969+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
1970+
1971+SKIP_FUNCTION_MACROS = YES
1972+
1973+#---------------------------------------------------------------------------
1974+# Configuration options related to external references
1975+#---------------------------------------------------------------------------
1976+
1977+# The TAGFILES tag can be used to specify one or more tag files. For each tag
1978+# file the location of the external documentation should be added. The format of
1979+# a tag file without this location is as follows:
1980+# TAGFILES = file1 file2 ...
1981+# Adding location for the tag files is done as follows:
1982+# TAGFILES = file1=loc1 "file2 = loc2" ...
1983+# where loc1 and loc2 can be relative or absolute paths or URLs. See the
1984+# section "Linking to external documentation" for more information about the use
1985+# of tag files.
1986+# Note: Each tag file must have an unique name (where the name does NOT include
1987+# the path). If a tag file is not located in the directory in which doxygen is
1988+# run, you must also specify the path to the tagfile here.
1989+
1990+TAGFILES =
1991+
1992+# When a file name is specified after GENERATE_TAGFILE, doxygen will create a
1993+# tag file that is based on the input files it reads. See section "Linking to
1994+# external documentation" for more information about the usage of tag files.
1995+
1996+GENERATE_TAGFILE =
1997+
1998+# If the ALLEXTERNALS tag is set to YES all external class will be listed in the
1999+# class index. If set to NO only the inherited external classes will be listed.
2000+# The default value is: NO.
2001+
2002+ALLEXTERNALS = NO
2003+
2004+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed in
2005+# the modules index. If set to NO, only the current project's groups will be
2006+# listed.
2007+# The default value is: YES.
2008+
2009+EXTERNAL_GROUPS = YES
2010+
2011+# If the EXTERNAL_PAGES tag is set to YES all external pages will be listed in
2012+# the related pages index. If set to NO, only the current project's pages will
2013+# be listed.
2014+# The default value is: YES.
2015+
2016+EXTERNAL_PAGES = YES
2017+
2018+# The PERL_PATH should be the absolute path and name of the perl script
2019+# interpreter (i.e. the result of 'which perl').
2020+# The default file (with absolute path) is: /usr/bin/perl.
2021+
2022+PERL_PATH = /usr/bin/perl
2023+
2024+#---------------------------------------------------------------------------
2025+# Configuration options related to the dot tool
2026+#---------------------------------------------------------------------------
2027+
2028+# If the CLASS_DIAGRAMS tag is set to YES doxygen will generate a class diagram
2029+# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
2030+# NO turns the diagrams off. Note that this option also works with HAVE_DOT
2031+# disabled, but it is recommended to install and use dot, since it yields more
2032+# powerful graphs.
2033+# The default value is: YES.
2034+
2035+CLASS_DIAGRAMS = YES
2036+
2037+# You can define message sequence charts within doxygen comments using the \msc
2038+# command. Doxygen will then run the mscgen tool (see:
2039+# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
2040+# documentation. The MSCGEN_PATH tag allows you to specify the directory where
2041+# the mscgen tool resides. If left empty the tool is assumed to be found in the
2042+# default search path.
2043+
2044+MSCGEN_PATH =
2045+
2046+# You can include diagrams made with dia in doxygen documentation. Doxygen will
2047+# then run dia to produce the diagram and insert it in the documentation. The
2048+# DIA_PATH tag allows you to specify the directory where the dia binary resides.
2049+# If left empty dia is assumed to be found in the default search path.
2050+
2051+DIA_PATH =
2052+
2053+# If set to YES, the inheritance and collaboration graphs will hide inheritance
2054+# and usage relations if the target is undocumented or is not a class.
2055+# The default value is: YES.
2056+
2057+HIDE_UNDOC_RELATIONS = YES
2058+
2059+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
2060+# available from the path. This tool is part of Graphviz (see:
2061+# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
2062+# Bell Labs. The other options in this section have no effect if this option is
2063+# set to NO
2064+# The default value is: NO.
2065+
2066+HAVE_DOT = YES
2067+
2068+# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
2069+# to run in parallel. When set to 0 doxygen will base this on the number of
2070+# processors available in the system. You can set it explicitly to a value
2071+# larger than 0 to get control over the balance between CPU load and processing
2072+# speed.
2073+# Minimum value: 0, maximum value: 32, default value: 0.
2074+# This tag requires that the tag HAVE_DOT is set to YES.
2075+
2076+DOT_NUM_THREADS = 0
2077+
2078+# When you want a differently looking font n the dot files that doxygen
2079+# generates you can specify the font name using DOT_FONTNAME. You need to make
2080+# sure dot is able to find the font, which can be done by putting it in a
2081+# standard location or by setting the DOTFONTPATH environment variable or by
2082+# setting DOT_FONTPATH to the directory containing the font.
2083+# The default value is: Helvetica.
2084+# This tag requires that the tag HAVE_DOT is set to YES.
2085+
2086+DOT_FONTNAME = Helvetica
2087+
2088+# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
2089+# dot graphs.
2090+# Minimum value: 4, maximum value: 24, default value: 10.
2091+# This tag requires that the tag HAVE_DOT is set to YES.
2092+
2093+DOT_FONTSIZE = 10
2094+
2095+# By default doxygen will tell dot to use the default font as specified with
2096+# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
2097+# the path where dot can find it using this tag.
2098+# This tag requires that the tag HAVE_DOT is set to YES.
2099+
2100+DOT_FONTPATH =
2101+
2102+# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
2103+# each documented class showing the direct and indirect inheritance relations.
2104+# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
2105+# The default value is: YES.
2106+# This tag requires that the tag HAVE_DOT is set to YES.
2107+
2108+CLASS_GRAPH = YES
2109+
2110+# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
2111+# graph for each documented class showing the direct and indirect implementation
2112+# dependencies (inheritance, containment, and class references variables) of the
2113+# class with other documented classes.
2114+# The default value is: YES.
2115+# This tag requires that the tag HAVE_DOT is set to YES.
2116+
2117+COLLABORATION_GRAPH = YES
2118+
2119+# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
2120+# groups, showing the direct groups dependencies.
2121+# The default value is: YES.
2122+# This tag requires that the tag HAVE_DOT is set to YES.
2123+
2124+GROUP_GRAPHS = YES
2125+
2126+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
2127+# collaboration diagrams in a style similar to the OMG's Unified Modeling
2128+# Language.
2129+# The default value is: NO.
2130+# This tag requires that the tag HAVE_DOT is set to YES.
2131+
2132+UML_LOOK = NO
2133+
2134+# If the UML_LOOK tag is enabled, the fields and methods are shown inside the
2135+# class node. If there are many fields or methods and many nodes the graph may
2136+# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
2137+# number of items for each type to make the size more manageable. Set this to 0
2138+# for no limit. Note that the threshold may be exceeded by 50% before the limit
2139+# is enforced. So when you set the threshold to 10, up to 15 fields may appear,
2140+# but if the number exceeds 15, the total amount of fields shown is limited to
2141+# 10.
2142+# Minimum value: 0, maximum value: 100, default value: 10.
2143+# This tag requires that the tag HAVE_DOT is set to YES.
2144+
2145+UML_LIMIT_NUM_FIELDS = 10
2146+
2147+# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
2148+# collaboration graphs will show the relations between templates and their
2149+# instances.
2150+# The default value is: NO.
2151+# This tag requires that the tag HAVE_DOT is set to YES.
2152+
2153+TEMPLATE_RELATIONS = NO
2154+
2155+# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
2156+# YES then doxygen will generate a graph for each documented file showing the
2157+# direct and indirect include dependencies of the file with other documented
2158+# files.
2159+# The default value is: YES.
2160+# This tag requires that the tag HAVE_DOT is set to YES.
2161+
2162+INCLUDE_GRAPH = YES
2163+
2164+# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
2165+# set to YES then doxygen will generate a graph for each documented file showing
2166+# the direct and indirect include dependencies of the file with other documented
2167+# files.
2168+# The default value is: YES.
2169+# This tag requires that the tag HAVE_DOT is set to YES.
2170+
2171+INCLUDED_BY_GRAPH = YES
2172+
2173+# If the CALL_GRAPH tag is set to YES then doxygen will generate a call
2174+# dependency graph for every global function or class method.
2175+#
2176+# Note that enabling this option will significantly increase the time of a run.
2177+# So in most cases it will be better to enable call graphs for selected
2178+# functions only using the \callgraph command.
2179+# The default value is: NO.
2180+# This tag requires that the tag HAVE_DOT is set to YES.
2181+
2182+CALL_GRAPH = NO
2183+
2184+# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
2185+# dependency graph for every global function or class method.
2186+#
2187+# Note that enabling this option will significantly increase the time of a run.
2188+# So in most cases it will be better to enable caller graphs for selected
2189+# functions only using the \callergraph command.
2190+# The default value is: NO.
2191+# This tag requires that the tag HAVE_DOT is set to YES.
2192+
2193+CALLER_GRAPH = NO
2194+
2195+# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
2196+# hierarchy of all classes instead of a textual one.
2197+# The default value is: YES.
2198+# This tag requires that the tag HAVE_DOT is set to YES.
2199+
2200+GRAPHICAL_HIERARCHY = YES
2201+
2202+# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
2203+# dependencies a directory has on other directories in a graphical way. The
2204+# dependency relations are determined by the #include relations between the
2205+# files in the directories.
2206+# The default value is: YES.
2207+# This tag requires that the tag HAVE_DOT is set to YES.
2208+
2209+DIRECTORY_GRAPH = YES
2210+
2211+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
2212+# generated by dot.
2213+# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
2214+# to make the SVG files visible in IE 9+ (other browsers do not have this
2215+# requirement).
2216+# Possible values are: png, jpg, gif and svg.
2217+# The default value is: png.
2218+# This tag requires that the tag HAVE_DOT is set to YES.
2219+
2220+DOT_IMAGE_FORMAT = png
2221+
2222+# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
2223+# enable generation of interactive SVG images that allow zooming and panning.
2224+#
2225+# Note that this requires a modern browser other than Internet Explorer. Tested
2226+# and working are Firefox, Chrome, Safari, and Opera.
2227+# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
2228+# the SVG files visible. Older versions of IE do not have SVG support.
2229+# The default value is: NO.
2230+# This tag requires that the tag HAVE_DOT is set to YES.
2231+
2232+INTERACTIVE_SVG = NO
2233+
2234+# The DOT_PATH tag can be used to specify the path where the dot tool can be
2235+# found. If left blank, it is assumed the dot tool can be found in the path.
2236+# This tag requires that the tag HAVE_DOT is set to YES.
2237+
2238+DOT_PATH =
2239+
2240+# The DOTFILE_DIRS tag can be used to specify one or more directories that
2241+# contain dot files that are included in the documentation (see the \dotfile
2242+# command).
2243+# This tag requires that the tag HAVE_DOT is set to YES.
2244+
2245+DOTFILE_DIRS =
2246+
2247+# The MSCFILE_DIRS tag can be used to specify one or more directories that
2248+# contain msc files that are included in the documentation (see the \mscfile
2249+# command).
2250+
2251+MSCFILE_DIRS =
2252+
2253+# The DIAFILE_DIRS tag can be used to specify one or more directories that
2254+# contain dia files that are included in the documentation (see the \diafile
2255+# command).
2256+
2257+DIAFILE_DIRS =
2258+
2259+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
2260+# that will be shown in the graph. If the number of nodes in a graph becomes
2261+# larger than this value, doxygen will truncate the graph, which is visualized
2262+# by representing a node as a red box. Note that doxygen if the number of direct
2263+# children of the root node in a graph is already larger than
2264+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
2265+# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
2266+# Minimum value: 0, maximum value: 10000, default value: 50.
2267+# This tag requires that the tag HAVE_DOT is set to YES.
2268+
2269+DOT_GRAPH_MAX_NODES = 50
2270+
2271+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
2272+# generated by dot. A depth value of 3 means that only nodes reachable from the
2273+# root by following a path via at most 3 edges will be shown. Nodes that lay
2274+# further from the root node will be omitted. Note that setting this option to 1
2275+# or 2 may greatly reduce the computation time needed for large code bases. Also
2276+# note that the size of a graph can be further restricted by
2277+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
2278+# Minimum value: 0, maximum value: 1000, default value: 0.
2279+# This tag requires that the tag HAVE_DOT is set to YES.
2280+
2281+MAX_DOT_GRAPH_DEPTH = 0
2282+
2283+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
2284+# background. This is disabled by default, because dot on Windows does not seem
2285+# to support this out of the box.
2286+#
2287+# Warning: Depending on the platform used, enabling this option may lead to
2288+# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
2289+# read).
2290+# The default value is: NO.
2291+# This tag requires that the tag HAVE_DOT is set to YES.
2292+
2293+DOT_TRANSPARENT = NO
2294+
2295+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
2296+# files in one run (i.e. multiple -o and -T options on the command line). This
2297+# makes dot run faster, but since only newer versions of dot (>1.8.10) support
2298+# this, this feature is disabled by default.
2299+# The default value is: NO.
2300+# This tag requires that the tag HAVE_DOT is set to YES.
2301+
2302+DOT_MULTI_TARGETS = YES
2303+
2304+# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
2305+# explaining the meaning of the various boxes and arrows in the dot generated
2306+# graphs.
2307+# The default value is: YES.
2308+# This tag requires that the tag HAVE_DOT is set to YES.
2309+
2310+GENERATE_LEGEND = YES
2311+
2312+# If the DOT_CLEANUP tag is set to YES doxygen will remove the intermediate dot
2313+# files that are used to generate the various graphs.
2314+# The default value is: YES.
2315+# This tag requires that the tag HAVE_DOT is set to YES.
2316+
2317+DOT_CLEANUP = YES
po/eu.po+7−7
@@ -8,15 +8,15 @@ msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
1010"POT-Creation-Date: 2013-11-29 09:21+0100\n"
11−"PO-Revision-Date: 2014-01-18 12:16+0000\n"
11+"PO-Revision-Date: 2014-02-03 22:04+0000\n"
1212"Last-Translator: Ibai Oihanguren Sala <Unknown>\n"
1313"Language-Team: Basque <eu@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-01-19 06:02+0000\n"
19−"X-Generator: Launchpad (build 16901)\n"
18+"X-Launchpad-Export-Date: 2014-02-04 07:02+0000\n"
19+"X-Generator: Launchpad (build 16916)\n"
2020
2121#: Components/EdgeDemoOverlay.qml:151
2222msgid "Skip intro"
@@ -28,7 +28,7 @@ msgstr "Eskuineko ertza"
2828
2929#: Components/EdgeDemo.qml:113
3030msgid "Try swiping from the right edge to unlock the phone"
31−msgstr "Probatu eskuineko ertzetik irristatzen telefonoa desblokeatzeko"
31+msgstr "Probatu eskuineko ertzetik arrastatzen telefonoa desblokeatzeko"
3232
3333#: Components/EdgeDemo.qml:144
3434msgid "Top edge"
@@ -36,7 +36,7 @@ msgstr "Goiko ertza"
3636
3737#: Components/EdgeDemo.qml:145
3838msgid "Try swiping from the top edge to access the indicators"
39−msgstr "Probatu goiko ertzetik irristatzen adierazleak ikusteko"
39+msgstr "Probatu goiko ertzetik arrastatzen adierazleak ikusteko"
4040
4141#: Components/EdgeDemo.qml:170
4242msgid "Close"
@@ -44,7 +44,7 @@ msgstr "Itxi"
4444
4545#: Components/EdgeDemo.qml:171
4646msgid "Swipe up again to close the settings screen"
47−msgstr "Irristatu gora berriro ezarpenen leihoa ixteko"
47+msgstr "Arrastatu gora berriro ezarpenen leihoa ixteko"
4848
4949#: Components/EdgeDemo.qml:198
5050msgid "Left edge"
@@ -53,7 +53,7 @@ msgstr "Ezkerreko ertza"
5353#: Components/EdgeDemo.qml:199
5454msgid "Swipe from the left to reveal the launcher for quick access to apps"
5555msgstr ""
56−"Irristatu ezkerretik abiarazlea erakutsi eta aplikazioak eskura berehala "
56+"Arrastatu ezkerretik abiarazlea erakutsi eta aplikazioak eskura berehala "
5757"izateko"
5858
5959#: Components/EdgeDemo.qml:226
qml/Dash/Card.qml+6−13
@@ -23,20 +23,12 @@ Item {
2323 property var components
2424 property var cardData
2525
26− width: {
27− if (template !== undefined) {
28− if (template["card-layout"] === "horizontal") return units.gu(38);
29− switch (template['card-size']) {
30− case "small": return units.gu(12);
31− case "large": return units.gu(38);
32− }
33− }
34− return units.gu(18.5);
35− }
36− height: childrenRect.height
26+ implicitWidth: childrenRect.width
27+ implicitHeight: childrenRect.height
3728
3829 UbuntuShape {
3930 id: artShape
31+ radius: "medium"
4032 objectName: "artShape"
4133 width: {
4234 if (!visible) return 0
@@ -60,7 +52,7 @@ Item {
6052 // FIXME uncomment when having investigated / fixed the crash
6153 //sourceSize.width: width > height ? width : 0
6254 //sourceSize.height: height > width ? height : 0
63− fillMode: components["art"]["fill-mode"] === "fit" ? Image.PreserveAspectFit: Image.PreserveAspectCrop
55+ fillMode: components && components["art"]["fill-mode"] === "fit" ? Image.PreserveAspectFit: Image.PreserveAspectCrop
6456
6557 property real aspect: implicitWidth / implicitHeight
6658 }
@@ -82,11 +74,12 @@ Item {
8274
8375 Label {
8476 objectName: "summaryLabel"
85− anchors { top: header.bottom; left: parent.left; right: parent.right }
77+ anchors { top: header.visible ? header.bottom : artShape.bottom; left: parent.left; right: parent.right }
8678 wrapMode: Text.Wrap
8779 maximumLineCount: 5
8880 elide: Text.ElideRight
8981 text: cardData && cardData["summary"] || ""
9082 height: text ? implicitHeight : 0
83+ fontSize: "small"
9184 }
9285}
qml/Dash/CardHeader.qml+23−6
@@ -27,32 +27,46 @@ Item {
2727 property alias altPrice: altPriceLabel.text
2828
2929 visible: mascotImage.status === Image.Ready || title || price
30− height: row.height > 0 ? row.height + row.spacing * 2 : 0
30+ height: row.height > 0 ? row.height + row.margins * 2 : 0
3131
3232 Row {
3333 id: row
3434 objectName: "outerRow"
3535
36− anchors { top: parent.top; left: parent.left; right: parent.right; margins: spacing }
37− spacing: units.gu(1)
36+ property real margins: units.gu(1)
37+
38+ anchors {
39+ top: parent.top; left: parent.left; right: parent.right
40+ margins: margins
41+ leftMargin: spacing
42+ rightMargin: spacing
43+ }
44+ spacing: mascotShape.visible ? margins : 0
3845
3946 UbuntuShape {
4047 id: mascotShape
4148 objectName: "mascotShape"
4249
43− width: units.gu(8)
44− height: units.gu(8)
50+ // TODO karni: Icon aspect-ratio is 8:7.5. Revisit these values to avoid fraction of pixels.
51+ width: units.gu(6)
52+ height: units.gu(5.625)
4553 visible: image.status === Image.Ready
54+ readonly property int maxSize: Math.max(width, height)
4655
4756 image: Image {
4857 id: mascotImage
49− sourceSize { width: mascotShape.width; height: mascotShape.height }
58+
59+ sourceSize { width: mascotShape.maxSize; height: mascotShape.maxSize }
60+ fillMode: Image.PreserveAspectCrop
61+ horizontalAlignment: Image.AlignHCenter
62+ verticalAlignment: Image.AlignVCenter
5063 }
5164 }
5265
5366 Column {
5467 objectName: "column"
5568 width: parent.width - x
69+ spacing: units.gu(0.5)
5670
5771 Label {
5872 id: titleLabel
@@ -62,6 +76,7 @@ Item {
6276 font.weight: Font.DemiBold
6377 wrapMode: Text.Wrap
6478 maximumLineCount: 2
79+ fontSize: "small"
6580 }
6681
6782 Label {
@@ -69,7 +84,9 @@ Item {
6984 objectName: "subtitleLabel"
7085 anchors { left: parent.left; right: parent.right }
7186 elide: Text.ElideRight
87+ font.weight: Font.Light
7288 visible: titleLabel.text && text
89+ fontSize: "x-small"
7390 }
7491
7592 Row {
qml/Dash/CardTool.qmlnew file+136
@@ -0,0 +1,136 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.0
18+
19+/*!
20+ \brief Tool for introspecting Card properties.
21+
22+ Some properties of Cards we need to determine category-wide (like card sizes in grid),
23+ so we should not do them per-Card but in the category renderer.
24+
25+ This component creates an invisible card filled with maximum mapped data and calculates
26+ or measures card properties for this configuration.
27+ */
28+
29+Item {
30+ id: cardTool
31+ /*!
32+ \brief Template supplied for the category.
33+ */
34+ property var template
35+
36+ /*!
37+ \brief Component mapping supplied for the category.
38+ */
39+ property var components
40+
41+ /*!
42+ \brief Width of the view, based on which carousel width is calculated.
43+ */
44+ property var viewWidth
45+
46+ // FIXME: Saviq
47+ // Only way for the card below to actually be laid out completely.
48+ // If invisible or in "data" array, some components are not taken into account.
49+ width: 0
50+ height: 0
51+ clip: true
52+
53+ /*!
54+ type:real \brief Width to be enforced on the card in this configuration.
55+
56+ If undefined, should use implicit width of the actual card.
57+ */
58+ readonly property var cardWidth: {
59+ switch (template !== undefined && template["category-layout"]) {
60+ case "grid":
61+ case "vertical-journal":
62+ if (template["card-layout"] === "horizontal") return units.gu(38);
63+ switch (template["card-size"]) {
64+ case "small": return units.gu(12);
65+ case "large": return units.gu(38);
66+ }
67+ return units.gu(18.5);
68+ case "carousel":
69+ if (viewWidth === undefined) return undefined
70+ if (viewWidth <= units.gu(40)) return units.gu(18)
71+ if (viewWidth >= units.gu(128)) return units.gu(26)
72+ return units.gu(18 + Math.round((viewWidth - units.gu(40))/ units.gu(11)))
73+ case undefined:
74+ case "organic-grid":
75+ case "journal":
76+ default:
77+ return undefined;
78+ }
79+ }
80+
81+ /*!
82+ type:real \brief Height to be enforced on the card in this configuration.
83+
84+ If undefined, should use implicit height of the actual card.
85+ */
86+ readonly property var cardHeight: {
87+ switch (template !== undefined && template["category-layout"]) {
88+ case "journal":
89+ if (template["card-size"] >= 12 && template["card-size"] <= 38) return units.gu(template["card-size"]);
90+ return units.gu(18.5);
91+ case "grid":
92+ return card.implicitHeight
93+ case "carousel":
94+ return cardWidth / (components ? components["art"]["aspect-ratio"] : 1)
95+ case undefined:
96+ case "organic-grid":
97+ case "vertical-journal":
98+ default:
99+ return undefined;
100+ }
101+ }
102+
103+ readonly property QtObject priv: card
104+
105+ Card {
106+ id: card
107+ template: cardTool.template
108+ components: cardTool.components
109+
110+ width: cardTool.cardWidth || implicitWidth
111+ height: cardTool.cardHeight || implicitHeight
112+
113+ property var fields: ["art", "mascot", "title", "subtitle", "summary"]
114+ property var maxData: {
115+ "art": Qt.resolvedUrl("graphics/checkers.png"),
116+ "mascot": Qt.resolvedUrl("graphics/checkers.png"),
117+ "title": "—\n—",
118+ "subtitle": "—",
119+ "summary": "—\n—\n—\n—\n—"
120+ }
121+
122+ onComponentsChanged: {
123+ var data = {};
124+ for (var k in fields) {
125+ var component = components[fields[k]];
126+ var key = fields[k];
127+ if ((typeof component === "string" && component.length > 0) ||
128+ (typeof component === "object" && component !== null
129+ && typeof component["field"] === "string" && component["field"].length > 0)) {
130+ data[key] = maxData[key];
131+ }
132+ }
133+ cardData = data;
134+ }
135+ }
136+}
qml/Dash/DashPreview.qml+2
@@ -57,6 +57,8 @@ Item {
5757 }
5858 }
5959
60+ onPreviewDataChanged: showProcessingAction = false
61+
6062 MouseArea {
6163 anchors.fill: parent
6264 }
qml/Dash/Generic/GenericPreview.qml+2−1
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2013 Canonical, Ltd.
2+ * Copyright (C) 2013, 2014 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -120,6 +120,7 @@ DashPreview {
120120
121121 Label {
122122 id: descriptionLabel
123+ objectName: "descriptionLabel"
123124 anchors { left: parent.left; right: parent.right }
124125 visible: text != ""
125126 fontSize: "small"
qml/Dash/GenericScopeView.qml+1−1
@@ -56,7 +56,7 @@ FocusScope {
5656 Binding {
5757 target: scope
5858 property: "isActive"
59− value: isCurrent
59+ value: isCurrent && !previewListView.onScreen
6060 }
6161
6262 Timer {
qml/Dash/graphics/checkers.pngnew file

Binary file not shown.

tests/autopilot/unity8/shell/emulators/create_interactive_notification.py+1−1
@@ -87,7 +87,7 @@ if __name__ == '__main__':
8787 action_id,
8888 action_label,
8989 action_callback,
90− (None, ),
90+ None,
9191 None
9292 )
9393
tests/autopilot/unity8/shell/emulators/dash.py+48−30
@@ -137,32 +137,23 @@ class Dash(emulators.UnityEmulatorBase):
137137 self.dash_content_list.currentIndex.wait_for(original_index + 1)
138138
139139
140−class GenericScopeView(emulators.UnityEmulatorBase):
141− """Autopilot emulator for generic scopes."""
140+class DashPreview(emulators.UnityEmulatorBase):
141+ """Autopilot emulator for the generic preview."""
142142
143+ def get_details(self):
144+ """Return the details of the open preview."""
145+ title = self.select_single('Label', objectName='titleLabel').text
146+ subtitle = self.select_single(
147+ 'Label', objectName='subtitleLabel').text
148+ description = self.select_single(
149+ 'Label', objectName='descriptionLabel').text
150+ return dict(title=title, subtitle=subtitle, description=description)
143151
144−class DashApps(emulators.UnityEmulatorBase):
145− """Autopilot emulator for the applications scope."""
146−
147− def get_applications(self, category):
148− """Return the list of applications on a category.
149−
150− :parameter category: The name of the category.
151152
152− """
153− category_element = self._get_category_element(category)
154− application_tiles = category_element.select_many('Tile')
155− # TODO return them on the same order they are displayed.
156− # --elopio - 2014-1-15
157− return [tile.text for tile in application_tiles]
153+class GenericScopeView(emulators.UnityEmulatorBase):
154+ """Autopilot emulator for generic scopes."""
158155
159− def _get_category_element(self, category):
160− try:
161− return self.wait_select_single(
162− 'Base', objectName='dashCategory{}'.format(category))
163− except dbus.StateNotFoundError:
164− raise emulators.UnityEmulatorException(
165− 'No category found with name {}'.format(category))
156+ preview_class = DashPreview
166157
167158 @autopilot_logging.log_action(logger.info)
168159 def open_preview(self, category, app_name):
@@ -178,19 +169,46 @@ class DashApps(emulators.UnityEmulatorBase):
178169 # Some categories do not show previews, like recent apps.
179170 # --elopio - 2014-1-14
180171 self.pointing_device.click_object(icon)
181− return self.get_root_instance().wait_select_single(AppPreview)
172+ preview = self.get_root_instance().wait_select_single(
173+ self.preview_class, isCurrent=True)
174+ preview.showProcessingAction.wait_for(False)
175+ return preview
182176
177+ def _get_category_element(self, category):
178+ try:
179+ return self.wait_select_single(
180+ 'Base', objectName='dashCategory{}'.format(category))
181+ except dbus.StateNotFoundError:
182+ raise emulators.UnityEmulatorException(
183+ 'No category found with name {}'.format(category))
183184
184−class AppPreview(emulators.UnityEmulatorBase):
185+
186+class AppPreview(DashPreview):
185187 """Autopilot emulator for the application preview."""
186188
187189 def get_details(self):
188190 """Return the details of the application showed in its preview."""
189− title = self.select_single('Label', objectName='titleLabel').text
190− publisher = self.select_single(
191− 'Label', objectName='subtitleLabel').text
192− description = self.select_single(
193− 'Label', objectName='descriptionLabel').text
191+ details = super(AppPreview, self).get_details()
194192 # TODO return screenshots, icon, rating and reviews.
195193 # --elopio - 2014-1-15
196− return dict(title=title, publisher=publisher, description=description)
194+ return dict(
195+ title=details.get('title'), publisher=details.get('subtitle'),
196+ description=details.get('description'))
197+
198+
199+class DashApps(GenericScopeView):
200+ """Autopilot emulator for the applications scope."""
201+
202+ preview_class = AppPreview
203+
204+ def get_applications(self, category):
205+ """Return the list of applications on a category.
206+
207+ :parameter category: The name of the category.
208+
209+ """
210+ category_element = self._get_category_element(category)
211+ application_tiles = category_element.select_many('Tile')
212+ # TODO return them on the same order they are displayed.
213+ # --elopio - 2014-1-15
214+ return [tile.text for tile in application_tiles]
tests/autopilot/unity8/shell/fixture_setup.pynew file+53
@@ -0,0 +1,53 @@
1+# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
2+#
3+# Unity Autopilot Test Suite
4+# Copyright (C) 2014 Canonical
5+#
6+# This program is free software: you can redistribute it and/or modify
7+# it under the terms of the GNU General Public License as published by
8+# the Free Software Foundation, either version 3 of the License, or
9+# (at your option) any later version.
10+#
11+# This program is distributed in the hope that it will be useful,
12+# but WITHOUT ANY WARRANTY; without even the implied warranty of
13+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14+# GNU General Public License for more details.
15+#
16+# You should have received a copy of the GNU General Public License
17+# along with this program. If not, see <http://www.gnu.org/licenses/>.
18+#
19+
20+"""Set up and clean up fixtures for the Unity acceptance tests."""
21+
22+import os
23+import sysconfig
24+
25+import fixtures
26+
27+import unity8
28+
29+
30+class FakeScopes(fixtures.Fixture):
31+
32+ def setUp(self):
33+ super(FakeScopes, self).setUp()
34+ self.useFixture(
35+ fixtures.EnvironmentVariable(
36+ 'QML2_IMPORT_PATH',
37+ newvalue=self._get_fake_scopes_library_path()))
38+
39+ def _get_fake_scopes_library_path(self):
40+ if unity8.running_installed_tests():
41+ mock_path = 'qml/scopefakes/'
42+ else:
43+ mock_path = os.path.join(
44+ '../lib/', sysconfig.get_config_var('MULTIARCH'),
45+ 'unity8/qml/scopefakes/')
46+ lib_path = unity8.get_lib_path()
47+ ld_library_path = os.path.abspath(os.path.join(lib_path, mock_path))
48+
49+ if not os.path.exists(ld_library_path):
50+ raise RuntimeError(
51+ 'Expected library path does not exists: %s.' % (
52+ ld_library_path))
53+ return ld_library_path
tests/autopilot/unity8/shell/tests/test_emulators.py+37−29
@@ -27,17 +27,12 @@ don't break them for those external projects.
2727
2828"""
2929
30−import os
31−import sysconfig
32−
3330import mock
3431
35−import fixtures
3632from testtools.matchers import Contains, HasLength
3733
38−import unity8
3934from unity8 import process_helpers
40−from unity8.shell import emulators, tests
35+from unity8.shell import emulators, fixture_setup, tests
4136from unity8.shell.emulators import dash as dash_emulators
4237
4338
@@ -140,6 +135,30 @@ class DashEmulatorTestCase(DashBaseTestCase):
140135 self.assertIsInstance(scope, dash_emulators.DashApps)
141136
142137
138+class GenericScopeViewEmulatorTestCase(DashBaseTestCase):
139+
140+ def setUp(self):
141+ # Set up the fake scopes before launching unity.
142+ self.useFixture(fixture_setup.FakeScopes())
143+ super(GenericScopeViewEmulatorTestCase, self).setUp()
144+ self.home_scope = self.dash.open_scope('home')
145+
146+ def test_open_preview(self):
147+ preview = self.home_scope.open_preview('0', 'Title.0')
148+ self.assertIsInstance(preview, dash_emulators.DashPreview)
149+ self.assertTrue(preview.isCurrent)
150+ self.assertFalse(preview.showProcessingAction)
151+
152+ def test_get_details(self):
153+ expected_details = dict(
154+ title='Title', subtitle='Subtitle', description='Description')
155+
156+ preview = self.home_scope.open_preview('0', 'Title.0')
157+ details = preview.get_details()
158+
159+ self.assertEqual(expected_details, details)
160+
161+
143162class DashAppsEmulatorTestCase(DashBaseTestCase):
144163
145164 available_applications = [
@@ -148,32 +167,11 @@ class DashAppsEmulatorTestCase(DashBaseTestCase):
148167 'Title.201', 'Title.221', 'Title.241', 'Title.261', 'Title.281']
149168
150169 def setUp(self):
151− self._use_scope_fakes()
170+ # Set up the fake scopes before launching unity.
171+ self.useFixture(fixture_setup.FakeScopes())
152172 super(DashAppsEmulatorTestCase, self).setUp()
153173 self.applications_scope = self.dash.open_scope('applications')
154174
155− def _use_scope_fakes(self):
156− self.useFixture(
157− fixtures.EnvironmentVariable(
158− 'QML2_IMPORT_PATH',
159− newvalue=self._get_fake_scopes_library_path()))
160−
161− def _get_fake_scopes_library_path(self):
162− if unity8.running_installed_tests():
163− mock_path = 'qml/scopefakes/'
164− else:
165− mock_path = os.path.join(
166− '../lib/', sysconfig.get_config_var('MULTIARCH'),
167− 'unity8/qml/scopefakes/')
168− lib_path = unity8.get_lib_path()
169− ld_library_path = os.path.abspath(os.path.join(lib_path, mock_path))
170−
171− if not os.path.exists(ld_library_path):
172− raise RuntimeError(
173− 'Expected library path does not exists: %s.' % (
174− ld_library_path))
175− return ld_library_path
176−
177175 def test_get_applications_with_unexisting_category(self):
178176 exception = self.assertRaises(
179177 emulators.UnityEmulatorException,
@@ -205,3 +203,13 @@ class DashAppsEmulatorTestCase(DashBaseTestCase):
205203 preview = self.applications_scope.open_preview('installed', 'Title.1')
206204 self.assertIsInstance(preview, dash_emulators.AppPreview)
207205 self.assertTrue(preview.isCurrent)
206+ self.assertFalse(preview.showProcessingAction)
207+
208+ def test_get_details(self):
209+ expected_details = dict(
210+ title='Title', publisher='', description='Description')
211+
212+ preview = self.applications_scope.open_preview('installed', 'Title.1')
213+ details = preview.get_details()
214+
215+ self.assertEqual(expected_details, details)
tests/autopilot/unity8/shell/tests/test_system_integration.py+3−1
@@ -20,6 +20,7 @@
2020"""Tests for system integration."""
2121
2222import subprocess
23+import unittest
2324
2425from unity8.shell.emulators import UnityEmulatorBase
2526from unity8.shell.tests import UnityTestCase, _get_device_emulation_scenarios
@@ -30,9 +31,10 @@ class SystemIntegrationTests(UnityTestCase):
3031
3132 scenarios = _get_device_emulation_scenarios()
3233
34+ @unittest.skip("Disabled until we can investigate jenkins failure")
3335 def test_networkmanager_integration(self):
3436 self.launch_unity()
3537
3638 # invoke policykit to check permissions
3739 pid = subprocess.check_output("pidof -s unity8", shell=True)
38− retvalue = subprocess.check_call("pkcheck --action-id org.freedesktop.NetworkManager.enable-disable-network --process " + pid, shell=True)
40+ subprocess.check_call("pkcheck --action-id org.freedesktop.NetworkManager.enable-disable-network --process " + pid, shell=True)
tests/qmltests/CMakeLists.txt+1
@@ -44,6 +44,7 @@ add_qml_test(Dash DashPreview)
4444add_qml_test(Dash GenericPreview)
4545add_qml_test(Dash Card)
4646add_qml_test(Dash CardHeader)
47+add_qml_test(Dash CardTool)
4748add_qml_test(Dash GenericScopeView IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins ${qmltest_DEFAULT_IMPORT_PATHS})
4849add_qml_test(Dash FilterGrids IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/plugins ${CMAKE_CURRENT_SOURCE_DIR}/plugins
4950 ${CMAKE_BINARY_DIR}/tests/mocks)
tests/qmltests/Dash/CardHelpers.js+45
@@ -18,6 +18,51 @@
1818
1919var components = ["title", "art", "subtitle", "mascot", "emblem", "old-price", "price", "alt-price", "rating", "alt-rating", "summary"]
2020
21+var defaultLayout = ' \
22+{ \
23+ "schema-version": 1, \
24+ "template": { \
25+ "category-layout": "grid", \
26+ "card-layout": "vertical", \
27+ "card-size": "medium", \
28+ "overlay-mode": null, \
29+ "collapsed-rows": 2 \
30+ }, \
31+ "components": { \
32+ "title": null, \
33+ "art": { \
34+ "aspect-ratio": 1.0, \
35+ "fill-mode": "crop" \
36+ }, \
37+ "subtitle": null, \
38+ "mascot": null, \
39+ "emblem": null, \
40+ "old-price": null, \
41+ "price": null, \
42+ "alt-price": null, \
43+ "rating": { \
44+ "type": "stars", \
45+ "range": [0, 5], \
46+ "full": "image://theme/rating-star-full", \
47+ "half": "image://theme/rating-star-half", \
48+ "empty": "image://theme/rating-star-empty" \
49+ }, \
50+ "alt-rating": null, \
51+ "summary": null \
52+ }, \
53+ "resources": {} \
54+}'
55+
56+var fullMapping = ' \
57+{ \
58+ "title": "title", \
59+ "art": "art", \
60+ "subtitle": "subtitle", \
61+ "mascot": "mascot", \
62+ "summary": "summary" \
63+}'
64+
65+
2166function tryParse(json, errorLabel) {
2267 var o = undefined;
2368 if (errorLabel !== undefined) {
tests/qmltests/Dash/tst_Card.qml+50−69
@@ -27,41 +27,6 @@ Rectangle {
2727 height: units.gu(72)
2828 color: "#88FFFFFF"
2929
30− property string defaultLayout: '
31− {
32− "schema-version": 1,
33− "template": {
34− "category-layout": "grid",
35− "card-layout": "vertical",
36− "card-size": "medium",
37− "overlay-mode": null,
38− "collapsed-rows": 2
39− },
40− "components": {
41− "title": null,
42− "art": {
43− "aspect-ratio": 1.0,
44− "fill-mode": "crop"
45− },
46− "subtitle": null,
47− "mascot": null,
48− "emblem": null,
49− "old-price": null,
50− "price": null,
51− "alt-price": null,
52− "rating": {
53− "type": "stars",
54− "range": [0, 5],
55− "full": "image://theme/rating-star-full",
56− "half": "image://theme/rating-star-half",
57− "empty": "image://theme/rating-star-empty"
58− },
59− "alt-rating": null,
60− "summary": null
61− },
62− "resources": {}
63− }'
64−
6530 property string cardData: '
6631 {
6732 "art": "../../tests/qmltests/Dash/artwork/music-player-design.png",
@@ -71,58 +36,61 @@ Rectangle {
7136 "summary": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
7237 }'
7338
74− property string fullMapping: '
75− {
76− "title": "title",
77− "art": "art",
78− "subtitle": "subtitle",
79− "mascot": "mascot",
80− "summary": "summary"
81− }'
82−
8339 property var cardsModel: [
8440 {
85− "name": "Art, header, summary - vertical",
86− "layout": { "components": JSON.parse(fullMapping) }
41+ "name": "Art, header, summary",
42+ "layout": { "components": JSON.parse(Helpers.fullMapping) }
8743 },
8844 {
89− "name": "Art, header, summary - vertical, small",
90− "layout": { "template": { "card-size": "small" }, "components": JSON.parse(fullMapping) }
45+ "name": "Art, header, summary - small",
46+ "layout": { "template": { "card-size": "small" }, "components": JSON.parse(Helpers.fullMapping) }
9147 },
9248 {
93− "name": "Art, header, summary - vertical, large",
94− "layout": { "template": { "card-size": "large" }, "components": JSON.parse(fullMapping) }
49+ "name": "Art, header, summary - large",
50+ "layout": { "template": { "card-size": "large" }, "components": JSON.parse(Helpers.fullMapping) }
9551 },
9652 {
97− "name": "Art, header, summary - vertical, wide",
98− "layout": { "components": Helpers.update(JSON.parse(root.fullMapping), { "art": { "aspect-ratio": 2 } }) }
53+ "name": "Art, header, summary - wide",
54+ "layout": { "components": Helpers.update(JSON.parse(Helpers.fullMapping), { "art": { "aspect-ratio": 2 } }) }
9955 },
10056 {
101− "name": "Art, title - vertical, fitted",
102− "layout": { "components": Helpers.update(JSON.parse(root.fullMapping), { "art": { "fill-mode": "fit" } }) }
57+ "name": "Art, title - fitted",
58+ "layout": { "components": Helpers.update(JSON.parse(Helpers.fullMapping), { "art": { "fill-mode": "fit" } }) }
10359 },
10460 {
10561 "name": "Art, header, summary - horizontal",
10662 "layout": { "template": { "card-layout": "horizontal" },
107− "components": JSON.parse(fullMapping) }
63+ "components": JSON.parse(Helpers.fullMapping) }
10864 },
10965 {
110− "name": "Art, header - vertical",
111− "layout": { "components": Helpers.update(JSON.parse(root.fullMapping), { "summary": undefined }) }
66+ "name": "Art, header",
67+ "layout": { "components": Helpers.update(JSON.parse(Helpers.fullMapping), { "summary": undefined }) }
11268 },
11369 {
114− "name": "Header title only - horizontal",
115− "layout": { "template": { "card-layout": "horizontal" },
116− "components": { "title": "title" } }
70+ "name": "Art, summary",
71+ "layout": { "components": { "art": "art", "summary": "summary" } }
72+ },
73+ {
74+ "name": "Header title only",
75+ "layout": { "components": { "title": "title" } }
11776 },
11877 ]
11978
79+ CardTool {
80+ id: cardTool
81+ template: card.template
82+ components: card.components
83+ }
84+
12085 Card {
12186 id: card
12287 anchors { top: parent.top; left: parent.left; margins: units.gu(1) }
12388
124− template: Helpers.update(JSON.parse(root.defaultLayout), Helpers.tryParse(layoutArea.text, layoutError))['template'];
125− components: Helpers.update(JSON.parse(root.defaultLayout), Helpers.tryParse(layoutArea.text, layoutError))['components'];
89+ width: cardTool.cardWidth || implicitWidth
90+ height: cardTool.cardHeight || implicitHeight
91+
92+ template: Helpers.update(JSON.parse(Helpers.defaultLayout), Helpers.tryParse(layoutArea.text, layoutError))['template'];
93+ components: Helpers.update(JSON.parse(Helpers.defaultLayout), Helpers.tryParse(layoutArea.text, layoutError))['components'];
12694 cardData: Helpers.mapData(dataArea.text, components, dataError)
12795 }
12896
@@ -245,8 +213,8 @@ Rectangle {
245213 function test_card_size_data() {
246214 return [
247215 { tag: "Medium", width: units.gu(18.5), index: 0 },
248− { tag: "Small", width: units.gu(12), size: "small", index: 0 },
249− { tag: "Large", width: units.gu(38), size: "large", index: 0 },
216+ { tag: "Small", width: units.gu(12), index: 1 },
217+ { tag: "Large", width: units.gu(38), index: 2 },
250218 { tag: "Wide", width: units.gu(18.5), aspect: 0.5, index: 0 },
251219 { tag: "Horizontal", width: units.gu(38), index: 5 },
252220 // Make sure card ends with header when there's no summary
@@ -356,13 +324,26 @@ Rectangle {
356324 tryCompareFunction(function() { return testCase.header.x === data.left() }, true);
357325 }
358326
327+ function test_summary_layout_data() {
328+ return [
329+ { tag: "With header", top: function() { return header.y + header.height }, index: 0 },
330+ { tag: "Without header", top: function() { return art.y + art.height }, index: 7 },
331+ ]
332+ }
333+
334+ function test_summary_layout(data) {
335+ selector.selectedIndex = data.index;
336+
337+ tryCompareFunction(function() { return testCase.summary.y === data.top() }, true);
338+ }
339+
359340 function test_art_visibility() {
360− selector.selectedIndex = 7
341+ selector.selectedIndex = 8;
361342
362− tryCompare(testCase.artImage, "source", "")
363− compare(testCase.art.visible, false)
364− compare(testCase.art.height, 0)
365− compare(testCase.art.width, 0)
343+ tryCompare(testCase.artImage, "source", "");
344+ compare(testCase.art.visible, false);
345+ compare(testCase.art.height, 0);
346+ compare(testCase.art.width, 0);
366347 }
367348 }
368349}
tests/qmltests/Dash/tst_CardHeader.qml+3−3
@@ -120,9 +120,9 @@ Rectangle {
120120
121121 function test_dimensions_data() {
122122 return [
123− { tag: "Column width", object: column, width: cardHeader.width - testCase.outerRow.spacing * 2 },
124− { tag: "Column width", object: column, width: cardHeader.width - mascot.width - testCase.outerRow.spacing * 3, mascot: "artwork/avatar.png" },
125− { tag: "Header height", object: cardHeader, height: function() { return subtitleLabel.y + subtitleLabel.height + outerRow.spacing * 2 } },
123+ { tag: "Column width", object: column, width: cardHeader.width },
124+ { tag: "Column width with mascot", object: column, width: cardHeader.width - mascot.width - outerRow.margins * 3, mascot: "artwork/avatar.png" },
125+ { tag: "Header height", object: cardHeader, height: function() { return subtitleLabel.y + subtitleLabel.height + outerRow.margins * 2 } },
126126 ]
127127 }
128128
tests/qmltests/Dash/tst_CardTool.qmlnew file+300
@@ -0,0 +1,300 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.0
18+import QtTest 1.0
19+import Ubuntu.Components 0.1
20+import Unity.Test 0.1 as UT
21+import "../../../qml/Dash"
22+import "CardHelpers.js" as Helpers
23+
24+Rectangle {
25+ id: root
26+ width: units.gu(80)
27+ height: units.gu(72)
28+ color: "#88FFFFFF"
29+
30+ property var cardsModel: [
31+ {
32+ "name": "Art, header, summary",
33+ "layout": { "components": JSON.parse(Helpers.fullMapping) }
34+ },
35+ {
36+ "name": "Header, summary",
37+ "layout": { "components": Helpers.update(JSON.parse(Helpers.fullMapping), { "art": undefined }) }
38+ },
39+ {
40+ "name": "Art, header",
41+ "layout": { "components": Helpers.update(JSON.parse(Helpers.fullMapping), { "summary": undefined }) }
42+ },
43+ {
44+ "name": "Header only",
45+ "layout": { "components": Helpers.update(JSON.parse(Helpers.fullMapping), { "art": undefined, "summary": undefined }) }
46+ },
47+ {
48+ "name": "Header title only",
49+ "layout": { "components": { "title": "title" } }
50+ },
51+ {
52+ "name": "Header title and subtitle",
53+ "layout": { "components": { "title": "title", "subtitle": "subtitle" } }
54+ },
55+ {
56+ "name": "Header title and mascot",
57+ "layout": { "components": { "title": "title", "mascot": "mascot" } }
58+ },
59+ {
60+ "name": "Art, header, summary - small",
61+ "layout": { "template": { "card-size": "small" }, "components": JSON.parse(Helpers.fullMapping) }
62+ },
63+ {
64+ "name": "Art, header, summary - large",
65+ "layout": { "template": { "card-size": "large" }, "components": JSON.parse(Helpers.fullMapping) }
66+ },
67+ {
68+ "name": "Art, header, summary - horizontal",
69+ "layout": { "template": { "card-layout": "horizontal" }, "components": JSON.parse(Helpers.fullMapping) }
70+ },
71+ {
72+ "name": "Art, header - portrait",
73+ "layout": { "components": Helpers.update(JSON.parse(Helpers.fullMapping), { "art": {"aspect-ratio": 0.5, "summary": undefined }}) }
74+ },
75+ ]
76+
77+ CardTool {
78+ id: cardTool
79+
80+ template: Helpers.update(JSON.parse(Helpers.defaultLayout), Helpers.tryParse(layoutArea.text, layoutError))['template'];
81+ components: Helpers.update(JSON.parse(Helpers.defaultLayout), Helpers.tryParse(layoutArea.text, layoutError))['components'];
82+ viewWidth: units.gu(Math.round(widthSlider.value))
83+ }
84+
85+ Column {
86+ width: units.gu(38)
87+ anchors { left: parent.left; top: parent.top; margins: units.gu(1) }
88+
89+ Repeater {
90+ model: [
91+ { label: "View width", value: cardTool.viewWidth && cardTool.viewWidth / units.gu(1) },
92+ { label: "Card width", value: cardTool.cardWidth && cardTool.cardWidth / units.gu(1) },
93+ { label: "Card height", value: cardTool.cardHeight && cardTool.cardHeight / units.gu(1) },
94+ ]
95+
96+ delegate: Row {
97+ anchors { left: parent.left; right: parent.right; margins: units.gu(3) }
98+
99+ Label {
100+ height: units.gu(5)
101+ width: units.gu(25)
102+ text: modelData.label
103+ verticalAlignment: Text.AlignVCenter
104+ }
105+
106+ Label {
107+ height: units.gu(5)
108+ text: modelData.value || "undefined"
109+ verticalAlignment: Text.AlignVCenter
110+ }
111+ }
112+ }
113+
114+ Card {
115+ id: card
116+ template: cardTool.template;
117+ components: cardTool.components;
118+ cardData: Helpers.mapData(dataArea.text, components, dataError)
119+
120+ width: cardTool.cardWidth || implicitWidth
121+ height: cardTool.cardHeight || implicitHeight
122+
123+ clip: true
124+
125+ Rectangle {
126+ anchors.fill: parent
127+ color: "transparent"
128+ border.width: 1
129+ border.color: "green"
130+ }
131+ }
132+ }
133+
134+ Rectangle {
135+ anchors { top: parent.top; bottom: parent.bottom; right: parent.right}
136+ width: units.gu(40)
137+ color: "lightgrey"
138+
139+ Column {
140+ anchors { fill: parent; margins: units.gu(1) }
141+ spacing: units.gu(1)
142+
143+ OptionSelector {
144+ id: selector
145+ model: cardsModel
146+ delegate: OptionSelectorDelegate { text: modelData.name }
147+ onSelectedIndexChanged: updateAreas()
148+ Component.onCompleted: updateAreas()
149+
150+ function updateAreas() {
151+ var element = cardsModel[selectedIndex];
152+ if (element) {
153+ layoutArea.text = JSON.stringify(element.layout, undefined, 2) || "{}";
154+ } else {
155+ layoutArea.text = "";
156+ }
157+ }
158+ }
159+
160+ OptionSelector {
161+ id: layoutSelector
162+ model: [
163+ { label: "Grid", layout: "grid" },
164+ { label: "Organic Grid", layout: "organic-grid" },
165+ { label: "Horizontal Journal", layout: "journal" },
166+ { label: "Vertical Journal", layout: "vertical-journal" },
167+ { label: "Carousel", layout: "carousel" },
168+ ]
169+ delegate: OptionSelectorDelegate { text: modelData.label }
170+ onSelectedIndexChanged: {
171+ var element = model[selectedIndex];
172+ if (element && cardTool.template["category-layout"] !== element.layout) {
173+ var current = JSON.parse(layoutArea.text);
174+ var update = { "template": { "category-layout": element.layout }}
175+ layoutArea.text = JSON.stringify(Helpers.update(current, update), undefined, 2) || "{}";
176+ }
177+ }
178+ }
179+
180+ Label {
181+ anchors { left: parent.left; right: parent.right }
182+ height: units.gu(3)
183+ verticalAlignment: Text.AlignBottom
184+ text: "View width:"
185+ }
186+
187+ Slider {
188+ id: widthSlider
189+ minimumValue: 30
190+ maximumValue: 140
191+ live: true
192+ value: 40
193+ }
194+
195+ TextArea {
196+ id: layoutArea
197+ anchors { left: parent.left; right: parent.right }
198+ height: units.gu(25)
199+ }
200+
201+ Label {
202+ id: layoutError
203+ anchors { left: parent.left; right: parent.right }
204+ height: units.gu(4)
205+ color: "orange"
206+ }
207+
208+ TextArea {
209+ id: dataArea
210+ anchors { left: parent.left; right: parent.right }
211+ height: units.gu(25)
212+ text: JSON.stringify(cardTool.priv.cardData, undefined, 2)
213+ }
214+
215+ Label {
216+ id: dataError
217+ anchors { left: parent.left; right: parent.right }
218+ height: units.gu(4)
219+ color: "orange"
220+ }
221+ }
222+
223+ Connections {
224+ target: cardTool
225+ onTemplateChanged: {
226+ switch(cardTool.template["category-layout"]) {
227+ case "organic-grid": layoutSelector.selectedIndex = 1; break;
228+ case "journal": layoutSelector.selectedIndex = 2; break;
229+ case "vertical-journal": layoutSelector.selectedIndex = 3; break;
230+ case "carousel": layoutSelector.selectedIndex = 4; break;
231+ case "grid":
232+ default: layoutSelector.selectedIndex = 0; break;
233+ }
234+ }
235+ }
236+ }
237+
238+ UT.UnityTestCase {
239+ id: testCase
240+ name: "Card"
241+
242+ when: windowShown
243+
244+ function cleanup() {
245+ selector.selectedIndex = -1;
246+ layoutSelector.selectedIndex = -1;
247+ }
248+
249+ function test_card_size_data() {
250+ return [
251+ { tag: "Medium", width: units.gu(18.5), height: function() { return card.height }, index: 0 },
252+ { tag: "No art", width: units.gu(18.5), height: function() { return card.height }, index: 1 },
253+ { tag: "No summary", width: units.gu(18.5), height: function() { return card.height }, index: 2 },
254+ { tag: "Just header", width: units.gu(18.5), height: function() { return card.height }, index: 3 },
255+ { tag: "Just title", width: units.gu(18.5), height: function() { return card.height }, index: 4 },
256+ { tag: "Title and subtitle", width: units.gu(18.5), height: function() { return card.height }, index: 5 },
257+ { tag: "Title and mascot", width: units.gu(18.5), height: function() { return card.height }, index: 6 },
258+ { tag: "Small", width: units.gu(12), height: function() { return card.height }, index: 7 },
259+ { tag: "Large", width: units.gu(38), height: function() { return card.height }, index: 8 },
260+ { tag: "Horizontal", width: units.gu(38), height: function() { return card.height }, index: 9 },
261+ { tag: "OrganicGrid", width: undefined, height: undefined, index: 0, layout_index: 1},
262+ { tag: "Journal", width: undefined, height: units.gu(20), size: 20, index: 0, layout_index: 2 },
263+ { tag: "OversizedJournal", width: undefined, height: units.gu(18.5), size: 40, index: 0, layout_index: 2 },
264+ { tag: "VerticalJournal", width: units.gu(18.5), height: undefined, index: 0, layout_index: 3 },
265+ { tag: "SmallCarousel", width: units.gu(18), height: units.gu(18), viewWidth: 30, index: 0, layout_index: 4},
266+ { tag: "MediumCarousel", width: units.gu(22), height: units.gu(22), viewWidth: 84, index: 0, layout_index: 4},
267+ { tag: "LargeCarousel", width: units.gu(26), height: units.gu(26), viewWidth: 140, index: 0, layout_index: 4},
268+ { tag: "PortraitCarousel", width: units.gu(22), height: units.gu(44), viewWidth: 84, index: 10, layout_index: 4},
269+ ]
270+ }
271+
272+ function test_card_size(data) {
273+ selector.selectedIndex = data.index;
274+ if (data.hasOwnProperty("layout_index")) {
275+ layoutSelector.selectedIndex = data.layout_index;
276+ }
277+
278+ if (data.hasOwnProperty("viewWidth")) {
279+ widthSlider.value = data.viewWidth;
280+ }
281+
282+ if (data.hasOwnProperty("size")) {
283+ cardTool.template['card-size'] = data.size;
284+ cardTool.templateChanged();
285+ }
286+
287+ if (data.hasOwnProperty("width")) {
288+ if (typeof data.width === "function") {
289+ tryCompareFunction(function() { return cardTool.cardWidth === data.width() }, true);
290+ } else tryCompare(cardTool, "cardWidth", data.width);
291+ }
292+
293+ if (data.hasOwnProperty("height")) {
294+ if (typeof data.height === "function") {
295+ tryCompareFunction(function() { return cardTool.cardHeight === data.height() }, true);
296+ } else tryCompare(cardTool, "cardHeight", data.height);
297+ }
298+ }
299+ }
300+}
tests/qmltests/Dash/tst_GenericPreview.qml+8
@@ -113,5 +113,13 @@ Item {
113113 compare(value.text, dataObject.infoHints[i].value)
114114 }
115115 }
116+
117+ function test_showProcessing() {
118+ var button = findChild(genericPreview, "button1");
119+ mouseClick(button, 1, 1);
120+ tryCompare(genericPreview, "showProcessingAction", true);
121+ genericPreview.previewDataChanged();
122+ tryCompare(genericPreview, "showProcessingAction", false);
123+ }
116124 }
117125}
tests/qmltests/Dash/tst_GenericScopeView.qml+12
@@ -79,6 +79,18 @@ Item {
7979 tryCompare(previewListView, "open", false);
8080 }
8181
82+ function test_isActive() {
83+ tryCompare(genericScopeView.scope, "isActive", false)
84+ genericScopeView.isCurrent = true
85+ tryCompare(genericScopeView.scope, "isActive", true)
86+ previewListView.open = true
87+ tryCompare(genericScopeView.scope, "isActive", false)
88+ previewListView.open = false
89+ tryCompare(genericScopeView.scope, "isActive", true)
90+ genericScopeView.isCurrent = false
91+ tryCompare(genericScopeView.scope, "isActive", false)
92+ }
93+
8294 function test_showDash() {
8395 previewListView.open = true;
8496 tryCompare(openEffect, "live", true);