2007-07-29 18:07:31 +00:00
|
|
|
/***************************************************************************
|
|
|
|
* __________ __ ___.
|
|
|
|
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
|
|
|
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
|
|
|
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
|
|
|
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
|
|
|
* \/ \/ \/ \/ \/
|
|
|
|
*
|
|
|
|
* Copyright (C) 2007 by Dominik Wenger
|
|
|
|
*
|
|
|
|
* All files in this archive are subject to the GNU General Public License.
|
|
|
|
* See the file COPYING in the source tree root for full license agreement.
|
|
|
|
*
|
|
|
|
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
|
|
* KIND, either express or implied.
|
|
|
|
*
|
|
|
|
****************************************************************************/
|
2007-09-15 22:13:41 +00:00
|
|
|
|
2013-01-27 11:01:56 +00:00
|
|
|
#include <QFileDialog>
|
2007-07-29 18:07:31 +00:00
|
|
|
#include "progressloggergui.h"
|
|
|
|
|
2009-08-15 17:02:25 +00:00
|
|
|
#include "sysinfo.h"
|
|
|
|
#include "systrace.h"
|
|
|
|
|
2008-05-10 17:53:15 +00:00
|
|
|
ProgressLoggerGui::ProgressLoggerGui(QWidget* parent): ProgressloggerInterface(parent)
|
2007-07-29 18:07:31 +00:00
|
|
|
{
|
2008-05-10 17:53:15 +00:00
|
|
|
downloadProgress = new QDialog(parent);
|
2007-07-30 19:35:48 +00:00
|
|
|
downloadProgress->setModal(true);
|
2007-07-29 18:07:31 +00:00
|
|
|
dp.setupUi(downloadProgress);
|
2007-08-12 19:18:11 +00:00
|
|
|
dp.listProgress->setAlternatingRowColors(true);
|
2009-08-15 17:02:25 +00:00
|
|
|
dp.saveLog->hide();
|
|
|
|
connect(dp.saveLog,SIGNAL(clicked()),this,SLOT(saveErrorLog()));
|
2009-05-02 18:40:04 +00:00
|
|
|
setRunning();
|
2007-07-29 18:07:31 +00:00
|
|
|
}
|
|
|
|
|
2007-09-15 22:13:41 +00:00
|
|
|
void ProgressLoggerGui::addItem(const QString &text)
|
2007-07-29 18:07:31 +00:00
|
|
|
{
|
2007-09-15 22:13:41 +00:00
|
|
|
addItem(text, LOGNOICON);
|
|
|
|
}
|
2007-07-31 19:11:44 +00:00
|
|
|
|
2007-09-15 22:13:41 +00:00
|
|
|
void ProgressLoggerGui::addItem(const QString &text, int flag)
|
2007-07-31 19:11:44 +00:00
|
|
|
{
|
|
|
|
QListWidgetItem* item = new QListWidgetItem(text);
|
2007-09-15 22:13:41 +00:00
|
|
|
|
2007-07-31 19:11:44 +00:00
|
|
|
switch(flag)
|
|
|
|
{
|
2007-09-15 22:13:41 +00:00
|
|
|
case LOGNOICON:
|
|
|
|
break;
|
2007-07-31 19:11:44 +00:00
|
|
|
case LOGOK:
|
2008-03-27 23:39:49 +00:00
|
|
|
item->setIcon(QIcon(":/icons/go-next.png"));
|
2007-07-31 19:11:44 +00:00
|
|
|
break;
|
|
|
|
case LOGINFO:
|
2008-03-27 23:39:49 +00:00
|
|
|
item->setIcon(QIcon(":/icons/dialog-information.png"));
|
2007-07-31 19:11:44 +00:00
|
|
|
break;
|
|
|
|
case LOGWARNING:
|
2008-03-27 23:39:49 +00:00
|
|
|
item->setIcon(QIcon(":/icons/dialog-warning.png"));
|
2007-07-31 19:11:44 +00:00
|
|
|
break;
|
|
|
|
case LOGERROR:
|
2008-03-27 23:39:49 +00:00
|
|
|
item->setIcon(QIcon(":/icons/dialog-error.png"));
|
2009-08-15 17:02:25 +00:00
|
|
|
dp.saveLog->show();
|
2007-07-31 19:11:44 +00:00
|
|
|
break;
|
|
|
|
}
|
2007-09-15 22:13:41 +00:00
|
|
|
|
2007-07-31 19:11:44 +00:00
|
|
|
dp.listProgress->addItem(item);
|
2007-09-15 22:13:41 +00:00
|
|
|
dp.listProgress->scrollToItem(item);
|
|
|
|
}
|
2007-07-29 18:07:31 +00:00
|
|
|
|
2008-05-23 21:07:58 +00:00
|
|
|
void ProgressLoggerGui::setProgress(int value, int max)
|
|
|
|
{
|
2009-06-15 20:37:55 +00:00
|
|
|
// set maximum first to avoid setting a value outside of the max range.
|
|
|
|
// If the current value is outside of the valid range QProgressBar
|
|
|
|
// calls reset() internally.
|
2008-05-23 21:07:58 +00:00
|
|
|
setProgressMax(max);
|
2009-06-15 20:37:55 +00:00
|
|
|
setProgressValue(value);
|
2008-05-23 21:07:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2007-07-29 18:07:31 +00:00
|
|
|
void ProgressLoggerGui::setProgressValue(int value)
|
|
|
|
{
|
|
|
|
dp.progressBar->setValue(value);
|
2007-09-15 22:13:41 +00:00
|
|
|
}
|
2007-07-29 18:07:31 +00:00
|
|
|
|
|
|
|
void ProgressLoggerGui::setProgressMax(int max)
|
|
|
|
{
|
|
|
|
dp.progressBar->setMaximum(max);
|
|
|
|
}
|
|
|
|
|
|
|
|
int ProgressLoggerGui::getProgressMax()
|
|
|
|
{
|
|
|
|
return dp.progressBar->maximum();
|
2007-09-15 22:13:41 +00:00
|
|
|
}
|
2007-07-29 18:07:31 +00:00
|
|
|
|
2008-05-23 21:07:58 +00:00
|
|
|
void ProgressLoggerGui::setProgressVisible(bool b)
|
|
|
|
{
|
|
|
|
dp.progressBar->setVisible(b);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2009-05-02 18:40:04 +00:00
|
|
|
/** Set logger into "running" state -- the reporting process is still running.
|
|
|
|
* Display "Abort" and emit the aborted() signal on button press.
|
|
|
|
*/
|
|
|
|
void ProgressLoggerGui::setRunning()
|
|
|
|
{
|
|
|
|
dp.buttonAbort->setText(tr("&Abort"));
|
|
|
|
dp.buttonAbort->setIcon(QIcon(QString::fromUtf8(":/icons/process-stop.png")));
|
|
|
|
|
|
|
|
// make sure to not close the window on button press.
|
|
|
|
disconnect(dp.buttonAbort, SIGNAL(clicked()), downloadProgress, SLOT(close()));
|
|
|
|
// emit aborted() once button is pressed but not closed().
|
|
|
|
disconnect(dp.buttonAbort, SIGNAL(clicked()), this, SIGNAL(closed()));
|
|
|
|
connect(dp.buttonAbort, SIGNAL(clicked()), this, SIGNAL(aborted()));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/** Set logger into "finished" state -- the reporting process is finished.
|
|
|
|
* Display "Ok". Don't emit aborted() as there is nothing running left.
|
|
|
|
* Close logger on button press and emit closed().
|
|
|
|
*/
|
|
|
|
void ProgressLoggerGui::setFinished()
|
2007-07-29 18:07:31 +00:00
|
|
|
{
|
|
|
|
dp.buttonAbort->setText(tr("&Ok"));
|
2008-03-27 23:39:49 +00:00
|
|
|
dp.buttonAbort->setIcon(QIcon(QString::fromUtf8(":/icons/go-next.png")));
|
2009-05-02 18:40:04 +00:00
|
|
|
|
|
|
|
// close the window on button press.
|
2007-07-29 18:07:31 +00:00
|
|
|
connect(dp.buttonAbort, SIGNAL(clicked()), downloadProgress, SLOT(close()));
|
2009-05-02 18:40:04 +00:00
|
|
|
// emit closed() once button is pressed but not aborted().
|
|
|
|
disconnect(dp.buttonAbort, SIGNAL(clicked()), this, SIGNAL(aborted()));
|
2007-07-29 18:07:31 +00:00
|
|
|
connect(dp.buttonAbort, SIGNAL(clicked()), this, SIGNAL(closed()));
|
|
|
|
}
|
|
|
|
|
2007-08-26 19:06:40 +00:00
|
|
|
|
2007-07-29 18:07:31 +00:00
|
|
|
void ProgressLoggerGui::close()
|
|
|
|
{
|
|
|
|
downloadProgress->close();
|
|
|
|
}
|
|
|
|
|
|
|
|
void ProgressLoggerGui::show()
|
|
|
|
{
|
|
|
|
downloadProgress->show();
|
|
|
|
}
|
|
|
|
|
2009-08-15 17:02:25 +00:00
|
|
|
void ProgressLoggerGui::saveErrorLog()
|
|
|
|
{
|
2013-11-03 10:08:18 +00:00
|
|
|
QString filename = QFileDialog::getSaveFileName(downloadProgress,
|
|
|
|
tr("Save system trace log"), QDir::homePath(), "*.log");
|
|
|
|
if(filename.isEmpty())
|
2009-08-29 18:55:52 +00:00
|
|
|
return;
|
2012-06-24 16:37:47 +00:00
|
|
|
|
2009-08-15 17:02:25 +00:00
|
|
|
QFile file(filename);
|
2009-08-29 18:55:52 +00:00
|
|
|
if(!file.open(QIODevice::WriteOnly))
|
|
|
|
return;
|
2009-08-15 17:02:25 +00:00
|
|
|
|
|
|
|
//Logger texts
|
2012-06-24 16:37:47 +00:00
|
|
|
QString loggerTexts = "\n*********************************************\n"
|
2009-08-15 17:02:25 +00:00
|
|
|
"*************** Logger *******************\n"
|
|
|
|
"*********************************************\n";
|
2013-11-03 10:08:18 +00:00
|
|
|
|
2012-06-24 16:37:47 +00:00
|
|
|
file.write(loggerTexts.toUtf8(), loggerTexts.size());
|
|
|
|
|
2009-08-15 17:02:25 +00:00
|
|
|
|
|
|
|
int i=0;
|
2012-06-24 16:37:47 +00:00
|
|
|
loggerTexts = "";
|
2009-08-15 17:02:25 +00:00
|
|
|
while(dp.listProgress->item(i) != NULL)
|
|
|
|
{
|
|
|
|
loggerTexts.append(dp.listProgress->item(i)->text());
|
|
|
|
loggerTexts.append("\n");
|
|
|
|
i++;
|
|
|
|
}
|
|
|
|
file.write(loggerTexts.toUtf8(), loggerTexts.size());
|
2012-06-24 16:37:47 +00:00
|
|
|
|
2009-08-15 17:02:25 +00:00
|
|
|
//systeminfo
|
2012-06-24 16:37:47 +00:00
|
|
|
QString info = "\n*********************************************\n"
|
2009-08-15 17:02:25 +00:00
|
|
|
"************ SYSTEMINFO *******************\n"
|
|
|
|
"*********************************************\n";
|
2012-06-24 16:37:47 +00:00
|
|
|
|
2009-08-15 17:02:25 +00:00
|
|
|
file.write(info.toUtf8(), info.size());
|
2013-11-03 10:35:41 +00:00
|
|
|
info = Sysinfo::getInfo(Sysinfo::InfoText);
|
2009-08-15 17:02:25 +00:00
|
|
|
file.write(info.toUtf8(), info.size());
|
|
|
|
|
|
|
|
// trace
|
2012-06-24 16:37:47 +00:00
|
|
|
QString trace = "\n*********************************************\n"
|
2009-08-15 17:02:25 +00:00
|
|
|
"*********** TRACE **************************\n"
|
|
|
|
"*********************************************\n";
|
|
|
|
file.write(trace.toUtf8(), trace.size());
|
2012-06-24 16:37:47 +00:00
|
|
|
trace = SysTrace::getTrace();
|
2009-08-15 17:02:25 +00:00
|
|
|
file.write(trace.toUtf8(), trace.size());
|
|
|
|
|
2012-06-24 16:37:47 +00:00
|
|
|
file.close();
|
2009-08-15 17:02:25 +00:00
|
|
|
}
|
|
|
|
|