avoid constructing intermediate QList while iterating QMap or QHash
update copyright