Commit Graph

1464 Commits

Author SHA1 Message Date
Eike Ziller
3d1b70c58e Remove the need to register editors in the action handler
The action handler already knows which editors to handle through the
context. It only needs to receive signals for updating the actions from
the current editor. So there is no need to tell the action handler about
every individual editor. This also removes some noise from the text
editor implementations.

Change-Id: I76dc5b1559cc8cf54ff313e6cdba4e789a3108aa
Reviewed-by: David Schulz <david.schulz@digia.com>
2013-12-12 09:59:27 +01:00
Eike Ziller
deb43b4c8a Preferences: Add default implementation for filtering
The default "matches" method now takes the widget and looks for all
child labels, checkboxes, push buttons and group boxes.
Because of that, the former "createWidget" method
can be called multiple times without creating a new widget
(-->widget()), and the "finished" method must ensure that the created
widget gets deleted, since not all widgets that were created are added
to the UI anymore.

Change-Id: Ia231c7c78dd8819146668e6447d36d22e7836904
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-12-10 13:31:48 +01:00
Eike Ziller
baf190ff4a Merge remote-tracking branch 'origin/3.0' 2013-11-27 12:18:12 +01:00
Tobias Hunger
0cb39c6109 QmlJsEditor: Add history completer to path choosers
Change-Id: Ibb5df238b2b8155e971e17aa9aa52d486a7da775
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2013-11-26 11:24:45 +01:00
Fawzi Mohamed
4bd3f2a69e qmljs: improve suggestion ordering
change matchStrength sp that a contigous prefix is always preferred

    Task-number: QTCREATORBUG-10638
    Change-Id: I532d93eddae1ad39157ff65e96fc6651200264ab

Change-Id: I1001f5f4b78bac84b8df8ddc4c394c68359f7821
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
2013-11-25 18:45:26 +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
Fawzi Mohamed
e9c97aa1d1 qmljs: use new qml parser
adds support for singleton and getter/setter properties

Change-Id: Ia6691ac7799a46885db0df44617617dcc3c13189
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
2013-11-06 17:06:15 +01:00
Friedemann Kleint
547d67da7d Remove trailing blanks from messages.
These causing warnings when applying translation patches.

Change-Id: Id260369ac59b4218bf5b8391eb547aec58ffd3f5
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
2013-11-05 14:10:45 +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
Friedemann Kleint
50f522b2f7 Remove most trailing newlines from translated messages.
They are a hassle for translators and reviewers alike.

Change-Id: I07c1b61e8b6719e54fdc1f69cf63f573119a6776
Reviewed-by: hjk <hjk121@nokiamail.com>
Reviewed-by: Robert Loehning <robert.loehning@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-10-22 08:05:09 +02:00
Nikolai Kosjar
b8dbac0b9c Rename "[Mm]ethod(s)" to "[Ff]unction(s)"
Only methods as programming functions are affected. Besides renaming
some actions like "Switch Between Function Declaration/Definition" this
mostly touches (api) code comments.

This is a follow-up patch to commit 872bfb7.

Change-Id: Icb65e8d73b59a022f8885b14df497169543a3b92
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-10 15:56:12 +02:00
Christian Kandeler
f1da03c73b qbs project files: Make use of new qbsSearchPaths property.
Change-Id: I396d970fafea1fd0b4c4d73883796662a1d0064b
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-10-09 18:08:56 +02:00
Eike Ziller
56c3d8ffab Unify wizards with TOC and cancel button.
QTBUG-28385 is biting us over and over (QWizard doesn't have close
button nor cancel button on Mac in Qt 5), and actually there's no reason
for us having a wizard without the features from Utils::Wizard.

Task-number: QTCREATORBUG-10346
Task-number: QTBUG-28385
Change-Id: I80c0d82fe6738496c2ac03c31a1c2757ade8e266
Reviewed-by: Jarek Kobus <jaroslaw.kobus@digia.com>
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
2013-10-09 14:31:14 +02:00
Nikolai Kosjar
f47e7f68d9 TextEditor: De-noise IAssistProcessor derived classes
...by providing a default implementation of immediateProposal() in the
base class.

Change-Id: I4f4f9aa491fbfc9390cc7b7093f1b3c1c8e460a4
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-10-02 10:24:17 +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
Nikolai Kosjar
3a64f8a344 TextEditor: CodeAssist: Allow immediate proposals
Immediate proposals are displayed for asynchronous providers and fragile
proposals.

