Skip to content

Commit

Permalink
Fix bad progress bar behavior
Browse files Browse the repository at this point in the history
  • Loading branch information
troopa81 committed Aug 16, 2021
1 parent d5d90b7 commit 902907e
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 49 deletions.
3 changes: 2 additions & 1 deletion src/gui/qgsexternalstoragefilewidget.cpp
Expand Up @@ -203,8 +203,9 @@ void QgsExternalStorageFileWidget::storeExternalFiles( QStringList fileNames, QS
{
const QString filePath = fileNames.takeFirst();

mProgressLabel->setText( tr( "Storing file %1 ..." ).arg( QFileInfo( filePath ).baseName() ) );
mProgressLabel->setText( tr( "Storing file %1 ..." ).arg( QFileInfo( filePath ).fileName() ) );
mStoreInProgress = true;
mProgressBar->setValue( 0 );
updateLayout();

Q_ASSERT( mScope );
Expand Down
107 changes: 59 additions & 48 deletions tests/src/gui/testqgsexternalstoragefilewidget.cpp
Expand Up @@ -86,6 +86,11 @@ class QgsTestExternalStorageStoredContent : public QgsExternalStorageStoredConte
emit errorOccurred( mErrorString );
}

void setProgress( double progress )
{
emit progressChanged( progress );
}

void finish()
{
mStatus = Qgis::ContentStatus::Finished;
Expand Down Expand Up @@ -275,47 +280,60 @@ void TestQgsExternalStorageFileWidget::testStoring()
w.setUseLink( useLink );
w.setReadOnly( false );

QVERIFY( useLink == w.mLinkLabel->isVisible() );
QVERIFY( useLink == w.mLinkEditButton->isVisible() );
if ( useLink ) QCOMPARE( w.mLinkEditButton->icon(), editIcon );
QVERIFY( useLink != w.mLineEdit->isVisible() );
QVERIFY( w.mFileWidgetButton->isVisible() );
QVERIFY( w.mFileWidgetButton->isEnabled() );
QVERIFY( !w.mProgressLabel->isVisible() );
QVERIFY( !w.mProgressBar->isVisible() );
QVERIFY( !w.mCancelButton->isVisible() );

w.setSelectedFileNames( QStringList() << QStringLiteral( "myfile" ) );

QVERIFY( QgsTestExternalStorage::sCurrentStoredContent );

QVERIFY( !w.mLinkLabel->isVisible() );
QVERIFY( !w.mLinkEditButton->isVisible() );
QVERIFY( !w.mLineEdit->isVisible() );
QVERIFY( !w.mFileWidgetButton->isVisible() );
QVERIFY( w.mProgressLabel->isVisible() );
QVERIFY( w.mProgressBar->isVisible() );
QVERIFY( w.mCancelButton->isVisible() );

// link is not yet updated
QVERIFY( w.mLinkLabel->text().isEmpty() );

QgsTestExternalStorage::sCurrentStoredContent->finish();
QCoreApplication::processEvents();

QVERIFY( useLink == w.mLinkLabel->isVisible() );
QVERIFY( useLink == w.mLinkEditButton->isVisible() );
if ( useLink ) QCOMPARE( w.mLinkEditButton->icon(), editIcon );
QVERIFY( useLink != w.mLineEdit->isVisible() );
QVERIFY( w.mFileWidgetButton->isVisible() );
QVERIFY( w.mFileWidgetButton->isEnabled() );
QVERIFY( !w.mProgressLabel->isVisible() );
QVERIFY( !w.mProgressBar->isVisible() );
QVERIFY( !w.mCancelButton->isVisible() );
if ( useLink )
QCOMPARE( w.mLinkLabel->text(), QStringLiteral( "<a href=\"http://test.url.com/test/myfile\">myfile</a>" ) );
else
QCOMPARE( w.mLineEdit->text(), QStringLiteral( "http://test.url.com/test/myfile" ) );
const QStringList fileNames = QStringList() << "myfile1.txt" << "myfile2.txt" ;
for ( QString fileName : fileNames )
{
QVERIFY( useLink == w.mLinkLabel->isVisible() );
QVERIFY( useLink == w.mLinkEditButton->isVisible() );
if ( useLink ) QCOMPARE( w.mLinkEditButton->icon(), editIcon );
QVERIFY( useLink != w.mLineEdit->isVisible() );
QVERIFY( w.mFileWidgetButton->isVisible() );
QVERIFY( w.mFileWidgetButton->isEnabled() );
QVERIFY( !w.mProgressLabel->isVisible() );
QVERIFY( !w.mProgressBar->isVisible() );
QVERIFY( !w.mCancelButton->isVisible() );

QString currentLabel = useLink ? w.mLinkLabel->text() : w.mLineEdit->text();

w.setSelectedFileNames( QStringList() << fileName );

QVERIFY( QgsTestExternalStorage::sCurrentStoredContent );

QVERIFY( !w.mLinkLabel->isVisible() );
QVERIFY( !w.mLinkEditButton->isVisible() );
QVERIFY( !w.mLineEdit->isVisible() );
QVERIFY( !w.mFileWidgetButton->isVisible() );
QVERIFY( w.mProgressLabel->isVisible() );
QVERIFY( w.mProgressBar->isVisible() );
QCOMPARE( w.mProgressBar->value(), 0 );
QVERIFY( w.mCancelButton->isVisible() );

// link is not yet updated
if ( useLink )
QCOMPARE( currentLabel, w.mLinkLabel->text() );
else
QCOMPARE( currentLabel, w.mLineEdit->text() );

QgsTestExternalStorage::sCurrentStoredContent->setProgress( 50 );
QVERIFY( w.mProgressBar->isVisible() );
QCOMPARE( w.mProgressBar->value(), 50 );

QgsTestExternalStorage::sCurrentStoredContent->finish();

QVERIFY( useLink == w.mLinkLabel->isVisible() );
QVERIFY( useLink == w.mLinkEditButton->isVisible() );
if ( useLink ) QCOMPARE( w.mLinkEditButton->icon(), editIcon );
QVERIFY( useLink != w.mLineEdit->isVisible() );
QVERIFY( w.mFileWidgetButton->isVisible() );
QVERIFY( w.mFileWidgetButton->isEnabled() );
QVERIFY( !w.mProgressLabel->isVisible() );
QVERIFY( !w.mProgressBar->isVisible() );
QVERIFY( !w.mCancelButton->isVisible() );
if ( useLink )
QCOMPARE( w.mLinkLabel->text(), QStringLiteral( "<a href=\"http://test.url.com/test/%1\">%1</a>" ).arg( fileName ) );
else
QCOMPARE( w.mLineEdit->text(), QStringLiteral( "http://test.url.com/test/%1" ).arg( fileName ) );
}
}


Expand Down Expand Up @@ -371,7 +389,6 @@ void TestQgsExternalStorageFileWidget::testStoringSeveralFiles()
QVERIFY( w.mLinkLabel->text().isEmpty() );

QgsTestExternalStorage::sCurrentStoredContent->finish();
QCoreApplication::processEvents();

// second file is being stored
QVERIFY( content1 );
Expand All @@ -395,7 +412,6 @@ void TestQgsExternalStorageFileWidget::testStoringSeveralFiles()

// end second store
QgsTestExternalStorage::sCurrentStoredContent->finish();
QCoreApplication::processEvents();

QVERIFY( useLink == w.mLinkLabel->isVisible() );
QVERIFY( useLink == w.mLinkEditButton->isVisible() );
Expand Down Expand Up @@ -471,7 +487,6 @@ void TestQgsExternalStorageFileWidget::testStoringSeveralFilesError()
QVERIFY( !messageBar.currentItem() );

QgsTestExternalStorage::sCurrentStoredContent->finish();
QCoreApplication::processEvents();

// second file is being stored
QVERIFY( content1 );
Expand All @@ -495,7 +510,6 @@ void TestQgsExternalStorageFileWidget::testStoringSeveralFilesError()

// error while storing second file
QgsTestExternalStorage::sCurrentStoredContent->error();
QCoreApplication::processEvents();

QVERIFY( useLink == w.mLinkLabel->isVisible() );
QVERIFY( useLink == w.mLinkEditButton->isVisible() );
Expand Down Expand Up @@ -570,7 +584,6 @@ void TestQgsExternalStorageFileWidget::testStoringSeveralFilesCancel()
QVERIFY( w.mLinkLabel->text().isEmpty() );

QgsTestExternalStorage::sCurrentStoredContent->finish();
QCoreApplication::processEvents();

// second file is being stored
QVERIFY( content1 );
Expand All @@ -594,7 +607,6 @@ void TestQgsExternalStorageFileWidget::testStoringSeveralFilesCancel()

// cancel while storing second file
QgsTestExternalStorage::sCurrentStoredContent->cancel();
QCoreApplication::processEvents();

QVERIFY( useLink == w.mLinkLabel->isVisible() );
QVERIFY( useLink == w.mLinkEditButton->isVisible() );
Expand Down Expand Up @@ -765,7 +777,6 @@ void TestQgsExternalStorageFileWidget::testStoringDirectory()
QVERIFY( w.mLinkLabel->text().isEmpty() );

QgsTestExternalStorage::sCurrentStoredContent->finish();
QCoreApplication::processEvents();

QVERIFY( useLink == w.mLinkLabel->isVisible() );
QVERIFY( useLink == w.mLinkEditButton->isVisible() );
Expand Down

0 comments on commit 902907e

Please sign in to comment.