Check input and output converters do support the relevant directions

It was previously possible to select an input-only converter for
output or an output-only converter for input. Also add a comment to
explain why failure to probe for the auto output converter isn't an
error, where failure to probe for the auto input converter is.

Pick-to: 6.6 6.5
Task-number: QTBUG-111228
Change-Id: I17dfbbee7d8b5a9629e66d0e1a6a4014b01a7262
Reviewed-by: Ievgenii Meshcheriakov <ievgenii.meshcheriakov@qt.io>
This commit is contained in:
Edward Welbourne 2023-09-04 14:43:02 +02:00
parent b9787a3985
commit ccd59b2d4f

View File

@ -113,8 +113,9 @@ int main(int argc, char *argv[])
} }
} }
if (!inconv) { if (!inconv || !inconv->directions().testFlag(Converter::Direction::In)) {
fprintf(stderr, "Unknown file format \"%s\"\n", qPrintable(format)); fprintf(stderr, inconv ? "File format \"%s\" cannot be used for input\n"
: "Unknown input file format \"%s\"\n", qPrintable(format));
return EXIT_FAILURE; return EXIT_FAILURE;
} }
} }
@ -129,8 +130,9 @@ int main(int argc, char *argv[])
} }
} }
if (!outconv) { if (!outconv || !outconv->directions().testFlag(Converter::Direction::Out)) {
fprintf(stderr, "Unknown file format \"%s\"\n", qPrintable(format)); fprintf(stderr, outconv ? "File format \"%s\" cannot be used for output\n"
: "Unknown output file format \"%s\"\n", qPrintable(format));
return EXIT_FAILURE; return EXIT_FAILURE;
} }
} }
@ -184,6 +186,7 @@ int main(int argc, char *argv[])
break; break;
} }
} }
// If that failed, loadFile() shall supply a fallback.
} }
// now finally perform the conversion // now finally perform the conversion