git-svn-id: svn://db.shs.com.ru/libs@445 a8b55f48-bf90-11e4-a774-851b48703e85

This commit is contained in:
2018-10-15 11:14:01 +00:00
parent 5d72519749
commit 2a4302712f
2 changed files with 35 additions and 8 deletions

View File

@@ -70,24 +70,30 @@ QCodeEdit::QCodeEdit(QWidget * parent): QWidget(parent) {
ui->textLines->viewport()->setCursor(Qt::ArrowCursor);
ui->textLines->setFixedWidth(ui->textLines->fontMetrics().width(" "));
QAction * a = new QAction(this);
QAction * a = new QAction(this); ui->textCode->addAction(a);
a->setShortcut(QKeySequence("Shift+Tab"));
a->setShortcutContext(Qt::WidgetShortcut);
connect(a, SIGNAL(triggered()), this, SLOT(deindent()));
ui->textCode->addAction(a);
a = new QAction(this);
a = new QAction(this); ui->textCode->addAction(a);
a->setShortcut(QKeySequence("Ctrl+D"));
a->setShortcutContext(Qt::WidgetShortcut);
connect(a, SIGNAL(triggered()), this, SLOT(deleteLine()));
a = new QAction(this);
a = new QAction(this); ui->textCode->addAction(a);
a->setShortcut(QKeySequence("Ctrl+Return"));
a->setShortcutContext(Qt::WidgetShortcut);
connect(a, SIGNAL(triggered()), this, SLOT(newLine()));
a = new QAction(this);
a = new QAction(this); ui->textCode->addAction(a);
a->setShortcut(QKeySequence("Ctrl+Up"));
a->setShortcutContext(Qt::WidgetShortcut);
connect(a, SIGNAL(triggered()), this, SLOT(scrollUp()));
a = new QAction(this); ui->textCode->addAction(a);
a->setShortcut(QKeySequence("Ctrl+Down"));
a->setShortcutContext(Qt::WidgetShortcut);
connect(a, SIGNAL(triggered()), this, SLOT(scrollDown()));
a = new QAction(this); ui->textCode->addAction(a);
a->setShortcut(QKeySequence("Ctrl+Shift+Return"));
a->setShortcutContext(Qt::WidgetShortcut);
connect(a, SIGNAL(triggered()), this, SLOT(newLineBefore()));
ui->textCode->addAction(a);
ui->frame->setFocusProxy(ui->textCode);
QTextOption to = ui->textLines->document()->defaultTextOption();
to.setAlignment(Qt::AlignTop | Qt::AlignRight);
@@ -675,6 +681,16 @@ void QCodeEdit::syncScrolls() {
}
void QCodeEdit::scrollUp() {
ui->textCode->verticalScrollBar()->setValue(ui->textCode->verticalScrollBar()->value() - 1);
}
void QCodeEdit::scrollDown() {
ui->textCode->verticalScrollBar()->setValue(ui->textCode->verticalScrollBar()->value() + 1);
}
void QCodeEdit::deleteLine() {
QTextCursor tc = ui->textCode->textCursor();
tc.movePosition(QTextCursor::EndOfLine);
@@ -925,12 +941,21 @@ void QCodeEdit::scrollToTop() {
void QCodeEdit::newLine() {
/// TODO
QTextCursor tc = ui->textCode->textCursor();
tc.movePosition(QTextCursor::EndOfLine);
tc.insertText("\n");
ui->textCode->setTextCursor(tc);
QMetaObject::invokeMethod(this, "autoIndent", Qt::QueuedConnection);
}
void QCodeEdit::newLineBefore() {
/// TODO
QTextCursor tc = ui->textCode->textCursor();
tc.movePosition(QTextCursor::StartOfLine);
tc.insertText("\n");
tc.movePosition(QTextCursor::Up);
ui->textCode->setTextCursor(tc);
QMetaObject::invokeMethod(this, "autoIndent", Qt::QueuedConnection);
}