Skip to content
This repository has been archived by the owner on Jan 7, 2024. It is now read-only.

Commit

Permalink
Added label for displaying errors to progressbar widget.
Browse files Browse the repository at this point in the history
Also improved error handling a bit. Closing a tab before download
finished does no longer show a message box.
  • Loading branch information
afrimberger committed Sep 20, 2012
1 parent f6837b8 commit ebd2144
Show file tree
Hide file tree
Showing 4 changed files with 114 additions and 20 deletions.
15 changes: 15 additions & 0 deletions partwin.cpp
Expand Up @@ -137,6 +137,21 @@ PartWin::~PartWin()
bool PartWin::readData(QIODevice *source, const QString &format)
{

// NPRES_NETWORK_ERR:
if (source->errorString() == "Network error during download.") {
// this error message is also set when user aborts download before it finished.
m_progressWidget->resetProgressBar();
m_progressWidget->setErrorMessage("Error occurred during download. Reload tab to retry.");
return false;
}

// NPRES_USER_BREAK:
if (source->errorString() == "User cancelled operation.") {
m_progressWidget->resetProgressBar();
m_progressWidget->setErrorMessage("Error occurred during download. Reload tab to retry.");
return false;
}

// Download finished
m_progressWidget->setValue(m_progressWidget->getMaximum());

Expand Down
17 changes: 17 additions & 0 deletions progresswidget.cpp
Expand Up @@ -26,6 +26,7 @@ ProgressWidget::ProgressWidget(QWidget *parent) : QWidget(parent), m_ui(new Ui:
{
m_ui->setupUi(this);

m_ui->lblErrorMessage->setText("");
m_ui->lblDownloadSpeed->setText("");
m_ui->lblRemainingDlTime->setText("");

Expand Down Expand Up @@ -140,6 +141,22 @@ void ProgressWidget::setFileName(const QString& fileName)
m_fileName = fileName;
}

void ProgressWidget::setErrorMessage ( const QString& errMsg )
{
m_ui->lblErrorMessage->setText(errMsg);
}

void ProgressWidget::resetProgressBar() {
m_timer->stop();
m_ui->progressBar->setValue(m_ui->progressBar->minimum());
m_ui->lblDownloadSpeed->setText("");
m_ui->lblRemainingDlTime->setText("");
m_vecDownloadSpeeds.clear();
m_lastTimestamp = 0;
m_bytesDownloadedTotalLastInterval = 0;
m_avgDownloadSpeedWeighted = 0;
}

ProgressWidget::~ProgressWidget()
{
m_timer->stop();
Expand Down
4 changes: 4 additions & 0 deletions progresswidget.h
Expand Up @@ -41,12 +41,16 @@ class ProgressWidget : public QWidget
ProgressWidget(QWidget *parent);
~ProgressWidget();

void setErrorMessage(const QString &errMsg);

void setFileName(const QString &fileName);

void setMinimum(int size);
void setMaximum(int size);
int getMaximum();

void resetProgressBar();

void setValue(int size);
int getValue();

Expand Down
98 changes: 78 additions & 20 deletions progresswidget.ui
Expand Up @@ -14,9 +14,9 @@
<string>Form</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<item row="3" column="0">
<layout class="QGridLayout" name="gridLayout">
<item row="2" column="0">
<item row="3" column="0">
<widget class="QLabel" name="lblFilename">
<property name="enabled">
<bool>true</bool>
Expand All @@ -29,7 +29,7 @@
</property>
</widget>
</item>
<item row="2" column="1">
<item row="3" column="1">
<widget class="QLabel" name="lblRemainingDlTime">
<property name="text">
<string>00:00:00</string>
Expand All @@ -39,20 +39,7 @@
</property>
</widget>
</item>
<item row="0" column="0">
<spacer name="verticalSpacerTop">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="4" column="1">
<item row="5" column="1">
<widget class="QLabel" name="lblDownloadSpeed">
<property name="text">
<string>0 KB/s</string>
Expand All @@ -62,17 +49,46 @@
</property>
</widget>
</item>
<item row="3" column="0" colspan="2">
<item row="4" column="0" colspan="2">
<widget class="QProgressBar" name="progressBar">
<property name="value">
<number>0</number>
</property>
</widget>
</item>
<item row="6" column="1">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="1">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="3" column="0">
<spacer name="verticalSpacerBottom">
<item row="0" column="0">
<layout class="QVBoxLayout" name="verticalLayout_5"/>
</item>
<item row="1" column="0">
<spacer name="verticalSpacer_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
Expand All @@ -84,6 +100,48 @@
</property>
</spacer>
</item>
<item row="4" column="0">
<spacer name="verticalSpacer_4">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="5" column="0">
<layout class="QVBoxLayout" name="verticalLayout_6"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="lblErrorMessage">
<property name="font">
<font>
<pointsize>14</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string/>
</property>
<property name="scaledContents">
<bool>false</bool>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
</layout>
</widget>
<layoutdefault spacing="6" margin="11"/>
Expand Down

0 comments on commit ebd2144

Please sign in to comment.