From 51b6f9534227bf3b697f3b86e2efdef5b5c05431 Mon Sep 17 00:00:00 2001 From: Michal Horejsek Date: Mon, 19 Oct 2020 09:35:17 +0200 Subject: [PATCH] Show fatal errors after export is terminated --- Changelog.md | 1 + internal/frontend/qml/ImportExportUI/DialogExport.qml | 5 ++++- internal/transfer/provider_pmapi_utils.go | 3 ++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Changelog.md b/Changelog.md index 61a6276d..3a23288c 100644 --- a/Changelog.md +++ b/Changelog.md @@ -9,6 +9,7 @@ Changelog [format](http://keepachangelog.com/en/1.0.0/) * GODT-764 Fix deadlock in integration tests for Import-Export. * GODT-662 Do not resume paused transfer progress after dismissing cancel popup. * GODT-772 Sanitize mailbox names for exporting to follow OS restrictions. +* GODT-771 Show fatal errors after export is terminated. ### Changed * Bump crypto version to v0.0.0-20200818122824-ed5d25e28db8 diff --git a/internal/frontend/qml/ImportExportUI/DialogExport.qml b/internal/frontend/qml/ImportExportUI/DialogExport.qml index bee7ce41..6296f0e0 100644 --- a/internal/frontend/qml/ImportExportUI/DialogExport.qml +++ b/internal/frontend/qml/ImportExportUI/DialogExport.qml @@ -217,7 +217,10 @@ Dialog { Text { anchors.centerIn: parent text: { - if (progressbarExport.isFinished) return qsTr("Export finished","todo") + if (progressbarExport.isFinished) { + if (go.progressDescription=="") return qsTr("Export finished","todo") + else return qsTr("Export failed: %1").arg(go.progressDescription) + } if ( go.progressDescription == gui.enums.progressInit || (go.progress==0 && go.description=="") diff --git a/internal/transfer/provider_pmapi_utils.go b/internal/transfer/provider_pmapi_utils.go index 25c8bc07..79557c38 100644 --- a/internal/transfer/provider_pmapi_utils.go +++ b/internal/transfer/provider_pmapi_utils.go @@ -72,7 +72,8 @@ func (p *PMAPIProvider) tryReconnect() error { func (p *PMAPIProvider) listMessages(filter *pmapi.MessagesFilter) (messages []*pmapi.Message, count int, err error) { err = p.ensureConnection(func() error { - key := fmt.Sprintf("%s_%d", filter.LabelID, filter.Page) + // Sort is used in the key so the filter is different for estimating and real fetching. + key := fmt.Sprintf("%s_%s_%d", filter.LabelID, filter.Sort, filter.Page) p.timeIt.start("listing", key) defer p.timeIt.stop("listing", key)