Commit Graph

1409 Commits

Author SHA1 Message Date
Nikolai Kosjar
c2e5f1c819 C++: Pass on the byte offsets of macro arguments
...to the Document/Block.

Change-Id: I1a96dc70ac93254e6030326b36a5df9a2cdc2bd8
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-10-08 09:51:17 +02:00
Ulf Hermann
dbb4e761ef QmlProfiler: Update abstracttimelinemodel test
height() needs a modelmanager now and rowCount() is centralized.

Change-Id: I7fc1833d4bb5de4df99bed0e43f1da836e45df21
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-09-29 14:26:55 +02:00
Ulf Hermann
38f4d6a5f2 QmlProfiler: rename "eventId" fields to "typeId" and "selectionId"
The convention is now that selections are the rows in the expanded
timeline, "types" are the types in the QmlProfilerDataModel, and
events are the single boxes in the timeline. Thus, the event view
shows only types and for consistency the V8 view does so, too.

Having eventId as synonym for "type index" and "event index" as
actual index into the list of events is confusing.

Change-Id: I6b7c4c3f1ab0a8b71c511de52ab296a2e91cf5f0
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-09-29 13:06:45 +02:00
Christian Stenger
02c260e6ca Tests: Fix compile
Introduced with 953cdb971f

Change-Id: I9d69cfcff1778e8428a6da18fc300d8aaaac2904
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-09-26 16:12:03 +02:00
hjk
bc111ef37a Debugger: Only auto test dumper for boost >= 1.54
Change-Id: Ib8d0f2c6ed0323eb969c6a6eed9ea0a6c0e3cf8e
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-09-26 13:47:18 +02:00
hjk
953cdb971f TextEditor: More BaseText* -> Text* renamings
*Document* and *Layout* classes, all basetext* files

Change-Id: I1c6e376733a434fcb5c7f19c6210dfa031eeafde
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-09-26 10:12:51 +02:00
hjk
9402ab1d47 Debugger: Disable boost_unordered autotest for gdb < 7.6
Change-Id: I67e63892ff997312fb23f421b0eabaf9bc1eb4aa
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-09-26 08:52:02 +02:00
Nikolai Kosjar
4da91bef8d C++: Fix endless loop in lookup on Windows
...for templates with typedefs referencing the respectively other
template (basic_ostream <-> ostreambuf_iterator).

Tested with MSVC 2013.

Regression introduced by ba42ceb0cb.

Task-number: QTCREATORBUG-13064
Task-number: QTCREATORBUG-13065
Change-Id: I71a45c720663a73c3302eb7da731e6ad2d8f0fbd
Reviewed-by: Przemyslaw Gorszkowski <pgorszkowski@gmail.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2014-09-25 11:35:47 +02:00
Nikolai Kosjar
c9f309f9be C++: Tests: Extract some functions in tst_checksymbols
...so we can use them in a follow-up change.

Change-Id: I0ddc5bb966e72ab5c527f6814650d70492bbbdb5
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-09-25 11:29:23 +02:00
Oswald Buddenhagen
62da66a0aa AbstractMacroExpander: expand macros recursively
Started-by: Tobias Hunger <tobias.hunger@digia.com>
Change-Id: Id2e88efbb475221cd7c0347f7d5e7009e4372eec
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2014-09-15 17:13:57 +02:00
Nikita Baryshnikov
f90f4ffdd3 Compile fix for tst_abstracttimelinemodel
Implemented pure virtual methods features, loadData with protected
access modifier

Change-Id: I75b0c0ed1f56a06a401d69f538462367de442d88
Reviewed-by: Ulf Hermann <ulf.hermann@digia.com>
2014-09-15 13:33:19 +02:00
Oswald Buddenhagen
ca492c8fac use DISTFILES instead of OTHER_FILES in creator's own build system
it's the correct variable to use.

Change-Id: I9ec7795099097715a64969516cd3fae9e213a0f4
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
2014-09-15 12:10:01 +02:00
Ulf Hermann
2b362de064 QmlProfiler: introduce properties for empty, hidden and displayName
Like this we can properly refer to them from QML.

Change-Id: I98378d543d307f78909191225e72c9d0404dfa1d
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-09-15 09:15:52 +02:00
Ulf Hermann
5799901bcc QmlProfiler: Protect AbstractTimelineModel's loadData() and clear()
They really shouldn't be called from outside. We'll introduce an
"empty" property whose notify signal will depend on data handling to be
done in a controlled way.

