Commit Graph

525 Commits

Author SHA1 Message Date
Ali Kianian
795aae8e7c QmlDesigner: Enable transient ScrollBars for StudioStyle
- Transient scroll bar is available for StudioStyle.
- Some changes are applied to slider style, because scrollBar and
sliders have some common usages within the style.

Task-number: QDS-9283
Change-Id: I7a8b7997cf4d20142a0524c4a071b93dfd06321d
Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
2023-04-19 06:48:25 +00:00
David Schulz
7046890bcc Editor: ensure that the outline is the left most toolbar widget
Fixes: QTCREATORBUG-28765
Change-Id: Ifc43ed64ab4906af2d669ff372d8b66d59203048
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-03-31 09:32:04 +00:00
Artem Sokolovskii
8491441257 TextEditor: Speed up updateCurrentLineHighlight
Only update the changed blocks and use sets instead of lists to
store the info and create the diff.

Change-Id: I08d81b326ceebdc6bf2ba322886b7bf5671b2769
Reviewed-by: David Schulz <david.schulz@qt.io>
2023-02-09 14:05:28 +00:00
Eike Ziller
e9b177db7d Merge remote-tracking branch 'origin/9.0'
Conflicts:
	src/libs/utils/filepath.cpp

Change-Id: I04761cf7c99ed67322a592cbd0ae48c1ae9c708a
2023-01-25 14:11:01 +01:00
David Schulz
f15cae2bac TextEditor: fix endless loop on adding cursor for selection
Since the find of QTextDocument is line based, it is not possible to
find selections spanning multiple lines in the editor. Triggering a find
on a search term containing a paragraph separator returnes an invalid
QTextCursor which always result in searching from the beginning of the
document in the add cursor for selection logic. Prevent that by checking
the selected text beforehand and add a safety net in the loop to verify
that we do not start over again on an invalid TextCursor.

Fixes: QTCREATORBUG-28709
Change-Id: I8c1b9d16e707fefbba6dc0a0a9ef21b8c82ebe19
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
2023-01-23 09:58:25 +00:00
hjk
17b20e0622 TextEditor: Tr::tr
Change-Id: I28aa68e25c53c3a4d1c370074d7b3318944dc45a
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2023-01-18 07:02:12 +00:00
David Schulz
baa1e3c2e1 Editor: Allow to hide annotations for a group of text marks
The hiding is not persistent, so on the next Qt Creator start all
annotations are visible again. This is meant to quickly get rid of
annotations if there are to many irrelevant of a specific kind.

Change-Id: I4862e56e0f5624f30aadda26efc9dea672ab1f57
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2023-01-12 10:19:10 +00:00
Kai Köhne
56baf8c058 Remove GPL-3.0+ from license identifiers
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>
2023-01-06 11:15:13 +00:00
David Schulz
e79a0ab49b Editor: increase text cursor visibility on indentation depth mark
Reduce the alpha of the marker if a cursor is at the same position as
the marker.

Fixes: QTCREATORBUG-28645
Change-Id: I01b1825fd3f393dcc75cc58d64a31f22e50e2648
Reviewed-by: André Hartmann <aha_1980@gmx.de>
2023-01-03 10:21:02 +00:00
Eike Ziller
3f4c3a3db4 Merge remote-tracking branch 'origin/9.0'
Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri
	src/plugins/texteditor/texteditor.cpp

Change-Id: I9c8f1331be3f5442f1fd28aeb0a9bc07128629d1
2022-12-20 11:05:01 +01:00
Xavier BESSON
3f554f3837 TextEditors: Implement "Follow Symbol" for HTTP urls in string literals
Task-number: QTCREATORBUG-14967
Change-Id: I30923aa94d761b06edb1f67007fd7e2a67065ef0
Reviewed-by: Xavier BESSON <developer@xavi-b.fr>
Reviewed-by: David Schulz <david.schulz@qt.io>
2022-12-16 12:08:37 +00:00
David Schulz
1eb73e4eb3 Editor: prevent validating line number in unwrapped editor
Checking whether a position is inside the first line is also not for
free. Only check the line number of a cursor position if we expect the
editor to have multiple lines per block or in other words line wrapping is
enabled.

Change-Id: I0e3cb1fbd11c250677f7c11d1a5c780f60085ec2
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
2022-12-16 11:34:02 +00:00
David Schulz
f87fccafc1 TextEditor: prevent shaping text for indent depth painting
QTextLines cursorToX indirectly calls shapeText which is not for free.
We just want to have the x position for the line so there is no need to
shape the complete text to get the position of the first cursor.

