2007-07-29 18:07:31 +00:00
|
|
|
/***************************************************************************
|
|
|
|
* __________ __ ___.
|
|
|
|
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
|
|
|
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
|
|
|
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
|
|
|
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
|
|
|
* \/ \/ \/ \/ \/
|
|
|
|
*
|
|
|
|
* Copyright (C) 2007 by Dominik Wenger
|
2007-08-23 22:11:50 +00:00
|
|
|
* $Id$
|
2007-07-29 18:07:31 +00:00
|
|
|
*
|
|
|
|
* 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
|
|
|
|
2007-07-29 18:07:31 +00:00
|
|
|
#include "progressloggergui.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-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"));
|
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();
|
|
|
|
}
|
|
|
|
|
|
|
|
|