aboutsummaryrefslogtreecommitdiff
path: root/ui.qt/source/Document.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ui.qt/source/Document.cpp')
-rw-r--r--ui.qt/source/Document.cpp152
1 files changed, 0 insertions, 152 deletions
diff --git a/ui.qt/source/Document.cpp b/ui.qt/source/Document.cpp
deleted file mode 100644
index 272ac4c..0000000
--- a/ui.qt/source/Document.cpp
+++ /dev/null
@@ -1,152 +0,0 @@
-#include "Document.hpp"
-
-#include <QBrush>
-#include <QColor>
-#include <QTextCursor>
-#include <QVariant>
-
-DocumentHandler::DocumentHandler(QObject* parent)
- : QObject{ parent }
-{
-}
-
-QQuickTextDocument* DocumentHandler::getDoc() const
-{
- return mDoc;
-}
-
-void DocumentHandler::setDoc(QQuickTextDocument* newDoc)
-{
- if (mDoc != newDoc) {
- auto oldDoc = mDoc;
- mDoc = newDoc;
-
- if (oldDoc) {
- disconnect(oldDoc->textDocument(), nullptr, this, nullptr);
- }
- if (newDoc) {
- connect(newDoc->textDocument(), &QTextDocument::modificationChanged, this, [&]() {
- // TODO add a timer to wait for 1 second before updating?
- mModifyTime = QDateTime::currentDateTime();
- emit modificationChanged();
- });
- }
-
- emit docChanged(oldDoc);
- }
-}
-
-const QDateTime& DocumentHandler::getModifyTime() const
-{
- return mModifyTime;
-}
-
-int DocumentHandler::getCursorPos() const
-{
- return mCursorPos;
-}
-
-void DocumentHandler::setCursorPos(int newCursorPos)
-{
- if (mCursorPos == newCursorPos) {
- return;
- }
- mCursorPos = newCursorPos;
- emit cursorPosChanged();
-}
-
-int DocumentHandler::getSelectionBegin() const
-{
- return mSelectionBegin;
-}
-
-void DocumentHandler::setSelectionBegin(int newSelectionBegin)
-{
- if (mSelectionBegin == newSelectionBegin) {
- return;
- }
- mSelectionBegin = newSelectionBegin;
- emit selectionBeginChanged();
-}
-
-int DocumentHandler::getSelectionEnd() const
-{
- return mSelectionEnd;
-}
-
-void DocumentHandler::setSelectionEnd(int newSelectionEnd)
-{
- if (mSelectionEnd == newSelectionEnd) {
- return;
- }
- mSelectionEnd = newSelectionEnd;
- emit selectionEndChanged();
-}
-
-QFont DocumentHandler::getActiveFont() const
-{
- auto cursor = makeTextCursor();
- if (cursor.isNull()) {
- return mDoc->textDocument()->defaultFont();
- }
- auto format = cursor.charFormat();
- return format.font();
-}
-
-void DocumentHandler::setActiveFont(const QFont& font)
-{
- auto cursor = makeTextCursor();
- if (!cursor.isNull() && cursor.charFormat().font() == font) {
- return;
- }
-
- QTextCharFormat format;
- format.setFont(font);
- mergeFormatOnWordOrSelection(format);
-
- emit activeFontChanged();
-}
-
-QColor DocumentHandler::getActiveTextColor() const
-{
- auto cursor = makeTextCursor();
- if (cursor.isNull()) {
- return QColor(Qt::black);
- }
- QTextCharFormat format = cursor.charFormat();
- return format.foreground().color();
-}
-
-void DocumentHandler::setActiveTextColor(const QColor& color)
-{
- QTextCharFormat format;
- format.setForeground(QBrush(color));
- mergeFormatOnWordOrSelection(format);
- emit activeTextColorChanged();
-}
-
-QTextCursor DocumentHandler::makeTextCursor() const
-{
- auto doc = mDoc->textDocument();
- if (!doc) {
- return QTextCursor();
- }
-
- QTextCursor cursor(doc);
- if (mSelectionBegin != mSelectionEnd) {
- cursor.setPosition(mSelectionBegin);
- cursor.setPosition(mSelectionEnd, QTextCursor::KeepAnchor);
- } else {
- cursor.setPosition(mCursorPos);
- }
- return cursor;
-}
-
-void DocumentHandler::mergeFormatOnWordOrSelection(const QTextCharFormat& format)
-{
- auto cursor = makeTextCursor();
- if (!cursor.hasSelection()) {
- cursor.select(QTextCursor::WordUnderCursor);
- }
- cursor.mergeCharFormat(format);
-}