Commit Graph

126 Commits

Author SHA1 Message Date
hjk
0fcca946ad Rename {Core,TextEditor},{Base,}TextDocument classes
First step of some more 'Base' removal in TextEditor.
s/Core::TextDocument/Core::BaseTextDocument/
s/TextEditor::BaseTextDocument/TextEditor::TextDocument/

Change-Id: I71ba325a2f0ad72ec9dae0d96846cbae72d326f7
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-09-25 18:00:51 +02:00
hjk
b26a17f30d CppTools: Change CppModelManager implementation pattern
Replace the CppModelManagerInterface/derived CppModelManager
combo by a more common CppModelManager/CppModelManagerPrivate
pimpl pattern.

Change-Id: Ia4582845ed94d5ef60b8571bab9b2260c6290287
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-09-19 13:17:55 +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
Eike Ziller
49db3a450a Merge remote-tracking branch 'origin/3.2'
Conflicts:
	qtcreator.pri
	qtcreator.qbs
	src/plugins/coreplugin/editormanager/editormanager.cpp
	src/plugins/cppeditor/cppeditor.cpp
	src/plugins/remotelinux/remotelinuxdebugsupport.cpp
	src/plugins/texteditor/basetexteditor.cpp

Change-Id: I0da7c1cf2506b12d0563795aa8177fc45e97050f
2014-09-03 16:08:02 +02:00
Kai Koehne
9e62375b71 QmlJS: Use canonical paths for matching of import directories
We rely on string comparison for detection of QML import paths. Therefore
make sure that all paths are canonical.

Change-Id: I416bc31915644a888c416d726049668b0e71f29a
Task-number: QTCREATORBUG-12902
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2014-09-03 09:41:48 +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
6763352340 qmljs: move defaultProjectInfoForProject to the qmljs library
This removes qmakeprojectmanager and qmlprojectmanager dependency on
qmljstools.
Qmlprojectmanager still imports qmltoolsconstants.h for a constant
but that gives no runtime dependency.

Change-Id: Ifd2e76500a3b27a21937603925f03a70049900e1
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-07-24 16:54:42 +02:00
Fawzi Mohamed
329952f5ee qmljs: fix race condition in defaultVContext
defaultVContext did call defaultProjectInfo which could
be called only from the ui thread (as it did check the current
project)
Now update the defaultProjectInfo via signals, and lock on access
making defaultProjectInfo threadsafe.

Task-number: QTCREATORBUG-12556
Change-Id: Ibffeb59bbcef7120f08766160bb1e2ddc9af2922
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2014-06-30 15:25:43 +02:00
hjk
2cd9a97510 Utils: Remove function wrapper
This was an intentional, time-limited workaround that has
served its purpose now that we require C++11.

Change-Id: I96ece9c21bd405d281fd381bd9b87edc00c5ee84
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2014-06-30 10:44:07 +02:00
Nikita Baryshnikov
84e176edab CleanUp usage of QtAlgorithms
Change-Id: I61be20554014f90c2e1313167a3e3c869e26c35e
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-06-17 08:19:29 +02:00
Fawzi Mohamed
05671973b6 qmljstools: remove unused qdebug imports
Change-Id: Ifd21344c35989490884fa274ba64c23ea4c033cf
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-06-11 13:34:09 +02:00
hjk
6e584b5b49 DocumentModel: Make interface static
Move item model implementation to private, adjust user code.

Change-Id: Ifbe94e7c7b9b1e8be1b4c531958dbd7a9413af13
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-05-13 11:48:30 +02:00
Fawzi Mohamed
77ec2c6c2c qmljs: add qbs default paths
Change-Id: I7925c9e7e0931a35333965faba1a3e65129584bd
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
2014-05-09 17:13:23 +02:00
Fawzi Mohamed
58489e50a8 qmljs: better defaults, more uniform handling of paths
Uniform handling of the different qml dialects.

Now paths for a given document prefer the project of that document.

For Qt the following sequence is used:
- Qt of the project of the document
- Qt of the active target
- Qt used to run creator

Currently all paths of the open projects are still merged, but that
can be changed.

Change-Id: Id302c13c893b66fbfe24e301602fe69de152eed4
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
2014-05-09 17:13:05 +02:00
Fawzi Mohamed
13349331e8 qmljs: fixing attributes naming (code style)
Change-Id: I3d5916483b99a8d6839b9cb6b9bde119a9da351a
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2014-02-19 21:24:34 +01:00
Fawzi Mohamed
d24cb60d48 qml: moving most of ModelManager logic to ModelManageInterface
Currently ModelManager contains lot logic, but as it sits in QmlJSTools
it is not possible to use it in standalone tests.
Moving most of the logic to ModelManagerInterface (and cleanup)
to allow better testing, and refactoring.
This introduces a dependency of the qmljs lib on the cplusplus lib
Also a (small) part of the CppTool::ModelManagerInterface has been
moved to CPlusPlus::CppModelManagerBase to remove the dependency on
CppTools to gather the Qml types exposed from C++.

Change-Id: Icad7fe96dfd0f1a2b1058d82bd98c77c40aa5e9d
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2014-02-19 21:18:58 +01:00
Fawzi Mohamed
a8ea0a0736 qmljs: generalize language treatement
* better support qbs and similar non QtQuick qml languages
* begin to clean and migrate things from ModelManager to
  ModelManagerInterface

Change-Id: Ifa39dc1e4c568e9e21307f4913dcb5989e80420f
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
2014-01-28 15:01:00 +01:00
Fawzi Mohamed
188d50dc1d qml: make dumping errors more chatty
Change-Id: I1471ba9459a1e48a03e26aa5dc008072460447be
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-01-20 11:37:31 +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
890f72160c Rename QString ITextEditorDocument::contents --> plainText
To differentiate it from the byte array based IDocument::setContents

Change-Id: Icc9600732c2742fb79254a0697870bacce3a59ee
Reviewed-by: David Schulz <david.schulz@digia.com>
2013-12-10 09:11:30 +01:00
Fawzi Mohamed
4ea1871aea qmljs: delay import scan until at least one qml file is parsed
Task-number: QTCREATORBUG-10899
Change-Id: I5dca739a89434c7b5813c7a79a76ab7c22e3d71d
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
2013-11-26 18:45:07 +01:00
Fawzi Mohamed
0b80c053e4 qmljs: avoid double parsing of imports
Change-Id: Ib45a63e3175924158dc2cff60a7b1964f491c375
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
2013-11-26 16:42:42 +01:00
Thomas Hartmann
caff343769 QmlJS: Fixing warnings
Correcting ImportKey::compare(). The compare function was not stable
and QMap did not work properly.

Done with: Fawzi

Change-Id: I11790215cba6944bf9f04be0c3844b35ea54ea70
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2013-11-26 11:34:30 +01:00
Nikolai Kosjar
180e613e71 QmlJsTools: Fix compilation with Qt4
Change-Id: I76e067ec8223c42b480ad9d296cd3b7357831aab
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-11-20 14:48:40 +01:00
Fawzi Mohamed
2fc150b983 qmljs: scan imports
Change-Id: Ied59f5d56c5816d9da57f23a619d604acec76000
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
2013-11-20 12:27:49 +01:00
Fawzi Mohamed
e1b44e870f qmljs: new import/dep tracking
Change-Id: I9f4de2a06aad3afb80372a4b80e56db658683575
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
2013-11-20 12:26:30 +01:00
Orgad Shaneh
4442a92729 Braces cleanup
Change-Id: I8413252c90a1487d291f15d92837c30ab697b245
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-11-14 08:13:52 +01:00
Fawzi Mohamed
c32317d198 qml: solve race condition when deleting while indexing
Task-number: QTCREATORBUG-10734

Change-Id: I521ac0881ff83a44846b133de5c292af8cda9d4e
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2013-11-12 12:45:40 +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
hjk
527046acc2 MessageManager: General cleanup.
Apply 'static' pattern, rename 'printToOutputPane' to 'write'

Change-Id: I6f31f1a8c914661e2a2182c0b6256b41ead28de7
Reviewed-by: David Schulz <david.schulz@digia.com>
2013-09-05 12:51:00 +02:00
hjk
aadb6f16af SessionManager: Apply 'static' pattern
Change-Id: I370f72fcf7a24216ee189979ce6b5c8bfc5f4140
Reviewed-by: David Schulz <david.schulz@digia.com>
2013-09-05 12:28:12 +02:00
hjk
98917598d3 ProjectManager: Use Core::Id for progress types
Change-Id: I72993fda50ad70ad2d7c2f449923ac6e34b9e737
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-09-04 14:59:06 +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
df36184371 Core: Static pattern for ProgressManager, clean up all users
Change-Id: I4af8793ca69a3af9e99baeb7c31dad3864266f91
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-09-02 12:41:47 +02:00
Tobias Hunger
95859289b8 KitManager: Use static API as other singletons do
Change-Id: Ia49c6552a5aae72870687ef9c64f2642fbe24155
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-08-21 16:55:16 +02:00
Oswald Buddenhagen
c2e90c360b Merge remote-tracking branch 'origin/2.8'
Conflicts:
	src/plugins/cpptools/cppcompletion_test.cpp
	src/plugins/cpptools/cpptoolsplugin.h
	src/plugins/projectexplorer/customtoolchain.cpp
	src/plugins/vcsbase/command.cpp

