diff options
| author | Dominik Wenger <domonoky@googlemail.com> | 2009-08-15 17:02:25 +0000 |
|---|---|---|
| committer | Dominik Wenger <domonoky@googlemail.com> | 2009-08-15 17:02:25 +0000 |
| commit | 426bfa8d037e458bd58a4c2dca82cbddae2a2f66 (patch) | |
| tree | ae7250597cec8a9a1dcbd680e044204ca331cc27 /rbutil/rbutilqt/progressloggergui.cpp | |
| parent | 2402aecbb5eeb82c5920f9d837cd287581c11c05 (diff) | |
| download | rockbox-426bfa8d037e458bd58a4c2dca82cbddae2a2f66.zip rockbox-426bfa8d037e458bd58a4c2dca82cbddae2a2f66.tar.gz rockbox-426bfa8d037e458bd58a4c2dca82cbddae2a2f66.tar.bz2 rockbox-426bfa8d037e458bd58a4c2dca82cbddae2a2f66.tar.xz | |
rbutil: add a errorlog function into rbutil and the possibility to save a log if a error happens. (thanks to bluebrother for the trace functionality)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22329 a1c6a512-1295-4272-9138-f99709370657
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 a6405a9..de2be96 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(); +} + + |