void DevConsole::logToConsole(const QString &logText, const QString &channel, bool raise) { for(int i = 0; i < ui->tabWidget->count(); ++i){ if(ui->tabWidget->tabText(i)==channel){ QPlainTextEdit* tarEdit = getEditByIndex(i); if(!tarEdit) return; tarEdit->appendPlainText(logText); tarEdit->verticalScrollBar()->setValue(tarEdit->verticalScrollBar()->maximum()); if(raise) ui->tabWidget->setCurrentIndex(i); return; } } //create new channel QWidget* w = new QWidget(); QGridLayout *l = new QGridLayout(w); l->setContentsMargins(0, 0, 0, 0); l->setSpacing(0); QPlainTextEdit *e = new QPlainTextEdit(w); l->addWidget(e,0,0,1,1); QPushButton *p = new QPushButton(w); l->addWidget(p,1,0,1,1); connect(p, SIGNAL(clicked()), this, SLOT(clearCurrentLog())); p->setText(tr("Clear %1 Log").arg(channel)); e->setReadOnly(true); e->appendPlainText(logText); e->verticalScrollBar()->setValue(e->verticalScrollBar()->maximum()); ui->tabWidget->addTab(w,channel); }
void DevConsole::on_button_clearAllLogs_clicked() { for(int i = 0; i < ui->tabWidget->count(); ++i) { QPlainTextEdit *e = getEditByIndex(i); e->clear(); } }
void DevConsole::logToConsole(const QString &logText, const QString &channel, bool raise) { QString target_channel = channel; if(channel == "System") //Prevent creation another "system" tab if switched another UI language target_channel = ui->tabWidget->tabText(0); for(int i = 0; i < ui->tabWidget->count(); ++i) { if(ui->tabWidget->tabText(i) == target_channel) { QPlainTextEdit *tarEdit = getEditByIndex(i); if(!tarEdit) return; tarEdit->appendPlainText(logText); tarEdit->verticalScrollBar()->setValue(tarEdit->verticalScrollBar()->maximum()); if(raise) ui->tabWidget->setCurrentIndex(i); return; } } //create new channel QWidget *w = new QWidget(); QGridLayout *l = new QGridLayout(w); l->setContentsMargins(0, 0, 0, 0); l->setSpacing(0); QPlainTextEdit *e = new QPlainTextEdit(w); l->addWidget(e, 0, 0, 1, 1); QPushButton *p = new QPushButton(w); l->addWidget(p, 1, 0, 1, 1); p->setFlat(true); p->connect(p, SIGNAL(clicked()), this, SLOT(clearCurrentLog())); p->setText(tr("Clear %1 Log").arg(target_channel)); e->setReadOnly(true); e->setStyleSheet(ui->plainTextEdit->styleSheet()); e->setFont(ui->plainTextEdit->font()); e->appendPlainText(logText); e->verticalScrollBar()->setValue(e->verticalScrollBar()->maximum()); ui->tabWidget->addTab(w, target_channel); }
QPlainTextEdit *DevConsole::getCurrentEdit() { return getEditByIndex(ui->tabWidget->currentIndex()); }