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 @@ | |||
19 | 19 | ||
20 | #include "progressloggergui.h" | 20 | #include "progressloggergui.h" |
21 | 21 | ||
22 | #include "sysinfo.h" | ||
23 | #include "systrace.h" | ||
24 | |||
22 | ProgressLoggerGui::ProgressLoggerGui(QWidget* parent): ProgressloggerInterface(parent) | 25 | ProgressLoggerGui::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 | ||
143 | void 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 | ||