Warning, file /office/marknote/src/documenthandler.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 // SPDX-FileCopyrightText: 2017 The Qt Company Ltd. 0002 // SPDX-License-Identifier: BSD-3-Clause 0003 0004 #ifndef DOCUMENTHANDLER_H 0005 #define DOCUMENTHANDLER_H 0006 0007 #include <QFont> 0008 #include <QObject> 0009 #include <QQuickTextDocument> 0010 #include <QTextCursor> 0011 #include <QUrl> 0012 0013 class QTextDocument; 0014 0015 class DocumentHandler : public QObject 0016 { 0017 Q_OBJECT 0018 0019 Q_PROPERTY(QQuickTextDocument *document READ document WRITE setDocument NOTIFY documentChanged) 0020 Q_PROPERTY(int cursorPosition READ cursorPosition WRITE setCursorPosition NOTIFY cursorPositionChanged) 0021 Q_PROPERTY(int selectionStart READ selectionStart WRITE setSelectionStart NOTIFY selectionStartChanged) 0022 Q_PROPERTY(int selectionEnd READ selectionEnd WRITE setSelectionEnd NOTIFY selectionEndChanged) 0023 0024 Q_PROPERTY(QColor textColor READ textColor WRITE setTextColor NOTIFY textColorChanged) 0025 Q_PROPERTY(QString fontFamily READ fontFamily WRITE setFontFamily NOTIFY fontFamilyChanged) 0026 Q_PROPERTY(Qt::Alignment alignment READ alignment WRITE setAlignment NOTIFY alignmentChanged) 0027 0028 Q_PROPERTY(bool bold READ bold WRITE setBold NOTIFY boldChanged) 0029 Q_PROPERTY(bool italic READ italic WRITE setItalic NOTIFY italicChanged) 0030 Q_PROPERTY(bool underline READ underline WRITE setUnderline NOTIFY underlineChanged) 0031 0032 // Q_PROPERTY(bool list READ list WRITE setList NOTIFY listChanged) 0033 0034 Q_PROPERTY(int fontSize READ fontSize WRITE setFontSize NOTIFY fontSizeChanged) 0035 0036 Q_PROPERTY(QString fileName READ fileName NOTIFY fileUrlChanged) 0037 Q_PROPERTY(QString fileType READ fileType NOTIFY fileUrlChanged) 0038 Q_PROPERTY(QUrl fileUrl READ fileUrl NOTIFY fileUrlChanged) 0039 0040 Q_PROPERTY(bool modified READ modified WRITE setModified NOTIFY modifiedChanged) 0041 0042 public: 0043 explicit DocumentHandler(QObject *parent = nullptr); 0044 0045 QQuickTextDocument *document() const; 0046 void setDocument(QQuickTextDocument *document); 0047 0048 int cursorPosition() const; 0049 void setCursorPosition(int position); 0050 0051 int selectionStart() const; 0052 void setSelectionStart(int position); 0053 0054 int selectionEnd() const; 0055 void setSelectionEnd(int position); 0056 0057 QString fontFamily() const; 0058 void setFontFamily(const QString &family); 0059 0060 QColor textColor() const; 0061 void setTextColor(const QColor &color); 0062 0063 Qt::Alignment alignment() const; 0064 void setAlignment(Qt::Alignment alignment); 0065 0066 bool bold() const; 0067 void setBold(bool bold); 0068 0069 bool italic() const; 0070 void setItalic(bool italic); 0071 0072 bool underline() const; 0073 void setUnderline(bool underline); 0074 0075 // bool list() const; 0076 // void setList(bool list); 0077 0078 int fontSize() const; 0079 void setFontSize(int size); 0080 0081 QString fileName() const; 0082 QString fileType() const; 0083 QUrl fileUrl() const; 0084 0085 bool modified() const; 0086 void setModified(bool m); 0087 0088 public Q_SLOTS: 0089 void load(const QUrl &fileUrl); 0090 void saveAs(const QUrl &fileUrl); 0091 0092 Q_SIGNALS: 0093 void documentChanged(); 0094 void cursorPositionChanged(); 0095 void selectionStartChanged(); 0096 void selectionEndChanged(); 0097 0098 void fontFamilyChanged(); 0099 void textColorChanged(); 0100 void alignmentChanged(); 0101 0102 void boldChanged(); 0103 void italicChanged(); 0104 void underlineChanged(); 0105 0106 // void listChanged(); 0107 0108 void fontSizeChanged(); 0109 0110 void textChanged(); 0111 void fileUrlChanged(); 0112 0113 void loaded(const QString &text, int format); 0114 void error(const QString &message); 0115 0116 void modifiedChanged(); 0117 0118 private: 0119 void reset(); 0120 QTextCursor textCursor() const; 0121 QTextDocument *textDocument() const; 0122 void mergeFormatOnWordOrSelection(const QTextCharFormat &format); 0123 0124 QQuickTextDocument *m_document; 0125 0126 int m_cursorPosition; 0127 int m_selectionStart; 0128 int m_selectionEnd; 0129 0130 QFont m_font; 0131 QUrl m_fileUrl; 0132 }; 0133 0134 #endif // DOCUMENTHANDLER_H