diff --git a/build_num b/build_num index 5e93b6774..80ae11dd1 100644 --- a/build_num +++ b/build_num @@ -1 +1 @@ -#define BUILD_NUM 2834 +#define BUILD_NUM 2837 diff --git a/doc/ChangeLog b/doc/ChangeLog index e6a20b093..9fe5139b3 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,8 @@ +2010-04-24 Vadim Kurland + + * instDialog.cpp (instDialog::show): fixed #1419: clear progress + log display when instDialog is opened + 2010-04-23 vadim * MangleTableCompiler_ipt.cpp (keepMangleTableRules::processNext): diff --git a/src/gui/instDialog.cpp b/src/gui/instDialog.cpp index be7b5af7d..1aa01c304 100644 --- a/src/gui/instDialog.cpp +++ b/src/gui/instDialog.cpp @@ -125,8 +125,7 @@ instDialog::instDialog(QWidget *p) : QDialog(p) } - currentLog = m_dialog->procLogDisplay; - QTextCursor cursor(currentLog->textCursor()); + QTextCursor cursor(m_dialog->procLogDisplay->textCursor()); normal_format = cursor.charFormat(); error_format = normal_format; error_format.setForeground(QBrush(Qt::red)); @@ -191,6 +190,7 @@ void instDialog::show(ProjectPanel *proj, compile_only = ! install; m_dialog->warning_space->hide(); + m_dialog->procLogDisplay->clear(); firewalls.clear(); clusters.clear(); @@ -409,7 +409,7 @@ void instDialog::showPage(const int page) currentFirewallsBar->reset(); currentFirewallsBar->setMaximum(compile_list_initial_size); - currentLog->clear(); + m_dialog->procLogDisplay->clear(); fillCompileUIList(); qApp->processEvents(); mainLoopCompile(); @@ -423,7 +423,7 @@ void instDialog::showPage(const int page) { currentFirewallsBar->reset(); currentFirewallsBar->setMaximum(install_list_initial_size); - currentLog->clear(); + m_dialog->procLogDisplay->clear(); fillInstallUIList(); qApp->processEvents(); mainLoopInstall(); diff --git a/src/gui/instDialog.h b/src/gui/instDialog.h index 4055273f4..8a639fdb5 100644 --- a/src/gui/instDialog.h +++ b/src/gui/instDialog.h @@ -134,7 +134,6 @@ class instDialog : public QDialog, public FakeWizard bool finished; bool onlySelected; - QTextBrowser *currentLog; QTextCharFormat normal_format; QTextCharFormat error_format; QTextCharFormat warning_format; diff --git a/src/gui/instDialog_ui_ops.cpp b/src/gui/instDialog_ui_ops.cpp index e460e7e88..5fdbd43d7 100644 --- a/src/gui/instDialog_ui_ops.cpp +++ b/src/gui/instDialog_ui_ops.cpp @@ -438,7 +438,7 @@ void instDialog::summary() str.append(""); - QTextCursor cursor = currentLog->textCursor(); + QTextCursor cursor = m_dialog->procLogDisplay->textCursor(); cursor.insertBlock(); cursor.insertText(str.join("\n"), highlight_format); } @@ -620,7 +620,7 @@ void instDialog::hideEvent( QHideEvent *ev) void instDialog::saveLog() { QString dir; - if (currentLog==NULL) return; + //if (m_dialog->procLogDisplay==NULL) return; dir=st->getWDir(); if (dir.isEmpty()) dir=st->getOpenFileDir(); if (dir.isEmpty()) dir="~"; @@ -632,8 +632,7 @@ void instDialog::saveLog() adding text from each paragraph separately. */ QString logText; - logText = currentLog->toPlainText(); - //logText = currentLog->toHtml(); + logText = m_dialog->procLogDisplay->toPlainText(); QString s = QFileDialog::getSaveFileName( this, @@ -672,57 +671,54 @@ void instDialog::addToLog(const QString &line) if (line.isEmpty()) return; - if (currentLog) + QString txt = line.trimmed(); + + QTextCharFormat format = normal_format; + + list::const_iterator it; + for (it=error_re.begin(); it!=error_re.end(); ++it) { - QString txt = line.trimmed(); - - QTextCharFormat format = normal_format; - - list::const_iterator it; - for (it=error_re.begin(); it!=error_re.end(); ++it) + if ((*it).indexIn(txt) != -1) { - if ((*it).indexIn(txt) != -1) - { - format = error_format; - break; - } + format = error_format; + break; } - - for (it=warning_re.begin(); it!=warning_re.end(); ++it) - { - if ((*it).indexIn(txt) != -1) - { - format = warning_format; - break; - } - } - - /* See sourceforge bug https://sourceforge.net/tracker/?func=detail&aid=2847263&group_id=5314&atid=1070394 - * - * QTextEditor::insertHtml() becomes incrementally slow as the - * amount of text already in the QTextEditor - * increases. Compiling ~10 firewalls with few dozen rules - * each slows the output to a crawl on Windows. Keeping each - * line in a separate block makes it much faster. - */ - - txt = line; - while (!txt.isEmpty() && (txt.endsWith("\n") || txt.endsWith("\r"))) - txt.chop(1); - - if (format == error_format || format == warning_format ) - format.setAnchorHref(txt); - - QTextCursor cursor = currentLog->textCursor(); - cursor.insertBlock(); - cursor.insertText(txt, format); - - //m_dialog->procLogDisplayList->addItem(txt); - - currentLog->ensureCursorVisible(); - - qApp->processEvents(); } + + for (it=warning_re.begin(); it!=warning_re.end(); ++it) + { + if ((*it).indexIn(txt) != -1) + { + format = warning_format; + break; + } + } + + /* See sourceforge bug https://sourceforge.net/tracker/?func=detail&aid=2847263&group_id=5314&atid=1070394 + * + * QTextEditor::insertHtml() becomes incrementally slow as the + * amount of text already in the QTextEditor + * increases. Compiling ~10 firewalls with few dozen rules + * each slows the output to a crawl on Windows. Keeping each + * line in a separate block makes it much faster. + */ + + txt = line; + while (!txt.isEmpty() && (txt.endsWith("\n") || txt.endsWith("\r"))) + txt.chop(1); + + if (format == error_format || format == warning_format ) + format.setAnchorHref(txt); + + QTextCursor cursor = m_dialog->procLogDisplay->textCursor(); + cursor.insertBlock(); + cursor.insertText(txt, format); + + //m_dialog->procLogDisplayList->addItem(txt); + + m_dialog->procLogDisplay->ensureCursorVisible(); + + qApp->processEvents(); } void instDialog::interpretLogLine(const QString &line) diff --git a/test/ipt/objects-for-regression-tests.fwb b/test/ipt/objects-for-regression-tests.fwb index a2011cecd..5f1cd92a4 100644 --- a/test/ipt/objects-for-regression-tests.fwb +++ b/test/ipt/objects-for-regression-tests.fwb @@ -29306,7 +29306,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT% - + @@ -29617,7 +29617,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT% - +