# # # patch "src/model/Ancestors.cpp" # from [39d7b349ea3738d08ccd4a37e70c830876d02ce9] # to [7d07e9a3bcb9e2dba0933333cbb51f4037ee0e9f] # # patch "src/model/Certs.cpp" # from [8a92003203aa76ddf3620920602a2da4816415ec] # to [ca1ec86b2b21a2547e9028a90c3e25094f655878] # # patch "src/model/ChangesetModel.h" # from [53847dacf2a5118637ce64f2b193bb93744616a0] # to [c5efef03b82eb660d382f3e3a3a79bf404991f3a] # ============================================================ --- src/model/Ancestors.cpp 39d7b349ea3738d08ccd4a37e70c830876d02ce9 +++ src/model/Ancestors.cpp 7d07e9a3bcb9e2dba0933333cbb51f4037ee0e9f @@ -17,9 +17,8 @@ * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ - + #include "Ancestors.h" -#include "Monotone.h" #include @@ -44,7 +43,7 @@ void Ancestors::readAncestors(const QStr selRevisions->clear(); // reset the view reset(); - + MonotoneTask task(QStringList() << "ancestors" << parents); AutomateCommand::enqueueTask(task); } @@ -55,14 +54,14 @@ void Ancestors::processTaskResult(const { emit invalidAncestor(task.getOutputUtf8()); } - + if (task.getReturnCode() != 0) { C(QString("Command returned with a non-zero return code (%1)") .arg(task.getOutputUtf8())); return; } - + if (selRevisions > 0) { selRevisions->clear(); @@ -90,7 +89,7 @@ QVariant Ancestors::data(const QModelInd { return QVariant(); } - + if (role == Qt::FontRole) { QFont font; @@ -98,14 +97,14 @@ QVariant Ancestors::data(const QModelInd font.setFamily("Courier"); return QVariant(font); } - + if (role == Qt::DisplayRole) { int row = index.row(); if (row >= selRevisions->size()) return QVariant(); return QVariant(selRevisions->at(row)); } - + return QVariant(); } @@ -140,7 +139,7 @@ QModelIndex Ancestors::index(int row, in { return QModelIndex(); } - + return createIndex(row, column, 0); } ============================================================ --- src/model/Certs.cpp 8a92003203aa76ddf3620920602a2da4816415ec +++ src/model/Certs.cpp ca1ec86b2b21a2547e9028a90c3e25094f655878 @@ -17,9 +17,8 @@ * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ - + #include "Certs.h" -#include "Monotone.h" #include "BasicIOParser.h" Certs::Certs(QObject * parent, const QString & db) @@ -40,7 +39,7 @@ void Certs::readCerts(const QString & re certs->clear(); // reset the view reset(); - + if (rev.size() == 0) return; MonotoneTask task(QStringList() << "certs" << rev); @@ -55,7 +54,7 @@ void Certs::processTaskResult(const Mono .arg(task.getOutputUtf8())); return; } - + BasicIOParser parser(task.getOutputUtf8()); I(parser.parse()); StanzaList list = parser.getStanzas(); @@ -63,79 +62,79 @@ void Certs::processTaskResult(const Mono for (int i=0, size = list.size(); i < size; ++i) { Stanza stanza = list.at(i); - + Cert cert; - + bool isItem = false; - + for (int j=0, size2 = stanza.size(); j < size2; j++) { StanzaEntry entry = stanza.at(j); - + // we're now only interested in stanzas starting with a "key" entry if (j == 0 && entry.sym != "key") break; - + isItem = true; - + if (entry.sym == "key") { I(entry.vals.size() == 1); cert.key = entry.vals.at(0); continue; } - + if (entry.sym == "name") { I(entry.vals.size() == 1); cert.name = entry.vals.at(0); continue; } - + if (entry.sym == "value") { I(entry.vals.size() == 1); cert.value = entry.vals.at(0).trimmed(); continue; } - + if (entry.sym == "signature") { I(entry.vals.size() == 1); QString sig = entry.vals.at(0); - + if (sig == "ok") cert.signature = Cert::Ok; else if (sig == "bad") cert.signature = Cert::Bad; else if (sig == "unknown") cert.signature = Cert::Unknown; - else + else W(QString("Unknown cert signature state '%1'.").arg(sig)); - + continue; } - + if (entry.sym == "trust") { I(entry.vals.size() == 1); QString trust = entry.vals.at(0); - + if (trust == "trusted") cert.trust = Cert::Trusted; else if (trust == "untrusted") cert.trust = Cert::Untrusted; - else + else W(QString("Unknown cert trust '%1'.").arg(trust)); - + continue; } - + W(QString("Unknown symbol %1.").arg(entry.sym)); } - + // check if we really processed an item entry if (!isItem) continue; certs->append(cert); - } - + } + // reset any connected view(s) reset(); - + // signal that we've finished (whoever listens to that) emit certsRead(); } @@ -152,23 +151,23 @@ QVariant Certs::data(const QModelIndex & { return QVariant(); } - + if (role == Qt::TextAlignmentRole) { Qt::Alignment flags = Qt::AlignLeft | Qt::AlignTop; return QVariant(flags); } - + if (role != Qt::DisplayRole) { return QVariant(); } - + int row = index.row(); if (row >= certs->size()) return QVariant(); - + Cert cert = certs->at(row); - + switch (index.column()) { case 0: return QVariant(cert.key); @@ -188,7 +187,7 @@ QVariant Certs::data(const QModelIndex & case Cert::Untrusted: return QVariant(tr("untrusted")); } } - + return QVariant(); } ============================================================ --- src/model/ChangesetModel.h 53847dacf2a5118637ce64f2b193bb93744616a0 +++ src/model/ChangesetModel.h c5efef03b82eb660d382f3e3a3a79bf404991f3a @@ -40,7 +40,6 @@ struct Changeset QString changelog; }; - class ChangesetCerts : public Certs { Q_OBJECT @@ -66,7 +65,7 @@ private slots: { Changeset change; change.revision = revision; - + // FIXME: there is no support for multiple certs with the same // key, i.e. accidential clean merges or multiple author certs for (int i=0, j=certs->size(); i