Commit Graph

1415 Commits

Author SHA1 Message Date
Orgad Shaneh
87de153345 CppEditor: Use explicit Functions for overrides list
Change-Id: Icb6c8ece3ba64d35dcd1a695cf400546f3254921
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-02-17 18:28:23 +01:00
Orgad Shaneh
9f06081a0a TextEditor: Cleanup some redundant virtual keywords
Change-Id: Ic6157a1d780551977ffbb65ba4fc374a40e95662
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-02-17 18:24:05 +01:00
Orgad Shaneh
35309ad539 CppTools: Do not duplicate function overrides entries
When function's class is the same as the static class

Change-Id: Ifb509b996b4628c3b56d7540fd133ef370713214
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-02-17 17:03:17 +01:00
Orgad Shaneh
7ed1576083 Clean up single namespace forward-declarations
Done using the following ruby script:

Dir.glob('**/*.h').each { |file|
  if File.file?(file)
    s = File.read(file)
    t = s.gsub(/^namespace .+ \{\n\s*class .*;\n\s*\}.*$/) { |m| m.gsub(/\n\s*/, ' ').gsub(/\s*\/\/.*$/, '') }
    if t != s
      puts file
      File.open(file, 'w').write(t)
    end
  end
}

Change-Id: Iffcb966e90eb8e1a625eccd5dd0b94f000ae368e
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-02-12 09:30:37 +01:00
Tobias Hunger
8c1c284789 Qbs/qmake: Fix dependencies of plugins
... based on output from dependencyinfo.py script

Change-Id: I9532f6d259f15c16b62fae0ca18f8a8cad95bd11
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2014-02-11 13:23:26 +01:00
Eike Ziller
db897f8146 Fix build on Windows
For some reason it doesn't like signals with QFutures. Going back to
pointers, but copying the future from there when it's used.

Change-Id: I8dea0817b4e59ede6874ab8be01f22a92e7402a0
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-02-06 10:49:04 +01:00
Erik Verbruggen
58af02f074 C++: release more futures.
The CPPEditorWidget retained two futures, as did the attached future
watchers retained them too. Together, each future and the watcher held
on to a complete snapshot that would only get released when another
future was set. This could result into retaining old snapshots in
editors that were invisible/unused for long.

Change-Id: I1133e857c620437b4a69b9dad468f6bd458304b8
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-02-05 15:42:46 +01:00
Orgad Shaneh
e600424648 C++: Fix support for incremental input with \n
Also fix false positive line continuation on blank line

e.g.
"foo \

bar"

Change-Id: Ic6d345a4b578c955411d119b8438c8dc5065c072
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-02-04 11:33:54 +01:00
Thiago Macieira
f1606a9f58 Normalize signal & slot signatures in connection
Profiling shows Qt Creator spends 2% of its load time normalizing

Change-Id: I7c38825875c8db58813792dcb86b3a88945466f7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2014-02-03 20:19:44 +01:00
Orgad Shaneh
fbecf2f3fd CppTools: Add tests for nested enums
Discarded during merge from 3.0

Task-number: QTCREATORBUG-5456
Change-Id: I0bb4756e3cdf3c87a4c2b0fbfe6953faaa5e1c52
Reviewed-by: Przemyslaw Gorszkowski <pgorszkowski@gmail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-01-24 11:34:50 +01:00
Eike Ziller
3fa6b6737c TextEditors: Move font settings to document
Change-Id: I325764cbaa9684fa2758b0ea6c6ea58de142cb73
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-01-24 08:00:07 +01:00
Eike Ziller
c6f965f792 Merge remote-tracking branch 'origin/3.0'
Conflicts:
	src/plugins/cpptools/cppcompletion_test.cpp
	src/plugins/cpptools/cpptoolsplugin.h

Change-Id: I4e786745e8abab8d15b75fd962c21b4b28620d47
2014-01-21 14:18:22 +01:00
Orgad Shaneh
80a3caa396 CppTools: Fix completion for nested enums
Task-number: QTCREATORBUG-5456

Change-Id: I0bb4756e3cdf3c87a4c2b0fbfe6953faaa5e1c52
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-01-21 14:06:16 +01:00
Orgad Shaneh
1fd576c1f6 C++: Add support for prefixes in switch header/source
Task-number: QTCREATORBUG-11031

Change-Id: I93cce0ebf46984eb06094e1f1519717be2bbaa79
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-01-21 12:20:15 +01:00
Eike Ziller
4eff289e03 TextEditors: Remove widget's setTabSettings method
Change-Id: If212b45e2d526534b7853f3fa23b170f61e1976e
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-01-21 11:22:16 +01:00
Orgad Shaneh
f506104f29 CppTools: Cleanup header/source test
Dynamically create data files in tempPath and clean them up when
finished.

Change-Id: Ie78f557b185b264acc0d0f5814646c203d8a93f4
Reviewed-by: Petar Perisin <petar.perisin@gmail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-01-21 11:07:49 +01:00
Eike Ziller
dcba4a2715 Use document instead of widget in TextEditor::RefactoringChangesData
Change-Id: I938041c9774fbebd1edc6dc29ccfa569bae94f70
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-01-21 10:53:25 +01:00
Orgad Shaneh
a309b3cfe6 C++: Store token kind as lexer state
... when needed

Change-Id: I32a1649c87e1fa42da80eff5003b2f5714062064
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-01-20 14:11:18 +01:00
Eike Ziller
3ad3876611 TextEditors: Move indenter to document.
Change-Id: I8bdf7134562d007aa16cc63a34f5a15a708577ae
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-01-15 15:02:25 +01:00
Eike Ziller
851f255b9d Merge remote-tracking branch 'origin/3.0'
Conflicts:
	src/plugins/qmldesigner/components/formeditor/anchorindicatorgraphicsitem.cpp
	src/plugins/qmldesigner/components/propertyeditor/propertyeditorview.cpp
	src/plugins/qmlprofiler/qmlprofilertraceview.cpp

Change-Id: I778a0c2d0f1b4f799caaa2c2cc5daf94ec7ca352
2014-01-15 14:04:41 +01:00
Eike Ziller
cec4fac873 CppEditor: Fix semantic highlighting after "Save as"
Change-Id: I523735bae9e1a19678d4ab697c1edce2886bedeb
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-01-14 09:04:14 +01:00
Eike Ziller
cfad9bdc3c TextEditors: Move contentsChanged signal from editor to document
Change-Id: Ic935a8971705cb3238deda71aa2b5d19e4f62593
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-01-14 09:03:58 +01:00
hjk
4d96fa7aba Core: Merge Find and Locator into Core plugin
Change-Id: I7053310272235d854c9f409670ff52a10a7add8b
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-01-14 07:43:00 +01:00
Thiago Macieira
58a4e601ff Fix change-of-sign warning found by ICC
-1 is not a valid unsigned value.

registerhandler.cpp(354): warning #68: integer conversion resulted in a change of sign
          return createIndex(row, col, TopLevelId);
                                       ^

Change-Id: I41935255704f19724d6cec16ea470e2f8f8a16a1
Reviewed-by: Kurt Pattyn <pattyn.kurt@gmail.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-01-10 15:40:22 +01:00
Eike Ziller
a3608f595a Editors: Remove BaseTextEditorWidget::setBaseTextDocument
First step in never changing the text document after construction,
because that is actually not really supported.
Second step will be to fix that for the editor duplicate() methods too.

