diff options
Diffstat (limited to 'src/plugins/texteditor')
-rw-r--r-- | src/plugins/texteditor/snippets/snippetscollection.cpp | 12 | ||||
-rw-r--r-- | src/plugins/texteditor/texteditor.cpp | 24 | ||||
-rw-r--r-- | src/plugins/texteditor/texteditor.h | 2 | ||||
-rw-r--r-- | src/plugins/texteditor/texteditoractionhandler.cpp | 4 | ||||
-rw-r--r-- | src/plugins/texteditor/texteditorconstants.h | 2 |
5 files changed, 39 insertions, 5 deletions
diff --git a/src/plugins/texteditor/snippets/snippetscollection.cpp b/src/plugins/texteditor/snippets/snippetscollection.cpp index 5756a01f66..660ac0746c 100644 --- a/src/plugins/texteditor/snippets/snippetscollection.cpp +++ b/src/plugins/texteditor/snippets/snippetscollection.cpp @@ -44,6 +44,13 @@ using namespace TextEditor; using namespace Internal; +/* TRANSLATOR TextEditor::Internal::Snippets + + Snippets are text fragments that can be inserted into an editor via the usual completion + mechanics using a trigger text. The translated text (trigger variant) is used to + disambiguate between snippets with the same trigger. +*/ + namespace { static bool snippetComp(const Snippet &a, const Snippet &b) @@ -359,7 +366,10 @@ QList<Snippet> SnippetsCollection::readXML(const QString &fileName, const QStrin if (isGroupKnown(groupId) && (snippetId.isEmpty() || snippetId == id)) { Snippet snippet(groupId, id); snippet.setTrigger(atts.value(kTrigger).toString()); - snippet.setComplement(atts.value(kComplement).toString()); + snippet.setComplement(QCoreApplication::translate( + "TextEditor::Internal::Snippets", + atts.value(kComplement).toString().toLatin1(), + atts.value(kId).toString().toLatin1())); snippet.setIsRemoved(toBool(atts.value(kRemoved).toString())); snippet.setIsModified(toBool(atts.value(kModified).toString())); diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp index 8aa3dc847f..5b7a0b27ba 100644 --- a/src/plugins/texteditor/texteditor.cpp +++ b/src/plugins/texteditor/texteditor.cpp @@ -435,7 +435,7 @@ struct PaintEventData const QRect eventRect; qreal rightMargin = -1; const QTextDocument *doc; - const TextDocumentLayout *documentLayout; + TextDocumentLayout *documentLayout; const int documentWidth; const QTextCursor textCursor; const QTextBlock textCursorBlock; @@ -502,7 +502,8 @@ public: bool expanded, bool active, bool hovered) const; - bool updateAnnotationBounds(TextBlockUserData *blockUserData, bool annotationsVisible); + bool updateAnnotationBounds(TextBlockUserData *blockUserData, TextDocumentLayout *layout, + bool annotationsVisible); void updateLineAnnotation(const PaintEventData &data, const PaintEventBlockData &blockData, QPainter &painter); void paintRightMarginArea(PaintEventData &data, QPainter &painter) const; @@ -1476,6 +1477,16 @@ void TextEditorWidget::gotoBlockEndWithSelection() } } +void TextEditorWidget::gotoDocumentStart() +{ + moveCursor(QTextCursor::Start); +} + +void TextEditorWidget::gotoDocumentEnd() +{ + moveCursor(QTextCursor::End); +} + void TextEditorWidget::gotoLineStart() { d->handleHomeKey(false); @@ -4008,7 +4019,9 @@ QRectF TextEditorWidgetPrivate::getLastLineLineRect(const QTextBlock &block) return line.naturalTextRect().translated(contentOffset.x(), top).adjusted(0, 0, -1, -1); } -bool TextEditorWidgetPrivate::updateAnnotationBounds(TextBlockUserData *blockUserData, bool annotationsVisible) +bool TextEditorWidgetPrivate::updateAnnotationBounds(TextBlockUserData *blockUserData, + TextDocumentLayout *layout, + bool annotationsVisible) { const bool additionalHeightNeeded = annotationsVisible && m_displaySettings.m_annotationAlignment == AnnotationAlignment::BetweenLines; @@ -4017,6 +4030,7 @@ bool TextEditorWidgetPrivate::updateAnnotationBounds(TextBlockUserData *blockUse return false; blockUserData->setAdditionalAnnotationHeight(additionalHeight); q->viewport()->update(); + layout->emitDocumentSizeChanged(); return true; } @@ -4039,8 +4053,10 @@ void TextEditorWidgetPrivate::updateLineAnnotation(const PaintEventData &data, return !mark->lineAnnotation().isEmpty(); }); - if (updateAnnotationBounds(blockUserData, annotationsVisible) || !annotationsVisible) + if (updateAnnotationBounds(blockUserData, data.documentLayout, annotationsVisible) + || !annotationsVisible) { return; + } const QRectF lineRect = getLastLineLineRect(data.block); if (lineRect.isNull()) diff --git a/src/plugins/texteditor/texteditor.h b/src/plugins/texteditor/texteditor.h index d15db70c7f..c08187ed4d 100644 --- a/src/plugins/texteditor/texteditor.h +++ b/src/plugins/texteditor/texteditor.h @@ -381,6 +381,8 @@ public: void gotoBlockStartWithSelection(); void gotoBlockEndWithSelection(); + void gotoDocumentStart(); + void gotoDocumentEnd(); void gotoLineStart(); void gotoLineStartWithSelection(); void gotoLineEnd(); diff --git a/src/plugins/texteditor/texteditoractionhandler.cpp b/src/plugins/texteditor/texteditoractionhandler.cpp index 6682dcb475..6c39209ffe 100644 --- a/src/plugins/texteditor/texteditoractionhandler.cpp +++ b/src/plugins/texteditor/texteditoractionhandler.cpp @@ -432,6 +432,10 @@ void TextEditorActionHandlerPrivate::createActions() tr("Select Word Under Cursor")); // register GOTO Actions + registerAction(GOTO_DOCUMENT_START, + [] (TextEditorWidget *w) { w->gotoDocumentStart(); }, true, tr("Go to Document Start")); + registerAction(GOTO_DOCUMENT_END, + [] (TextEditorWidget *w) { w->gotoDocumentEnd(); }, true, tr("Go to Document End")); registerAction(GOTO_LINE_START, [] (TextEditorWidget *w) { w->gotoLineStart(); }, true, tr("Go to Line Start")); registerAction(GOTO_LINE_END, diff --git a/src/plugins/texteditor/texteditorconstants.h b/src/plugins/texteditor/texteditorconstants.h index 0fd1c706c9..e7024614e5 100644 --- a/src/plugins/texteditor/texteditorconstants.h +++ b/src/plugins/texteditor/texteditorconstants.h @@ -158,6 +158,8 @@ const char DELETE_START_OF_LINE[] = "TextEditor.DeleteStartOfLine"; const char DELETE_START_OF_WORD_CAMEL_CASE[] = "TextEditor.DeleteStartOfWordCamelCase"; const char SELECT_ENCODING[] = "TextEditor.SelectEncoding"; const char REWRAP_PARAGRAPH[] = "TextEditor.RewrapParagraph"; +const char GOTO_DOCUMENT_START[] = "TextEditor.GotoDocumentStart"; +const char GOTO_DOCUMENT_END[] = "TextEditor.GotoDocumentEnd"; const char GOTO_LINE_START[] = "TextEditor.GotoLineStart"; const char GOTO_LINE_END[] = "TextEditor.GotoLineEnd"; const char GOTO_NEXT_LINE[] = "TextEditor.GotoNextLine"; |