Review Request 123586: Improvements to outline view

Milian Wolff mail at milianw.de
Thu Jul 30 19:33:31 UTC 2015



> On May 2, 2015, 4:54 p.m., Milian Wolff wrote:
> >

ping? any progress on this? It's a very valuable contribution, and my nitpicks below should not have held you up. If you want, I can take care of rebasing it as needed and pushing it in your name.

Cheers


- Milian


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/123586/#review79786
-----------------------------------------------------------


On May 1, 2015, 8:30 p.m., Alex Richardson wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/123586/
> -----------------------------------------------------------
> 
> (Updated May 1, 2015, 8:30 p.m.)
> 
> 
> Review request for KDevelop.
> 
> 
> Repository: kdevplatform
> 
> 
> Description
> -------
> 
> This patch adds the following improvements:
> - Contexts without a matching declaration (DUContext::owner()) now also show up in the outline view
> - Outline view can be sorted alphabetically
> - Nodes in the outline will now always appear in the order that the matching declaration appears in the source
> - Reduce code duplication between OutlineNode and OutlineModel
> 
> ---
> 
> Simplify outlineview by reusing code from OutlineNode in the model
> 
> Instead of storing a std::vector<OutlineNode> we now store a single
> OutlineNode* which means the model no longer iterates over the decls of
> the TopDUContext but rather we reuse OutlineNode::appendChildContext()
> 
> ---
> 
> Fix not showing Contexts without declarations in outline view
> 
> For example in the following code the members of N::C would not show up:
> 
> namespace N {
>     class C;
> }
> 
> class N::C {
>     char c;
> }
> 
> int main(int, char**) {}
> 
> There is still the problem that N::C gets listed after main(), but there
> are also other ordering problems. This will require sorting based on the
> declaration location of the OulineNode
> 
> ---
> 
> Outline view: show icons also for contexts without a declaration
> 
> ----
> 
> Sort outlineview base on where the elements appear in the source
> 
> The outline view is mostly correct. However, in cases where there are
> contexts that don't have an associated declaration these will be added
> to the end of the list regardless of where they are in the source. For
> example the following code
> 
> namespace N { class C; }
> class N::C {
>    int f(double);
> };
> void foo()
> 
> would previously result in an outline like this:
> 
> +-+- N
> | \-- C
> +-- foo(): void
> +-+- N
>    \-+- C
>       \-- f(double): int
> 
> now it correctly renders as:
> 
> +-+- N
> | \-- C
> +-+- N
> |  \-+- C
> |     \-- f(double): int
> +-- foo(): void
> 
> Allow sorting the outline alphabetically
> 
> This adds a button next to the filter field to toggle sorting. By
> default it will be sorted based on the source location, but for a quick
> overview of a source file an alphabetical list can be very useful.
> 
> 
> Diffs
> -----
> 
>   plugins/outlineview/outlinewidget.cpp 56c1e4436f0b02d6071d14586326d0b332606d49 
>   plugins/outlineview/outlinewidget.h 3535ac8fce2e6c2fbc95a970496951b00ef84a9b 
>   plugins/outlineview/outlinenode.cpp fedcbd87cc8dc6e9e18bad1336e912a643af6722 
>   plugins/outlineview/outlinenode.h 0e8d3f536322478d84c13141a4e9fbebe09ede66 
>   plugins/outlineview/outlinemodel.cpp 8f4f8fbc3c97365e223ca7cb45e685f2dcf96c0f 
>   plugins/outlineview/CMakeLists.txt 8c25c4ede920b492f8e38db68013640673cfc504 
>   plugins/outlineview/outlinemodel.h b54ab04acf089ce9e046e2f274b2d019a036ab93 
> 
> Diff: https://git.reviewboard.kde.org/r/123586/diff/
> 
> 
> Testing
> -------
> 
> Appears to work flawlessly in testing so far, but I would appreciate it if someone else could have a look at the code.
> 
> 
> Thanks,
> 
> Alex Richardson
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20150730/4d20cc9c/attachment.html>


More information about the KDevelop-devel mailing list