File indexing completed on 2024-05-19 05:51:40
0001 /* This file is part of the KDE libraries 0002 SPDX-FileCopyrightText: 2001 Christoph Cullmann <cullmann@kde.org> 0003 SPDX-FileCopyrightText: 2005 Dominik Haumann (dhaumann@kde.org) (documentation) 0004 0005 SPDX-License-Identifier: LGPL-2.0-or-later 0006 */ 0007 0008 #pragma once 0009 0010 #include <KTextEditor/Document> 0011 #include <QPixmap> 0012 #include <qicon.h> 0013 0014 class DummyDocument : public KTextEditor::Document 0015 { 0016 Q_OBJECT 0017 0018 public: 0019 explicit DummyDocument(const QString &url = QString()) 0020 : KTextEditor::Document(nullptr, KPluginMetaData(), nullptr) 0021 , m_name(QStringLiteral("foo")) 0022 , m_encoding() 0023 , m_views() 0024 { 0025 setUrl(url); 0026 m_name = url.section(QLatin1Char('/'), -1); // some nice default to mimic the KateDocument 0027 } 0028 explicit DummyDocument(const char *url) 0029 : DummyDocument(QString::fromLatin1(url)) 0030 { 0031 } 0032 0033 ~DummyDocument() override 0034 { 0035 } 0036 KTextEditor::View *createView(QWidget *, KTextEditor::MainWindow * = nullptr) override 0037 { 0038 return nullptr; 0039 } 0040 virtual KTextEditor::View *activeView() const 0041 { 0042 return nullptr; 0043 } 0044 QList<KTextEditor::View *> views() const override 0045 { 0046 return m_views; 0047 } 0048 0049 QString documentName() const override 0050 { 0051 return m_name; 0052 } 0053 0054 QString mimeType() override 0055 { 0056 return QString(); 0057 } 0058 QByteArray checksum() const override 0059 { 0060 return QByteArray(); 0061 } 0062 bool setEncoding(const QString &) override 0063 { 0064 return false; 0065 } 0066 QString encoding() const override 0067 { 0068 return m_encoding; 0069 } 0070 0071 bool documentReload() override 0072 { 0073 return true; 0074 } 0075 bool documentSave() override 0076 { 0077 return true; 0078 } 0079 bool documentSaveAs() override 0080 { 0081 return true; 0082 } 0083 0084 bool isEditingTransactionRunning() const override 0085 { 0086 return false; 0087 } 0088 QString text() const override 0089 { 0090 return QString(); 0091 } 0092 QString text(KTextEditor::Range, bool = false) const override 0093 { 0094 return QString(); 0095 } 0096 QChar characterAt(KTextEditor::Cursor) const override 0097 { 0098 return QChar(); 0099 } 0100 QString wordAt(KTextEditor::Cursor) const override 0101 { 0102 return QString(); 0103 } 0104 KTextEditor::Range wordRangeAt(KTextEditor::Cursor) const override 0105 { 0106 return KTextEditor::Range(); 0107 } 0108 bool isValidTextPosition(KTextEditor::Cursor) const override 0109 { 0110 return true; 0111 } 0112 QStringList textLines(KTextEditor::Range, bool = false) const override 0113 { 0114 return QStringList(); 0115 } 0116 QString line(int) const override 0117 { 0118 return QString(); 0119 } 0120 int lines() const override 0121 { 0122 return 0; 0123 } 0124 KTextEditor::Cursor documentEnd() const override 0125 { 0126 return KTextEditor::Cursor(); 0127 } 0128 qsizetype totalCharacters() const override 0129 { 0130 return 0; 0131 } 0132 int lineLength(int) const override 0133 { 0134 return 0; 0135 } 0136 0137 bool setText(const QString &) override 0138 { 0139 return false; 0140 } 0141 bool setText(const QStringList &) override 0142 { 0143 return false; 0144 } 0145 bool clear() override 0146 { 0147 return true; 0148 } 0149 bool insertText(KTextEditor::Cursor, const QString &, bool = false) override 0150 { 0151 return false; 0152 } 0153 bool insertText(KTextEditor::Cursor, const QStringList &, bool = false) override 0154 { 0155 return false; 0156 } 0157 bool removeText(KTextEditor::Range, bool = false) override 0158 { 0159 return false; 0160 } 0161 bool insertLine(int, const QString &) override 0162 { 0163 return false; 0164 } 0165 bool insertLines(int, const QStringList &) override 0166 { 0167 return false; 0168 } 0169 bool removeLine(int) override 0170 { 0171 return false; 0172 } 0173 KSyntaxHighlighting::Theme::TextStyle defaultStyleAt(KTextEditor::Cursor) const override 0174 { 0175 return KSyntaxHighlighting::Theme::TextStyle::Normal; 0176 } 0177 QString mode() const override 0178 { 0179 return QString(); 0180 } 0181 QString highlightingMode() const override 0182 { 0183 return QString(); 0184 } 0185 QStringList modes() const override 0186 { 0187 return QStringList(); 0188 } 0189 QStringList highlightingModes() const override 0190 { 0191 return QStringList(); 0192 } 0193 bool setMode(const QString &) override 0194 { 0195 return false; 0196 } 0197 bool setHighlightingMode(const QString &) override 0198 { 0199 return false; 0200 } 0201 QString highlightingModeSection(int) const override 0202 { 0203 return QString(); 0204 } 0205 QString modeSection(int) const override 0206 { 0207 return QString(); 0208 } 0209 bool print() override 0210 { 0211 return false; 0212 } 0213 void printPreview() override 0214 { 0215 } 0216 QStringList embeddedHighlightingModes() const override 0217 { 0218 return QStringList(); 0219 } 0220 QString highlightingModeAt(KTextEditor::Cursor) override 0221 { 0222 return QString(); 0223 } 0224 bool isLineModified(int) const override 0225 { 0226 return false; 0227 } 0228 bool isLineSaved(int) const override 0229 { 0230 return false; 0231 } 0232 bool isLineTouched(int) const override 0233 { 0234 return false; 0235 } 0236 0237 // KParts::ReadWritePart 0238 bool saveFile() override 0239 { 0240 return false; 0241 } 0242 0243 KTextEditor::MovingCursor *newMovingCursor(KTextEditor::Cursor, KTextEditor::MovingCursor::InsertBehavior) override 0244 { 0245 return nullptr; 0246 } 0247 KTextEditor::MovingRange *newMovingRange(KTextEditor::Range, KTextEditor::MovingRange::InsertBehaviors, KTextEditor::MovingRange::EmptyBehavior) override 0248 { 0249 return nullptr; 0250 } 0251 qint64 revision() const override 0252 { 0253 return 0; 0254 }; 0255 qint64 lastSavedRevision() const override 0256 { 0257 return 0; 0258 }; 0259 void lockRevision(qint64) override 0260 { 0261 } 0262 void unlockRevision(qint64) override 0263 { 0264 } 0265 void transformCursor(KTextEditor::Cursor &, KTextEditor::MovingCursor::InsertBehavior, qint64, qint64 = -1) override 0266 { 0267 } 0268 void transformCursor(int &, int &, KTextEditor::MovingCursor::InsertBehavior, qint64, qint64 = -1) override 0269 { 0270 } 0271 void transformRange(KTextEditor::Range &, KTextEditor::MovingRange::InsertBehaviors, KTextEditor::MovingRange::EmptyBehavior, qint64, qint64 = -1) override 0272 { 0273 } 0274 QStringList configKeys() const override 0275 { 0276 return {}; 0277 } 0278 QVariant configValue(const QString &) override 0279 { 0280 return {}; 0281 } 0282 void setConfigValue(const QString &, const QVariant &) override 0283 { 0284 } 0285 void setModifiedOnDisk(ModifiedOnDiskReason) override 0286 { 0287 } 0288 void setModifiedOnDiskWarning(bool) override 0289 { 0290 } 0291 uint mark(int) override 0292 { 0293 return 0; 0294 } 0295 void setMark(int, uint) override 0296 { 0297 } 0298 void clearMark(int) override 0299 { 0300 } 0301 void addMark(int, uint) override 0302 { 0303 } 0304 void removeMark(int, uint) override 0305 { 0306 } 0307 const QHash<int, KTextEditor::Mark *> &marks() override 0308 { 0309 static const QHash<int, KTextEditor::Mark *> s; 0310 return s; 0311 } 0312 void clearMarks() override 0313 { 0314 } 0315 void setMarkDescription(MarkTypes, const QString &) override 0316 { 0317 } 0318 QString markDescription(MarkTypes) const override 0319 { 0320 return {}; 0321 } 0322 void setEditableMarks(uint) override 0323 { 0324 } 0325 uint editableMarks() const override 0326 { 0327 return 0; 0328 } 0329 void setMarkIcon(MarkTypes, const QIcon &) override 0330 { 0331 } 0332 QIcon markIcon(MarkTypes) const override 0333 { 0334 return {}; 0335 } 0336 void setAnnotationModel(KTextEditor::AnnotationModel *) override 0337 { 0338 } 0339 KTextEditor::AnnotationModel *annotationModel() const override 0340 { 0341 return nullptr; 0342 } 0343 0344 public: 0345 void setUrl(const QString &url) 0346 { 0347 KParts::ReadOnlyPart::setUrl(QUrl(url)); 0348 } 0349 void setName(const QString &name) 0350 { 0351 m_name = name; 0352 } 0353 0354 void readSessionConfig(const KConfigGroup &, const QSet<QString> & = QSet<QString>()) override 0355 { 0356 } 0357 void writeSessionConfig(KConfigGroup &, const QSet<QString> & = QSet<QString>()) override 0358 { 0359 } 0360 0361 bool postMessage(KTextEditor::Message *) override 0362 { 0363 return false; 0364 } 0365 0366 bool isDataRecoveryAvailable() const override 0367 { 0368 return false; 0369 } 0370 void recoverData() override 0371 { 0372 } 0373 void discardDataRecovery() override 0374 { 0375 } 0376 0377 virtual qsizetype cursorToOffset(KTextEditor::Cursor) const override 0378 { 0379 return 0; 0380 } 0381 virtual KTextEditor::Cursor offsetToCursor(qsizetype) const override 0382 { 0383 return {}; 0384 } 0385 0386 private: 0387 QString m_name, m_encoding; 0388 QList<KTextEditor::View *> m_views; 0389 };