1
0
Fork 0
forked from len0rd/rockbox

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
This commit is contained in:
Dominik Wenger 2009-08-15 17:02:25 +00:00
parent 2402aecbb5
commit 426bfa8d03
13 changed files with 400 additions and 94 deletions

View file

@ -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();
}