• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • applications API Reference
  • KDE Home
  • Contact Us
 

KTextEditor

  • kde-4.14
  • applications
  • kate
  • ktexteditor
document.cpp
Go to the documentation of this file.
1 /* This file is part of the KDE project
2  *
3  * Copyright (C) 2010 Bernhard Beschow <bbeschow@cs.tu-berlin.de>
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Library General Public
7  * License as published by the Free Software Foundation; either
8  * version 2 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Library General Public License for more details.
14  *
15  * You should have received a copy of the GNU Library General Public License
16  * along with this library; see the file COPYING.LIB. If not, write to
17  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18  * Boston, MA 02110-1301, USA.
19  */
20 
21 #include "document.h"
22 #include "document.moc"
23 
24 #include "documentadaptor_p.h"
25 #include "documentadaptor_p.moc"
26 
27 using namespace KTextEditor;
28 
29 
30 DocumentAdaptor::DocumentAdaptor(Document *document):
31  QDBusAbstractAdaptor(document),m_document(document) {
32 }
33 
34 DocumentAdaptor::~DocumentAdaptor() {}
35 
36 bool DocumentAdaptor::clear() {
37  return m_document->clear();
38 }
39 
40 bool DocumentAdaptor::reload() {
41  return m_document->documentReload();
42 }
43 
44 bool DocumentAdaptor::save() {
45  return m_document->documentSave();
46 }
47 
48 bool DocumentAdaptor::saveAs() {
49  return m_document->documentSaveAs();
50 }
51 
52 bool DocumentAdaptor::setTextLines(const QStringList &text) {
53  return m_document->setText(text);
54 }
55 
56 bool DocumentAdaptor::isEmpty() const {
57  return m_document->isEmpty();
58 }
59 
60 bool DocumentAdaptor::setEncoding(const QString &encoding) {
61  return m_document->setEncoding(encoding);
62 }
63 
64 const QString &DocumentAdaptor::encoding() const {
65  return m_document->encoding();
66 }
67 
68 bool DocumentAdaptor::setText(const QString &text) {
69  return m_document->setText(text);
70 }
71 
72 QString DocumentAdaptor::text() const {
73  return m_document->text();
74 }
75 
76 int DocumentAdaptor::lines() const {
77  return m_document->lines();
78 }
79 
80 int DocumentAdaptor::totalCharacters() const {
81  return m_document->totalCharacters();
82 }
83 
84 int DocumentAdaptor::lineLength(int line) const {
85  return m_document->lineLength(line);
86 }
87 
88 QPoint DocumentAdaptor::endOfLine(int line) const {
89  Cursor c=m_document->endOfLine(line);
90  return QPoint(c.column(),c.line());
91 }
92 
93 bool DocumentAdaptor::insertText(const QPoint& cursor,const QString& text, bool block) {
94  return m_document->insertText(Cursor(cursor.y(),cursor.x()),text,block);
95 }
96 
97 bool DocumentAdaptor::insertTextLines(const QPoint& cursor,const QStringList& text, bool block) {
98  return m_document->insertText(Cursor(cursor.y(),cursor.x()),text,block);
99 }
100 
101 bool DocumentAdaptor::cursorInText(const QPoint& cursor) {
102  return m_document->cursorInText(Cursor(cursor.y(),cursor.x()));
103 }
104 
105 bool DocumentAdaptor::insertLine(int line, const QString& text) {
106  return m_document->insertLine(line,text);
107 }
108 
109 bool DocumentAdaptor::insertLines(int line, const QStringList& text) {
110  return m_document->insertLines(line,text);
111 }
112 
113 bool DocumentAdaptor::removeLine(int line) {
114  return m_document->removeLine(line);
115 }
116 
117 
118 class KTextEditor::DocumentPrivate {
119  public:
120  DocumentPrivate()
121  : openingError(false), suppressOpeningErrorDialogs(false) { }
122  bool openingError;
123  bool suppressOpeningErrorDialogs;
124  QString openingErrorMessage;
125 };
126 
127 Document::Document( QObject *parent)
128  : KParts::ReadWritePart(parent)
129  , d(new DocumentPrivate())
130 {
131  qRegisterMetaType<KTextEditor::Document*>("KTextEditor::Document*");
132  new DocumentAdaptor(this);
133 }
134 
135 Document::~Document()
136 {
137  delete d;
138 }
139 
140 void Document::setSuppressOpeningErrorDialogs(bool suppress) {
141  d->suppressOpeningErrorDialogs=suppress;
142 }
143 
144 bool Document::suppressOpeningErrorDialogs() const {
145  return d->suppressOpeningErrorDialogs;
146 }
147 
148 bool Document::openingError() const {
149  return d->openingError;
150 }
151 
152 QString Document::openingErrorMessage() const {
153  return d->openingErrorMessage;
154 }
155 
156 void Document::setOpeningError(bool errors) {
157  d->openingError=errors;
158 }
159 
160 void Document::setOpeningErrorMessage(const QString& message) {
161  d->openingErrorMessage=message;
162 }
163 
164 bool Document::cursorInText(const Cursor& cursor)
165 {
166  if ( (cursor.line()<0) || (cursor.line()>=lines())) return false;
167  return (cursor.column()>=0) && (cursor.column()<=lineLength(cursor.line())); // = because new line isn't usually contained in line length
168 }
169 
170 bool KTextEditor::Document::replaceText( const Range & range, const QString & text, bool block )
171 {
172  bool success = true;
173  startEditing();
174  success &= removeText(range, block);
175  success &= insertText(range.start(), text, block);
176  endEditing();
177  return success;
178 }
179 
180 bool Document::replaceText( const Range & range, const QStringList & text, bool block )
181 {
182  bool success = true;
183  startEditing();
184  success &= removeText(range, block);
185  success &= insertText(range.start(), text, block);
186  endEditing();
187  return success;
188 }
189 
190 bool Document::isEmpty( ) const
191 {
192  return documentEnd() == Cursor::start();
193 }
194 
195 // kate: space-indent on; indent-width 2; replace-tabs on;
KTextEditor::Document::insertText
virtual bool insertText(const Cursor &position, const QString &text, bool block=false)=0
Insert text at position.
KTextEditor::Range::start
Cursor & start()
Get the start position of this range.
Definition: range.cpp:296
KTextEditor::DocumentAdaptor::insertLine
bool insertLine(int line, const QString &text)
Definition: document.cpp:105
KTextEditor::Document::openingError
bool openingError() const
True, eg if the file for opening could not be read This doesn't have to handle the KPart job cancled ...
Definition: document.cpp:148
KTextEditor::DocumentAdaptor::cursorInText
bool cursorInText(const QPoint &cursor)
Definition: document.cpp:101
KTextEditor::Document::suppressOpeningErrorDialogs
bool suppressOpeningErrorDialogs() const
Definition: document.cpp:144
KTextEditor::Document::documentEnd
virtual Cursor documentEnd() const =0
End position of the document.
KTextEditor::Document::setSuppressOpeningErrorDialogs
void setSuppressOpeningErrorDialogs(bool suppress)
by default dialogs should be displayed.
Definition: document.cpp:140
KTextEditor::Document::documentReload
virtual bool documentReload()=0
Reload the current file.
KTextEditor::DocumentAdaptor::removeLine
bool removeLine(int line)
Definition: document.cpp:113
KTextEditor::Document::setOpeningErrorMessage
void setOpeningErrorMessage(const QString &message)
Definition: document.cpp:160
KTextEditor::DocumentAdaptor::encoding
const QString & encoding() const
KTextEditor::Document::clear
virtual bool clear()=0
Remove the whole content of the document.
KTextEditor::DocumentAdaptor::saveAs
bool saveAs()
Definition: document.cpp:48
QPoint
KTextEditor::DocumentAdaptor::DocumentAdaptor
DocumentAdaptor(Document *document)
Definition: document.cpp:30
KTextEditor::Cursor::start
static Cursor start()
Returns a cursor representing the start of any document - i.e., line 0, column 0. ...
Definition: cursor.cpp:57
KTextEditor::Document::setText
virtual bool setText(const QString &text)=0
Set the given text as new document content.
KTextEditor::Cursor
An object which represents a position in a Document.
Definition: cursor.h:55
KTextEditor::DocumentAdaptor::text
QString text() const
KTextEditor::Document::insertLine
virtual bool insertLine(int line, const QString &text)=0
Insert line(s) at the given line number.
KTextEditor::DocumentAdaptor::clear
bool clear()
Definition: document.cpp:36
KTextEditor::DocumentAdaptor::~DocumentAdaptor
virtual ~DocumentAdaptor()
Definition: document.cpp:34
KTextEditor::DocumentAdaptor::insertLines
bool insertLines(int line, const QStringList &text)
Definition: document.cpp:109
KTextEditor::Document::insertLines
virtual bool insertLines(int line, const QStringList &text)=0
Insert line(s) at the given line number.
QPoint::x
int x() const
QPoint::y
int y() const
QDBusAbstractAdaptor
KTextEditor::Document::startEditing
virtual bool startEditing()=0
Begin an editing sequence.
KTextEditor::DocumentAdaptor::lines
int lines() const
KTextEditor::Document::removeText
virtual bool removeText(const Range &range, bool block=false)=0
Remove the text specified in range.
KTextEditor::DocumentAdaptor::insertText
bool insertText(const QPoint &cursor, const QString &text, bool block)
Definition: document.cpp:93
KTextEditor::Document
A KParts derived class representing a text document.
Definition: document.h:111
QObject
KTextEditor::Document::removeLine
virtual bool removeLine(int line)=0
Remove line from the document.
KTextEditor::Document::isEmpty
virtual bool isEmpty() const
Returns if the document is empty.
Definition: document.cpp:190
KTextEditor::DocumentAdaptor::insertTextLines
bool insertTextLines(const QPoint &cursor, const QStringList &text, bool block)
Definition: document.cpp:97
KTextEditor::DocumentAdaptor::setTextLines
bool setTextLines(const QStringList &text)
Definition: document.cpp:52
document.h
QString
KTextEditor::Document::documentSave
virtual bool documentSave()=0
Save the current file.
QStringList
KTextEditor::Document::cursorInText
virtual bool cursorInText(const Cursor &cursor)
Checks whether the cursor specifies a valid position in a document.
Definition: document.cpp:164
KTextEditor::Range
An object representing a section of text, from one Cursor to another.
Definition: range.h:54
KTextEditor::Document::text
virtual QString text() const =0
Get the document content.
KTextEditor::DocumentAdaptor::setEncoding
bool setEncoding(const QString &encoding)
Definition: document.cpp:60
KTextEditor::DocumentAdaptor::totalCharacters
int totalCharacters() const
KTextEditor::Document::~Document
virtual ~Document()
Virtual destructor.
Definition: document.cpp:135
KTextEditor::Document::setEncoding
virtual bool setEncoding(const QString &encoding)=0
This signal is emitted whenever the readWrite state of a document changes.
documentadaptor_p.h
KTextEditor::Document::totalCharacters
virtual int totalCharacters() const =0
Get the count of characters in the document.
KTextEditor::Cursor::line
virtual int line() const
Retrieve the line on which this cursor is situated.
Definition: cursor.cpp:62
KTextEditor::DocumentAdaptor::reload
bool reload()
Definition: document.cpp:40
KTextEditor::DocumentAdaptor::save
bool save()
Definition: document.cpp:44
KTextEditor::Document::endEditing
virtual bool endEditing()=0
End an editing sequence.
KTextEditor::Document::lineLength
virtual int lineLength(int line) const =0
Get the length of a given line in characters.
KTextEditor::DocumentAdaptor::setText
bool setText(const QString &text)
Definition: document.cpp:68
KTextEditor::DocumentAdaptor::isEmpty
bool isEmpty() const
Definition: document.cpp:56
KTextEditor::Document::setOpeningError
void setOpeningError(bool errors)
Definition: document.cpp:156
KTextEditor::Document::encoding
virtual const QString & encoding() const =0
Get the current chosen encoding.
KTextEditor::DocumentAdaptor::lineLength
int lineLength(int line) const
Definition: document.cpp:84
KTextEditor::DocumentAdaptor
For documentation see Document.
Definition: documentadaptor_p.h:29
KTextEditor::Document::openingErrorMessage
QString openingErrorMessage() const
Definition: document.cpp:152
KTextEditor::Cursor::column
int column() const
Retrieve the column on which this cursor is situated.
Definition: cursor.cpp:79
KTextEditor::Document::replaceText
virtual bool replaceText(const Range &range, const QString &text, bool block=false)
Replace text from range with specified text.
Definition: document.cpp:170
KTextEditor::Document::Document
Document(QObject *parent=0)
Constructor.
Definition: document.cpp:127
KTextEditor::Document::documentSaveAs
virtual bool documentSaveAs()=0
Save the current file to another location.
KTextEditor::Document::lines
virtual int lines() const =0
Get the count of lines of the document.
KTextEditor::DocumentAdaptor::endOfLine
QPoint endOfLine(int line) const
Definition: document.cpp:88
KTextEditor::Document::endOfLine
Cursor endOfLine(int line) const
Get the end cursor position of line line.
Definition: document.h:484
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Sat May 9 2020 03:56:48 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

KTextEditor

Skip menu "KTextEditor"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Modules
  • Related Pages

applications API Reference

Skip menu "applications API Reference"
  •   kate
  •       kate
  •   KTextEditor
  •   Kate
  • Konsole

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal