QString print_queries(QList<Query*> queries, int top) { QString output_string; QTextStream output(&output_string, QIODevice::WriteOnly); output <<"<table class=\"queryList\">" "<tr>" "<th>Total duration</th>" "<th>Executions</th>" "<th>Average duration</th>" "<th>User</th>" "<th>Database</th>" "<th>Query</th>" "</tr>"; for(int i=0; i<min(queries.size(), top); i++) { Query *q = queries.at(i); output << QString("<tr class=\"row%1\">" "<td class=\"relevantInformation top center\">%3 ms</td>" "<td class=\"top center\">%4</td>" "<td class=\"top center\">%5 ms</td>" "<td class=\"top center\">%6</td>" "<td class=\"top center\">%7</td>" "<td><pre onclick=\"highlight(this);\">%8</pre></td></tr>" "<tr><td colspan=\"6\">" "<input type=\"button\" class=\"examplesButton\" value=\"Show examples\" " "onclick=\"javascript:toggleExamples(this, %9);\" />" "<div id=\"example_%9\" \"class=\"examples c1\" style=\"display: none;\">") \ .arg(i%2) \ .arg(q->getTotalDuration() / 1000) \ .arg(q->getExecutions()) \ .arg(q->getAverageDuration() / 1000) \ .arg(q->getUser()) \ .arg(q->getDatabase()) \ .arg(escape(q->getStatement())) \ .arg(example); QStringList examples = q->getExamples(); QList<uint> durations = q->getDurations(); for(int j=0; j<examples.count(); j++) { output << QString("<div class=\"example%1 sql\">%2ms | <pre onclick=\"highlight(this);\">%3</pre></div>") \ .arg(j % 2) \ .arg(durations.at(j)) \ .arg(escape(examples.at(j))); } output << "</div></td></tr>"; example++; } output << "</table>"; return output_string; }