QVariant JoinFilter::doFilter( const QVariant& input, const QVariant &argument, bool autoescape ) const { QVariantList varList = MetaType::toVariantList( input ); QListIterator<QVariant> i( varList ); QString ret; while ( i.hasNext() ) { QVariant var = i.next(); Grantlee::SafeString s = getSafeString( var ); if ( autoescape ) s = conditionalEscape( s ); ret.append( s ); if ( i.hasNext() ) { SafeString argString = getSafeString( argument ); ret.append( conditionalEscape( argString ) ); } } return markSafe( ret ); }
QVariant JoinFilter::doFilter(const QVariant &input, const QVariant &argument, bool autoescape) const { if (!input.canConvert<QVariantList>()) return QVariant(); auto iter = input.value<QSequentialIterable>(); QString ret; for (auto it = iter.begin(); it != iter.end(); ++it) { const auto var = *it; auto s = getSafeString(var); if (autoescape) s = conditionalEscape(s); ret.append(s); if ((it + 1) != iter.end()) { auto argString = getSafeString(argument); ret.append(conditionalEscape(argString)); } } return markSafe(ret); }