File indexing completed on 2024-06-09 04:27:34
0001 /* 0002 * SPDX-FileCopyrightText: 2018 Dirk Farin <farin@struktur.de> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "HeifError.h" 0008 0009 0010 KisImportExportErrorCode setHeifError(KisDocument* document, 0011 heif::Error error) 0012 { 0013 switch (error.get_code()) { 0014 case heif_error_Ok: 0015 return ImportExportCodes::OK; 0016 0017 case heif_error_Input_does_not_exist: 0018 // this should never happen because we do not read from file names 0019 KIS_ASSERT_RECOVER_RETURN_VALUE(true, ImportExportCodes::InternalError); 0020 return ImportExportCodes::InternalError; 0021 0022 case heif_error_Invalid_input: 0023 case heif_error_Decoder_plugin_error: 0024 return ImportExportCodes::FileFormatIncorrect; 0025 0026 case heif_error_Unsupported_filetype: 0027 case heif_error_Unsupported_feature: 0028 return ImportExportCodes::FormatFeaturesUnsupported; 0029 0030 case heif_error_Usage_error: 0031 case heif_error_Encoder_plugin_error: 0032 // this should never happen if we use libheif in the correct way 0033 KIS_ASSERT_RECOVER_RETURN_VALUE(true, ImportExportCodes::InternalError); 0034 return ImportExportCodes::InternalError; 0035 0036 case heif_error_Memory_allocation_error: 0037 document->setErrorMessage(i18n("Could not allocate memory.")); 0038 return ImportExportCodes::InsufficientMemory; 0039 0040 case heif_error_Encoding_error: 0041 document->setErrorMessage(i18n("Could not encode or write image.")); 0042 return ImportExportCodes::NoAccessToWrite; 0043 0044 case heif_error_Color_profile_does_not_exist: 0045 document->setErrorMessage(i18n("Color profile was not found in the document.")); 0046 return ImportExportCodes::OK; 0047 default: 0048 // we only get here when we forgot to handle an error ID 0049 document->setErrorMessage(QString(i18n("Unknown error: %1")).arg(QString::fromStdString(error.get_message()))); 0050 return ImportExportCodes::Failure; 0051 } 0052 }