Change-Id: Ie7b3c9e136c0748b41320227c757471259339b48
2013-08-21 14:39:18 +02:00
Fawzi Mohamed
e8a709cd4d qmljs: avoid ecessive updating when cxx types might have changed
perform an update of the qml code model only if a cpp file exporting
qml types has not changed for at least 15 seconds.

Change-Id: I674eed8dd5a68f2d74a8794fd8a237c2d99a3185
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-07-30 10:53:58 +02:00
Eike Ziller
890bb77f82 Update the Qml working copy from the documents, not editors.
Unfortunately the language is still checked by using an editor property.

Change-Id: I3b54624e60b65c48b154c405f66d04b74be5be3e
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-07-17 12:09:05 +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
Christian Kandeler
b403732934 QmlJSTools: Fix language detection bug.
Due to what looks like a copy/paste error, qbs files were detected
as actual QML, resulting in a torrent of parser warnings for projects
containing qbs files.

Change-Id: I8f4886621641d42bb0b2aa066a0bbdc44b9d8221
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-07-02 16:38:16 +02:00
Fawzi Mohamed
eb1d87b30f qmljs: coalesce resets of code model triggered by cpp files update
Use a timer to avoid resetting the model too often.

Change-Id: Iadf3ff3f03cfc91df44168243972b1e5a0ee5077
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
2013-07-02 12:11:58 +02:00
Fawzi Mohamed
5a4cdc11cb qmljs: adding qrc support
Qmljs now keeps a cache of parsed qrc files, and can resolve "qrc:" links.

This breaks the assumption that the name that the qml files has on
the filesystem is the one that qml sees, and that contents of
directories can be found just looking at file whose path starts with the
directory path.

Currently the first file is used when multiple qrc files contain the same
path, but support for strict and weak path resolving is already there.

At the moment only qrc files for projects that call updateQmljsCodeModel
are updated.

ChangeLog: QmljsSupport: Imports using qrc links are resolved.

Task-number: QTCREATORBUG-8953
Change-Id: I695fac2692af2417d49c192c580a1c2e7b4873f4
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2013-06-03 10:32:13 +02:00
Fawzi Mohamed
8762dd2ea9 qmljstools: reset code model after update of exported cpp types
Task-number: QTCREATORBUG-9105
Change-Id: Id0021902985da8e5e7faec23766bb37541d041c0
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
2013-05-29 20:13:14 +02:00
Eike Ziller
bedc477943 Merge remote-tracking branch 'origin/2.7'
Conflicts:
	src/plugins/qmldesigner/components/formeditor/abstractcustomtool.cpp

Change-Id: I4e0a85795e7f4bfcdc21d106517517b527f85104
2013-04-30 11:43:33 +02:00
Fawzi Mohamed
eac15b5e7d qmljs: add explicit -relocatable flag to qmlplugindumper and use it
This will allow changing the default to nonrelocatable.

Change-Id: I80746a3e70f94040a407cc25cec9ad6fac8b6fec
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2013-04-25 17:21:45 +02:00
Eike Ziller
44931c0985 Merge remote-tracking branch 'origin/2.7'
Conflicts:
	src/plugins/pythoneditor/tools/lexical/pythonformattoken.h

Change-Id: I7b921cd975aa755166a80d219ed5e8b69888aeb0
2013-04-18 09:22:19 +02:00
hjk
d3c7220cbc Mime: Use string comparisons instead of regexps for simple globbing
Change-Id: Ia894f3663f43088cdb2d8cb685bcebecaded8146
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-04-17 17:13:35 +02:00
Fawzi Mohamed
a019c4c7a1 qmljs: update qt-creator builtins.qmltypes, and use them for qt<-4.8.5
qmlplugindump of qt <= 4.8.5 does not output exportMetaObjectRevisions
so do not use its output for the builtins.

Task-number: QTCREATORBUG-9076
Change-Id: I82bdd325ef15f800c70c830ead4867787f6b7b0a
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2013-04-16 09:57:32 +02:00
Tobias Hunger
ddafdf55de CppTools: Rename files to comply with coding standard
Rename ModelManagerInterface.(h|cpp) to cppmodelmanagerinterface.(h|cpp).
Rename TypeHierarchyBuilder.(h|cpp) to typehierarchybuilder.(h|cpp).

Change-Id: I035d833fd205d7460819bd0fb7031294359032f9
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-04-10 11:43:22 +02:00