# # # patch "src/view/widgets/CertListBrowser.cpp" # from [504061148c90414210435cf7ad61f0820b64887c] # to [84ff550c7b531f549a9485a9ed65ca60a4bdfdfb] # # patch "src/view/widgets/CertListBrowser.h" # from [6228fa6e76611a1f06f5ec309cdefc03b5d9bf25] # to [4239a26eceecd5d00e334b517024b126a3193f26] # # patch "src/vocab.h" # from [cbfc15387b50095e8d7fec842b57e6c445400350] # to [45f37ad58d947f6ab3e7b07d314fd62f54c5356c] # ============================================================ --- src/view/widgets/CertListBrowser.cpp 504061148c90414210435cf7ad61f0820b64887c +++ src/view/widgets/CertListBrowser.cpp 84ff550c7b531f549a9485a9ed65ca60a4bdfdfb @@ -20,8 +20,30 @@ CertListBrowser::CertListBrowser(QWidget #include "MonotoneUtil.h" CertListBrowser::CertListBrowser(QWidget * parent) - : QTextBrowser(parent) {} + : QTextBrowser(parent) +{ + nameI18NMap.insert("author", tr("Author")); + nameI18NMap.insert("date", tr("Date")); + nameI18NMap.insert("branch", tr("Branch")); + nameI18NMap.insert("tag", tr("Tag")); + nameI18NMap.insert("changelog", tr("Changelog")); + nameI18NMap.insert("comment", tr("Comment")); + nameI18NMap.insert("testresult", tr("Test result")); + nameI18NMap.insert("suspend", tr("Suspended branch")); + // the order is important here! + certFormat.append(qMakePair(QString("date"), table)); + certFormat.append(qMakePair(QString("author"), table)); + certFormat.append(qMakePair(QString("branch"), table)); + certFormat.append(qMakePair(QString("tag"), table)); + certFormat.append(qMakePair(QString("suspend"), table)); + certFormat.append(qMakePair(QString("testresult"), table)); + certFormat.append(qMakePair(QString("changelog"), definition)); + certFormat.append(qMakePair(QString("comment"), definition)); + + certsPerTableRow = 2; +} + CertListBrowser::~CertListBrowser() {} void CertListBrowser::setKeyMap(const QMap & map) @@ -33,8 +55,15 @@ void CertListBrowser::setCertList(const { QString html = "" ; @@ -49,45 +78,111 @@ void CertListBrowser::setCertList(const else signerHtml = tr("

Signer: %1

").arg(signer); + QMap formattedCertValues; + foreach (const Cert & cert, list.findBySigner(signer)) { - QString name, value; + QString value; if (cert.name == "date") { - name = tr("Date"); value = cert.dateTimeValue().toString( Qt::DefaultLocaleShortDate ); } - else if (cert.name == "changelog") + else if (cert.name == "changelog" || + cert.name == "comment") { - name = tr("Changelog"); value = cert.htmlValue(); } - else if (cert.name == "comment") + else { - name = tr("Comment"); - value = cert.htmlValue(); + value = cert.value; + value.replace("<", "<"); } + + formattedCertValues[cert.name].push_back(value); + } + + format_type current = none; + int certCounter = 0; + + for (int i=0; i%1%2"); + } else { - // localize common certs - if (cert.name == "author") - name = tr("Author"); - else if (cert.name == "branch") - name = tr("Branch"); - else if (cert.name == "tag") - name = tr("Tag"); - else - name = cert.name; + format = QString("
%1
%2
"); + } - value = cert.value; + certHtml += format.arg(nameI18NMap.value(certName)) + .arg(formattedCertValues.value(certName).join(", ")); + + formattedCertValues.remove(certName); + + certCounter++; + } + + if (formattedCertValues.size() > 0) + { + if (current != table) + { + if (current == definition) + certHtml += ""; + + certHtml += ""; + certCounter = 0; } - certHtml += QString("
%1
%2
").arg(name).arg(value); + QMapIterator it(formattedCertValues); + while (it.hasNext()) + { + it.next(); + if (certCounter % certsPerTableRow == 0 && certCounter != 0) + certHtml += ""; + certHtml += QString("") + .arg(nameI18NMap.value(it.key())) + .arg(formattedCertValues.value(it.key()).join(", ")); + } } - html += QString("%1
%2
").arg(signerHtml).arg(certHtml); + if (current == table) + { + certHtml += "
%1%2
"; + } + else if (current == definition) + { + certHtml += ""; + } + + html += signerHtml + certHtml; } setHtml(html); ============================================================ --- src/view/widgets/CertListBrowser.h 6228fa6e76611a1f06f5ec309cdefc03b5d9bf25 +++ src/view/widgets/CertListBrowser.h 4239a26eceecd5d00e334b517024b126a3193f26 @@ -36,6 +36,11 @@ private: private: QMap keyMap; + QMap nameI18NMap; + + enum format_type { none, table, definition }; + QList > certFormat; + int certsPerTableRow; }; #endif ============================================================ --- src/vocab.h cbfc15387b50095e8d7fec842b57e6c445400350 +++ src/vocab.h 45f37ad58d947f6ab3e7b07d314fd62f54c5356c @@ -134,7 +134,7 @@ struct Cert else { inList = true; - htmlValue += "
    \n"; + htmlValue += "
      \n"; } htmlValue += "
    • " + line.mid(1).trimmed();