The idea is to show already available results immediately. The proposal
calculated in the process runner can then replace the immediate
proposal.

Change-Id: I7903e6677c9dfeb4957eb416062fff1fb01ff23f
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-10-01 14:04:06 +02:00
Nikolai Kosjar
f96246209d TextEditor: Move isAsynchronous() up to IAssistProvider
...from CompletionAssistProvider, so other providers can be executed
asynchronously, too.

Change-Id: I6ec06f6d76bc2937bc272450b4e8dffd81ee868e
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-10-01 10:47:57 +02:00
hjk
c4d1d7f278 Core: Clean up some ICore::instance() uses
Change-Id: I888b30094ed75818ee3af58c94ebf8468afa5eb9
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-09-24 09:57:55 +02:00
hjk
49d0789e64 Cleanup IWizard interface and users
Added 639 lines, removed 1391.

Change-Id: I15ec7dd056d4f7ad79c6dd6a4181007ad14f6a43
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-09-24 09:57:32 +02:00
hjk
ca15d0aa95 Apply static pattern to TextEditorSetting
Change-Id: I4e6f573d893c0aa2bb4ca9812fc8db2961dac172
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-09-20 10:28:22 +02:00
hjk
65cc8ae4c2 Core: Clean up FileIconProvider interface
Change-Id: I98c3c8796cb887f5bb3c5184854562ff36727836
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
2013-09-13 14:06:16 +02:00
hjk
8098c085fe Utils: Cleanup of Tooltip interface
Change-Id: If4908e7a5d5ce749ff1e2efc7a026604821737be
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-09-13 11:35:22 +02:00
Tobias Hunger
63b010864b QmlJsEditor: Remove dead code
Change-Id: If925c48623a969e984536b5bb4d65c938fa8df41
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
2013-09-12 13:50:44 +02:00
Erik Verbruggen
7516ef4969 TextEditor: get CompletionAssistProvider from editor.
And not from the global object pool. This way, the editors that have
different highlighters for various language dialects, or editors that
support multiple languages in a single editor, can decide themselves on
what CompletionAssistProvider to provide.

Change-Id: Ieebc4a8e7b3de6470fdb8103035aa3b8b2ba6598
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-09-09 10:15:55 +02:00
Tobias Hunger
f5a7a74191 Find: Turn SearchResultItem struct into class
Change-Id: I0ef59e409310c893b790d3182fcc2a91664e83c9
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-09-04 16:23:02 +02:00
Christian Kandeler
15d1048ef2 Fix some include statements.
In several places, it says '#include "..."' for headers
from different libraries/plugins.

Change-Id: I96cd74fef9b30163adefe3e1720e0847bed9553a
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-09-04 15:51:36 +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
Alexey Semenko
da4c4b80f3 Completions: move continuations upper in proposals list.
Since fuzzy completions are allowed, the lexicographically first proposal
is not necessarily most relevant. The patch modifies sorting of proposals
so that the exact match and continuations go first, and fuzzy completions
follow.

Moreover, being a continuation seem to be a more important characteristic
of a proposal, than being it a function argument or keyword etc. That's why
the check for continuation is placed before the check for order.

Task-number: QTCREATORBUG-8737
Task-number: QTCREATORBUG-9236
Change-Id: I89aae9d2ce6bfa59af7c2f75e6f3af00212008ca
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Alexey Zhondin <lexxmark.dev@gmail.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-09-03 14:44:41 +02:00
hjk
267e441af4 Apply 'static' pattern to VcsManager
Adapt user and surrounding code.

Change-Id: Id2648f82a9cbbd0ad0bfb91f6958b8cee7ea29cc
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-09-03 12:01:24 +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
hjk
d66369e21d Core/Help: Clean up HelpManager interface and users
Change-Id: Ia6edf583f2a002d7c6f4878df670a78614ea087d
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-08-30 11:34:39 +02:00
hjk
eb724f3772 EditorManager: Use interface directly instead of going through ICore
In the majority of cases we were doing that anyways, having two
ways is just needlessly confusing.

Change-Id: Ied362a702c23beee528368d74df1f2aabe5807f8
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-08-30 11:25:51 +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
33a7952745 Implement syntax highlighting in diff editor
All Qt Creator's main highlighters are used in the first place,
for other mimetypes generic highlighter is used as a fallback.

Task-number: QTCREATORBUG-9580

