diff --git a/ext/libclementine-tagreader/tagreader.cpp b/ext/libclementine-tagreader/tagreader.cpp index dbe0784a8..3bf784c96 100644 --- a/ext/libclementine-tagreader/tagreader.cpp +++ b/ext/libclementine-tagreader/tagreader.cpp @@ -47,6 +47,7 @@ #include #include #include +#include #include #include #include @@ -87,6 +88,22 @@ class TagLibFileRefFactory : public FileRefFactory { } }; +// Handler to push TagLib messages to qLog instead of printing to stderr. +class TagReaderDebugListener : public TagLib::DebugListener { + private: + TagReaderDebugListener() { + // Install handler. + TagLib::setDebugListener(this); + } + + virtual void printMessage(const TagLib::String &msg) override { + // Remove trailing newline. + qLog(Debug).noquote() << TStringToQString(msg).trimmed(); + } + static TagReaderDebugListener listener_; +}; +TagReaderDebugListener TagReaderDebugListener::listener_; + namespace { TagLib::String StdStringToTaglibString(const std::string& s) {