[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kate] part/document: overload constructors, allow operator= and copy constructor
From:       Dominik Haumann <dhdev () gmx ! de>
Date:       2012-07-03 8:23:19
Message-ID: 20120703082319.674DDA60A6 () git ! kde ! org
[Download RAW message or body]

Git commit ff611519e53c342749a906ea5e5eb1f55288da3f by Dominik Haumann.
Committed on 03/07/2012 at 10:20.
Pushed by dhaumann into branch 'master'.

overload constructors, allow operator= 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/documentcursor.cpp
index c97ea3c..7ebe753 100644
--- a/part/document/documentcursor.cpp
+++ b/part/document/documentcursor.cpp
@@ -31,6 +31,35 @@ DocumentCursor::DocumentCursor(KTextEditor::Document* document)
   Q_ASSERT(m_document);
 }
 
+DocumentCursor::DocumentCursor(KTextEditor::Document* document, const KTextEditor::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= (const DocumentCursor &other)
+{
+  m_document = other.m_document;
+  m_cursor = 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::Cursor& 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= (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= (const DocumentCursor &other);
+
+    /**
      * Equality operator.
      *
      * \note comparison between two invalid cursors is undefined.
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic