This adds a templated layer on top of TreeModel that can specify
item types for the top three layers in the model, relieving user
code from some of the previously necessary type casting.
Two common setups get an extra layer with convenience functions
on top: TwoLevelTreeModel for two-level model with a first level
of static headers and a uniform second level, and UniformTreeModel
where all non-root nodes are the same.
"Untyped" plain TreeModels are still possible.
The walkTree() feature and untyped iteration in the base
TreeItem and TreeModel is retained for now to ease transition
in downstream modules, but is planned to be removed soon.
Change-Id: I67d75a1a4e18e8f254dbfb458db03510d8990d8b
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Must not be interpreted as member access operator.
Task-number: QTCREATORBUG-16188
Change-Id: Iec252fbc63899cef5b004a5770e3ebee5af7188e
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Necessary especially when trying to open big files for which the
system file dialog of OSX is creating a preview.
Change-Id: I6d352b78f76571fbb7224902b05e228d584c443a
Reviewed-by: Robert Loehning <robert.loehning@qt.io>
We don't just need any items in the model,
we need an item that passes the filter.
Change-Id: I831a8a2d4ba27c838e7ea07625d066a19946a789
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Content of the QHelpContentWidget gets populated asynchronously,
so wait a bit to have at least one entry - which normally should
be our own documentation.
Change-Id: Iad78f0bab0dd7f2f5a83cd94d2b2830ba146f554
Reviewed-by: Robert Loehning <robert.loehning@qt.io>
Accessing the application menu inside the menubar of OSX
does not work properly since using Qt5.
For some time using default keysequences worked fine, but
for the Preferences (Options menu) this stopped working,
so make the used hack even more crude.
Change-Id: I48ed37dc69b8c64f649f0130d48d4deb02afb87e
Reviewed-by: Robert Loehning <robert.loehning@qt.io>
tst_HELP02 is consistently failing if running from inside Jenkins,
but passes when executed locally.
Change-Id: I70fe9b7dc74dbf82f102b5670ddf04bf0dbfa270
Reviewed-by: Robert Loehning <robert.loehning@qt.io>
Use function objects to apply directly during a depth-first
walk of the tree instead of faking a flat container of tree
nodes. Less code, and allows even some non-const operations.
Change-Id: I804ab11df358fe937b40809cbcb772e6f3ff8dc5
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
The position of the dot character was determined on an outdated
translation unit.
We queried the translation unit for the source location of the dot
character, but apparently clang_codeCompleteAt() does not update the
source locations for the translation unit. And we do not want to reparse
since this is expensive. Thus, determine the byte position manually by
scanning over the document until the right line/column is reached.
Change-Id: I25e256bb81a83bb71c7e46a0fb3e927bf4031b16
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Remember whether clang_parseTranslationUnit() or
clang_reparseTranslationUnit() failed the last time and do not trigger
parse/reparse again.
Also, check whether the main file exists before reparsing.
Task-number: QTCREATORBUG-16051
Task-number: QTCREATORBUG-16140
Change-Id: Ied39e66a18032854911229898573941fe2ada35b
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
...that ocurred for e.g. "foo (<COMPLETE HERE>".
We did not handle the following cases:
1) white space after the function name
2) nothing before parenthesis
Change-Id: If6aedd2cc938df30516e13a860d07d7a509633ae
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
When using stdlib (default on Linux) and compiling with "-std=c++14", errors
like the following occurr. Avoid them by not requiring c++14.
$ clang --version
Ubuntu clang version 3.6.0-2ubuntu1~trusty1 (tags/RELEASE_360/final) (based on LLVM 3.6.0)
Target: x86_64-pc-linux-gnu
Thread model: posix
$ cat clangtest.cpp
#include <random>
$ clang -std=c++11 -fsyntax-only clangtest.cpp # Fine with c++11/stdlibc++
$ clang -std=c++14 -fsyntax-only clangtest.cpp # Ops with c++14/stdlibc++
In file included from clangtest.cpp:1:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/algorithm:62:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/stl_algo.h:65:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/random:39:
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/cstdio:120:11: error: no member named 'gets' in the global namespace
using ::gets;
~~^
1 error generated.
$ clang -std=c++14 -stdlib=libc++ -fsyntax-only clangtest.cpp # Fine with c++14/libc++
See also https://llvm.org/bugs/show_bug.cgi?id=18402.
Change-Id: I2ab3ea837b80196b51d8816ee8aa26a4a531e939
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Symbol::_fileId can be null if the Symbol was created with a null
translation unit. That is the case for temporary symbols created for
lookup purposes (CreateBindings has a _control with no translation unit
and thus creates symbols with no fileId).
Task-number: QTCREATORBUG-15967
Change-Id: Iee518b39ba3b636fe1658e74179db3aad054d6f2
Reviewed-by: Orgad Shaneh <orgads@gmail.com>