diff options
author | hjk <hjk@qt.io> | 2023-09-22 18:05:03 +0200 |
---|---|---|
committer | hjk <hjk@qt.io> | 2023-09-28 11:03:02 +0000 |
commit | 963ff4381d5a3b2edb27c1d538299e23d15d8fa1 (patch) | |
tree | 50eea853ef50889b801e8e8b38a6a7ae9ce87bb7 /src/plugins/texteditor/bookmark.cpp | |
parent | 776c8670d7e8124c8b78dc505b85a94d51372e54 (diff) |
Bookmarks: Merge plugin into TextEditor
Change-Id: I4c9438f3596daff2c18680a731764bf5010e1e25
Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'src/plugins/texteditor/bookmark.cpp')
-rw-r--r-- | src/plugins/texteditor/bookmark.cpp | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/src/plugins/texteditor/bookmark.cpp b/src/plugins/texteditor/bookmark.cpp new file mode 100644 index 00000000000..9d13d5a6b23 --- /dev/null +++ b/src/plugins/texteditor/bookmark.cpp @@ -0,0 +1,101 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "bookmark.h" + +#include "bookmarkmanager.h" +#include "texteditor_global.h" +#include "texteditortr.h" + +#include <utils/utilsicons.h> + +#include <QTextBlock> + +using namespace Utils; + +namespace TextEditor::Internal { + +const char BOOKMARKS_TEXT_MARK_CATEGORY[] = "Bookmarks.TextMarkCategory"; + +Bookmark::Bookmark(int lineNumber, BookmarkManager *manager) : + TextMark(FilePath(), lineNumber, {Tr::tr("Bookmark"), BOOKMARKS_TEXT_MARK_CATEGORY}), + m_manager(manager) +{ + setColor(Theme::Bookmarks_TextMarkColor); + setIcon(Icons::BOOKMARK_TEXTEDITOR.icon()); + setDefaultToolTip(Tr::tr("Bookmark")); + setPriority(TextMark::NormalPriority); +} + +void Bookmark::removedFromEditor() +{ + m_manager->deleteBookmark(this); +} + +bool Bookmark::isDraggable() const +{ + return true; +} + +void Bookmark::dragToLine(int lineNumber) +{ + move(lineNumber); +} + +void Bookmark::updateLineNumber(int line) +{ + if (line != lineNumber()) { + TextMark::updateLineNumber(line); + m_manager->updateBookmark(this); + } +} + +void Bookmark::move(int line) +{ + if (line != lineNumber()) { + TextMark::move(line); + m_manager->updateBookmark(this); + updateMarker(); + } +} + +void Bookmark::updateBlock(const QTextBlock &block) +{ + const QString &lineText = block.text().trimmed(); + if (m_lineText != lineText) { + m_lineText = lineText; + m_manager->updateBookmark(this); + } +} + +void Bookmark::updateFilePath(const FilePath &filePath) +{ + const FilePath oldFilePath = this->filePath(); + TextMark::updateFilePath(filePath); + m_manager->updateBookmarkFileName(this, oldFilePath); +} + +void Bookmark::setNote(const QString ¬e) +{ + setToolTip(note); + setLineAnnotation(note); + updateMarker(); +} + +void Bookmark::updateNote(const QString ¬e) +{ + setNote(note); + m_manager->updateBookmark(this); +} + +QString Bookmark::lineText() const +{ + return m_lineText; +} + +QString Bookmark::note() const +{ + return toolTip(); +} + +} // Bookmarks::Internal |