Commit Graph

2563 Commits

Author SHA1 Message Date
Nikolai Kosjar
8cb7d68cf6 CppTools: Tests: Fix QTemporaryDir warning on Windows
...coming from TemporaryCopiedDir.

The warning was:

	QTemporaryDir: Unable to remove <some path> most likely due to the presence
	               of read-only files.

It occurred for plugin tests (e.g ClangCodeModel) that used a Qt resource path
as source for TemporaryCopiedDir. Copying a qrc file makes it read-only, see
also QTBUG-17163. Therefore, explicitly add the write permission.

Change-Id: Idc04acd4844c5bc20e9b3de1efc78da3b06ac97c
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
2015-07-02 15:28:11 +00:00
Orgad Shaneh
7bed5cd3b6 C++: Cleanup LookupContext
Since the cache is now more reliable, some workarounds and optimizations
in the instantiation process are not needed anymore.

Also avoid instantiation of base classes when expandTemplates is
disabled.

As a bonus, we now resolve decltype of template function for a type that is not
referenced anywhere but in the decltype.

Change-Id: Idf42ba7280992db477c9aa62bb1815b27174594d
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-07-01 14:41:43 +00:00
Nikolai Kosjar
22c95e3024 CppTools: Re-introduce gcc 4.9 __has_include fix
Now the ClangCodeModel makes also use of this.

Change-Id: I3d547dffe48e35d3b3d03063bc1a640283d670c1
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
2015-06-29 14:44:25 +00:00
Orgad Shaneh
a77e32800c C++: Ignore explicit template instantiations
Defined in section 14.7.2 of the standard.

Fixes completion for std::string.

The following explicit instantiation appears in bits/basic_string.tcc:
  extern template class basic_string<char>;

This is wrongfully considered a specialization for a forward declaration
(like `template<> class basic_string<char>` is).

Introduce a new Symbol type for explicit instantiations.

Use-case:
template<class T>
struct Foo { T bar; };

template class Foo<int>;

void func()
{
    Foo<int> foo;
    foo.bar; // bar not highlighted
}

Change-Id: I9e35c8c32f6b78fc87b4f4f1fc903b42cfbd2c2b
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-06-29 09:22:08 +00:00
Nikolai Kosjar
70bc5e842c CppTools: Add toolchain type to project part and use it
Making CompilerOptionsBuilder to use the toolchain from the project part
simplifies its public API, but following the code paths initiated by
ClangCodeModel and ClangStaticAnalyzer gets harder, so better enable the
separation of those by making CompilerOptionsBuilder a base class.

Change-Id: I0a6bb3f8323ba09b88135a7f9d1ef967331a8ff0
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
2015-06-29 09:14:48 +00:00
Orgad Shaneh
f8544bbc42 C++: Resolve function-scope typedef inside lambda
Use-case:
struct Foo { int bar; };

void func()
{
    typedef Foo F;
    []() {
        F f;
        f.bar; // bar not highlighted
    };
}

Change-Id: Ifaee2d125931d993acad69f03031a675c6180858
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-06-29 09:09:16 +00:00
Orgad Shaneh
1faf2bd1ef C++: Fix resolving of using in enclosing scope
Use-case:
namespace Ns {
namespace Nested {
struct Foo
{
    void func();
    int bar;
};
}
}

using namespace Ns::Nested;

namespace Ns
{
void Foo::func()
{
    bar; // bar not highlighted
}
}

Change-Id: I6e667d63eb40511d65532c4d6d317aa4028a87a4
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-06-29 09:08:46 +00:00
Nikolai Kosjar
dcccb4cb8d CppTools: Use CompilerOptionsBuilder as an object
Makes the client code more readable.

Change-Id: Ie98ba93c758643039d3ebdc7550b1c4ac9473298
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
2015-06-26 07:23:38 +00:00
Nikolai Kosjar
b4db657cb5 CppTools: Remove invalid QTC_CHECK
Quitting Qt Creator before the project was loaded from the project
manager triggers the assert because the updateProjectInfo() call was not
yet made by the project manager.

Change-Id: I23c660971e48d007d1bae00ecf8ed5c2ad3d4071
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
2015-06-24 13:31:14 +00:00
Nikolai Kosjar
e50aafafe3 CppEditor: Fix semantic highlighting when zooming
...for the not visible documents.

First reset the extra additional formats, then set the new ones, not the
other way around.

