diff options
Diffstat (limited to 'rbutil/rbutilqt/progressloggergui.cpp')
-rw-r--r-- | rbutil/rbutilqt/progressloggergui.cpp | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/rbutil/rbutilqt/progressloggergui.cpp b/rbutil/rbutilqt/progressloggergui.cpp index a6405a9619..de2be96165 100644 --- a/rbutil/rbutilqt/progressloggergui.cpp +++ b/rbutil/rbutilqt/progressloggergui.cpp @@ -19,12 +19,17 @@ #include "progressloggergui.h" +#include "sysinfo.h" +#include "systrace.h" + ProgressLoggerGui::ProgressLoggerGui(QWidget* parent): ProgressloggerInterface(parent) { downloadProgress = new QDialog(parent); downloadProgress->setModal(true); dp.setupUi(downloadProgress); dp.listProgress->setAlternatingRowColors(true); + dp.saveLog->hide(); + connect(dp.saveLog,SIGNAL(clicked()),this,SLOT(saveErrorLog())); setRunning(); } @@ -52,6 +57,7 @@ void ProgressLoggerGui::addItem(const QString &text, int flag) break; case LOGERROR: item->setIcon(QIcon(":/icons/dialog-error.png")); + dp.saveLog->show(); break; } @@ -134,4 +140,51 @@ void ProgressLoggerGui::show() downloadProgress->show(); } +void ProgressLoggerGui::saveErrorLog() +{ + QString filename = QFileDialog::getSaveFileName(downloadProgress, tr("Save system trace log"), + QDir::homePath(), "*.log"); + + QFile file(filename); + file.open(QIODevice::WriteOnly); + + //Logger texts + QString loggerTexts = "\n*********************************************\n" + "*************** Logger *******************\n" + "*********************************************\n"; + file.write(loggerTexts.toUtf8(), loggerTexts.size()); + + + int i=0; + loggerTexts = ""; + while(dp.listProgress->item(i) != NULL) + { + loggerTexts.append(dp.listProgress->item(i)->text()); + loggerTexts.append("\n"); + i++; + } + file.write(loggerTexts.toUtf8(), loggerTexts.size()); + + //systeminfo + QString info = "\n*********************************************\n" + "************ SYSTEMINFO *******************\n" + "*********************************************\n"; + + file.write(info.toUtf8(), info.size()); + info = Sysinfo::getInfo(); + info.replace(QRegExp("(<[^>]+>)+"),"\n"); + file.write(info.toUtf8(), info.size()); + + // trace + QString trace = "\n*********************************************\n" + "*********** TRACE **************************\n" + "*********************************************\n"; + file.write(trace.toUtf8(), trace.size()); + trace = SysTrace::getTrace(); + file.write(trace.toUtf8(), trace.size()); + + file.close(); +} + + |