From 17fae4c9e1ab99f43a27cc3154614ddf867c8db9 Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Mon, 11 Jun 2018 15:34:01 +0200 Subject: Proper looking output in python console --- gui/mainwindow.cc | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'gui') diff --git a/gui/mainwindow.cc b/gui/mainwindow.cc index a6e6cbda..52174139 100644 --- a/gui/mainwindow.cc +++ b/gui/mainwindow.cc @@ -13,10 +13,9 @@ MainWindow::MainWindow(Design *_design, QWidget *parent) PyImport_ImportModule("emb"); write = [this](std::string s) { - // ui->plainTextEdit->moveCursor(QTextCursor::End); - // ui->plainTextEdit->insertPlainText(s.c_str()); - // ui->plainTextEdit->moveCursor(QTextCursor::End); - ui->plainTextEdit->appendPlainText(s.c_str()); + ui->plainTextEdit->moveCursor(QTextCursor::End); + ui->plainTextEdit->insertPlainText(s.c_str()); + ui->plainTextEdit->moveCursor(QTextCursor::End); }; emb::set_stdout(write); std::string title = "nextpnr-ice40 - " + design->chip.getChipName(); @@ -57,8 +56,11 @@ int MainWindow::executePython(std::string command) PyErr_Clear(); PyObject *objectsRepresentation = PyObject_Str(v); - const char *errorStr = PyUnicode_AsUTF8(objectsRepresentation); - ui->plainTextEdit->appendPlainText(errorStr); + std::string errorStr = + PyUnicode_AsUTF8(objectsRepresentation) + std::string("\n"); + ui->plainTextEdit->moveCursor(QTextCursor::End); + ui->plainTextEdit->insertPlainText(errorStr.c_str()); + ui->plainTextEdit->moveCursor(QTextCursor::End); Py_DECREF(objectsRepresentation); Py_XDECREF(exception); Py_XDECREF(v); @@ -72,7 +74,10 @@ int MainWindow::executePython(std::string command) void MainWindow::on_lineEdit_returnPressed() { std::string input = ui->lineEdit->text().toStdString(); - ui->plainTextEdit->appendPlainText(std::string(">>> " + input).c_str()); + ui->plainTextEdit->moveCursor(QTextCursor::End); + ui->plainTextEdit->insertPlainText( + std::string(">>> " + input + "\n").c_str()); + ui->plainTextEdit->moveCursor(QTextCursor::End); ui->plainTextEdit->update(); ui->lineEdit->clear(); int error = executePython(input); -- cgit v1.2.3