Task-number: QTCREATORBUG-14579
Change-Id: Iae465bd9a7bb0a397fd4917df45955713aaf87c5
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
2015-06-23 08:15:46 +00:00
Nikolai Kosjar
5e035bd740 C++: Rename semanticRehighlight to recalculateSemanticInfoDetached
semanticRehighlight() does a bit more than only rehighlighting and we
want to trigger (only) rehighlighting in a follow-up change.

Change-Id: Ic8da9ec8643f0f82f7c99ef9a8180b2868194254
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2015-06-22 07:20:21 +00:00
Jarek Kobus
684267179e Properly delete plugins dependent on failed plugin
Init all class member pointers to NULL.
This fixes possible crash on exit when dependent
plugin was not loaded (e.g. TextEditor was missing).
In this case plugin's constructor gets called,
initialize() method is _not_ called
and destructor gets called -> crash.

Properly delete dependent plugins on
a plugin which failed to initialize properly.

Fix labels of deleted plugins inside an error dialog
after pressing "Error Details" from "Installed Plugins"
dialog.

Change-Id: Iddc029a0f07dcba2501d734d142fb0e69e9383d3
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
2015-06-17 17:00:56 +00:00
Orgad Shaneh
4f890dea76 CppTools: Fix misdetection of virtual function overloads
Change-Id: I4231d0b98fef2f2f3f1ebdf74c7dfc48ec879e83
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-06-17 13:00:30 +00:00
Eike Ziller
4f927e4c87 Move "open" from IEditor to IDocument
For non-editor documents it currently is not used, but for editors it
makes more sense to have that on the document instead of the editor.
Most actual implementations of "open" were done in the documents already
anyhow, because it is needed for reloading.

Change-Id: I29d4df2078995cbe80172b51a9bebeecb3afad3c
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
2015-06-10 11:21:17 +00:00
Nikolai Kosjar
23b8a3b2e8 Clang: Use completion through backend process
This makes us independent of libclang crashes for completion.
Re-parsing for highlighting still happens in the Qt Creator process.

Run in verbose mode:
    qtc.clangcodemodel.ipc=true

Run tests:
    -test "ClangCodeModel"

Task-number: QTCREATORBUG-14108
Task-number: QTCREATORBUG-12819
Change-Id: Id3e95bd2afdb6508bbd1d35fddc69534a909b905
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
2015-06-10 10:15:40 +00:00
Orgad Shaneh
97d3d9ac09 C++: Support default template argument lookup for specialization
This fixes std::vector, although it doesn't really resolve numeric
template arguments. It just picks the first specialization.

Use-case:
class Foo {};
template<class T1 = Foo> class Temp;
template<> class Temp<Foo> { int var; };
void func()
{
    Temp<> t;
    t.var; // var not highlighted
}

Task-number: QTCREATORBUG-8922
Change-Id: I593515beb3a6d901b6088db8bc1b8e16c39083d3
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-06-09 14:18:17 +00:00
Orgad Shaneh
997ab425ce C++: Improve accuracy in findSpecialization
* If a template type is specialized as a pointer, accept only pointers (of any
type)
* Same for references and arrays
* Only if the specialized type is not part of the template, match it
  against the input.

Fixes resolving of partial specialization with pointers.

Use-cases:
// 1
struct b {};
struct a : b {};
template<class X, class Y> struct s { float f; };
template<class X> struct s<X, b*> { int i; };
template<class X> struct s<X, a*> { char j; };

void f()
{
    s<int, a*> var;
    var.j; // j not highlighted
}

// 2
template <typename T> struct Temp { T variable; };
template <typename T> struct Temp<T &> { T reference; };
void func()
{
    Temp<int&> templ;
    templ.reference; // reference not highlighted
}

// 3
class false_type {};
class true_type {};
template<class T1, class T2> class and_type { false_type f; };
template<> class and_type<true_type, true_type> { true_type t; };
void func2()
{
    and_type<true_type, false_type> a;
    a.f; // f not highlighted
}

Task-number: QTCREATORBUG-14036
Change-Id: Idee5e3f41d15c0772318d3837cbcd442cb80293a
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-06-09 14:17:38 +00:00
Orgad Shaneh
3fe1b92566 CppTools: Fix highlighting and follow for template using argument
Use-case:
template<class T>
using Foo = Bar<T>; // T not highlighted

Task-number: QTCREATORBUG-9944
Change-Id: I04cb62ea6a21f158f7fb4fb7ac79ccd6eb1bbfbb
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-06-09 11:31:40 +00:00
Lorenz Haas
7879aa5fae CppEditor: Fix added newlines for GenerateGetterSetter quick fix
As a nice side effect superfluous new lines - introduced by quick fixes
that are using InsertionPointLocator::methodDefinition - vanished.

