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:
parent
2402aecbb5
commit
426bfa8d03
13 changed files with 400 additions and 94 deletions
|
@ -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();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue