From kde-commits Tue Jul 03 08:23:19 2012 From: Dominik Haumann Date: Tue, 03 Jul 2012 08:23:19 +0000 To: kde-commits Subject: [kate] part/document: overload constructors, allow operator= and copy constructor Message-Id: <20120703082319.674DDA60A6 () git ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=134130404106798 Git commit ff611519e53c342749a906ea5e5eb1f55288da3f by Dominik Haumann. Committed on 03/07/2012 at 10:20. Pushed by dhaumann into branch 'master'. overload constructors, allow operator=3D and copy constructor M +29 -0 part/document/documentcursor.cpp M +27 -10 part/document/documentcursor.h http://commits.kde.org/kate/ff611519e53c342749a906ea5e5eb1f55288da3f diff --git a/part/document/documentcursor.cpp b/part/document/documentcurso= r.cpp index c97ea3c..7ebe753 100644 --- a/part/document/documentcursor.cpp +++ b/part/document/documentcursor.cpp @@ -31,6 +31,35 @@ DocumentCursor::DocumentCursor(KTextEditor::Document* do= cument) Q_ASSERT(m_document); } = +DocumentCursor::DocumentCursor(KTextEditor::Document* document, const KTex= tEditor::Cursor& position) + : m_document(document) + , m_cursor(position) +{ + // we require a valid document + Q_ASSERT(m_document); +} + +DocumentCursor::DocumentCursor(KTextEditor::Document* document, int line, = int column) + : m_document(document) + , m_cursor(line, column) +{ + // we require a valid document + Q_ASSERT(m_document); +} + +DocumentCursor::DocumentCursor (const DocumentCursor &other) +: m_document(other.m_document) +, m_cursor(other.m_cursor) +{ +} + +DocumentCursor& DocumentCursor::operator=3D (const DocumentCursor &other) +{ + m_document =3D other.m_document; + m_cursor =3D other.m_cursor; + return *this; +} + KTextEditor::Document *DocumentCursor::document () const { return m_document; diff --git a/part/document/documentcursor.h b/part/document/documentcursor.h index 161eeaa..a6f5b16 100644 --- a/part/document/documentcursor.h +++ b/part/document/documentcursor.h @@ -84,8 +84,29 @@ class KATEPART_TESTS_EXPORT DocumentCursor // Constructor // public: + /** + * Constructor that creates a DocumentCursor at the \e invalid position + * (-1, -1). + * \see isValid() + */ DocumentCursor(KTextEditor::Document* document); = + /** + * Constructor that creates a DocumentCursor located at \p position. + */ + DocumentCursor(KTextEditor::Document* document, const KTextEditor::Cur= sor& position); + + /** + * Constructor that creates a DocumentCursor located at \p line and \p= column. + */ + DocumentCursor(KTextEditor::Document* document, int line, int column); + + /** + * Copy constructor. Make sure the Document of the DocumentCursor is + * valid. + */ + DocumentCursor (const DocumentCursor &other); + // // stuff that needs to be implemented by editor part cusors // @@ -132,16 +153,6 @@ class KATEPART_TESTS_EXPORT DocumentCursor */ DocumentCursor (); = - /** - * no copy constructor, don't allow this to be copied. - */ - DocumentCursor (const DocumentCursor &); - - /** - * no assignment operator, no copying around clever cursors. - */ - DocumentCursor &operator=3D (const DocumentCursor &); - // // convenience API // @@ -263,6 +274,12 @@ class KATEPART_TESTS_EXPORT DocumentCursor // operators for: DocumentCursor <-> DocumentCursor // /** + * Assignment operator. Same as the copy constructor. Make sure that + * the assigned Document is a valid document pointer. + */ + DocumentCursor &operator=3D (const DocumentCursor &other); + + /** * Equality operator. * * \note comparison between two invalid cursors is undefined.