Change-Id: I3d112ba0895e7ee7ac6dd8ae2318f0de7d2cebc9
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-01-10 14:31:11 +01:00
Robert Loehning
5292748bf2 Incremented year in copyright info
Change-Id: I6e25ba25aa2898b5382dae7f3751deebb6072efa
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-01-09 09:41:23 +01:00
Eike Ziller
236ea9efb9 Merge remote-tracking branch 'origin/3.0'
Conflicts:
	share/qtcreator/debugger/dumper.cpp
	share/qtcreator/debugger/dumper_p.h
	share/qtcreator/debugger/test/main.cpp
	src/plugins/debugger/gdb/classicgdbengine.cpp
	src/plugins/debugger/gdb/pythongdbengine.cpp
	src/plugins/debugger/lldblib/guest/lldbengineguest.cpp
	src/plugins/debugger/lldblib/guest/lldbengineguest.h
	src/plugins/debugger/lldblib/guest/main.cpp
	src/plugins/debugger/lldblib/ipcengineguest.cpp
	src/plugins/debugger/lldblib/ipcengineguest.h
	src/plugins/debugger/lldblib/ipcenginehost.cpp
	src/plugins/debugger/lldblib/ipcenginehost.h
	src/plugins/debugger/lldblib/lldbenginehost.cpp
	src/plugins/debugger/lldblib/lldboptionspage.cpp
	src/plugins/qbsprojectmanager/qbsstep.cpp
	src/plugins/qbsprojectmanager/qbsstep.h
	src/plugins/qmlprofiler/canvas/qdeclarativecanvas.cpp
	src/plugins/qmlprofiler/canvas/qdeclarativecanvas_p.h
	src/plugins/qmlprofiler/canvas/qdeclarativecontext2d.cpp
	src/plugins/qmlprofiler/canvas/qdeclarativecontext2d_p.h
	src/plugins/qmlprofiler/canvas/qmlprofilercanvas.cpp
	src/plugins/qnx/blackberrycheckdevmodestep.cpp
	src/plugins/qtsupport/debugginghelper.cpp

Change-Id: Ie9fd0a885fb6264a6a8a72daee071b75bcbd2e9d
2014-01-08 11:01:06 +01:00
Robert Loehning
746c5d8863 Incremented year in copyright info
Change-Id: Ib5423fdd064e4546f848c0b640b0ed0514c26d3a
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-01-08 08:29:47 +01:00
Nikolai Kosjar
1362d9d262 CppTools: Fix test_modelmanager_defines_per_project
The example project parts had no project file set and thus the "right"
project part could not be determined in cppeditor.cpp:718.

Change-Id: I088571e9d3c3c8790670bbdd8e68190835a85ad5
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-01-07 14:25:31 +01:00
Nikolai Kosjar
746da71527 CppEditor/CppTools: Avoid triggering garbage collector on editor close in tests
Closing an editor might trigger a timer which leads to the invocation of
the garbage collector. This is unfavourable for the plugin tests since a
test function closing an editor might influence a subsequent test
function (e.g. files get removed from the global snapshot although they
were added shortly before).

Change-Id: Ia80c11f99e2437fe145dc2d983b21962539b5181
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-01-07 14:19:43 +01:00
Nikolai Kosjar
0bd5917867 CppEditor/CppTools: Don't continue in test function on failure
QVERIFY/QCOMPARE are meant to be called in the test function so that on
failure they just can "return" and thus skip subsequent code. Since we
use reusable test code in the test functions (the *TestCase classes), we
need to ensure that on failure no further test code is executed.

This mostly inlines the run function of the test classes into the
constructor.

Change-Id: I320ee032bdde0174ddfe3fdf3f9e18e19abf1d7f
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-01-07 14:19:33 +01:00
Nikolai Kosjar
c7f3ac4073 CppEditor/CppTools: Clean up *Test* classes
* Unify class names
* Fix coding style

Change-Id: I7498192ba9e6b9fc0e97d3d4f0dbb30f1853a0c9
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-01-07 14:19:21 +01:00
Nikolai Kosjar
5c8df5fa4e CppEditor/CppTools: Introduce Test{Case,Document}
Move common functionality of the 12 test classes into base classes.

Change-Id: If64d3cec876807ac6f991151189860a99b8ff4ca
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-01-07 14:19:13 +01:00
Eike Ziller
5aa8a63f90 CppEditor: Fix potential crash
The m_snapshotUpdater may never be accessed directly.

