Browse Source

imageconverter: print available plugins on importer/converter load error.

At first I wanted to add --importers / --converters options, but that
didn't really work because the argument parser complained that
input/output is not set.
pull/388/head
Vladimír Vondruš 7 years ago
parent
commit
d08e5c1638
  1. 10
      doc/changelog.dox
  2. 10
      src/Magnum/Trade/imageconverter.cpp

10
doc/changelog.dox

@ -36,7 +36,15 @@ See also:
- @subpage changelog-extras "Extras changelog"
- @subpage changelog-examples "Examples changelog"
@anchor changelog-latest
@section changelog-latest Changes since 2019.10
@subsection changelog-latest-changes Changes and improvements
@subsubsection changelog-latest-changes-trade Trade library
- For better usability, the @ref magnum-imageconverter "magnum-imageconverter"
utility now prints available importer/converter plugins when loading a
plugin fails
@section changelog-2019-10 2019.10

10
src/Magnum/Trade/imageconverter.cpp

@ -156,14 +156,20 @@ key=true.)")
args.value("plugin-dir").empty() ? std::string{} :
Utility::Directory::join(args.value("plugin-dir"), Trade::AbstractImporter::pluginSearchPaths()[0])};
Containers::Pointer<Trade::AbstractImporter> importer = importerManager.loadAndInstantiate(args.value("importer"));
if(!importer) return 1;
if(!importer) {
Debug{} << "Available importer plugins:" << Utility::String::join(importerManager.aliasList(), ", ");
return 1;
}
/* Load converter plugin */
PluginManager::Manager<Trade::AbstractImageConverter> converterManager{
args.value("plugin-dir").empty() ? std::string{} :
Utility::Directory::join(args.value("plugin-dir"), Trade::AbstractImageConverter::pluginSearchPaths()[0])};
Containers::Pointer<Trade::AbstractImageConverter> converter = converterManager.loadAndInstantiate(args.value("converter"));
if(!converter) return 2;
if(!converter) {
Debug{} << "Available converter plugins:" << Utility::String::join(converterManager.aliasList(), ", ");
return 2;
}
/* Set options, if passed */
setOptions(*importer, args.value("importer-options"));

Loading…
Cancel
Save