Skip to content

Commit 902907e

Browse files
committedAug 16, 2021
Fix bad progress bar behavior
1 parent d5d90b7 commit 902907e

File tree

2 files changed

+61
-49
lines changed

2 files changed

+61
-49
lines changed
 

‎src/gui/qgsexternalstoragefilewidget.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,8 +203,9 @@ void QgsExternalStorageFileWidget::storeExternalFiles( QStringList fileNames, QS
203203
{
204204
const QString filePath = fileNames.takeFirst();
205205

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

210211
Q_ASSERT( mScope );

‎tests/src/gui/testqgsexternalstoragefilewidget.cpp

Lines changed: 59 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,11 @@ class QgsTestExternalStorageStoredContent : public QgsExternalStorageStoredConte
8686
emit errorOccurred( mErrorString );
8787
}
8888

89+
void setProgress( double progress )
90+
{
91+
emit progressChanged( progress );
92+
}
93+
8994
void finish()
9095
{
9196
mStatus = Qgis::ContentStatus::Finished;
@@ -275,47 +280,60 @@ void TestQgsExternalStorageFileWidget::testStoring()
275280
w.setUseLink( useLink );
276281
w.setReadOnly( false );
277282

278-
QVERIFY( useLink == w.mLinkLabel->isVisible() );
279-
QVERIFY( useLink == w.mLinkEditButton->isVisible() );
280-
if ( useLink ) QCOMPARE( w.mLinkEditButton->icon(), editIcon );
281-
QVERIFY( useLink != w.mLineEdit->isVisible() );
282-
QVERIFY( w.mFileWidgetButton->isVisible() );
283-
QVERIFY( w.mFileWidgetButton->isEnabled() );
284-
QVERIFY( !w.mProgressLabel->isVisible() );
285-
QVERIFY( !w.mProgressBar->isVisible() );
286-
QVERIFY( !w.mCancelButton->isVisible() );
287-
288-
w.setSelectedFileNames( QStringList() << QStringLiteral( "myfile" ) );
289-
290-
QVERIFY( QgsTestExternalStorage::sCurrentStoredContent );
291-
292-
QVERIFY( !w.mLinkLabel->isVisible() );
293-
QVERIFY( !w.mLinkEditButton->isVisible() );
294-
QVERIFY( !w.mLineEdit->isVisible() );
295-
QVERIFY( !w.mFileWidgetButton->isVisible() );
296-
QVERIFY( w.mProgressLabel->isVisible() );
297-
QVERIFY( w.mProgressBar->isVisible() );
298-
QVERIFY( w.mCancelButton->isVisible() );
299-
300-
// link is not yet updated
301-
QVERIFY( w.mLinkLabel->text().isEmpty() );
302-
303-
QgsTestExternalStorage::sCurrentStoredContent->finish();
304-
QCoreApplication::processEvents();
305-
306-
QVERIFY( useLink == w.mLinkLabel->isVisible() );
307-
QVERIFY( useLink == w.mLinkEditButton->isVisible() );
308-
if ( useLink ) QCOMPARE( w.mLinkEditButton->icon(), editIcon );
309-
QVERIFY( useLink != w.mLineEdit->isVisible() );
310-
QVERIFY( w.mFileWidgetButton->isVisible() );
311-
QVERIFY( w.mFileWidgetButton->isEnabled() );
312-
QVERIFY( !w.mProgressLabel->isVisible() );
313-
QVERIFY( !w.mProgressBar->isVisible() );
314-
QVERIFY( !w.mCancelButton->isVisible() );
315-
if ( useLink )
316-
QCOMPARE( w.mLinkLabel->text(), QStringLiteral( "<a href=\"http://test.url.com/test/myfile\">myfile</a>" ) );
317-
else
318-
QCOMPARE( w.mLineEdit->text(), QStringLiteral( "http://test.url.com/test/myfile" ) );
283+
const QStringList fileNames = QStringList() << "myfile1.txt" << "myfile2.txt" ;
284+
for ( QString fileName : fileNames )
285+
{
286+
QVERIFY( useLink == w.mLinkLabel->isVisible() );
287+
QVERIFY( useLink == w.mLinkEditButton->isVisible() );
288+
if ( useLink ) QCOMPARE( w.mLinkEditButton->icon(), editIcon );
289+
QVERIFY( useLink != w.mLineEdit->isVisible() );
290+
QVERIFY( w.mFileWidgetButton->isVisible() );
291+
QVERIFY( w.mFileWidgetButton->isEnabled() );
292+
QVERIFY( !w.mProgressLabel->isVisible() );
293+
QVERIFY( !w.mProgressBar->isVisible() );
294+
QVERIFY( !w.mCancelButton->isVisible() );
295+
296+
QString currentLabel = useLink ? w.mLinkLabel->text() : w.mLineEdit->text();
297+
298+
w.setSelectedFileNames( QStringList() << fileName );
299+
300+
QVERIFY( QgsTestExternalStorage::sCurrentStoredContent );
301+
302+
QVERIFY( !w.mLinkLabel->isVisible() );
303+
QVERIFY( !w.mLinkEditButton->isVisible() );
304+
QVERIFY( !w.mLineEdit->isVisible() );
305+
QVERIFY( !w.mFileWidgetButton->isVisible() );
306+
QVERIFY( w.mProgressLabel->isVisible() );
307+
QVERIFY( w.mProgressBar->isVisible() );
308+
QCOMPARE( w.mProgressBar->value(), 0 );
309+
QVERIFY( w.mCancelButton->isVisible() );
310+
311+
// link is not yet updated
312+
if ( useLink )
313+
QCOMPARE( currentLabel, w.mLinkLabel->text() );
314+
else
315+
QCOMPARE( currentLabel, w.mLineEdit->text() );
316+
317+
QgsTestExternalStorage::sCurrentStoredContent->setProgress( 50 );
318+
QVERIFY( w.mProgressBar->isVisible() );
319+
QCOMPARE( w.mProgressBar->value(), 50 );
320+
321+
QgsTestExternalStorage::sCurrentStoredContent->finish();
322+
323+
QVERIFY( useLink == w.mLinkLabel->isVisible() );
324+
QVERIFY( useLink == w.mLinkEditButton->isVisible() );
325+
if ( useLink ) QCOMPARE( w.mLinkEditButton->icon(), editIcon );
326+
QVERIFY( useLink != w.mLineEdit->isVisible() );
327+
QVERIFY( w.mFileWidgetButton->isVisible() );
328+
QVERIFY( w.mFileWidgetButton->isEnabled() );
329+
QVERIFY( !w.mProgressLabel->isVisible() );
330+
QVERIFY( !w.mProgressBar->isVisible() );
331+
QVERIFY( !w.mCancelButton->isVisible() );
332+
if ( useLink )
333+
QCOMPARE( w.mLinkLabel->text(), QStringLiteral( "<a href=\"http://test.url.com/test/%1\">%1</a>" ).arg( fileName ) );
334+
else
335+
QCOMPARE( w.mLineEdit->text(), QStringLiteral( "http://test.url.com/test/%1" ).arg( fileName ) );
336+
}
319337
}
320338

321339

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

373391
QgsTestExternalStorage::sCurrentStoredContent->finish();
374-
QCoreApplication::processEvents();
375392

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

396413
// end second store
397414
QgsTestExternalStorage::sCurrentStoredContent->finish();
398-
QCoreApplication::processEvents();
399415

400416
QVERIFY( useLink == w.mLinkLabel->isVisible() );
401417
QVERIFY( useLink == w.mLinkEditButton->isVisible() );
@@ -471,7 +487,6 @@ void TestQgsExternalStorageFileWidget::testStoringSeveralFilesError()
471487
QVERIFY( !messageBar.currentItem() );
472488

473489
QgsTestExternalStorage::sCurrentStoredContent->finish();
474-
QCoreApplication::processEvents();
475490

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

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

500514
QVERIFY( useLink == w.mLinkLabel->isVisible() );
501515
QVERIFY( useLink == w.mLinkEditButton->isVisible() );
@@ -570,7 +584,6 @@ void TestQgsExternalStorageFileWidget::testStoringSeveralFilesCancel()
570584
QVERIFY( w.mLinkLabel->text().isEmpty() );
571585

572586
QgsTestExternalStorage::sCurrentStoredContent->finish();
573-
QCoreApplication::processEvents();
574587

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

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

599611
QVERIFY( useLink == w.mLinkLabel->isVisible() );
600612
QVERIFY( useLink == w.mLinkEditButton->isVisible() );
@@ -765,7 +777,6 @@ void TestQgsExternalStorageFileWidget::testStoringDirectory()
765777
QVERIFY( w.mLinkLabel->text().isEmpty() );
766778

767779
QgsTestExternalStorage::sCurrentStoredContent->finish();
768-
QCoreApplication::processEvents();
769780

770781
QVERIFY( useLink == w.mLinkLabel->isVisible() );
771782
QVERIFY( useLink == w.mLinkEditButton->isVisible() );

0 commit comments

Comments
 (0)
Please sign in to comment.