Commit Graph

344 Commits

Author SHA1 Message Date
hjk
cc351381ae TextEditor: Replace in-class connection by virtual function
Change-Id: Ifb51606f71100223631d086318c230a478d70712
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-08-21 09:37:26 +02:00
hjk
3ac0668d5c QmlJSEditor: General editor related code consolidation
Merge editor files, sort #includes, namespaces.
This does not yet use the new editor construction scheme.

Change-Id: Idb1171389858c4470d7a4ec9441fb25e6d157400
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-08-21 08:40:56 +02:00
hjk
cb35594800 TextEditor: Centralize settings connections setup
All editors did that manually, with varying approaches. Connect once
when the document is made known to the EditorWidget instead.

Change-Id: Ib0828b08158539859f6f89c8080435a027aa06ed
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-08-20 13:28:44 +02:00
hjk
c5fae0e8da TextEditor: Further *Editor/*EditorWidget disentangling
In most cases, the *Editor constructor does not need to
access the *EditorWidget.

Change-Id: I1f5c076a0f723d5d82b398e8c250c7bd1d47eb17
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-08-19 10:32:12 +02:00
hjk
d2ec7d80d9 TextEditor: Merge the two sets of *EditorWidget constructors
Change-Id: I45d87d0be722ac36d64af222f03f8cb76242c9df
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-08-19 09:19:33 +02:00
hjk
d7c2b0b681 TextEditor: Consolidate document access functions.
There was document(), textDocument() and baseTextDocument().
Two should be enough...

Change-Id: Id9e41c8d857c5cb3269a9fce5ab594d34448c982
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2014-08-04 10:43:56 +02:00
hjk
a9b7045803 TextEditor: Move toolbar widgets from *Editor to *Widget
Lifetime is coupled to the widgets, not the editor.

Change-Id: I01560bbdd6c399376d3a4184f0eb83e4153f830e
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2014-08-01 17:57:26 +02:00
hjk
98fd59fd09 TextEditor: Start moving data from *EditorWidget to *Editor
Goal is to consolidate "controller" related data in the *Editor hierarchy.
This patch introduces temporary "cross-Private" accessors dd() to
keep the patches small.

First item moved is the AutoCompleter, a glimps at long term benefits
is the simplification in the JavaEditorWidget which is now essentially
a BaseTextEditorWidget, only containing the still-wrong createEditor().
But that can only be move if the *Editors are self-contained, i.e.
keep data themselves, not indirectly through the *EditorWidgets.

Change-Id: Ia0ab90f0322bb17ac20458e6581069eed30acbaf
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-07-31 16:45:31 +02:00
hjk
f6b48950ed TextEditor: Re-work comment definition handling
No need for most of the machinery.

Change-Id: I9078174582d83da94c6c7f20282fd3a5f1742911
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-07-31 10:54:49 +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
Fawzi Mohamed
8b8c5e8fe8 qmljs: ensure that opening an editor always updates the modelmanager
Change-Id: Ia23d9c84240bd2c54b0c331494474d0fa74674e8
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
2014-05-06 14:31:15 +02:00
hjk
6c6f47f86c Core: Make IEditor::id a value member and adjust users
Change-Id: I47e457c4a1821c515cd8a740d27bfe005a0c09e6
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-02-25 10:36:25 +01:00
Eike Ziller
deb1a742e1 Make QmlJSEditor and QmlJSEditorWidget internal
Change-Id: I5afe67db927d735727beafe972965855bde39faa
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2014-02-10 12:43:46 +01:00
Eike Ziller
89a2c4620b QmlJSEditor: Remove functions from widget that delegate to document
Instead access document directly. Needs to export document.

Change-Id: I8fa86832982d2793ea951e88a5b6e3925b7cd281
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2014-02-10 12:43:30 +01:00
Eike Ziller
07e807ee5f QmlJSEditor: Remove unused method.
Change-Id: I5441317ab8e8ef285099828c57fb008efd757ed9
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2014-02-10 12:43:17 +01:00
Eike Ziller
58b717fbb8 QmlJSEditor: Move outline model to document
Also the updating of the model is now done only once in the document,
and delayed till an editor is visible if necessary.

Change-Id: I69b1abebc2b691b37a618db7d1f5ebbbc8e75bca
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2014-02-10 12:43:12 +01:00
Eike Ziller
1e6bc2758d QmlOutlineModel: Use document instead of widget
Change-Id: I56c4a1da84d00064334a235aec8f2710efdba365
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2014-02-10 12:43:06 +01:00
Eike Ziller
9fcd43ed05 QmlJSEditor: Some renaming
Call the timer and its slot for what they do, not how they are
triggered. Remove unneeded function/slot.

Change-Id: I6060f0b59149eb7e5cfdf1d7ea0a993a2104f012
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2014-02-10 12:42:54 +01:00
Eike Ziller
5f94bc4d12 QmlJSEditor: Move semantic highlighting to document
This ensures that we are only highlighting once, and actually do
highlight (the previous code was trying to prevent multiple rehighlights
though doing the highlighting in the editor(s), resulting in situations
where it wouldn't rehighlight at all)

Change-Id: I18f3e72e31d8076b6d1575f1a17a3f4a101163d9
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2014-02-06 13:15:22 +01:00
Eike Ziller
d538235885 QmlJSEditor: remove leftovers from semantic info updater move
Change-Id: Ib93a66f56ecd7a1324195e817f14280fcc0c3625
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2014-02-04 09:59:02 +01:00
Eike Ziller
a94d736881 TextEditors: Avoid sending contentsChanged signal when rehighlighting
That avoids a complete reparse of the document when font settings
change, but in turn now requires an explicit redo of semantic
highlighting in that case.
The cpp editor part of this patch is actually still doing semantic
parsing though. This will be fixed up in a later patch.

Change-Id: I6f51a18cba6325856c96e155700eb912f6d3aad5
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2014-02-04 09:58:51 +01:00
Eike Ziller
d653d600e0 QmlJS semantic highlighter: Use document instead of widget
Diagnostic ranges also move to document for this.

Change-Id: I82a9909abb57594cdd732448270849e6a2e3a4e0
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2014-02-04 09:58:40 +01:00
Eike Ziller
e2972e8a82 QmlJSEditor: Simplify usages highlighting
There is no need to fire a timer over and over again if semantic info is
not up to date. Instead, update usages whenever cursor position changes
and semantic info is up to date, and whenever semantic info is updated.

Change-Id: If2d8fe2a0211b9d659bea5c747704380a64cc1ca
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2014-01-30 14:39:00 +01:00
Eike Ziller
f8461fbbdf QmlJSEditor: Move semantic info updating to document
Change-Id: I804dbd887af1786e7554ec79f94fc8e59db1de5b
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2014-01-29 10:16:10 +01:00
Eike Ziller
ae5ef38e3c QmlJSEditor: Fix auto-indentation
Broke with 3ad3876611

Change-Id: Id67e574b11e92d83124081f05262110033c8504e
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2014-01-29 10:16:02 +01:00
Eike Ziller
782e0d37c3 QmlJSEditor: Move reparse trigger to document
Change-Id: I65bb9002a44343bb1d13b9c5c92f5057c1d5b25e
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2014-01-29 10:15:55 +01:00
Eike Ziller
1f84ec0b22 QmlJSEditor: Move document to its own file
Change-Id: I81c1ae5af617e801196edd612aff62ba4d864409
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-01-27 11:22:10 +01:00
Eike Ziller
17c11f0642 TextEditors: Set syntax highlighter only once
Change-Id: Iad83e589be49aeab3f35420d071311c15ddac6b2
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-01-24 08:00:59 +01:00
Eike Ziller
c99464dd9b TextEditors: Remove unnecessary duplicated caching
Change-Id: I3800360e3b9bd6874d6852dabcfc7a9a066e52c2
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-01-24 08:00:28 +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
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
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
355f104d0e BaseTextEditor: Remove some unnecessary indirections through widget
Change-Id: I4f71448d6788a4e553b1495b72263a004e65d8c0
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-01-14 09:05:06 +01:00
Eike Ziller
2251958375 TextEditors: Avoid changing document after construction.
Also when duplicating editors, we don't want to change the document
after construction. Actually at some places (e.g. CppEditorSupport
creation) we don't handle document changes correctly, and we are only
lucky that things still (more or less?) work. Get rid of
BaseTextEditorWidget::duplicateFrom and use copy-constructor style instead.

Change-Id: I7f688b7fcc51d1bb5e222bb333f0d28479b597a6
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-01-10 14:38:36 +01:00
Eike Ziller
f9ce335a6d Editors: Remove useless parent widget argument from create/duplicate
It was never called with a sensible value anyhow, and only complicates things.

Change-Id: I005848700b6c00114d91495670d4a0e15a2d2e64
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-01-08 11:46:11 +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
Eike Ziller
8178f709c2 QmlJsEditor: remove empty function
Change-Id: Ifc694394ebde336de0b7d1492dedf840c9e9a8dd
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2013-12-18 11:37:37 +01:00
Eike Ziller
1adab4c4cc Merge BaseTextEditorWidget::editorDocument() and ::baseTextDocument()
Doesn't really make sense to have the additional IDocument *editorDocument()
method.

Change-Id: I0a7420eb1afaa76f63c3f7e9c4b373acf624ffb9
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-12-18 11:34:34 +01:00
Eike Ziller
dcfc89f8a8 QmlJsEditor: Set language ID directly
Gets rid of an unnecessary indirection.

Change-Id: I2690b00175b60de03e6f9944a8ccd29a7914347d
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2013-12-12 10:00:18 +01:00
Fawzi Mohamed
0a4310d314 qmljs: added qmljsconstants.h
Moved Document::Language, Import::Type and StaticAnalysis::Severity
enums to qmljsconstants.h and renamed values removing the redundant
part.
Thus the effective length changed little or improved
(Document::QmlLanguage => Language::Qml).

The separate file allows better reuse of enum values without introducing
circular dependencies.

Change-Id: I5186d7c04f5d3f6c289068b919be5ff1ff118326
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2013-10-23 00:35:16 +02:00
Nikolai Kosjar
11aeaea86f CppEditor: "Follow Symbol Under Cursor" for virtual functions
F2 on a virtual function call presents a list of overrides in derived
classes. The function declaration of the static type is shown
immediately at the top.

Task-number: QTCREATORBUG-9611

Change-Id: I80ce906fa06272dc9fbd1662cd17500b8c77067f
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-10-01 14:23:00 +02:00
hjk
a37589d431 Apply 'static' pattern to MimeDatabase
Also adjust and streamline using and surrounding code.

Change-Id: I6a8b05126bdcbb74ff611b21c7cb3c5902a2d5ca
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2013-09-03 11:41:45 +02:00
hjk
4a24df38a3 EditorManager: Use static pattern, adjust surrounding code
Change-Id: I3255a0150cd9a730336456c5a9f986eb74fefbff
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-08-30 11:22:56 +02:00
jkobus
e8801167aa Add common interface for text formats inside syntax highlighter
Change-Id: I87f64446161a57aea0896f68e4eafacef791969b
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-08-26 13:39:40 +02:00
Eike Ziller
dd43d9908f Rename IDocument::fileName --> filePath
That is what it actually is, wrt how Qt API calls it.

Change-Id: Ied02055debf6aad75556b0d9d22e8ba2f72be555
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-07-09 13:51:42 +02:00
hjk
67c3fed2c0 QmlJSEditor: Rename QmlJSEditorEditable into QmlJSEditor
Change-Id: I710817ffd7bdf87aa6c0fed0f1f3cd4ea842fd01
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-06-07 16:20:38 +02:00
Eike Ziller
b450b3071e TextEditors: Separate away methods that actually work on a document
Introduces ITextEditorDocument. This is part of a more general "use
documents instead of editors whereever possible". It will allow to move
to e.g. ITextEditor::openedTextDocumentContents() instead of
ITextEditor::openedTextEditorsContents().

Change-Id: I5ebceaa257a0d2c3e8ac4ac51b9b08b6faa42487
Reviewed-by: David Schulz <david.schulz@digia.com>
2013-04-19 16:21:30 +02:00
Nikolai Kosjar
947207c802 C++: Fix dangling IDocument* in CppCompletionAssistProcessor
Steps to reproduce the crash:
 1. Open some long file, e.g. botan.cpp
 2. Trigger completion and close editor immediately

The IDocument pointer was only used to reference the file name. Instead
of passing an IDocument* to the IAssistInterface, pass the file name.

Change-Id: Iafce9b818806a77968a10541114bc9b7c8665f11
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Reviewed-by: David Schulz <david.schulz@digia.com>
2013-03-19 14:12:11 +01:00
Fawzi Mohamed
ef42f53f22 qmljs: do not show warnings for not fully supported languages
Change-Id: Ie153caefcbb0f5d6d627697fd324d0cd0e3fa31f
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-03-05 15:30:23 +01:00