Commit Graph

1029 Commits

Author SHA1 Message Date
Oswald Buddenhagen
66a3553107 make library and plugin dependencies declarative
instead of directly including the respective pri files in
*_dependencies.pri, set variables and let qtcreator.pri resolve
them to includes.
this will allow us to re-use the dependency info elsewhere.

Change-Id: Iaa33924e428ac0409660f42df2f98a7978452d3e
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-04-03 14:37:45 +02:00
Oswald Buddenhagen
85cf6b0e55 move 3rdparty INCLUDEPATH to cplusplus' _dependencies.pri
merely for the purpose of making the library .pri file trivial.

Change-Id: Idadbff0c9f7460e007721aa8181b31bdfef06704
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-04-03 13:40:55 +02:00
Oswald Buddenhagen
7923032022 fix include style relating to cplusplus libraries
... and adjust INCLUDEPATH accordingly.

while i'm at messing with include statements, also re-order the include
blocks according to policy and sort them within bigger blocks.

Change-Id: I7762abfd7c4ecf59432b99db2f424e4fa25733a5
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-04-03 13:40:39 +02:00
Oswald Buddenhagen
9631fb88cf centralize assignment of TEMPLATE = lib
Change-Id: I4025539f3875e79f03743ba9ed3fd09cd31b998d
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-04-02 17:13:17 +02:00
Oswald Buddenhagen
7ce3362288 automatically include libs' and plugins' _dependencies.pri files
Change-Id: I25645bb625b467c6f9d895ff89a70acd6a25683e
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-04-02 12:19:31 +02:00
Oswald Buddenhagen
37a64fb867 factor out all library dependencies to _dependencies.pri files
this makes it uniform for all libraries

Change-Id: I7a7665a2c74c8f212248c0400de04ca3eed1440a
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-04-02 12:16:42 +02:00
Eike Ziller
599be01a67 Merge remote-tracking branch 'origin/2.7'
Conflicts:
	qtcreator.pri
	qtcreator.qbs
	share/qtcreator/qml/qmlpuppet/interfaces/interfaces.pri
	share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstancesignalspy.cpp
	share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.h
	share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/objectnodeinstance.h
	src/plugins/debugger/debuggerplugin.cpp
	src/plugins/qmldesigner/components/componentcore/modelnodecontextmenu_helper.cpp
	src/plugins/qmldesigner/components/debugview/debugview.cpp
	src/plugins/qmldesigner/components/formeditor/abstractcustomtool.cpp
	src/plugins/qmldesigner/components/formeditor/abstractcustomtool.h
	src/plugins/qmldesigner/components/formeditor/formeditorview.cpp
	src/plugins/qmldesigner/components/integration/stackedutilitypanelcontroller.h
	src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp
	src/plugins/qmldesigner/components/navigator/navigatorview.cpp
	src/plugins/qmldesigner/components/propertyeditor/propertyeditor.cpp
	src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp
	src/plugins/qmldesigner/designercore/include/abstractview.h
	src/plugins/qmldesigner/designercore/include/qmldesignercorelib_global.h
	src/plugins/qmldesigner/designercore/include/rewriterview.h
	src/plugins/qmldesigner/designercore/metainfo/metainforeader.cpp
	src/plugins/qmldesigner/designercore/metainfo/subcomponentmanager.cpp
	src/plugins/qmldesigner/designercore/model/abstractview.cpp
	src/plugins/qmldesigner/designmodewidget.cpp

Change-Id: I9d8126e88397c02a87b5e4ab4da44e2bc7089134
2013-03-26 13:09:43 +01:00
Nikolai Kosjar
e088541c0d C++: Temporary fix for dangling pointers in ResolveExpression
Task-number: QTCREATORBUG-8974

Change-Id: Iac114881741bdf8fd477541b28e4d31b7a1760f0
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-03-22 08:57:53 +01:00
Friedemann Kleint
7043a7e01b Fix Krazy warnings about duplicate includes.
Change-Id: Ied32236a84d20225b1ca4a192f3a346fbfbd09b4
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-03-20 15:04:10 +01:00
Erik Verbruggen
bdb5142102 C++: use argumentCount in loops in initializer.
argumentCount is a more expensive function, so try to call it only once,
esp. in loops.

Change-Id: I6f0d420352743ec444487ce3f506ef28e5282d1e
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-03-15 15:46:09 +01:00
Friedemann Kleint
0fcbbbd4ee Fix Krazy warnings about improper include guard in CPP.
Change-Id: I89dba400e19b7b480a6383e0a58b84ac28c2089e
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-03-15 13:23:28 +01:00
Eike Ziller
3bc622400d Merge remote-tracking branch 'origin/2.7'
Conflicts:
	src/plugins/debugger/gdb/gdbengine.cpp