Task-number: QTCREATORBUG-13872
Change-Id: Ib3df2b2acbc22449f16f4444092a57ae93d53d35
Reviewed-by: Jochen Becher <jochen_becher@gmx.de>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-06-09 10:11:56 +00:00
Orgad Shaneh
ec4d242bb3 C++: Fix resolving of templated partial specialization
Use-case:
template<class T> struct t {};

template<class> struct s { float f; };
template<class X> struct s<t<X>> { int i; };

void f()
{
    s<t<char>> var;
    var.i; // i not highlighted
}

Task-number: QTCREATORBUG-14034
Change-Id: I5d00bc3247352fca4af4c41a47c208ec3e193c8e
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-06-04 19:23:50 +00:00
Orgad Shaneh
2070431d8c C++: Fix resolving of partial specialization
Use-case:
struct b {};
template<class X, class Y> struct s { float f; };
template<class X> struct s<X, b> { int i; };

void f()
{
    s<int, b> var;
    var.i; // i not highlighted
}

Task-number: QTCREATORBUG-14036
Change-Id: I70a87499e0a375e84d992ca0a79d77270a3419e8
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-06-04 19:23:40 +00:00
Tobias Hunger
e5da3d8aeb cpptools: s/Q_DECL_OVERRIDE/override/g
Change-Id: I1b239a666b6605035e0f9c140d940e8c260bafd3
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-06-04 12:25:51 +00:00
Nikolai Kosjar
45194515c0 CppTools: Export CppCodeModelSettings
Needed for the ClangCodeModel tests, where we need to activate the clang
code model.

Change-Id: I368b840875ca2a46da4535338bf55967cbcdf5ea
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
2015-06-03 09:16:24 +00:00
Nikolai Kosjar
65137313b0 CppTools: Do not return a language option for ProjectFile::Unclassified
This led to an invalid command line ("-x" without further argument).

Change-Id: I8cfe1a8a29789fba426b61fe3702496d8089db6b
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
2015-06-03 09:15:41 +00:00
Nikolai Kosjar
c5c57dca0c CppTools: Tests: Allow to check only project relevant state
Needed for ClangCodeModel.

If editors are open, the global snapshot and working copy will not be
empty.

Change-Id: I0d1bab8e082a7f41630c7b1b78febe2da009298b
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
2015-06-03 09:15:39 +00:00
Nikolai Kosjar
9425812066 CppTools: Export ModelManagerTestHelper
Needed for tests in ClangCodeModel.

Change-Id: I58bdb35811776751a95b5db198ea8d6cdb0cd6de
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
2015-06-03 09:15:36 +00:00
Orgad Shaneh
b67ebf9ffc C++: Fix lookup for instantiation of using
Yet another std::vector issue...

Use-cases:
// Case 1
template<typename T>
using type = T;

// Case 2
struct Parent {
    template<typename T>
    using type = T;
};

// Case 3
template<typename T>
struct ParentT {
    template<typename DT>
    using type = DT;
};

struct Foo { int bar; };

void func()
{
    type<Foo> p1;
    Parent::type<Foo> p2;
    ParentT<Foo>::type<Foo> p3;
    // bar not highlighted
    p1.bar;
    p2.bar;
    p3.bar;
}