Change-Id: I0ae636ed8250385b7ac77c6f37d45922bbf2e9bf
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
2022-12-16 10:31:11 +00:00
Eike Ziller
a3fe24d192 Merge remote-tracking branch 'origin/9.0'
Change-Id: I5298a6529921568ec32c0fe0c009c273263b0f5d
2022-12-14 14:25:38 +01:00
David Schulz
e0b1f694e3 Editor: Fix deleting with numblock delete in multi text cursor
Fixes: QTCREATORBUG-28584
Change-Id: Ib65a933b61536d9a6342e82c51779c2a91983ec8
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-12-14 06:20:05 +00:00
Marcus Tillmanns
e7a2448681 TextEditor: Cache tabSettings
Change-Id: Ib44198b4763eac865ea46831e7a02924bf533475
Reviewed-by: David Schulz <david.schulz@qt.io>
2022-12-13 07:32:21 +00:00
Mikhail Khachayants
81075b813c TextEditor: Fix wrong tooltip when split mode is used
It was possible to get a tooltip with cached text from other editor area

Fixes: QTCREATORBUG-28571
Change-Id: I4250856e6c165eed70ddb4a6c888e16b4a6b045d
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: David Schulz <david.schulz@qt.io>
2022-12-12 19:46:59 +00:00
Eike Ziller
af60fb8241 Merge remote-tracking branch 'origin/9.0'
Conflicts:
	src/plugins/cppeditor/cppelementevaluator.cpp
	src/plugins/vcsbase/vcsbaseclient.cpp

Change-Id: I31e03b063240416280f5ca88c31f432911d5c67e
2022-12-12 11:07:15 +01:00
Jarek Kobus
b0e6943491 TextEditorWidget: Ensure non-null source is passed to insertFromMimeData
Detected by clazy analyzer. The possible context was
TextEditorWidget::dropEvent(). In some branches we ensure
that mime is not null, but later we call insertFromMimeData()
unconditionally.

Change-Id: Iee5138bc19d405050eafc9617d3c2ed123b767c7
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: David Schulz <david.schulz@qt.io>
2022-12-08 13:52:12 +00:00
Eike Ziller
b4fed03c27 Merge remote-tracking branch 'origin/9.0'
Conflicts:
	src/plugins/cppeditor/cppeditorplugin.cpp
	src/plugins/docker/dockerdevice.cpp

Change-Id: I41747ff9490e4ab20340d4d4acb4655100aaa3d2
2022-12-07 10:47:47 +01:00
Jarek Kobus
f3ce23230e TextEditor: Init markWidth variable
Otherwise some overrides of extraAreaWidth() may leave passed
value unmodified and we may end up with uninitialized value.

Change-Id: Ica89019fc2cff93f0bc7d784624730ec9d8c0224
Reviewed-by: David Schulz <david.schulz@qt.io>
2022-11-30 07:22:09 +00:00
Jarek Kobus
2e75492257 TextEditor: Replace qAsConst() with std::as_const()
See 8eb4d52342

Change-Id: Ic96065a4bda4c9658d88bbab2e916e8f2525bcb2
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: David Schulz <david.schulz@qt.io>
2022-11-24 06:01:03 +00:00
David Schulz
0e4b0a26d3 Editor: move ownership of assist interface to processor
This way the base class can manage the lifetime of the interface object
and it doesn't need to be done in each implementation of perform.

Change-Id: Ie1ce742e31b688a337533ee6c57d376146e25ace
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2022-11-17 13:23:55 +00:00
Eike Ziller
ae67799eb3 Merge remote-tracking branch 'origin/9.0'
Change-Id: I2123e09f75199a63af6e8505fb8889e7f9d025d2
2022-11-16 09:40:34 +01:00
David Schulz
f297b3f1b5 Editor: always configured assistant
A code assistant is not usable without a text editor widget and is
always created as part of one, so make the dependency obvious by require
it in the construction of the code assistant. This removes a bunch of
functions and cheks.

Change-Id: I96556430082ff729d99d2ae2516599f9b8cbc704
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-11-16 05:24:06 +00:00
David Schulz
4b126550c1 Editor: completely repaint annotations on changed bounding rects
If the rectangle of an annotation changes we need to completely redraw
the annotation since the content might have shifted and the eliding
character is now at a different position.

