[graphics/krita/krita/6.0] libs/ui: [android] Show media encoder error to the user
Carsten Hartenfels <[email protected]>
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git commit 244651bba50dff794c870bfece1cd826fd3f2b92 by Carsten Hartenfels.
Committed on 27/07/2026 at 17:19.
Pushed by hartenfels into branch 'krita/6.0'.
[android] Show media encoder error to the user
By adding a field for the custom error message in
KisImportExportErrorCode. Previously the actual error was only in the
log and the user got a terribly generic error message.
M +8 -1 libs/ui/KisImportExportErrorCode.cpp
M +2 -0 libs/ui/KisImportExportErrorCode.h
M +8 -9 libs/ui/animation/KisMediaEncoderWrapper.cpp
https://invent.kde.org/graphics/krita/-/commit/244651bba50dff794c870bfece1cd826fd3f2b92
diff --git a/libs/ui/KisImportExportErrorCode.cpp b/libs/ui/KisImportExportErrorCode.cpp
index ad00ea1da1b..f95f10d25f5 100644
--- a/libs/ui/KisImportExportErrorCode.cpp
+++ b/libs/ui/KisImportExportErrorCode.cpp
@@ -117,6 +117,13 @@ KisImportExportErrorCode::KisImportExportErrorCode(KisImportExportErrorCannotWri
, cannotWrite(error)
{ }
+KisImportExportErrorCode::KisImportExportErrorCode(const QString &message)
+ : errorFieldUsed(CodeId)
+ , codeId(ImportExportCodes::Failure)
+ , cannotRead()
+ , cannotWrite()
+ , failureMessage(message)
+{ }
bool KisImportExportErrorCode::isOk() const
{
@@ -175,7 +182,7 @@ QString KisImportExportErrorCode::errorMessage() const
// Other
case ImportExportCodes::Failure:
- return i18n("Unknown error.");
+ return failureMessage.isEmpty() ? i18n("Unknown error.") : failureMessage;
case ImportExportCodes::InternalError:
return internal;
case ImportExportCodes::Busy:
diff --git a/libs/ui/KisImportExportErrorCode.h b/libs/ui/KisImportExportErrorCode.h
index 2f3d20eff49..976a1bc6e88 100644
--- a/libs/ui/KisImportExportErrorCode.h
+++ b/libs/ui/KisImportExportErrorCode.h
@@ -115,6 +115,7 @@ public:
KisImportExportErrorCode(ImportExportCodes::ErrorCodeID code);
KisImportExportErrorCode(KisImportExportErrorCannotRead code);
KisImportExportErrorCode(KisImportExportErrorCannotWrite code);
+ explicit KisImportExportErrorCode(const QString &message);
QString errorMessage() const;
bool isOk() const;
@@ -140,6 +141,7 @@ private:
ImportExportCodes::ErrorCodeID codeId {ImportExportCodes::OK};
KisImportExportErrorCannotRead cannotRead;
KisImportExportErrorCannotWrite cannotWrite;
+ QString failureMessage;
};
inline QDebug &operator<<(QDebug &d, const KisImportExportErrorCode &errorCode)
diff --git a/libs/ui/animation/KisMediaEncoderWrapper.cpp b/libs/ui/animation/KisMediaEncoderWrapper.cpp
index 599ed54f2d5..c42814e4bf3 100644
--- a/libs/ui/animation/KisMediaEncoderWrapper.cpp
+++ b/libs/ui/animation/KisMediaEncoderWrapper.cpp
@@ -168,31 +168,30 @@ KisImportExportErrorCode KisMediaEncoderWrapper::start(const KisMediaEncoderWrap
reset();
KisMediaEncoderRunnable *runnable = makeSupportedRunnable(settings);
- ImportExportCodes::ErrorCodeID resultCode = ImportExportCodes::InternalError;
+ KisImportExportErrorCode errorCode(ImportExportCodes::InternalError);
if (runnable) {
connect(
runnable,
&KisMediaEncoderRunnable::sigCompleted,
this,
- [&resultCode] {
- resultCode = ImportExportCodes::OK;
+ [&errorCode] {
+ errorCode = KisImportExportErrorCode(ImportExportCodes::OK);
},
Qt::DirectConnection);
connect(
runnable,
&KisMediaEncoderRunnable::sigCancelled,
this,
- [&resultCode] {
- resultCode = ImportExportCodes::Cancelled;
+ [&errorCode] {
+ errorCode = KisImportExportErrorCode(ImportExportCodes::Cancelled);
},
Qt::DirectConnection);
connect(
runnable,
&KisMediaEncoderRunnable::sigFailed,
this,
- [&resultCode](const QString &errorMessage) {
- warnFile << "Media encoder export error:" << errorMessage;
- resultCode = ImportExportCodes::OK;
+ [&errorCode](const QString &errorMessage) {
+ errorCode = KisImportExportErrorCode(errorMessage);
},
Qt::DirectConnection);
connect(this,
@@ -238,7 +237,7 @@ KisImportExportErrorCode KisMediaEncoderWrapper::start(const KisMediaEncoderWrap
delete runnable;
delete progressDlg;
}
- return KisImportExportErrorCode(resultCode);
+ return errorCode;
}
void KisMediaEncoderWrapper::startNonBlocking(const KisMediaEncoderWrapperSettings &settings)