Example #1
0
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;
}