Change-Id: I272eaa3638ba571d9f9ffd964b0d33449d0adda1
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-09-15 09:15:43 +02:00
hjk
2776536a7e Debugger: Fix QHash display of "compact" keys
Add make std::string usable as "compact" key.

Change-Id: Idbfcf9d299e2dde392025166a20c3d0ab60239a6
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-09-12 15:36:01 +02:00
Tobias Hunger
0ed377466c AbstractMacroExpander: Allow escaping of %{Macros}
Use "%{}" to put a literal "%" into the output of the macro expander.
E.g. "%{}{Macro}" will be turned into "%{Macro}"

Change-Id: I592789e5cd8f2d52df424db679baf7ba04723202
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-09-12 11:28:48 +02:00
Ulf Hermann
2677e33782 QmlProfiler: rename relative height of timeline items to "relativeHeight"
This clarifies that the item height is not absolute but relative to the
row height, and it reduces the ambiguity of the various "height" methods.

Change-Id: I391441147c88b47a14e539fc3853702bb517d27b
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-09-10 15:43:00 +02:00
Christian Kandeler
847f10e9cc Remove Qt version checks.
Qt 5.3 is the minimum requirement these days. Remove all fallback code
from sources and project files.

Change-Id: If6188a471197acadda4d6baee71804ba1a8026c6
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-09-08 10:33:25 +02:00
Nikita Baryshnikov
cae737e629 Fix private_headers.pri inclusion in tests
Change-Id: Iec8aa54e04b7783b32a2db41ab870cccbadf983e
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-09-02 15:52:35 +02:00
Eike Ziller
b5b6a46b4e ExtensionSystem: Use Qt 5 plugin metadata instead of .pluginspec files
Change-Id: I2b2c704260c613985a4bda179658ec1f8879e70f
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-09-02 15:11:24 +02:00
hjk
389d64ec33 Debugger: Disable some boost usage in autotest
Breaks some setups and is not that important anyway.

Change-Id: Ic5d324445c2a2f12a7f6c2a4b52b51e3a2567c95
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-08-29 16:40:02 +02:00
Christian Kandeler
1d5091e48f Do not use deprecated Qt functionality.
Replace all* remaining deprecated Qt 4 functions with
their Qt 5 counterparts. This means we no longer need to
define the QT_DISABLE_DEPRECATED_BEFORE macro.
This patch is relatively small because most source-compatible
changes of this kind have been done before.

* The one exception is the QmlDesigner, which uses QWeakPointer
in a deprecated way all over the place.

Change-Id: Id4b839c6685f3b5bdf2b89137f95231758ec53c7
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-08-29 14:10:41 +02:00
hjk
9d1bc2fdd3 Debugger: Add boost::unordered_set dumper
Change-Id: I42c39ccfe979023e2aa8957132a0ef3404f45aa8
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-08-29 00:43:01 +02:00
Nikita Baryshnikov
e9f7625a0b Fix tests build
As utils/logging.h was removed

Change-Id: Id6a31dbf7561bd931ca3185c5da4276323cceb36
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-08-27 16:42:26 +02:00
hjk
251a1d2588 TextEditor: Clean up/streamline SyntaxHighlighter setup
No need for the third construction way if that's not
really used by the factories anyway.

Change-Id: Id3b34da5b0320babae9bef96a79bbaa52e0db06d
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-08-27 15:00:43 +02:00
Eike Ziller
aa6495a261 ExtensionSystem: Remove Qt4 support
Remove usage of the Q_EXPORT_PLUGIN macros, which do not exist in Qt 5.

Change-Id: I678c3cf10b9c5d5c1b9f252b0ecd1c97dc810a47
Reviewed-by: hjk <hjk121@nokiamail.com>
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-08-27 08:44:34 +02:00
Ulf Hermann
4937441091 QmlProfiler: autotest for AbstractTimelineModel
Change-Id: I16a29ac21efd9a3810740a50708c1bce9b90e40a
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-08-26 14:54:57 +02:00
Eike Ziller
78b642eb0c Remove pre-Qt 5.3.1 code paths from main Qt Creator pro and pri files
Change-Id: I71bee691a2b9bad7dbdb4ca9c0a938d4313305f7
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-08-26 11:00:57 +02:00
Nikolai Kosjar
89bd4ee3c4 C++: Base parsing on editor document instead of widget
This mainly takes CppEditorSupport apart.

* Parsing is now invoked by CPPEditorDocument itself by listening to
  QTextDocument::contentsChanged().

