aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/texteditor/bookmark.cpp
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2023-09-22 18:05:03 +0200
committerhjk <hjk@qt.io>2023-09-28 11:03:02 +0000
commit963ff4381d5a3b2edb27c1d538299e23d15d8fa1 (patch)
tree50eea853ef50889b801e8e8b38a6a7ae9ce87bb7 /src/plugins/texteditor/bookmark.cpp
parent776c8670d7e8124c8b78dc505b85a94d51372e54 (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.cpp101
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 &note)
+{
+ setToolTip(note);
+ setLineAnnotation(note);
+ updateMarker();
+}
+
+void Bookmark::updateNote(const QString &note)
+{
+ setNote(note);
+ m_manager->updateBookmark(this);
+}
+
+QString Bookmark::lineText() const
+{
+ return m_lineText;
+}
+
+QString Bookmark::note() const
+{
+ return toolTip();
+}
+
+} // Bookmarks::Internal