summaryrefslogtreecommitdiff
path: root/rbutil/rbutilqt/progressloggergui.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'rbutil/rbutilqt/progressloggergui.cpp')
-rw-r--r--rbutil/rbutilqt/progressloggergui.cpp53
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 @@
19 19
20#include "progressloggergui.h" 20#include "progressloggergui.h"
21 21
22#include "sysinfo.h"
23#include "systrace.h"
24
22ProgressLoggerGui::ProgressLoggerGui(QWidget* parent): ProgressloggerInterface(parent) 25ProgressLoggerGui::ProgressLoggerGui(QWidget* parent): ProgressloggerInterface(parent)
23{ 26{
24 downloadProgress = new QDialog(parent); 27 downloadProgress = new QDialog(parent);
25 downloadProgress->setModal(true); 28 downloadProgress->setModal(true);
26 dp.setupUi(downloadProgress); 29 dp.setupUi(downloadProgress);
27 dp.listProgress->setAlternatingRowColors(true); 30 dp.listProgress->setAlternatingRowColors(true);
31 dp.saveLog->hide();
32 connect(dp.saveLog,SIGNAL(clicked()),this,SLOT(saveErrorLog()));
28 setRunning(); 33 setRunning();
29} 34}
30 35
@@ -52,6 +57,7 @@ void ProgressLoggerGui::addItem(const QString &text, int flag)
52 break; 57 break;
53 case LOGERROR: 58 case LOGERROR:
54 item->setIcon(QIcon(":/icons/dialog-error.png")); 59 item->setIcon(QIcon(":/icons/dialog-error.png"));
60 dp.saveLog->show();
55 break; 61 break;
56 } 62 }
57 63
@@ -134,4 +140,51 @@ void ProgressLoggerGui::show()
134 downloadProgress->show(); 140 downloadProgress->show();
135} 141}
136 142
143void ProgressLoggerGui::saveErrorLog()
144{
145 QString filename = QFileDialog::getSaveFileName(downloadProgress, tr("Save system trace log"),
146 QDir::homePath(), "*.log");
147
148 QFile file(filename);
149 file.open(QIODevice::WriteOnly);
150
151 //Logger texts
152 QString loggerTexts = "\n*********************************************\n"
153 "*************** Logger *******************\n"
154 "*********************************************\n";
155 file.write(loggerTexts.toUtf8(), loggerTexts.size());
156
157
158 int i=0;
159 loggerTexts = "";
160 while(dp.listProgress->item(i) != NULL)
161 {
162 loggerTexts.append(dp.listProgress->item(i)->text());
163 loggerTexts.append("\n");
164 i++;
165 }
166 file.write(loggerTexts.toUtf8(), loggerTexts.size());
167
168 //systeminfo
169 QString info = "\n*********************************************\n"
170 "************ SYSTEMINFO *******************\n"
171 "*********************************************\n";
172
173 file.write(info.toUtf8(), info.size());
174 info = Sysinfo::getInfo();
175 info.replace(QRegExp("(<[^>]+>)+"),"\n");
176 file.write(info.toUtf8(), info.size());
177
178 // trace
179 QString trace = "\n*********************************************\n"
180 "*********** TRACE **************************\n"
181 "*********************************************\n";
182 file.write(trace.toUtf8(), trace.size());
183 trace = SysTrace::getTrace();
184 file.write(trace.toUtf8(), trace.size());
185
186 file.close();
187}
188
189
137 190