Fixes: QTCREATORBUG-28411
Change-Id: I41b0f38a73b287e6a5d5318ba797aac6e2ff71b0
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-11-15 06:50:59 +00:00
Jarek Kobus
1a1d4780b8 TextEditor: Always use the same 'x' char for width
Introduce charWidth() helper method.

Change-Id: I1a643f0ecbcba1fd9659e02d48f76c57496fa8f1
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: David Schulz <david.schulz@qt.io>
2022-11-11 13:26:18 +00:00
Eike Ziller
63c1bc572a Merge remote-tracking branch 'origin/9.0'
Change-Id: Ie24672b00aae6c0afa5931d87e6e1c24fb841161
2022-11-07 12:59:28 +01:00
Marcus Tillmanns
7e0d545e64 Utils: Allow mimetype deep-scan for remote files
Text editors need to know the actual mimetype of a file to be able to
open the correct editor view. Just checking the extension is not
enough. Especially on linux there are many text files without
an extension.

Change-Id: I7e5c935b0619f5d86e97f10bfd7ff9b65da62f4b
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-11-04 09:52:15 +00:00
Tim Jenssen
aa33927651 Merge remote-tracking branch 'origin/9.0'
Conflicts:
	src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp
	src/plugins/qmldesigner/components/stateseditornew/propertychangesmodel.cpp
	src/plugins/qmldesigner/components/stateseditornew/propertymodel.cpp
	src/plugins/qmldesigner/qmldesignerprojectmanager.cpp
	src/plugins/qmldesigner/qmldesignerprojectmanager.h

Change-Id: Ib029a830ee99190bc4ea2ad75d9300bfa86b42d9
2022-10-25 19:02:15 +02:00
David Schulz
0944bfb7f0 Editor: Fix find usage position in context menu
Do not add the find usage action to an editor context menu if it is
already there.

Change-Id: I0a98d81ae0e08be69ca2579af5701b5fbc8ccbda
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2022-10-25 15:05:38 +00:00
Christian Kandeler
13f40f5471 Utils: Add sorted() function
For simpler calling code.

Change-Id: Ia0a16a28770fd172f74d06a626148248bf5d3c0c
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-10-25 14:29:45 +00:00
Jarek Kobus
edd16c7047 UnifiedDiffEditor: Fix visible wrap column
Take m_visibleIndentOffset into account when drawing
right margin.

Fixes: QTCREATORBUG-26601
Change-Id: I50839098953181c667a5fe0e5fac7dfa5bc95327
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: David Schulz <david.schulz@qt.io>
2022-10-24 07:00:40 +00:00
David Schulz
42481ced35 Editor: fix extra area width update
Do not missinterpret the new block count after a document change as the
requested extra area width.

Fixes: QTCREATORBUG-27267
Change-Id: Id724f68d223741bc36e4566e51e5d1d051f6cca3
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2022-10-21 10:55:14 +00:00
Jarek Kobus
243f66f97d UnifiedDiffEditor: Fix indent visualization
Add TextEditor::setVisualIndentOffset() protected helper.

Change-Id: I0755a732d07dec651c090dd6afd87d293453f0e1
Reviewed-by: David Schulz <david.schulz@qt.io>
2022-10-21 07:38:04 +00:00
Eike Ziller
3bdb1a3edf Merge remote-tracking branch 'origin/9.0'
Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri
	src/plugins/qmldesigner/components/edit3d/edit3dwidget.cpp
	src/plugins/vcsbase/vcscommand.cpp

Change-Id: I2d33113bfb2ea7134550cda1de4e2c21e6711778
2022-10-18 16:51:36 +02:00
Eike Ziller
ea5a050c5c Merge remote-tracking branch 'origin/8.0' into 9.0
Conflicts:
	src/plugins/mcusupport/mcusupportsdk.cpp
	src/plugins/qmldesigner/components/edit3d/edit3dwidget.cpp
	src/plugins/qmldesigner/components/materialbrowser/bundleimporter.cpp
	src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp

Change-Id: I9317da0fc1243b9ce6d87f577aa843c51f132ad7
2022-10-18 10:48:46 +02:00
David Schulz
93c15f48dc Editor: ensure cursor is visible after handling backspace
Fixes: QTCREATORBUG-28316
Change-Id: I1e8c9229704c700ad76f6906b1a220948c819c1b
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2022-10-18 06:49:31 +00:00
David Schulz
b2dbc0965c Editor: Fix double click in editor behind content
Fixes: QTCREATORBUG-28083
Change-Id: Ie198c2f1c9911ec85ee555ff1058d2528f9e6b7d
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-10-13 12:11:58 +00:00
David Schulz
bf5a8835ee Editor: improve visual indent depth for empty blocks
Use the indenter based visual indent only for the cpp qt style indenter
since it gives accurate results. In all other casess Look for the next
and previous not empty lines and use the minimum indent depth of those
lines as the visual indent depth for empty lines.

Task-number: QTCREATORBUG-28179
Change-Id: Ic456fba5adfb2a12f20e2bd4fc663010c752b65c
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-10-10 08:36:07 +00:00
Marc Mutz
8eb4d52342 Port from qAsConst() to std::as_const()
We've been requiring C++17 since Qt 6.0, and our qAsConst use finally
starts to bother us (QTBUG-99313), so time to port away from it
now.

Since qAsConst has exactly the same semantics as std::as_const (down
to rvalue treatment, constexpr'ness and noexcept'ness), there's really
nothing more to it than a global search-and-replace.

Task-number: QTBUG-99313
Change-Id: I88edd91395849574436299b8badda21bb93bea39
Reviewed-by: hjk <hjk@qt.io>
2022-10-07 13:47:53 +00:00
David Schulz
8dcb22d5e9 Editor: fix go to line start
Do not try to find the first none space character of a block if we
already handled the home key for a line that does not contain the start
of the block.

Fixes: QTCREATORBUG-28198
Change-Id: Ia2966baeae8f068cd21d716e097782ae3b5a1d86
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-10-07 08:05:52 +00:00
David Schulz
33177686fd TextEditor: do not replace nbsp with normal spaces
This fixes saving documents and copy texts that contain non breaking
spaces.

Task-number: QTCREATORBUG-17875
Change-Id: Ie0b0e68cf7d67e768ff99c9acae1937aafc78ce7
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-10-04 09:52:35 +00:00
David Schulz
08a7dbd046 TextEditor: reorder TextEditorWidgetPrivate member initialization
Change-Id: I369a0856c787873f2272cda92878f413648bad8d
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-09-30 08:13:19 +00:00
David Schulz
01ddb61ab7 Editor: Fix reassigning a document to an editor
Moving all initializations that are not influenced by the document to
the TextEditorWidget(Private) constructor. So we do not reinitialize or
double connect unintendedly.

Change-Id: I42f4e8166c21aec9c8b780033b12eb8dae5f72a6
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-09-30 04:19:17 +00:00
David Schulz
8c996891ae Editor: Fix reapplying tab and font settings
Change-Id: I6b6ee2d669089adf5db3ae8dabb5d2cc0ca628f9
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2022-09-28 13:14:06 +00:00
David Schulz
e7fb5276af Editor: Fix reaplying display settings
After setting the document the display settings that are configured in a
widget might differ from the ones configured in the document. So Check
those values against the desired values from the editor and update if
they differ.

Change-Id: I30c5eddbb09803451fe03769d8e6d189293c5e86
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2022-09-27 10:03:24 +00:00
Jarek Kobus
7b77085652 TextEditorWidget: Prolong the lifetime of old document
The crash happens when calling TextEditorWidget::setTextDocument()
second time for the same editor instance.

Change-Id: I0a2febb50702673e2751a0d41fc0bc80cb6ba4a2
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-09-23 12:17:09 +00:00
David Schulz
45bd886e3e TextEditor: add find usage to context menu
... of the generic text editor if the editor has the FindUsage optional
action mask set. This is mainly used to show this action when a language
server is configured for this editor that supports find usages.

Change-Id: I55c6983cd553c46817332144f78f1207185ac3f6
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-09-23 11:39:14 +00:00
Christian Kandeler
8e118e9d5e TextEditor: Prevent unwanted reflowing of doxygen comments
... in rewrapParagraph().
One could argue that this functionality is only for pure text and should
not be used on code, but since it was apparently contributed with
doxygen in mind, we might as well go out of our way a bit to support it
a little better.
The simple approach here is to treat a doxygen command at the start of a
line as the end of the reflow region.

Fixes: QTCREATORBUG-9739
Change-Id: I5affee9c441bd9e862bdaf38930fcf8e770b6d97
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: David Schulz <david.schulz@qt.io>
2022-09-20 07:44:18 +00:00