* Upon construction and destruction CPPEditorDocument creates and
  deletes an EditorDocumentHandle for (un)registration in the model
  manager. This handle provides everything to generate the working copy
  and to access the editor document processor.

* A CPPEditorDocument owns a BaseEditorDocumentProcessor instance that
  controls parsing, semantic info recalculation and the semantic
  highlighting for the document. This is more or less what is left from
  CppEditorSupport and can be considered as the backend of a
  CPPEditorDocument. CPPEditorDocument itself is quite small.

    * BuiltinEditorDocumentProcessor and ClangEditorDocumentProcessor
      derive from BaseEditorDocumentProcessor and implement the gaps.

    * Since the semantic info calculation was bound to the widget, it
      also calculated the local uses, which depend on the cursor
      position. This calculation got moved into the extracted class
      UseSeletionsUpdater in the cppeditor plugin, which is run once the
      cursor position changes or the semantic info document is updated.

    * Some more logic got extracted:
	- SemanticInfoUpdater (logic was in CppEditorSupport)
	- SemanticHighlighter (logic was in CppEditorSupport)

    * The *Parser and *Processor classes can be easily accessed by the
      static function get().

* CppHighlightingSupport is gone since it turned out to be useless.

* The editor dependency in CompletionAssistProviders is gone since we
  actually only need the file path now.

Change-Id: I49d3a7bd138c5ed9620123e34480772535156508
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-08-25 13:06:01 +02:00
hjk
6431ab2c79 Use Qt 5's QStringList::join(QChar)
Less typing and less cycles than join(QString) where appropriate

Change-Id: I6ebc0e17e4d7fd9845864dd95b7de4ba4dad6906
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-08-25 08:21:14 +02:00
Erik Verbruggen
271c1bb89a C++: change return type to enum.
And not have it converted to int after converting to unsigned.

Change-Id: If95caec46936c2a140c3fbd668fa2f085a9287ed
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-08-20 14:08:48 +02:00
Daniel Teske
0d5763425a TreeViewFind -> ItemViewFind
The code changes to enable this is minimal.

Change-Id: Ia5571adcc724e89eb5c68a5f91e38b9cf274516d
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-08-11 14:49:52 +02:00
Oswald Buddenhagen
f3a61e8bf7 Merge remote-tracking branch 'origin/3.2'
Conflicts:
	qtcreator.pri
	qtcreator.qbs
	src/plugins/android/androidglobal.h

Change-Id: I3367bf2ea47c088989175dddeed2210294346f4c
2014-08-05 14:24:23 +02:00
Christian Kandeler
f7d9a99a75 Fix qbs build.
Change-Id: Ia4a9ce7df4694056bc499be773f9472ae9f0542d
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2014-08-01 15:16:16 +02:00
Fawzi Mohamed
d90bd09499 qmljs: tests of the import architecture
First tests using the new qmljs testing architecture

Change-Id: Id88fe53dddbb720c56cd0473e74f476862feb803
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
2014-07-30 15:07:50 +02:00
Fawzi Mohamed
02bdf30f45 qmljs: improve handling of qml dialects
Language::Enum -> QmlDialect
 * class instead of enum
 * moved Language specific operations to it (from Document)
 * nicer handling
QStringList -> PathsAndLanguages
 * store language along with path, to perform a correct scan and improve
   path handling

Change-Id: If69d35c63cfeb48aa670b51870916cd0c40f1916
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
2014-07-30 15:07:35 +02:00
Nikolai Kosjar
6a9ae7e25f CppTools: Auto-include pre-compiled headers
So far the pre-compiled headers were processed (thus defines from those
headers were visible), but the actual includes for the documents were
not added, which is necessary for lookup/completion.

Note that this will be only done if pre-compiled headers are not ignored
(Options > C++ > Code Model > [] Ignore pre-compiled headers).

Change-Id: I54a8e6b00597af164d958e3e9f2a1075ea187788
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-07-24 12:25:02 +02:00
Nikolai Kosjar
d3c5fff66d C++: Fix expensive parsing of expressions
For expression statements like "(g(g(g(...(g(0))...))))" we reparsed
quite much again and again for nothing. The high-level trace for this
expression looks like this:

    parseCastExpression
      parseTypeId
        parseAbstractDeclarator
          parseAbstractCoreDeclarator
          parseParameterDeclarationClause (--> DEEP)
            ...

      parseUnaryExpression
        ...
        parseCorePostfixExpression
          parseTypeId (--> DEEP)
          parsePrimaryExpression (--> DEEP)

