• Skip to content
  • Skip to link menu
  • KDE API Reference
  • kdelibs-4.14.38 API Reference
  • KDE Home
  • Contact Us
 

KTextEditor

  • interfaces
  • 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
27using namespace KTextEditor;
28
29
30DocumentAdaptor::DocumentAdaptor(Document *document):
31 QDBusAbstractAdaptor(document),m_document(document) {
32}
33
34DocumentAdaptor::~DocumentAdaptor() {}
35
36bool DocumentAdaptor::clear() {
37 return m_document->clear();
38}
39
40bool DocumentAdaptor::reload() {
41 return m_document->documentReload();
42}
43
44bool DocumentAdaptor::save() {
45 return m_document->documentSave();
46}
47
48bool DocumentAdaptor::saveAs() {
49 return m_document->documentSaveAs();
50}
51
52bool DocumentAdaptor::setTextLines(const QStringList &text) {
53 return m_document->setText(text);
54}
55
56bool DocumentAdaptor::isEmpty() const {
57 return m_document->isEmpty();
58}
59
60bool DocumentAdaptor::setEncoding(const QString &encoding) {
61 return m_document->setEncoding(encoding);
62}
63
64const QString &DocumentAdaptor::encoding() const {
65 return m_document->encoding();
66}
67
68bool DocumentAdaptor::setText(const QString &text) {
69 return m_document->setText(text);
70}
71
72QString DocumentAdaptor::text() const {
73 return m_document->text();
74}
75
76int DocumentAdaptor::lines() const {
77 return m_document->lines();
78}
79
80int DocumentAdaptor::totalCharacters() const {
81 return m_document->totalCharacters();
82}
83
84int DocumentAdaptor::lineLength(int line) const {
85 return m_document->lineLength(line);
86}
87
88QPoint DocumentAdaptor::endOfLine(int line) const {
89 Cursor c=m_document->endOfLine(line);
90 return QPoint(c.column(),c.line());
91}
92
93bool DocumentAdaptor::insertText(const QPoint& cursor,const QString& text, bool block) {
94 return m_document->insertText(Cursor(cursor.y(),cursor.x()),text,block);
95}
96
97bool DocumentAdaptor::insertTextLines(const QPoint& cursor,const QStringList& text, bool block) {
98 return m_document->insertText(Cursor(cursor.y(),cursor.x()),text,block);
99}
100
101bool DocumentAdaptor::cursorInText(const QPoint& cursor) {
102 return m_document->cursorInText(Cursor(cursor.y(),cursor.x()));
103}
104
105bool DocumentAdaptor::insertLine(int line, const QString& text) {
106 return m_document->insertLine(line,text);
107}
108
109bool DocumentAdaptor::insertLines(int line, const QStringList& text) {
110 return m_document->insertLines(line,text);
111}
112
113bool DocumentAdaptor::removeLine(int line) {
114 return m_document->removeLine(line);
115}
116
117
118class KTextEditor::DocumentPrivate {
119 public:
120 DocumentPrivate()
121 : openingError(false), suppressOpeningErrorDialogs(false),isOrphaned(false) { }
122 bool openingError;
123 bool suppressOpeningErrorDialogs;
124 QString openingErrorMessage;
125 bool isOrphaned;
126};
127
128Document::Document( QObject *parent)
129 : KParts::ReadWritePart(parent)
130 , d(new DocumentPrivate())
131{
132 qRegisterMetaType<KTextEditor::Document*>("KTextEditor::Document*");
133 new DocumentAdaptor(this);
134}
135
136Document::~Document()
137{
138 delete d;
139}
140
141void Document::setSuppressOpeningErrorDialogs(bool suppress) {
142 d->suppressOpeningErrorDialogs=suppress;
143}
144
145bool Document::suppressOpeningErrorDialogs() const {
146 return d->suppressOpeningErrorDialogs;
147}
148
149bool Document::openingError() const {
150 return d->openingError;
151}
152
153QString Document::openingErrorMessage() const {
154 return d->openingErrorMessage;
155}
156
157void Document::setOpeningError(bool errors) {
158 d->openingError=errors;
159}
160
161void Document::setOpeningErrorMessage(const QString& message) {
162 d->openingErrorMessage=message;
163}
164
165bool Document::isOrphaned() const {
166 return d->isOrphaned;
167}
168
169void Document::setOrphaned(bool value) {
170 d->isOrphaned=value;
171}
172
173bool Document::cursorInText(const Cursor& cursor)
174{
175 if ( (cursor.line()<0) || (cursor.line()>=lines())) return false;
176 return (cursor.column()>=0) && (cursor.column()<=lineLength(cursor.line())); // = because new line isn't usually contained in line length
177}
178
179bool KTextEditor::Document::replaceText( const Range & range, const QString & text, bool block )
180{
181 bool success = true;
182 startEditing();
183 success &= removeText(range, block);
184 success &= insertText(range.start(), text, block);
185 endEditing();
186 return success;
187}
188
189bool Document::replaceText( const Range & range, const QStringList & text, bool block )
190{
191 bool success = true;
192 startEditing();
193 success &= removeText(range, block);
194 success &= insertText(range.start(), text, block);
195 endEditing();
196 return success;
197}
198
199bool Document::isEmpty( ) const
200{
201 return documentEnd() == Cursor::start();
202}
203
204// kate: space-indent on; indent-width 2; replace-tabs on;
KTextEditor::Cursor
An object which represents a position in a Document.
Definition: cursor.h:62
KTextEditor::Cursor::column
int column() const
Retrieve the column on which this cursor is situated.
Definition: cursor.cpp:79
KTextEditor::Cursor::line
virtual int line() const
Retrieve the line on which this cursor is situated.
Definition: cursor.cpp:62
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::DocumentAdaptor
For documentation see Document.
Definition: documentadaptor_p.h:29
KTextEditor::DocumentAdaptor::insertLine
bool insertLine(int line, const QString &text)
Definition: document.cpp:105
KTextEditor::DocumentAdaptor::reload
bool reload()
Definition: document.cpp:40
KTextEditor::DocumentAdaptor::lineLength
int lineLength(int line) const
Definition: document.cpp:84
KTextEditor::DocumentAdaptor::setEncoding
bool setEncoding(const QString &encoding)
Definition: document.cpp:60
KTextEditor::DocumentAdaptor::~DocumentAdaptor
virtual ~DocumentAdaptor()
Definition: document.cpp:34
KTextEditor::DocumentAdaptor::text
const QString text
Definition: documentadaptor_p.h:33
KTextEditor::DocumentAdaptor::DocumentAdaptor
DocumentAdaptor(Document *document)
Definition: document.cpp:30
KTextEditor::DocumentAdaptor::insertLines
bool insertLines(int line, const QStringList &text)
Definition: document.cpp:109
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
KTextEditor::DocumentAdaptor::setText
bool setText(const QString &text)
Definition: document.cpp:68
KTextEditor::DocumentAdaptor::insertText
bool insertText(const QPoint &cursor, const QString &text, bool block)
Definition: document.cpp:93
KTextEditor::DocumentAdaptor::removeLine
bool removeLine(int line)
Definition: document.cpp:113
KTextEditor::DocumentAdaptor::clear
bool clear()
Definition: document.cpp:36
KTextEditor::DocumentAdaptor::save
bool save()
Definition: document.cpp:44
KTextEditor::DocumentAdaptor::cursorInText
bool cursorInText(const QPoint &cursor)
Definition: document.cpp:101
KTextEditor::DocumentAdaptor::endOfLine
QPoint endOfLine(int line) const
Definition: document.cpp:88
KTextEditor::DocumentAdaptor::saveAs
bool saveAs()
Definition: document.cpp:48
KTextEditor::DocumentAdaptor::encoding
const QString encoding
Definition: documentadaptor_p.h:32
KTextEditor::DocumentAdaptor::lines
int lines
Definition: documentadaptor_p.h:34
KTextEditor::DocumentAdaptor::totalCharacters
int totalCharacters
Definition: documentadaptor_p.h:36
KTextEditor::DocumentAdaptor::isEmpty
bool isEmpty() const
Definition: document.cpp:56
KTextEditor::Document
A KParts derived class representing a text document.
Definition: document.h:112
KTextEditor::Document::startEditing
virtual bool startEditing()=0
Begin an editing sequence.
KTextEditor::Document::documentSaveAs
virtual bool documentSaveAs()=0
Save the current file to another location.
KTextEditor::Document::removeText
virtual bool removeText(const Range &range, bool block=false)=0
Remove the text specified in range.
KTextEditor::Document::removeLine
virtual bool removeLine(int line)=0
Remove line from the document.
KTextEditor::Document::suppressOpeningErrorDialogs
bool suppressOpeningErrorDialogs() const
Definition: document.cpp:145
KTextEditor::Document::insertLine
virtual bool insertLine(int line, const QString &text)=0
Insert line(s) at the given line number.
KTextEditor::Document::setEncoding
virtual bool setEncoding(const QString &encoding)=0
This signal is emitted whenever the readWrite state of a document changes.
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:149
KTextEditor::Document::setText
virtual bool setText(const QString &text)=0
Set the given text as new document content.
KTextEditor::Document::insertLines
virtual bool insertLines(int line, const QStringList &text)=0
Insert line(s) at the given line number.
KTextEditor::Document::isEmpty
virtual bool isEmpty() const
Returns if the document is empty.
Definition: document.cpp:199
KTextEditor::Document::clear
virtual bool clear()=0
Remove the whole content of the document.
KTextEditor::Document::text
virtual QString text() const =0
Get the document content.
KTextEditor::Document::lines
virtual int lines() const =0
Get the count of lines of the document.
KTextEditor::Document::documentReload
virtual bool documentReload()=0
Reload the current file.
KTextEditor::Document::Document
Document(QObject *parent=0)
Constructor.
Definition: document.cpp:128
KTextEditor::Document::setOpeningError
void setOpeningError(bool errors)
Definition: document.cpp:157
KTextEditor::Document::isOrphaned
bool isOrphaned() const
since in kate part opening an non existend local file, doesn't cause an error anymore,...
Definition: document.cpp:165
KTextEditor::Document::documentSave
virtual bool documentSave()=0
Save the current file.
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:179
KTextEditor::Document::lineLength
virtual int lineLength(int line) const =0
Get the length of a given line in characters.
KTextEditor::Document::cursorInText
virtual bool cursorInText(const Cursor &cursor)
Checks whether the cursor specifies a valid position in a document.
Definition: document.cpp:173
KTextEditor::Document::setSuppressOpeningErrorDialogs
void setSuppressOpeningErrorDialogs(bool suppress)
by default dialogs should be displayed.
Definition: document.cpp:141
KTextEditor::Document::endOfLine
Cursor endOfLine(int line) const
Get the end cursor position of line line.
Definition: document.h:425
KTextEditor::Document::totalCharacters
virtual int totalCharacters() const =0
Get the count of characters in the document.
KTextEditor::Document::encoding
virtual const QString & encoding() const =0
Get the current chosen encoding.
KTextEditor::Document::insertText
virtual bool insertText(const Cursor &position, const QString &text, bool block=false)=0
Insert text at position.
KTextEditor::Document::documentEnd
virtual Cursor documentEnd() const =0
End position of the document.
KTextEditor::Document::~Document
virtual ~Document()
Virtual destructor.
Definition: document.cpp:136
KTextEditor::Document::setOrphaned
void setOrphaned(bool value)
Definition: document.cpp:169
KTextEditor::Document::openingErrorMessage
QString openingErrorMessage() const
Definition: document.cpp:153
KTextEditor::Document::endEditing
virtual bool endEditing()=0
End an editing sequence.
KTextEditor::Document::setOpeningErrorMessage
void setOpeningErrorMessage(const QString &message)
Definition: document.cpp:161
KTextEditor::Range
An object representing a section of text, from one Cursor to another.
Definition: range.h:55
KTextEditor::Range::start
Cursor & start()
Get the start position of this range.
Definition: range.cpp:296
QDBusAbstractAdaptor
QObject
document.h
documentadaptor_p.h
message
void message(KMessage::MessageType messageType, const QString &text, const QString &caption=QString())
KParts
KTextEditor
Namespace for the KDE Text Editor Interfaces.
Definition: annotationinterface.h:31
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon Feb 20 2023 00:00:00 by doxygen 1.9.6 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

kdelibs-4.14.38 API Reference

Skip menu "kdelibs-4.14.38 API Reference"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDEWebKit
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
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