Change-Id: Ic8590ad97d7349ed7601a49c4fd873ffc9a5f9b5
2013-03-12 10:56:52 +01:00
Nikolai Kosjar
29055f9f43 C++: Fix crash due to dangling pointer
ResolveExpression used the wrong Control object, which was deleted by
~LookupContext() in TypeOfExpression::operator()). ~Control() led to the
dangling pointer.

Task-number: QTCREATORBUG-8890
Done-with: Erik Verbruggen <erik.verbruggen@digia.com>

Change-Id: Ic07947ee54087446b730e4d3ec4bef29defa4495
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-03-12 08:29:48 +01:00
Eike Ziller
f60873a24f Merge remote-tracking branch 'origin/2.7'
Conflicts:
	qtcreator.pri
	qtcreator.qbs

Change-Id: Ie71d0d5aebdd1406d94de348bcd4cfcc203a1ba9
2013-03-08 11:39:33 +01:00
Erik Verbruggen
c3f907416f C++: cache fully qualified name lookupus in scopes.
Task-number: QTCREATORBUG-8724

Change-Id: I00b0712cf5514bcec04b674052ad4b5b66cca506
Reviewed-by: Przemyslaw Gorszkowski <pgorszkowski@gmail.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-03-05 09:58:36 +01:00
Oswald Buddenhagen
6bbdeec812 Merge remote-tracking branch 'origin/2.7'
Conflicts:
	src/plugins/qnx/blackberrydeployconfiguration.cpp

Change-Id: I16d1c7717f4bc25ba7e8dbdd5be6580fafe3f33d
2013-02-28 12:02:40 +01:00
Przemyslaw Gorszkowski
600f4438bb C++: performance improvement for template instantiation
Add cache for instantiated instantiations in base template class.

Change-Id: I5c457ea4dfeab72cc3910f0092ca1bc14b8aa1ac
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-02-27 10:36:08 +01:00
Debao Zhang
f5dcd55117 Qt5: Don't use the deprecated {QString,QChar}::fromAscii()
Change-Id: Ic1d302c2186b11ffec5139f4f491d477d334ec8f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-02-26 15:24:26 +01:00
Erik Verbruggen
5f68b5b02f C++: split lines only once in find usages.
Change-Id: I16f91e81402ecff0039acf1dfc68d9ce7f6d1c81
Reviewed-by: David Schulz <david.schulz@digia.com>
2013-02-26 15:24:07 +01:00
Tobias Hunger
3ae8323d54 Fix warnings introduced by reordering member variables
Change-Id: I37bc8f9bc874de52281b8597838ef8addae1a1a3
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-02-22 11:08:20 +01:00
Przemyslaw Gorszkowski
798d84b391 C++: fix 'using' for templates in typedefs
Fix resolving typedef of templates which is from different namespace
and there was 'using' used for it.
Examples are in tests.
Another step to bring code completion for stl containters.

Task-number: QTCREATORBUG-7978

Change-Id: I2e9e71b45d60536c1e25cf2d371c4719b15edf79
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-02-21 16:44:13 +01:00
Przemyslaw Gorszkowski
ea32191542 C++: fix instantiation of template special. with pointer argument
Fixed code completion for instantiation of template specialization
with argument as pointer, e.g.:
template <typename T>
struct Template
{ T variable; };
template <typename T>
struct Template<T *>
{ T *pointer; };
Template<int*> templ;
templ.pointer;

Change-Id: I7c79fe0cd7119b1208f064aece0cafdf50e1a012
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-02-21 16:32:25 +01:00
Tobias Hunger
1951c86395 Reduce padding in often-used structs
Reduce the padding in some often-used structs for 64bit machines.
32bit machines should also profit from most changes, but to a
lesser degree.

Change-Id: Ic4c67b94e962731de4f31164c52a372d78944ccc
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-02-21 13:22:21 +01:00
Przemyslaw Gorszkowski
2b0e643e3d C++: fixed resolving complex typedef
Unit test describe this complex typedef. Another step to bring
code completion for stl containers.

Change-Id: I27985c4ea7c26c723d7a88ce42c5ecf164b6c903
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-02-20 09:58:34 +01:00
Erik Verbruggen
75e608ec2e C++: Cleanup, removed unused methods/fields.
Change-Id: I5636039c79be40505c707f775b228bc51f35c243
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-02-19 14:34:48 +01:00
Przemyslaw Gorszkowski
4c800b1b5a C++: fix code completion for typedef of pointer
Fix code completion and highlighting member of typedefed pointers.
It works when typedef is inside or outside of the function.

