41class QUENTIER_EXPORT INoteEditorBackend
44 virtual ~INoteEditorBackend()
noexcept;
46 virtual void initialize(
47 local_storage::ILocalStoragePtr localStorage,
49 QThread * backgroundJobsThread,
50 enml::IDecryptedTextCachePtr decryptedTextCache) = 0;
52 [[nodiscard]]
virtual QObject * object() = 0;
53 [[nodiscard]]
virtual QWidget * widget() = 0;
55 virtual void setAccount(
const Account & account) = 0;
56 virtual void setUndoStack(QUndoStack * pUndoStack) = 0;
58 virtual void setInitialPageHtml(
const QString & html) = 0;
59 virtual void setNoteNotFoundPageHtml(
const QString & html) = 0;
60 virtual void setNoteDeletedPageHtml(
const QString & html) = 0;
61 virtual void setNoteLoadingPageHtml(
const QString & html) = 0;
63 [[nodiscard]]
virtual bool isNoteLoaded()
const = 0;
64 [[nodiscard]]
virtual qint64 idleTime()
const = 0;
66 virtual void convertToNote() = 0;
67 virtual void saveNoteToLocalStorage() = 0;
68 virtual void setNoteTitle(
const QString & noteTitle) = 0;
70 virtual void setTagIds(
71 const QStringList & tagLocalUids,
const QStringList & tagGuids) = 0;
73 virtual void undo() = 0;
74 virtual void redo() = 0;
75 virtual void cut() = 0;
76 virtual void copy() = 0;
77 virtual void paste() = 0;
78 virtual void pasteUnformatted() = 0;
79 virtual void selectAll() = 0;
81 virtual void formatSelectionAsSourceCode() = 0;
83 virtual void fontMenu() = 0;
84 virtual void textBold() = 0;
85 virtual void textItalic() = 0;
86 virtual void textUnderline() = 0;
87 virtual void textStrikethrough() = 0;
88 virtual void textHighlight() = 0;
90 virtual void alignLeft() = 0;
91 virtual void alignCenter() = 0;
92 virtual void alignRight() = 0;
93 virtual void alignFull() = 0;
95 [[nodiscard]]
virtual QString selectedText()
const = 0;
96 [[nodiscard]]
virtual bool hasSelection()
const = 0;
98 virtual void findNext(
const QString & text,
bool matchCase)
const = 0;
100 virtual void findPrevious(
const QString & text,
bool matchCase)
const = 0;
102 virtual void replace(
103 const QString & textToReplace,
const QString & replacementText,
106 virtual void replaceAll(
107 const QString & textToReplace,
const QString & replacementText,
110 virtual void insertToDoCheckbox() = 0;
112 virtual void insertInAppNoteLink(
113 const QString & userId,
const QString & shardId,
114 const QString & noteGuid,
const QString & linkText) = 0;
116 virtual void setSpellcheck(
bool enabled) = 0;
117 [[nodiscard]]
virtual bool spellCheckEnabled()
const = 0;
119 virtual void setFont(
const QFont & font) = 0;
120 virtual void setFontHeight(
int height) = 0;
121 virtual void setFontColor(
const QColor & color) = 0;
122 virtual void setBackgroundColor(
const QColor & color) = 0;
124 [[nodiscard]]
virtual QPalette defaultPalette()
const = 0;
125 virtual void setDefaultPalette(
const QPalette & pal) = 0;
127 [[nodiscard]]
virtual const QFont * defaultFont()
const = 0;
128 virtual void setDefaultFont(
const QFont & font) = 0;
130 virtual void insertHorizontalLine() = 0;
132 virtual void increaseFontSize() = 0;
133 virtual void decreaseFontSize() = 0;
135 virtual void increaseIndentation() = 0;
136 virtual void decreaseIndentation() = 0;
138 virtual void insertBulletedList() = 0;
139 virtual void insertNumberedList() = 0;
141 virtual void insertTableDialog() = 0;
143 virtual void insertFixedWidthTable(
144 int rows,
int columns,
int widthInPixels) = 0;
146 virtual void insertRelativeWidthTable(
147 int rows,
int columns,
double relativeWidth) = 0;
149 virtual void insertTableRow() = 0;
150 virtual void insertTableColumn() = 0;
151 virtual void removeTableRow() = 0;
152 virtual void removeTableColumn() = 0;
154 virtual void addAttachmentDialog() = 0;
155 virtual void saveAttachmentDialog(
const QByteArray & resourceHash) = 0;
156 virtual void saveAttachmentUnderCursor() = 0;
157 virtual void openAttachment(
const QByteArray & resourceHash) = 0;
158 virtual void openAttachmentUnderCursor() = 0;
159 virtual void copyAttachment(
const QByteArray & resourceHash) = 0;
160 virtual void copyAttachmentUnderCursor() = 0;
161 virtual void removeAttachment(
const QByteArray & resourceHash) = 0;
162 virtual void removeAttachmentUnderCursor() = 0;
163 virtual void renameAttachment(
const QByteArray & resourceHash) = 0;
164 virtual void renameAttachmentUnderCursor() = 0;
172 friend QUENTIER_EXPORT QTextStream & operator<<(
173 QTextStream & strm, Rotation rotation);
175 friend QUENTIER_EXPORT QDebug & operator<<(QDebug & dbg, Rotation rotation);
177 virtual void rotateImageAttachment(
178 const QByteArray & resourceHash, Rotation rotationDirection) = 0;
180 virtual void rotateImageAttachmentUnderCursor(
181 Rotation rotationDirection) = 0;
183 virtual void encryptSelectedText() = 0;
185 virtual void decryptEncryptedTextUnderCursor() = 0;
187 virtual void decryptEncryptedText(
188 QString encryptedText, QString cipher, QString hint,
189 QString enCryptIndex) = 0;
191 virtual void hideDecryptedTextUnderCursor() = 0;
193 virtual void hideDecryptedText(
194 QString encryptedText, QString decryptedText, QString cipher,
195 QString hint, QString enDecryptedIndex) = 0;
197 virtual void editHyperlinkDialog() = 0;
198 virtual void copyHyperlink() = 0;
199 virtual void removeHyperlink() = 0;
201 virtual void onNoteLoadCancelled() = 0;
203 [[nodiscard]]
virtual bool print(
204 QPrinter & printer,
ErrorString & errorDescription) = 0;
206 [[nodiscard]]
virtual bool exportToPdf(
207 const QString & absoluteFilePath,
ErrorString & errorDescription) = 0;
209 [[nodiscard]]
virtual bool exportToEnex(
210 const QStringList & tagNames, QString & enex,
213 [[nodiscard]]
virtual QString currentNoteLocalId()
const = 0;
214 virtual void setCurrentNoteLocalId(
const QString & noteLocalUid) = 0;
216 virtual void clear() = 0;
218 [[nodiscard]]
virtual bool isModified()
const = 0;
219 [[nodiscard]]
virtual bool isEditorPageModified()
const = 0;
221 virtual void setFocusToEditor() = 0;