[graphics/krita] 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 69e8278ac3198050ccb8d70565f08e911981735b by Carsten Hartenfels.
Committed on 27/07/2026 at 16:06.
Pushed by hartenfels into branch 'master'.

[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/69e8278ac3198050ccb8d70565f08e911981735b

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)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.