For performance reason we want to get the qml modules directly from the
file system. When the project storage is finished we can get the modules
from there.
Task-number: QDS-9542
Change-Id: I26d4b028fbf5ebc541fcd8e34d285ded1fb14935
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Because the type is always a BaseTextEditor we can return a
BaseTextEditor type. C++ is allowing to change the overload return type
so long it is compatible.
Change-Id: Ib4c88faaa6fdfb97fd03c51a120de0fa0c2d00cd
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Handling raw pointer can easily lead to mistakes. So it's better to
remove unique pointer. In this case a deleteLater pointer is added.
The pointer has not be tested for null because of:
23.11.1.2.2 unique_ptr destructor [unique.ptr.single.dtor]
2 Effects: If get() == nullptr there are no effects. Otherwise
get_deleter()(get()).
Change-Id: I97eeb86b7316fc93fbed89707644ab7dde7f89f6
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Since we also license under GPL-3.0 WITH Qt-GPL-exception-1.0,
this applies only to a hypothetical newer version of GPL, that doesn't
exist yet. If such a version emerges, we can still decide to relicense...
While at it, replace (deprecated) GPL-3.0 with more explicit GPL-3.0-only
Change was done by running
find . -type f -exec perl -pi -e "s/LicenseRef-Qt-Commercial OR GPL-3.0\+ OR GPL-3.0 WITH Qt-GPL-exception-1.0/LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0/g" {} \;
Change-Id: I5097e6ce8d10233993ee30d7e25120e2659eb10b
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
To improve testability external dependencies are now broken with an
interface. It is a first step to test individual units without injection
of source files.
Task-number: QDS-7571
Change-Id: I4255c8668022f1097947e4ea5788f2a6b605365d
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
We apply not very often the parent to views. So it can lead to dangling
pointer if the parent is used by other objects and does not handle the
null pointer case. It can lead to double deletion if the parent is
deleted before the object when it is on the stack or handled by smart
pointer.
If you really want to use it there is still setParent.
Change-Id: I1fc6b145a50f037a0e9d415fb36e7970ea7296ed
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Replace the current license disclaimer in files by
a SPDX-License-Identifier.
Task-number: QTBUG-67283
Change-Id: I708fd1f9f2b73d60f57cc3568646929117825813
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Auxiliary data so far used naming conventions to declare the kind of the
data. Now an enumeration is used. The auxiliaryData(...) is returning an
optional too so that it is known if a value exists. There is now
auxiliaryDataWithDefault(...) which is returning an invalid
QVariant instead.
The instance cache is now disabled because there is not notification for
information changes. So if we get the real data from the node instances
there will be no information changes because nothing changed. So the
form editor is a strange state of being reset but not all data
arrived. Before this patch there were still changes happen because of
some side effects that auxiliary properties were sent which were never
intended to be sent. If we re-enable the cache we need to send
information changes or every view must expect that the information is
already there.
Task-number: QDS-7338
Change-Id: I0cafd149c53df552c7c8442f1e8ba87f5451dbd1
Reviewed-by: Aleksei German <aleksei.german@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Updating the document only if it actually changed
* Using the text cursor of the widget
* We can rely on the widget to exist
* Simplify how the cursor is restored
Task-number: QDS-6410
Change-Id: Idaa384533f12b9b7ad7078bcdc37c1afaf651662
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* Curve Editor -> Curves
* 3D Editor -> 3D
* Form Editor -> 2D
* Text Editor -> Text
* Transition Editor -> Transitions
Most view titles are now a single word and all superfluous "Editor"
as part of the title have been removed.
"File System" and "Open Documents" stay as they are.
Task-number: QDS-6325
Change-Id: I8fb6477f9e07c324f76a49796f550a8b8799fedd
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Also hide the bottom status bar when it is empty.
Task-number: QDS-6187
Change-Id: I053771243c268ea20df8e127831b789b854021aa
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Courtesy of readability-static-accessed-through-instance
Amends: b2a766a79a
Round #2: This time done with Qt Creator's Analyzer, which
found other occurences than run-clang-tidy.py
Change-Id: I479e280c7abcf2d24baccbb0af69ae4bda05198e
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
If the curser changes this should not trigger an update in
the other direction.
Change-Id: Ie20914f5587525f46f2941de21374f4373cec47f
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
No need for code duplication.
Change-Id: I3d2c795d072b8de5818e1844b8126e526339c0da
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
Since context help is no longer based solely on an ID.
Change-Id: I34bb81b70632df9fb75bdcf28b022418d4aa764b
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
It no longer takes an ID but a HelpItem.
Change-Id: I0aa738549fea4fcfd0151adc2dfd642c63f0f60d
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
Context help would first query the database with potential IDs, and
afterwards the help plugin would look up the links for the resulting ID
again.
Pass the HelpItem (which potentially contains the cached links) directly
to context help.
Change-Id: I73bddcd3cd4eacaea412b98d53c5e5354a31f3d5
Reviewed-by: David Schulz <david.schulz@qt.io>
- a widget is often used as a raw pointer and in most cases
the parent will take care of destructing it
- here the context is also destructing the widget
- so move back to QPointer and keep deleting to the context
Change-Id: Ief5c4faa08d5e76f723b35d33d09fafc502c2d8a
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
When reformating we have to ensure the semantic info is not
outdated. If the semantic info is outdated we loose the latest changes.
We had a similar bug in the QmlJSTextEditor.
Change-Id: I38bb74c7db6d0449b692b3975d3e9eb89b7c3364
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
The non const overloads of first() and last() do detach
if the reference count is higher than 1.
Therefore we use constFirst() and constLast() instead.
Change-Id: I737cfc428f1c21f16185b9b51175e181c0ec7068
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
- detaching the TextEditView already emits the TextEditor change signal
-> so removing the call from QmlDesignerPlugin::deactivateAutoSynchronization()
- in case the user closed explicit the editor we do not want to emit any
signals anymore
Change-Id: Idb5c2cdde583f7d32f2a9ef5628d1b6d3fc7bb3f
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
- when puppet is restarted
- when the view is attached (switching document, switching mode)
Change-Id: I06a4acf78a18b893bca9f7cd3d2bae74dc3459aa
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
The designer used a over simplified lookup,
that did not distinguish between e.g. Controls 1 and Controls 2.
Instead of fixing the lookup we simply use the working lookup from
the QmlJSEditor.
Change-Id: I2d31e633eaadc67e211d44bad307b26993f21fc9
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
We delete the integrated text editor and set the original
text editor as the current one.
Change-Id: I2dd6c7421d4d3078dda8ca9dae8fb04553723240
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
When we update the text we have to block the cursor
selection synchronization.
Change-Id: I79c3589482f2ca884bc4980b295b18b0a8e8ef2e
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
The context of the text editor is not automatically set
on the widget. This is usually handled by the editor manager.
Unfortunately the completion action is handled using the editor
manager. This means the completion assist widget position depends
on the cursor position in the original text editor managed by the
editor manager.
To fix this we have to register our own action that overrides the default
completion action and triggers the completion on the correct text editor
widget.
Change-Id: I4d7524f2d5ad2374af23f886d7fd08505a3c857f
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
All those QObjects are part of the parent child hierarchy
and do not have to be deleted manually.
This slicences two QCoreApplication::postEvent: Unexpected null receiver,
because the graphics scene is now created lazily.
Change-Id: Ibfe4aaed2173f591e90186b570f8c8bb9e708494
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
When saving a .ui.qml file the complete file is reformated.
Without this patch the cursor is moved to the bottom.
The cursor is still moved, but they line is kept.
Since we reformat the complete file this should be fine.
Change-Id: Ia1ef003e2e6ca7497dcad7e0e8044ffb99c80ea3
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
The integrated text editor requires a couple of fixes and features
in the error handling.
The errors are now handled by the model and not the document management
anymore.
The text editor does not get disabled if there is an error. Instead
we show the error in a status bar.
The form editor is blocked if there is a QML an error and we show the
error message inside the form editor.
Change-Id: I4bfb9b33b09e444ec1de31dd531ce83b32cbcf88
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
When an item is selected in the navigator we move the cursor.
Change-Id: Ia6d41e4d7bdf38688cf0cd73f134c349126eb68e
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
* Using smart pointers
* Renaming DummyWidget to TextEditorWidget
* Moving TextEditorWidget to separate file
Change-Id: Idbe0e50f976bf39beac8632d4254d6d9a5afd5b2
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This is the first iteration but the text editor is not connect
to the others view in all expected cases.
Change-Id: I2fa29a23f9ce1d98d3d6cc8eabddb788525e39cd
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>