Task-number: QTCREATORBUG-8671
Task-number: QTCREATORBUG-8672
Change-Id: I9cc87080bf443f7ffa6a90ef5ba582b87700f2db
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-02-11 10:27:47 +01:00
Nikolai Kosjar
47fb39c20b Fix clang warning (unused value)
Change-Id: I55d9ae648b0898cd952cb2595948b11fbbce03c0
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-02-08 09:58:29 +01:00
hjk
7a286a508c CppRewriter: Handle std::ifstream in simplifySTLType
Change-Id: I1cdb193ac4a4a3ad9005c4445cd38406412cb058
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-02-04 17:15:42 +01:00
Przemyslaw Gorszkowski
858cb6e348 C++: instantiate template with default argument
Fix code completion for instantiation of template with default argument

Change-Id: I57b0306cc4540400ae83724db6c8b6b1aa67c255
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-02-01 13:36:03 +01:00
Przemyslaw Gorszkowski
21500d54b7 C++: fix replacing dot(.) with arrow(->)
Fix replacing operator dot(.) with operator arrow(->)
for typedef pointer.

Task-number: QTCREATORBUG-8488
Change-Id: Ic4462bc437a4aa37adfed4fa50b32d9bc20fe194
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-02-01 09:16:15 +01:00
Oswald Buddenhagen
1fda2111d4 Merge remote-tracking branch 'origin/2.6'
Conflicts:
	src/plugins/autotoolsprojectmanager/AutotoolsProjectManager.pluginspec.in
	src/plugins/debugger/qtmessageloghandler.cpp
	src/plugins/debugger/qtmessagelogwindow.cpp
	src/plugins/madde/maemodeployconfigurationwidget.cpp
	src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp
	src/plugins/qmldesigner/designercore/include/widgetqueryview.h
	src/plugins/qmldesigner/designercore/metainfo/metainfoparser.cpp
	src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.cpp
	src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.h
	src/plugins/qmlprojectmanager/qmlprojectapplicationwizard.cpp
	src/plugins/qnx/bardescriptormagicmatcher.h
	src/plugins/qt4projectmanager/profilekeywords.cpp
	src/plugins/remotelinux/deployablefilesperprofile.cpp
	src/plugins/remotelinux/deployablefilesperprofile.h
	src/plugins/remotelinux/deploymentinfo.cpp
	src/plugins/remotelinux/deploymentsettingsassistant.cpp
	src/plugins/remotelinux/profilesupdatedialog.cpp
	tests/auto/icheckbuild/ichecklib.cpp
	tests/auto/icheckbuild/parsemanager.cpp
	tests/auto/icheckbuild/parsemanager.h

Change-Id: Ie465a578446a089e1c502d1cb1096e84ca058104
2013-01-31 16:25:33 +01:00
Przemyslaw Gorszkowski
ffba28d26a C++: Fix code compl. for instantiation of template specialization
It works for full specialization. Instantiate of the partial
specialization has to be implemented(finding appropriate partial
specialization-on going)

Added unit test.

Change-Id: I8ef5ea963e7c665e0d67d390b3a833486773dab0
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-01-30 18:49:25 +01:00
Erik Verbruggen
5721847a57 C++: Fix possible null-pointer access.
Change-Id: Id42bb1cbf109cac8ab868ab7381a54d6be9a7697
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-01-30 09:08:20 +01:00
Robert Loehning
298531e370 Incremented year in copyright info
Change-Id: Ic6a9ff0359625021ebc061d22db6811814534205
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2013-01-29 16:27:03 +01:00
Przemyslaw Gorszkowski
7fcc52bf47 C++ editor: Highlighting static variables
Fix highlighting, find usages, marking for static variables.

Task-number: QTCREATORBUG-6822
Change-Id: I0c97c93c6c1024550907eec3820496df22a94e85
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-01-29 14:01:11 +01:00
Nikolai Kosjar
138066792e C++: Introduce PointerDeclarationFormatter
For a given AST, CppRefactoringFile and Overview this will create a
ChangeSet for rewriting the pointer or reference declaration according
to the Overview.

Task-number: QTCREATORBUG-6169

Change-Id: If6f824c1ea5e9f53a11a58ec8b6d696d01f0723e
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-01-24 11:59:14 +01:00
Nikolai Kosjar
8c3794f9d1 C++: Add star binding to TypePrettyPrinter
Now we can specify if we want to print a whitespace before and/or after
'*'/'&' when printing pointer and reference types.

Task-number: QTCREATORBUG-6169

Change-Id: Ida1b035aa4fd79be9108934b75f236db9f7238af
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-01-23 14:30:39 +01:00
Przemyslaw Gorszkowski
23844410fd C++ editor: support nested class of enclosing template
Fixing:
* highlighting
* tooltips
* find usage
* selecting

