diff options
author | kintel <kintel@b57f626f-c46c-0410-a088-ec61d464b74c> | 2010-04-03 03:05:05 (GMT) |
---|---|---|
committer | kintel <kintel@b57f626f-c46c-0410-a088-ec61d464b74c> | 2010-04-03 03:05:05 (GMT) |
commit | 1fb93c298546a28c4653007ff4a74ab703f73e46 (patch) | |
tree | e7ea6e0c4a6ffe3fc49d62c1c67e45ef174cc617 /src/editor.cc | |
parent | 419e8900fcb274f99606fe9cbeb4298e957c3efc (diff) |
Replaced main text editor with a qcodeedit widget
git-svn-id: http://svn.clifford.at/openscad/trunk@500 b57f626f-c46c-0410-a088-ec61d464b74c
Diffstat (limited to 'src/editor.cc')
-rw-r--r-- | src/editor.cc | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/src/editor.cc b/src/editor.cc new file mode 100644 index 0000000..4482558 --- /dev/null +++ b/src/editor.cc @@ -0,0 +1,73 @@ +#include "editor.h" + +#ifndef _QCODE_EDIT_ +void Editor::indentSelection() +{ + QTextCursor cursor = textCursor(); + int p1 = cursor.selectionStart(); + QString txt = cursor.selectedText(); + + txt.replace(QString(QChar(8233)), QString(QChar(8233)) + QString("\t")); + if (txt.endsWith(QString(QChar(8233)) + QString("\t"))) + txt.chop(1); + txt = QString("\t") + txt; + + cursor.insertText(txt); + int p2 = cursor.position(); + cursor.setPosition(p1, QTextCursor::MoveAnchor); + cursor.setPosition(p2, QTextCursor::KeepAnchor); + setTextCursor(cursor); +} + +void Editor::unindentSelection() +{ + QTextCursor cursor = textCursor(); + int p1 = cursor.selectionStart(); + QString txt = cursor.selectedText(); + + txt.replace(QString(QChar(8233)) + QString("\t"), QString(QChar(8233))); + if (txt.startsWith(QString("\t"))) + txt.remove(0, 1); + + cursor.insertText(txt); + int p2 = cursor.position(); + cursor.setPosition(p1, QTextCursor::MoveAnchor); + cursor.setPosition(p2, QTextCursor::KeepAnchor); + setTextCursor(cursor); +} + +void Editor::commentSelection() +{ + QTextCursor cursor = textCursor(); + int p1 = cursor.selectionStart(); + QString txt = cursor.selectedText(); + + txt.replace(QString(QChar(8233)), QString(QChar(8233)) + QString("//")); + if (txt.endsWith(QString(QChar(8233)) + QString("//"))) + txt.chop(2); + txt = QString("//") + txt; + + cursor.insertText(txt); + int p2 = cursor.position(); + cursor.setPosition(p1, QTextCursor::MoveAnchor); + cursor.setPosition(p2, QTextCursor::KeepAnchor); + setTextCursor(cursor); +} + +void Editor::uncommentSelection() +{ + QTextCursor cursor = textCursor(); + int p1 = cursor.selectionStart(); + QString txt = cursor.selectedText(); + + txt.replace(QString(QChar(8233)) + QString("//"), QString(QChar(8233))); + if (txt.startsWith(QString("//"))) + txt.remove(0, 2); + + cursor.insertText(txt); + int p2 = cursor.position(); + cursor.setPosition(p1, QTextCursor::MoveAnchor); + cursor.setPosition(p2, QTextCursor::KeepAnchor); + setTextCursor(cursor); +} +#endif |