Change-Id: Id773a291f66e93a48ae46f2b1c04417af2f26763
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-01-07 12:22:30 +01:00
Erik Verbruggen
18ac68adb3 C++: add header chooser to codemodel settings page.
Change-Id: I2da9c4b382afcad2faad1817af266381a2f02b2a
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-01-07 09:29:20 +01:00
Eike Ziller
5cf0fabb3b Fix missing completion options page
Task-number: QTCREATORBUG-11154

Change-Id: Ib763675e4b00408e2840eb3a672560ffdc8f99d4
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-01-07 08:40:19 +01:00
Orgad Shaneh
0ce3f3e68c C++: Ignore return type on function overrides comparison
Change-Id: I9933e1cc1fb996181e818e2ea0aff76f9255f849
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-12-28 22:02:01 +01:00
Orgad Shaneh
a625d9656c CppTools: Add completion tests for enums inside class/namespace
Change-Id: If088533d0b51d1750e3273d7ab732dffd110ec85
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-12-28 20:35:07 +01:00
Orgad Shaneh
f7e6c40094 CppTools: Uncomment a test and fix it
The bug was fixed long time ago, the test is missing a semicolon

Change-Id: I0236048d2da059fe208591469fb69541705463cf
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-12-28 19:17:58 +01:00
Orgad Shaneh
ed13ba2d0c CppTools: Replace comma with dot for test names
Comma is used to separate tests on command-line

Change-Id: I785d2137d54b0e1e4edbbd940042dc926719dcfc
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-12-28 19:17:52 +01:00
Orgad Shaneh
90265b7696 CppTools: Fix indentation for some completion tests
Change-Id: I9a5bf4705da5ca88776dec70057da2c64e4c1494
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-12-23 13:46:59 +01:00
Orgad Shaneh
0909c0295f CppTools: Make completion tests data-driven
Mostly done using the following Ruby script:

