]> git.lyx.org Git - features.git/commitdiff
move transposeChars
authorJohn Levon <levon@movementarian.org>
Wed, 2 Apr 2003 00:51:46 +0000 (00:51 +0000)
committerJohn Levon <levon@movementarian.org>
Wed, 2 Apr 2003 00:51:46 +0000 (00:51 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@6676 a592a061-630c-0410-9148-cb99ea01b6c8

src/ChangeLog
src/Makefile.am
src/lyxrow_funcs.C
src/lyxtext.h
src/text.C
src/text3.C
src/text_funcs.C [new file with mode: 0644]
src/text_funcs.h [new file with mode: 0644]

index f7fd4809e61686309dd6383aec8831a3dfa6845b..ceb8c4a3cbd60dd112ce56f608acd790018b3e62 100644 (file)
@@ -1,3 +1,13 @@
+2003-04-02  John Levon  <levon@movementarian.org>
+
+       * lyxtext.h:
+       * text.C:
+       * Makefile.am:
+       * text_funcs.h:
+       * text_funcs.C: make transposeChars a free function
+
+       * lyxrow_funcs.C: remove wrong comment
+
 2003-04-01  Lars Gullik Bjønnes  <larsbj@gullik.net>
 
        * lyxtext.h: adjust
index ae921568aae6c13c4238fef9d748a9f0ba73b630..264fcd1741d2bb2786ce94e14c8065e6b6ad045e 100644 (file)
@@ -211,6 +211,8 @@ lyx_SOURCES = \
        text.C \
        text2.C \
        text3.C \
+       text_funcs.C \
+       text_funcs.h \
        toc.C \
        toc.h \
        trans.C \
index 0e857444c8477696b7a4379a33b4af1e16aeb2f8..897377de20ce095207b61804770931ed46ecfb97 100644 (file)
@@ -22,8 +22,6 @@ bool isParEnd(LyXText const & lt, RowList::iterator rit)
 }
 
 
-// It seems that this is only used in LyXText, it
-// perhaps this function should be moved into LyXText. (Lgb)
 pos_type lastPos(LyXText const & lt, RowList::iterator rit)
 {
        if (rit->par()->empty())
index f55b9833bba113d0ab12586a0745cfb295f0d34e..9b5acd10d0d70fb5c891e390441a0be691565776 100644 (file)
@@ -405,8 +405,6 @@ public:
        };
        /// Change the case of the word at cursor position.
        void changeCase(TextCase action);
-       ///
-       void transposeChars();
 
        ///
        void toggleInset();
index 2a7c7cc4453cf5d18bc3e0d63c98652f28db4b29..b0d6183723575b4bfbb230202751e45edea8c48e 100644 (file)
@@ -2411,41 +2411,6 @@ void LyXText::changeCase(LyXText::TextCase action)
 }
 
 
-void LyXText::transposeChars()
-{
-       Paragraph * tmppar = cursor.par();
-
-       setUndo(bv(), Undo::FINISH, tmppar, tmppar->next());
-
-       pos_type tmppos = cursor.pos();
-
-       // First decide if it is possible to transpose at all
-
-       if (tmppos == 0 || tmppos == tmppar->size())
-               return;
-
-       if (isDeletedText(*tmppar, tmppos - 1)
-               || isDeletedText(*tmppar, tmppos))
-               return;
-
-       unsigned char c1 = tmppar->getChar(tmppos);
-       unsigned char c2 = tmppar->getChar(tmppos - 1);
-
-       // We should have an implementation that handles insets
-       // as well, but that will have to come later. (Lgb)
-       if (c1 == Paragraph::META_INSET || c2 == Paragraph::META_INSET)
-               return;
-
-       bool const erased = tmppar->erase(tmppos - 1, tmppos + 1);
-       pos_type const ipos(erased ? tmppos - 1 : tmppos + 1);
-
-       tmppar->insertChar(ipos, c1);
-       tmppar->insertChar(ipos + 1, c2);
-
-       checkParagraph(tmppar, tmppos);
-}
-
-
 void LyXText::Delete()
 {
        // this is a very easy implementation
index 12adb07c32ed33b5f41f825b2e303e390eaa1bf3..ddcfe77eb0f21864d262ae89fb272a4503bc5b03 100644 (file)
@@ -35,6 +35,7 @@
 #include "insets/insetcommand.h"
 #include "insets/insetnewline.h"
 #include "undo_funcs.h"
+#include "text_funcs.h"
 
 #include <ctime>
 #include <clocale>
@@ -1014,7 +1015,7 @@ Inset::RESULT LyXText::dispatch(FuncRequest const & cmd)
 
        case LFUN_TRANSPOSE_CHARS:
                update();
-               transposeChars();
+               transposeChars(*this, cursor);
                if (inset_owner)
                        bv->updateInset(inset_owner);
                update();
diff --git a/src/text_funcs.C b/src/text_funcs.C
new file mode 100644 (file)
index 0000000..74c8dfd
--- /dev/null
@@ -0,0 +1,56 @@
+/**
+ * \file text_funcs.C
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * \author Lars Gullik Bjønnes
+ * \author John Levon
+ *
+ * Full author contact details are available in file CREDITS
+ *
+ * This file contains some utility functions for actually mutating
+ * the text contents of a document 
+ */
+
+#include <config.h>
+
+#include "lyxtext.h"
+#include "paragraph.h"
+#include "lyxcursor.h"
+#include "undo_funcs.h"
+
+using lyx::pos_type;
+
+void transposeChars(LyXText & text, LyXCursor const & cursor)
+{
+       Paragraph * tmppar = cursor.par();
+
+       setUndo(text.bv(), Undo::FINISH, tmppar, tmppar->next());
+
+       pos_type tmppos = cursor.pos();
+
+       // First decide if it is possible to transpose at all
+
+       if (tmppos == 0 || tmppos == tmppar->size())
+               return;
+
+       if (isDeletedText(*tmppar, tmppos - 1)
+               || isDeletedText(*tmppar, tmppos))
+               return;
+
+       unsigned char c1 = tmppar->getChar(tmppos);
+       unsigned char c2 = tmppar->getChar(tmppos - 1);
+
+       // We should have an implementation that handles insets
+       // as well, but that will have to come later. (Lgb)
+       if (c1 == Paragraph::META_INSET || c2 == Paragraph::META_INSET)
+               return;
+
+       bool const erased = tmppar->erase(tmppos - 1, tmppos + 1);
+       pos_type const ipos(erased ? tmppos - 1 : tmppos + 1);
+
+       tmppar->insertChar(ipos, c1);
+       tmppar->insertChar(ipos + 1, c2);
+
+       text.checkParagraph(tmppar, tmppos);
+}
diff --git a/src/text_funcs.h b/src/text_funcs.h
new file mode 100644 (file)
index 0000000..8ae6df7
--- /dev/null
@@ -0,0 +1,25 @@
+/**
+ * \file text_funcs.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * \author Lars Gullik Bjønnes
+ * \author John Levon
+ *
+ * Full author contact details are available in file CREDITS
+ *
+ * This file contains some utility functions for actually mutating
+ * the text contents of a document 
+ */
+
+#ifndef TEXT_FUNCS_H
+#define TEXT_FUNCS_H
+
+#include <config.h>
+
+class LyXText;
+class LyXCursor;
+
+void transposeChars(LyXText & text, LyXCursor const & cursor);
+
+#endif // TEXT_FUNCS_H