Change-Id: I863b9085520e5bdda142ce88f2074afeacee0531
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Petar Perisin <petar.perisin@gmail.com>
Reviewed-by: Jarek Kobus <jaroslaw.kobus@digia.com>
2013-08-29 08:54:04 +02:00
Oswald Buddenhagen
4855871607 Merge remote-tracking branch 'origin/2.8' 2013-08-27 10:48:08 +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
Fawzi Mohamed
30ff6da868 qmljs: add vector*d, quaternion, and matrix4x4 to code model
Added vector2d vector4d, quaternion and matrix4x4 to basic types
and extended completions related to them in the code model.

Task-number: QTCREATORBUG-9929
Change-Id: Iafdbdf5792f640e8eb29d866a372542ee07159a5
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2013-08-22 15:55:54 +02:00
Tobias Hunger
85b2017a69 TaskHub: Move code to be more conform with other singletons
Make methods static and add a instance() method for Signals/Slots.

Remove ProjectExplorerPlugin::taskHub() method and use the new
ones instead.

Change-Id: Ifae24ff19579fc524cbd61bddc826095c443adfa
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-08-19 11:24:32 +02:00
hjk
d0eb10582b TaskHub: De-noise user code
Change-Id: Ieb559e884fb08c96d739cf7684389ff740a6233e
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-08-02 12:06:32 +02:00
hjk
b772001c82 EditorFactory: Replace some virtual functions with data members
Change-Id: I014cb57460c4e3a36bf7403960908b5ffec867ff
Reviewed-by: David Schulz <david.schulz@digia.com>
2013-08-02 10:21:15 +02:00
Eike Ziller
8c2e3fd2cb Fix usage of EditorManager::editorsForFileName
And move to using the corresponding method in document model.

Change-Id: I80b12ceab8a91c5393b9c0422d660a8896ae09d8
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-07-18 14:51:39 +02:00
Orgad Shaneh
ad9e7ccab6 Fix coding style for else statements
Change-Id: I1309db70e98d678e150388c76ce665e988fdf081
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-07-17 11:11:25 +02:00
Eike Ziller
7808266fca TextEditors: Remove useless duplicated (set)textCodec methods
They are duplicated from TextDocument::(set)codec. The default
implementation of the duplicated methods was just delegating to the text
document. The override of setTextCodec in QmlJsEditor was useless, since
it was only called from EditorConfiguration::configureEditor with the
ITextEditor::TextCodecFromProjectSetting flag anyhow, which made the
overridden method in QmlJsEditor be the same as the fallback.
Aside from that, the duplicated methods wouldn't have belonged to the
*editor* anyhow, but to the document.

Change-Id: Ib43c28210b6bf88726159d751a4905a1d062f80e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-07-17 09:05:41 +02:00
Eike Ziller
624d9e2c4c Move IEditor::isTemporary to IDocument
It's a property of the document implementation, not of the specific
editor instance working on it.

Change-Id: I5c3dd054e21b646e2d94b891916a096d045923f8
Reviewed-by: hjk <hjk121@nokiamail.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-07-12 16:43:54 +02:00
Eike Ziller
cc7c3c9623 Add QTCREATOR_COMPAT_VERSION
Necessary for keeping compatibility within a minor series.
When bumping versions, the compatVersion now needs to be taken into
account too.

Change-Id: I588947f885480889ff2f58481f72db76e3f1a9f1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-07-09 15:14:10 +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
7c8db79817 Switch less often to edit mode
This change
* Removes IMode::type, ModeManager::activateModeType, and
  IEditor::preferredModeType, and adds IEditor::isDesignModePreferred
  instead
* Adapts the mode switching code in EditorManager to handle multiple
  windows, for example switching to edit mode should only happen if
  the editor/view is in the main window. Otherwise the editor window
  should be raised and focused
* Renames EditorManager::NoActivate --> DoNotChangeCurrentEditor
* Reverts the EditorManager::ModeSwitch logic to switch mode or
  make the current editor visible by default, introducing
  DoNotMakeVisible flag instead
* Fixes a few instances where EditorManager::ModeSwitch should have been
  used

One non-trivial problem left: If you open a .ui file and switch to an
external editor window, edit mode is activated, because the current
editor no longer is a .ui file, which means that the design mode gets
deactivated.

Change-Id: I76c5c2391eb4090143b778fb103acff3a5a1ff41
Reviewed-by: David Schulz <david.schulz@digia.com>
2013-06-05 09:43:14 +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