Task-number: QTCREATORBUG-14480
Change-Id: I9ab08ea7360a432c48eb4b85aa0d63e08d2464c1
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-06-02 08:37:02 +00:00
Orgad Shaneh
07f8c474be C++: Fix decltype resolving for template function
The last nail for std::unique_ptr (GCC variant, MSVC still doesn't work).

Use-case:
template<typename T>
static T f();

struct Foo { int bar; };

void fun()
{
    decltype(f<Foo>()) s;
    s.bar; // bar not highlighted
}

Task-number: QTCREATORBUG-14483
Task-number: QTCREATORBUG-8937
Change-Id: I5bab757400b070cf9dbb688a44fd8eafe95ddc61
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-06-01 16:30:47 +00:00
Orgad Shaneh
588b333669 CppTools: Highlight type for templated using
Task-number: QTCREATORBUG-9944
Change-Id: I614571e05039f24b7d56abdddc15f912581f68f1
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-05-27 08:29:36 +00:00
Eike Ziller
3858c33d74 Merge remote-tracking branch 'origin/3.4'
Change-Id: I35ba4cc7f7052699c3006545514c866be3cb5fdd
2015-05-26 15:12:42 +02:00
Orgad Shaneh
b5f6a9e6e5 C++: Fix decltype resolving for nested instantiated class
The enclosingScope of a cloned nested class is not the
original class but the cloned parent.

Use-case:
template <typename T>
struct Temp
{
    struct Nested
    {
        static T f();
        typedef decltype(f()) type;
    };
};

struct Foo { int bar; };

void fun()
{
    Temp<Foo>::Nested::type s;
    s.bar; // bar not highlighted
}

Task-number: QTCREATORBUG-14483
Change-Id: I3e15399a78a7492f740db8d0c7d5c84adf77d1d0
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-05-22 08:40:11 +00:00
Orgad Shaneh
81721f6781 C++: Fix resolving of recursive typedef
Use-case:
template<typename _Tp>
struct Temp { typedef _Tp value_type; };

struct Foo { int bar; };

void func()
{
    Temp<Temp<Foo> >::value_type::value_type *p;
    p->bar; // bar not highlighted
}

Task-number: QTCREATORBUG-14237
Change-Id: Ie0b21b81526d610437ed2d2877083bb929c25047
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-05-20 11:14:20 +00:00
Orgad Shaneh
de68ac5407 C++: fix code completion for decltyped type
example:
struct Foo { int bar; };
Foo foo() { return Foo; }
typedef decltype(foo()) TypedefedFooWithDecltype;
void fun()
{
  decltype(foo()) decltypeFoo;
  decltypeFoo.;// code completion should work here

  TypedefedFooWithDecltype typedefedFooWithDecltype;
  typedefedFooWithDecltype.;// code completion should work here
}

Started-by: Przemyslaw Gorszkowski <pgorszkowski@gmail.com>
Task-number: QTCREATORBUG-14483
Change-Id: I296ceed9d896c68cf0651265afb08a1fc42f9a68
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-05-20 10:45:31 +00:00
Nikolai Kosjar
25c63444af CppTools: Remove QTC_ASSERT in completeQtMethodClassName
SOFT ASSERT: "klass" in file src/plugins/cpptools/
cppcompletionassist.cpp, line 1916

...can occur during Qt5 signal/slot completion if the object type can't
be looked up, e.g.:

    Foo *foo; // Foo is used by not defined
    connect(foo, &<TRIGGER COMPLETION HERE>

Change-Id: I0fafd328635e1db57d700d531af0fee819cca8fa
Reviewed-by: hjk <hjk@theqtcompany.com>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2015-05-19 15:02:09 +00:00
Orgad Shaneh
372173331c C++: Fix explicit typedef from base type in templated class
Use-case:

struct Foo { int bar; };

template<typename T>
struct Base { typedef T F; };

template<typename T>
struct Derived : Base<T>
{
    typedef typename Base<T>::F F;
    F f;
};

void func()
{
    Derived<Foo> d;
    d.f.bar; // bar not highlighted
}

Task-number: QTCREATORBUG-14218
Change-Id: Ic0b22b2f8adf80ff88a2f8b7359c276a744f89e8
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-05-15 14:22:10 +00:00
Nikolai Kosjar
cf66beffb6 CppTools: Tests: Fix memory leak
Detected by leak detector of Address Sanitizer.

Change-Id: I2aae2ba6fa2f218c9754d912dce7c398b1b384cb
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2015-05-15 14:22:09 +00:00
Orgad Shaneh
9b30795c02 C++: Fix lookup for instantiation by class object
Task-number: QTCREATORBUG-14352
Change-Id: I2ce4bc1d0dba2414afe050e80607b581686081a9
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-05-15 14:21:45 +00:00
Nikolai Kosjar
1960503ae9 CppTools: Allow to limit the files to process by file size
...with the environment variable QTC_CPP_FILE_SIZE_LIMIT_MB.

Task-number: QTCREATORBUG-14390
Change-Id: Iaefaa1a3db023b58f9351b96e1b9e2139797e280
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
2015-05-13 08:26:52 +00:00
Eike Ziller
4058ff6fe9 Merge remote-tracking branch 'origin/3.4'
Conflicts:
	src/libs/extensionsystem/pluginview.cpp

Change-Id: I410156c1003d5dc81e915110c6d432bcd71da010
2015-05-07 14:42:46 +02:00
hjk
5b7e8f42c1 PathChooser: Use a std::function as callback
... instead of a SLOT(...)

Change-Id: I32ed3ea014d1efde54bac2d5153f3083e37ef7ec
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
2015-05-07 11:20:19 +00:00
Orgad Shaneh
ad4cb444fb C++: Fix specialization resolution for nested types
Use-cases:

template<typename T>
struct Traits { typedef typename T::pointer pointer; };

template<typename _Tp>
struct Traits<_Tp*> { typedef _Tp *pointer; };

struct Foo { int bar; };

// 1
template<typename T>
class Temp
{
protected:
   typedef Traits<T> TraitsT;

public:
   typedef typename TraitsT::pointer pointer;
   pointer p;
};

void func()
{
   Temp<Foo *> t;
   t.p-> // complete
}

// 2
class Temp2
{
protected:
   typedef Foo *FooPtr;
   typedef Traits<FooPtr> TraitsT;

public:
   typedef typename TraitsT::pointer pointer;
   pointer p;
};

void func2()
{
   Temp2 t;
   t.p-> // complete
}

Task-number: QTCREATORBUG-14141
Change-Id: Id3459671117c0c81bcde7c9714b42750634c0225
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-04-28 13:54:25 +00:00
Nikolai Kosjar
d4bb5033b2 CppTools: Remove separate indexing revision
For indexing we used a custom revision that was updated on each
modelManager BuiltinIndexingSupport::refreshSourceFiles() call. This
could lead to rejection of updated documents triggered by refactoring
actions, like for the following case:

 1. Open a project containing a.h and a.cpp
 2. Open a.cpp, insert some new lines, save and close the document
 3. Open a.h and rename a function that is defined in a.cpp
    --> The refactoring action modifies a.h and a.cpp, so re-indexing
        of those is triggered. Since a.cpp has already a higher revision
        (step 2) than the updated document, the updated document is
        discarded. As a consequence find usages and follow symbol fails
        for the renamed function.

Now the document call back provided to CppSourceProcessor is responsible
for updating the document revision based on the latest revision in the
global snapshot.

Change-Id: I4dfa0a4d34991655acfa749109f00c47b0fbfdbe
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
2015-04-24 08:35:13 +00:00
Nikolai Kosjar
f878da0ea8 CppTools: Offer "override" and "final" as completion items
These are special identifiers and were thus not included in the 'add all
keywords' handling.

Change-Id: I7f65df5711193e945bfa955dcb70a6ab454606b5
Task-number: QTCREATORBUG-11341
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
2015-04-24 08:33:56 +00:00
Nikolai Kosjar
cea5d886d8 CppTools: Fix global completion after "/// text."
Like for other comments, don't try member completion if the doxygen
comment ends with a dot.

Task-number: QTCREATORBUG-8597
Change-Id: I2d5204ba8f45fc9ee94e285a907364cc722e62c7
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
2015-04-24 08:30:51 +00:00
Orgad Shaneh
8be26d070e C++: Improve template argument detection for nested types
Change-Id: I7dd3f552f0e85413de8e58047d1fba39c7237182
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-04-23 08:19:10 +00:00
Orgad Shaneh
cb350bfeb2 C++: Rename ClassOrNamespace -> LookupScope
Change-Id: Ide74482b133dd1fec40a725d9aa81bd749385f37
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-04-20 14:51:56 +00:00
Eike Ziller
50fe3585a8 Merge remote-tracking branch 'origin/3.4'
Conflicts:
	src/libs/timeline/qml/MainView.qml
	src/plugins/git/gitclient.cpp

Change-Id: I0b6ec7b9a592014deb0dd2e1145b19dd6753b1c3
2015-04-15 17:45:47 +02:00
Christian Kandeler
24eea82477 Toolchains: Add C++98 as a language standard.
This was curiously missing from the CompilerFlag enum, so e.g. setting
"QMAKE_CXXFLAGS += -std=c++98" in a .pro file did not have the desired
effect on higher-level code such as the code model.

Change-Id: Ia4323b699a2ccea9d3cbde10b05affe87d955277
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2015-04-14 14:04:28 +00:00
Nikolai Kosjar
05e0b074c1 CppTools: Tests: Clean up ProjectOpenerAndCloser and introduce timeout
Change-Id: Id46305a7e9fba1d8383622a4d21f22ee8cbc470c
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-04-14 07:58:23 +00:00
Nikolai Kosjar
f368294251 CppTools: Fix global completion after '&'
Regression introduced by

        commit 9fb5b0be15
        CppTools: Add basic completion support for qt5 style signals/slots

Change-Id: I0a8e5ef31c1394512a51a26ed08b0f445add5acd
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
2015-04-13 10:55:44 +00:00