Fname = 'src/plugins/cpptools/cppcompletion_test.cpp'
s = File.read(Fname)
mod = s.gsub(/(?<declaration>void CppToolsPlugin::test_(?<test_name>[^(]+)\(\)\n\{)(?<body>.*?\n)\}/m) { |func|
  match = $~
  declaration = match['declaration']
  body = match['body']
  test_name = match['test_name'].sub('_data', '')
  final = body.gsub(/(?:completions.clear\(\);\s+)?(?: +)[^\n]* =\n(?<code>.*?);\s*(?<completions>(?:completions.append\(QLatin1String\("[^"]*"\)\);\s*)*)QTest::newRow\("case: (?<name>.+?)"\)\s*<< code << _\("(?<prefix>[^"]+)"\) << completions;/m) {
    m = $~
    res = "    QTest::newRow(\"#{test_name}: #{m['name']}\") << _(\n#{m['code'].rstrip}\n        ) << _(\"#{m['prefix']}\") << (QStringList()"
    m['completions'].scan(/completions.append\((.+)\);/) { |comp|
      res << "\n            << #{comp[0]}"
    }
    res + ');'
  }.gsub(/(?: +)[^\n]* =\n(?<code>.*?);\n\s*CompletionTestCase test\(.+?, "(?<prefix>.+?)"\);\s*QStringList expected;\s*(?<completions>(?:expected.append\(QLatin1String\("[^"]*"\)\);\s*)*)const QStringList completions = test.getCompletions\(\);\s*QCOMPARE\(completions, expected\);/m) {
    m = $~
    res = "    QTest::newRow(\"#{test_name}\") << _(\n#{m['code'].rstrip}\n        ) << _(\"#{m['prefix']}\") << (QStringList()"
    m['completions'].scan(/expected.append\((.+)\);/) { |comp|
      res << "\n            << #{comp[0]}"
    }
    res + ');'
  }.gsub(/(?: +)[^\n]* =\n(?<code>.*?);\n\s*CompletionTestCase test\(.+?(?:, (?<prefix>".+?"))?\);\s*(?:const )?QStringList completions = test.getCompletions\(\);\s*QCOMPARE\(completions.size\(\), \d+\);(?<completions>(?:\s*QVERIFY\(completions.contains\([^\n]+\);)*)\n/m) { |mm|
    m = $~
    res = "    QTest::newRow(\"#{test_name}\") << _(\n#{m['code'].rstrip}\n        ) << _(#{m['prefix']}) << (QStringList()"
    m['completions'].scan(/QVERIFY\(completions.contains\((.+?)\)\);/) { |comp|
      res << "\n            << #{comp[0]}"
    }
    res + ");\n"
  }.gsub(/(?: +)[^\n]* =\n(?<code>.*?);\n\s*CompletionTestCase test\(.+?(?:, (?<prefix>".+?"))?\);\s*bool replaceAccessOperator = false;\s*const QStringList completions = test.getCompletions\(\&replaceAccessOperator\);\s*QCOMPARE\(completions.size\(\), \d+\);(?<completions>(?:\s*QVERIFY\(completions.contains\([^\n]+\);)*)\s*QVERIFY\((?<replace>!?)[^)]*\);\n/m) { |mm|
    m = $~
    res = "    QTest::newRow(\"#{test_name}\") << _(\n#{m['code'].rstrip}\n        ) << _(#{m['prefix']}) << (QStringList()"
    m['completions'].scan(/QVERIFY\(completions.contains\((.+?)\)\);/) { |comp|
      res << "\n            << #{comp[0]}"
    }
    res + ")\n        << #{m['replace'].empty?};\n"
  }
  if final == body or final['QTest::addColumn']
    declaration + final + "}"
  else
    final
  end
}.gsub(/QTest::newRow\("([^"]+)"/) { |m|
  name = $1
  if name.size > 73
    space = name[0..73].rindex(/[ _]/)
    "QTest::newRow(\"#{name[0..space]}\"\n                  \"#{name[space+1..-1]}\""
  else
    m
  end
}.gsub(/\s+QTest::newRow/, "\n\n    QTest::newRow")
if mod != s
    File.open(Fname, 'wt').write(mod)
end

Change-Id: Id6bfb03cdf31ac27b36028fcdc861c340a5398f4
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-12-23 13:46:49 +01:00
Orgad Shaneh
ed2d98577a CppTools: Reorder completion tests
For reasonable diff on following commit

Change-Id: I97e121355279f9166cea2f500cf2d4df5fafaa32
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-12-23 13:41:52 +01:00
Orgad Shaneh
f53598a1ae CppTools: Braces cleanup in CppCompletionAssistant
Change-Id: I3dea8a8bdd4ae71b48926ec3332ef00cf5ad4303
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-12-23 13:41:35 +01:00
Orgad Shaneh
be31d8d08f CppTools: Minor optimization in CppCompletionAssistant
Change-Id: Ieb452713e9e09fce107520c4fd2a401007802e89
Reviewed-by: Przemyslaw Gorszkowski <pgorszkowski@gmail.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-12-23 13:41:26 +01:00
Orgad Shaneh
b0c3a6bad8 CppTools: Generalize data-driven test_completion
Change-Id: I409a00b869a95dff2d69c9744da75c324c82776a
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-12-23 13:25:51 +01:00
Orgad Shaneh
0204f56628 CppTools: Cleanup completion tests #2
Change-Id: I3c5f42de464a5607f1caa6a48d881c5a4a113ec3
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-12-23 13:20:27 +01:00
Orgad Shaneh
7356987c41 CppTools: Remove superfluous comments from completion tests
Change-Id: I2526daeaf54f7f8d4b808cf556cff9242adaa391
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-12-23 12:51:38 +01:00
Orgad Shaneh
5713b85cb0 CppTools: Refix MSVC compilation
SemanticInfo has moved from CppEditor to CppTools and is now exported,
so this workaround is no longer needed (and it breaks linkage)

Change-Id: Ic9ba017bcb06be85fdccef27e63091415494bb21
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-12-23 12:00:34 +01:00
Orgad Shaneh
d3c606c001 CppTools: Fix MSVC compilation
Change-Id: I7b3c52a6eb70a0e2d7f2785fac71cb3ac68769d8
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-12-23 09:25:02 +01:00