1. Nov 11, 2014
    • Topi Reinio's avatar
      qdoc: Prepare QDoc for the new style on qt.io · 1ad78f5f
      Topi Reinio authored
      
      The new template and CSS have some requirements that need changes
      in the generated .html:
      
          - Generate a new div 'sidebar' and place the TOC (if one
            exists) inside it, allowing the template to extend the
            sidebar contents dynamically. Do this for all pages
            except index.html.
      
          - Change the DOCTYPE declaration to be html5-compliant
      
          - Replace <tt> tags with <code> to be html5-compliant
      
          - Add a new config variable HTML.prologue - this allows
            the template to insert custom html into beginning of
            the page, before the page title but after any navigation
            or table-of-contents items.
      
          - Wrap tables inside <div> elements. This allows for
            better-working CSS design for small-screen devices.
      
          - Write out extra parameters first when outputting
            function synopsis to have better styling.
      
          - Inject zero-width-space characters into function
            names to allow the browser break up long function
            signatures in a nice manner.
      
          - Edit the CSS for the offline style to adapt to
            above changes.
      
      Task-number: QTBUG-42086
      Change-Id: I3075cdc11bcb07a66150388519263fd721c8002b
      Reviewed-by: default avatarMartin Smith <martin.smith@digia.com>
      1ad78f5f
  2. Sep 24, 2014
  3. Aug 22, 2014
    • Martin Smith's avatar
      qdoc: Remove all collision node stuff from qdoc · a5570bbf
      Martin Smith authored
      
      Now that the qdoc link command has ability to tell qdoc which module
      contains a link target or whether to link to a QML or CPP entity,
      collision pages should no longer be necessary. In fact, qdoc hasn't
      been generating any collisions for some time. This task removes all
      the collision node code from qdoc.
      
      Task-number: QTBUG-40506
      Change-Id: I34d1980ca1c0fe4bb5ad27dd4b00e61fa7e6e335
      Reviewed-by: default avatarTopi Reiniö <topi.reinio@digia.com>
      a5570bbf
  4. Aug 20, 2014
  5. Jul 18, 2014
    • Topi Reinio's avatar
      qdoc: Support use of \value command outside \enum topic. · d15309ed
      Topi Reinio authored
      
      Even though qdoc accepts the \value command(s) anywhere in the
      documentation and generates tables for them, the produced output was
      invalid for documentation topics other than \enum.
      
      This change fixes the issue by not trying to resolve the enumeration
      values and removing the 'Value' column for generated tables when the
      \value command is used outside c++ enum documentation topic.
      
      This enables, for example, the use of the \value command for
      documenting acceptable values for QML enumeration properties,
      without having to use custom lists or tables.
      
      Task-number: QTBUG-35019
      Change-Id: I597b2f9d7d03d4ab72f276752ddf53e1c405313c
      Reviewed-by: default avatarJerome Pasion <jerome.pasion@digia.com>
      Reviewed-by: default avatarMartin Smith <martin.smith@digia.com>
      d15309ed
  6. May 10, 2014
  7. Mar 31, 2014
    • Martin Smith's avatar
      qdoc: fix inheritance information for some QML types · 900c150a
      Martin Smith authored
      
      This update fixes a bug introduced by the extensive changes
      for QTBUG-35377. For a QML base type loaded from an index file,
      its QML base type was not being resolved. This resulted in the
      "All members" page for some QML types to be incomplete because
      the pointer to the base type was 0 when it should have been set.
      This change also introduces the concept of "just in time"
      resolution for base type pointers, which appears to speed up
      qdoc a little.
      
      Task-number: QTBUG-37326
      Change-Id: I5f09336ec70ba84029b44b245c56f7f8fe349757
      Reviewed-by: default avatarMartin Smith <martin.smith@digia.com>
      900c150a
    • Martin Smith's avatar
      qdoc: Teach qdoc to use multiple trees · e9954e31
      Martin Smith authored
      
      qdoc now builds a separate Node Tree for each index
      file it parsed. The main Node Tree now contains only
      the Nodes of things being documented in the current
      module. This should make qdoc run a little faster.
      
      qdoc now uses these separate trees to make intra-module
      and inter-module linking more robust by searching the
      trees in an order that depends on the type of link it
      is searching for. The tree for the current module is
      always searched first. Then qdoc searches the trees
      for either the C++ modules or the QML modules, depending
      on whether it is looking for a C++ link or a QML link.
      
      In preparation for this update, qdoc was also simplified
      a lot. Many functions became obsolete and were removed.
      Others were combined.
      
      Task-number: QTBUG-35377
      Change-Id: Iea4e49869ff6a6ff0f4d53090728770d40d892f3
      Reviewed-by: default avatarTopi Reiniö <topi.reinio@digia.com>
      e9954e31
  8. Nov 01, 2013
  9. Oct 07, 2013
  10. Sep 21, 2013
  11. Sep 12, 2013
    • Martin Smith's avatar
      qdoc: Avoid CppCodeMarker crash on abstract QML types · 5cfb252b
      Martin Smith authored
      
      In a while loop, when the first QML type encountered was
      abstract, qdoc didn't create a class map on the heap, but
      later in the loop, the class map was used anyway. This
      caused a crash because of a null pointer to the class map.
      
      Now qdoc creates a class map if one hasn't been created
      yet, even if the QML type is abstract. This might not be
      correct, but the real problem is probably the order in
      which qdoc processes the QML types. It should probably
      always start with a non-abstract type. But this fix will
      at least avoid the crash.
      
      Task-number: QTBUG-33387
      Change-Id: Icecb165261469856820f81e3866218b15416ae3b
      Reviewed-by: default avatarJerome Pasion <jerome.pasion@digia.com>
      5cfb252b
  12. Jul 11, 2013
    • Martin Smith's avatar
      qdoc: Implement better handling of QML property groups · 2eb28f51
      Martin Smith authored
      
      The \qmlpropertygroup command is added, and qdoc is taught to generate
      better output for it. The format is, e.g.:
      
      \qmlpropertygroup QtQuick2::Item::anchors
      \qmlproperty AnchorLine QtQuick2::Item::anchors.top
      \qmlproperty AnchorLine QtQuick2::Item::anchors.bottom
      \qmlproperty AnchorLine QtQuick2::Item::anchors.left
      \qmlproperty AnchorLine QtQuick2::Item::anchors.right
      \qmlproperty AnchorLine QtQuick2::Item::anchors.horizontalCenter
      \qmlproperty AnchorLine QtQuick2::Item::anchors.verticalCenter
      \qmlproperty AnchorLine QtQuick2::Item::anchors.baseline
      \qmlproperty Item QtQuick2::Item::anchors.fill
      \qmlproperty Item QtQuick2::Item::anchors.centerIn
      \qmlproperty real QtQuick2::Item::anchors.margins
      \qmlproperty real QtQuick2::Item::anchors.topMargin
      \qmlproperty real QtQuick2::Item::anchors.bottomMargin
      \qmlproperty real QtQuick2::Item::anchors.leftMargin
      \qmlproperty real QtQuick2::Item::anchors.rightMargin
      \qmlproperty real QtQuick2::Item::anchors.horizontalCenterOffset
      \qmlproperty real QtQuick2::Item::anchors.verticalCenterOffset
      \qmlproperty real QtQuick2::Item::anchors.baselineOffset
      \qmlproperty bool QtQuick2::Item::anchors.alignWhenCentered
      
      Task-number: QTBUG-32341
      Change-Id: I4b06a3a061b23680e663e8d4e82ac9863ffd4ecb
      Reviewed-by: default avatarJerome Pasion <jerome.pasion@digia.com>
      2eb28f51
  13. Mar 26, 2013
    • Martin Smith's avatar
      qdoc: Show signals inherited from abstract base types · 771a254d
      Martin Smith authored
      
      qdoc was not including QML signals in the documentation
      for a QML type, when the signals were inherited from a
      QML type that had been marked abstract. This is now fixed.
      
      Additionally, the QML type qualifier is not shown in the
      header for the documentation for a member of a QML type.
      The type qualifier was redundant information, and it was
      incorrect for members inherited from abstract base types.
      
      Task-number: QTBUG-30111
      Change-Id: I73aef40f69a15bca6948bf36596b83800d248b1f
      Reviewed-by: default avatarJerome Pasion <jerome.pasion@digia.com>
      771a254d
  14. Mar 22, 2013
    • Martin Smith's avatar
      qdoc: List of all members subpage redesigned · 04770e58
      Martin Smith authored
      
      The subpage listing all the members of a QML type,
      including the inherited members, was trying to use
      an old format that works ok for C++ classes but is
      not optimal for QML types.
      
      The redesigned format for QML types still lists all
      the members but it lists the members for each base
      type in a separate list.
      
      The members for a QML type that has been marked as
      abstract are listed with the members of the type
      that inherits the abstract type.
      
      This fix does not fix QTBUG-30111, which will be
      fixed in a separate commit. This means that some
      links on the subpage generated by this change
      will be links to a page that doesn't actually
      contain any documentation for the linked member.
      But it will eventually.
      
      Task-number: QTBUG-30114
      Change-Id: I8ae4227d1eaecdbc24a4ac9b8119f0ced2cdee92
      Reviewed-by: default avatarJerome Pasion <jerome.pasion@digia.com>
      04770e58
  15. Feb 22, 2013
    • Martin Smith's avatar
      doc: QML Inheritance is not resolved correctly. · bfce04fe
      Martin Smith authored
      
      qdoc did not resolve QML Inheritance correctly and the result was that
      QML inheritance was not shown correctly in the documentation. Part of
      the problem was that information was missing for QML types in the .index
      files produced by qdoc. qdoc also did not show inheritance properly
      when one of its base types was marked internal. These problems have
      now been fixed.
      
      This update also fixes the problem that caused qdoc to slow down to a
      snail's pace over time. The group members list for certain group pages
      was getting longer and longer, because qdoc added the same member to
      the member list an additional time every time qdoc was run in -prepare
      mode if you didn't clear the index files first. Now, qdoc only adds a
      member to the member list if it isn't already in the member list.
      
      Task-number: QTBUG-29778
      Change-Id: Ie4f0458a2ea4ceb1a64cdcd7f60f16b124a20790
      Reviewed-by: default avatarTopi Reiniö <topi.reinio@digia.com>
      Reviewed-by: default avatarJerome Pasion <jerome.pasion@digia.com>
      bfce04fe
  16. Feb 20, 2013
  17. Feb 13, 2013
    • Martin Smith's avatar
      qdoc: inherited members do not show up for QML components · cd84491a
      Martin Smith authored
      
      This was a regression bug owing to a big qdoc cleanup
      for Qt5. But the way QML inheritance had been handled
      was not a good design, so it has been changed here.
      When a .qml file is parsed by qdoc, the base type of
      the QML component is detected, and its name is stored
      in qdoc's tree node for the component. After qdoc has
      parsed all the QML files, it traverses the tree, and
      for each QML component that has a base type name but
      no base type node pointer yet, it searches the tree
      for the base type node and stores the pointer to
      the node in the node for the components. Then when
      the output generator generates the doc page for the
      component, it has access to all the inherited members
      in the base type.
      
      Task-number: QTBUG-29569
      Change-Id: Ib4958d05f55fa48a572f8ca51ffd57712f29bbc7
      Reviewed-by: default avatarJ-P Nurmi <jpnurmi@digia.com>
      Reviewed-by: default avatarTopi Reiniö <topi.reinio@digia.com>
      Reviewed-by: default avatarMartin Smith <martin.smith@digia.com>
      cd84491a
  18. Jan 18, 2013
  19. Dec 11, 2012
  20. Dec 05, 2012
    • Martin Smith's avatar
      qdoc: Don't include inherited members in the class ref · fd1f65a9
      Martin Smith authored
      
      Once upon a time, the inherited functions, signals,
      slots, etc were not listed on the class reference
      page, but they were counted and a link to the base
      class was provided for them, eg:
      
      2 public functions inherited from QAbstractListModel
      39 public functions inherited from QAbstractItemModel
      31 public functions inherited from QObject
      
      Somehow, this got broken, so that all these inherited
      things were listed on the class reference page as if
      they were members of the class. But they liunked to
      the documentation in the base class.
      
      This now works correctly again. It simnplifies the
      class reference pages a lot.
      
      Task-number: QTBUG-27496
      Change-Id: If493da8cbf81634f1344b12094d9a06f8528e8e5
      Reviewed-by: default avatarJerome Pasion <jerome.pasion@digia.com>
      Reviewed-by: default avatarLars Knoll <lars.knoll@digia.com>
      fd1f65a9
  21. Sep 23, 2012
  22. Sep 22, 2012
  23. Sep 14, 2012
  24. Sep 01, 2012
  25. Aug 21, 2012
    • Martin Smith's avatar
      doc: Replaced FakeNode with DocNode · 5f4d793d
      Martin Smith authored
      
      The name FakeNode was a bad choice. It was used
      to represent something that wasn't derived from
      a C++ declaration in a .h file. Any generic page
      or QML item or any special kind of qdoc construct
      was stored in a FakeNode. The name was unfortunate
      because the constructs stored in FakeNodes were
      just as real as C++ constructs.
      
      So FakeNode has been renamed to DocNode, which
      just refers to a documentation node. The node
      type Fake has been replaced with node type
      Document.
      
      Change-Id: Ida9de8288b7b8915bf9273fd890ca84aaf05e182
      Reviewed-by: default avatarCasper van Donderen <casper.vandonderen@nokia.com>
      5f4d793d
  26. Aug 05, 2012
  27. Aug 02, 2012
  28. May 29, 2012
  29. May 16, 2012
  30. May 15, 2012
  31. May 12, 2012
  32. May 11, 2012
    • Martin Smith's avatar
      qdoc: Fixed a regression bug caused by fixing error messages · 0909c01b
      Martin Smith authored
      
      The C++ code marker is the default code marker. The default
      code marker was being called for .qdoc files. But when the
      tree nodes were each assigned a location object based on
      the location in the source file where the node was built,
      the default code marker was no longer used. Instead, the
      plain code marker was used. This was wrong. qdoc now knows
      to use the C++ code marker for all .qdoc files.
      
      Change-Id: I15a58168db74cc5aa82a1fbccc5b7ece219ec297
      Reviewed-by: default avatarCasper van Donderen <casper.vandonderen@nokia.com>
      0909c01b
  33. Apr 11, 2012
  34. Apr 02, 2012
    • Martin Smith's avatar
      qdoc: Allow documenting a C++ class as a QML type. · 9b0c0823
      Martin Smith authored
      
      Now qdoc can handle the case where a C++ class is
      documented as a QML type of the same name, or as
      both a C++ class and a QML type of the same name.
      
      And collisions pages are created for both the HTML
      and the DITA XML output. A collision page is created
      when two items have the same name. The collision
      pages will be augmented later to include the list
      of pages where ambiguous links to one of the items
      listed on the collision page are actually located,
      so the writer can go back to those links and add
      the appropriate qualifier.
      
      Change-Id: I5a9632b2d2209e0784392047056bed8962005624
      Reviewed-by: default avatarMartin Smith <martin.smith@nokia.com>
      Reviewed-by: default avatarCasper van Donderen <casper.vandonderen@nokia.com>
      9b0c0823
  35. Mar 13, 2012
  36. Mar 08, 2012