Task-number: QTCREATORBUG-8245
Change-Id: I6e900799e43126706125b7e424567fca2b2c223e
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-01-22 11:35:25 +01:00
Erik Verbruggen
dada2614d5 C++: add include-guard tracking.
Track the typical #ifndef/#define/#endif usage in header files to see if
the macro is an include guard. If so, store it in the Document. No
behavioural change, just recording the name.

This can be used in the future to track if a file needs to be re-parsed
when a macro changes: if it was used in the file, and not defined in it
nor being the include-guard, a file should be re-preprocessed and
re-parsed.

It can also be used to check if two files have the same include guard.

Change-Id: I2715f529997a7b24a11bdbc6150652e2669f1a46
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-01-18 14:58:07 +01:00
Francois Ferrand
4c43655cec C++: fix macro calls with comment before arguments
When in 'keep comments' mode, the preprocessor does not properly handle macro calls with
comments between the macro name and the opening parenthesis: "FOO /*something to say*/
(45)".

Change-Id: I6fe733242e4d2ccff2985d17399d0a084917415a
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-01-18 14:56:47 +01:00
Sergey Shambir
4a6a13d30b Fixed warnings from clang -Wdocumentation
Change-Id: Ib3ed1d3733ccfd78780640d70e14313d0cbb101f
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-01-18 11:51:19 +01:00
Orgad Shaneh
88267a3299 Generalize QT_NO_CAST_FROM_ASCII
Change-Id: I2b6c5876cafb7cf19fc3040bc84fd88a90b6c0e0
Reviewed-by: hjk <qthjk@ovi.com>
2013-01-16 01:14:08 +01:00
Erik Verbruggen
4e0880bde4 C++: Small fixes to the token buffer.
- Fixed blocking macro check
- Enabled buffer "compression": when tokens are generated and no new
macro is being blocked, then prepend the tokens to the previous buffer.
This happens a lot when undo-ing look-ahead.
- Added documentation

Change-Id: I6fa816d94ce4696e473bdbc4f3bf477d77e4dd51
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-01-11 14:49:52 +01:00
Erik Verbruggen
eb09c87d99 C++: fix PPToken equals operator for c-strings.
Change-Id: I37411faa1724fb69467036279b2821e33cad26b5
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-01-11 14:37:38 +01:00
hjk
b934cc196c C++: pass #include_next down to CppPreprocessor::tryIncludeFile
This does not yet resolve the file using the proper mechanism.

Change-Id: I04913e8b01ae0c3411961f0c1cffe07202f06a0a
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-01-11 11:38:11 +01:00
Orgad Shaneh
29a93998df Remove braces for single lines of conditions
#!/usr/bin/env ruby

Dir.glob('**/*.cpp') { |file|
  # skip ast (excluding paste, astpath, and canv'ast'imer)
  next if file =~ /ast[^eip]|keywords\.|qualifiers|preprocessor|names.cpp/i
  s = File.read(file)
  next if s.include?('qlalr')
  orig = s.dup
  s.gsub!(/\n *if [^\n]*{\n[^\n]*\n\s+}(\s+else if [^\n]* {\n[^\n]*\n\s+})*(\s+else {\n[^\n]*\n\s+})?\n/m) { |m|
    res = $&
    if res =~ /^\s*(\/\/|[A-Z_]{3,})/ # C++ comment or macro (Q_UNUSED, SDEBUG), do not touch braces
      res
    else
      res.gsub!('} else', 'else')
      res.gsub!(/\n +} *\n/m, "\n")
      res.gsub(/ *{$/, '')
    end
  }
  s.gsub!(/ *$/, '')
  File.open(file, 'wb').write(s) if s != orig
}

Change-Id: I3b30ee60df0986f66c02132c65fc38a3fbb6bbdc
Reviewed-by: hjk <qthjk@ovi.com>
2013-01-08 10:48:18 +01:00
hjk
140b502903 C++: Highlight argument to gcc's #include_next extension properly
Change-Id: I90097e11689fbbb964fc4344a1e3ba60c718a1cf
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-01-04 17:50:29 +01:00
Przemyslaw Gorszkowski
f5b0fcfb5d C++: fix code completion when pointer's type is a typedef
Task-number: QTCREATORBUG-8488

Change-Id: I6f11173452df3e1611fba1c04da17e7428f34e9e
Reviewed-by: hjk <qthjk@ovi.com>
2012-12-29 00:45:08 +01:00
hjk
e352654411 Further remove the number of QDir::cleanPath calls.
Change-Id: I638fe4291d6b682864d0a0c3938ad0066e060a3a
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2012-12-20 16:27:40 +01:00
hjk
afcd9d4c43 Faster macro expansion.
Turns out QByteArray::setNum() is unnecessarily slow (will be fixed
independently), but even then, we can be faster.

Change-Id: I663bd2b8cc844bbe800879bccfa57999d020ba3b
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2012-12-20 16:25:03 +01:00