Especially parseTypeId is expensive in this case and it's called two
times, both from the same token (index).

With this patch, we remember for certain ASTs the parse results and
re-use them when needed.

Change-Id: I013d1c064c655636bc94db408097863b5e183fc2
Task-number: QTCREATORBUG-12252
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-07-24 12:06:50 +02:00
Nikolai Kosjar
1926493fe9 C++: Tests: Run ASTVisitor on parsed document
...as a sanity check.

Change-Id: I391276e41c5180d0df72fa6267f58801bf2d5da3
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-07-24 12:06:36 +02:00
Erik Verbruggen
45b1169d06 C++: Support alignas in C++11 mode.
Change-Id: Ifa81a481bf92b5b71495a105ae292f3e9895f704
Task-number: QTCREATORBUG-9279
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-07-22 16:43:51 +02:00
Eike Ziller
0374a9782e Merge remote-tracking branch 'origin/3.2' into HEAD
Change-Id: I257bb9310bb3bde493aff4cd43091ec63fcb5203
2014-07-22 16:11:40 +02:00
Erik Verbruggen
5d45e0b69a C++: block recursion when parsing subsequent case statements.
A case or a default statement must be followed by another statement.
When a such a case (or default) statement is followed immediately by
another case (or default) statement, then this would create a linked
list, and the parser will recurse to parse such input.

In order to prevent the parser running out of stack space while
recursing, parse this corner case by blocking parsing a labeled
statement as the first statement after a labeled statement.

The advantage is that these statements do not form a linked list, so any
subsequent visitation of the AST won't run out of stack space either.

Change-Id: Id2111a49509132997f5fbe4bb12c92c729ec2522
Task-number: QTCREATORBUG-12673
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-07-22 15:45:02 +02:00
hjk
776da7b5b3 Debugger: Improve associative std container display
Handle multimap and multiset. Use the "[index] key" display that's
also used for Q{Multi,}Map both for consistency and because it's
needed to distiguish otherwise identical keys.

Change-Id: Ib9e369206bce89e5e27d1f6f60ead11ca88e2dcb
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-07-22 10:47:45 +02:00
Eike Ziller
c571ecbd51 Merge remote-tracking branch 'origin/3.2'
Conflicts:
	src/plugins/git/changeselectiondialog.cpp
	src/plugins/git/changeselectiondialog.h
	src/plugins/git/gerrit/gerritplugin.cpp
	src/plugins/git/gitclient.cpp
	src/plugins/git/gitclient.h
	src/plugins/git/gitsettings.cpp
	src/plugins/git/gitsettings.h
	src/plugins/git/mergetool.cpp

Change-Id: Icd1b2741da96395ed1b41903f453049a303e4791
2014-07-18 14:04:51 +02:00
Orgad Shaneh
9f5949e6f2 Fix MSVC compilation
Change-Id: Ibeaa05a40dd75edeafe0cd23923a52da7c874cd2
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2014-07-17 14:56:46 +02:00
Christian Kandeler
01addecb8d qbs build: Get rid of CopyTransformer.
That item was using a directory as an output artifact, which was only
working by accident and often caused warning messages about failure to
remove files.
Use a proper module instead, which is the nicer solution anyway.

Change-Id: Ib75a0ce26a24c78eb5421367995a8fc72f6a3c2a
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-07-17 13:08:30 +02:00
Eike Ziller
e7ea94b688 Merge remote-tracking branch 'origin/3.2'
Conflicts:
	src/plugins/git/gerrit/gerritparameters.cpp
	src/plugins/git/gerrit/gerritplugin.h
	src/plugins/git/gitclient.cpp

Change-Id: Ie7719cfe45489b72d64260e729dcce3760f33bec
2014-07-17 12:42:04 +02:00
Christian Kandeler
cbeb77030f Autotests: Fix qbs build.
The semantic change in product.buildDirectory broke some autotests.

Change-Id: Ic9336f1e9341adacd1daa763b7ba729d7973fe58
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-07-16 14:02:19 +02:00
Andre Hartmann
69ed9f561b ANSI: More tests.
Change-Id: Ie042a8ad4dc261b026f2e4d0e7780257bcb75641
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2014-07-15 22:26:02 +02:00
Christian Stenger
e84fbe4807 Tests: Fix linking on Win
Change-Id: Idf5b669d48733754d943d95e9250a0c59d71c863
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Reviewed-by: Robert Loehning <robert.loehning@digia.com>
2014-07-14 17:40:25 +02:00