From d08e5c16380f771831442fd6d5891781fb10ec55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Fri, 1 Nov 2019 21:57:44 +0100 Subject: [PATCH] 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. --- doc/changelog.dox | 10 +++++++++- src/Magnum/Trade/imageconverter.cpp | 10 ++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/doc/changelog.dox b/doc/changelog.dox index 1850f1ada..4fc170535 100644 --- a/doc/changelog.dox +++ b/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 diff --git a/src/Magnum/Trade/imageconverter.cpp b/src/Magnum/Trade/imageconverter.cpp index 32268b34d..cc10e5168 100644 --- a/src/Magnum/Trade/imageconverter.cpp +++ b/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 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 converterManager{ args.value("plugin-dir").empty() ? std::string{} : Utility::Directory::join(args.value("plugin-dir"), Trade::AbstractImageConverter::pluginSearchPaths()[0])}; Containers::Pointer 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"));