#
#
# patch "res/forms/dialogs/annotate.ui"
# from [4284de7e03e359a4f93edafdd2fb074e46e5ef35]
# to [bdef344eee4af86e9709b541271778319a3316ff]
#
# patch "src/monotone/MonotoneUtil.cpp"
# from [9558be31f39398c04dbdb53a24d2a62ee3494604]
# to [fb11750176e141b155068283c4b041958ea7a62b]
#
# patch "src/monotone/MonotoneUtil.h"
# from [0ba7e01b0566dee10d08162b05d48cbd0fa78ccd]
# to [9364f0fee38d44cd3cc0d8f6f4dbf28e21d3db64]
#
# patch "src/view/dialogs/AnnotateFile.cpp"
# from [692f21e4684bfcf0617b4590475e8227b089b13a]
# to [9d9aae6eaa58f6b1f01872500ced7a7097664d49]
#
# patch "src/view/dialogs/AnnotateFile.h"
# from [6d8d61ba66b1f6691a5bf5b56959ccfb0331a016]
# to [7f3392e328b31a5daf075dd8f95491d6846ffe57]
#
# patch "src/view/dialogs/CommitRevision.cpp"
# from [961367f97bfd8c5ac804752bda21e17f6a92961d]
# to [cea026866a5a7b92bfe0784e1741d009069f2a25]
#
# patch "src/view/dialogs/DatabaseDialogManager.cpp"
# from [51cc7d27d32e6996f1b6a22bd30b2ff8f737b349]
# to [1b3f4989aa6ed7892228a5066057baee3aeb2712]
#
# patch "src/view/dialogs/FileHistory.cpp"
# from [363e3cd95e7cc9938f3a7c694310f0622da224ef]
# to [39a8761450d502b9479f27973c791e155b35cf54]
#
# patch "src/view/dialogs/Netsync.cpp"
# from [8cad65f0505bc50ecb0acdcf24be36ec2081d18a]
# to [05beca66608fae00fd596121e46c4ccf9f797d2e]
#
# patch "src/view/dialogs/SelectRevision.cpp"
# from [9ebfde2a43baa073075f4608586bc1b20a8b1d6d]
# to [8300d701a7249245e851c34b13b4d55058aed0ac]
#
# patch "src/view/widgets/CertListBrowser.cpp"
# from [d5308d39e3f7ea8e7cc7d4cf1561967079c213ac]
# to [03420e647fb84bc901b8e17c5166ce7f509bf4c6]
#
# patch "src/view/widgets/CertListBrowser.h"
# from [db0ffa6a52db23b4a74b5f6069c8243ea229a3ed]
# to [6228fa6e76611a1f06f5ec309cdefc03b5d9bf25]
#
============================================================
--- res/forms/dialogs/annotate.ui 4284de7e03e359a4f93edafdd2fb074e46e5ef35
+++ res/forms/dialogs/annotate.ui bdef344eee4af86e9709b541271778319a3316ff
@@ -85,7 +85,7 @@
-
-
+
============================================================
--- src/monotone/MonotoneUtil.cpp 9558be31f39398c04dbdb53a24d2a62ee3494604
+++ src/monotone/MonotoneUtil.cpp fb11750176e141b155068283c4b041958ea7a62b
@@ -294,7 +294,7 @@ FileEntryList MonotoneUtil::getRevisionM
return entries;
}
-QMap MonotoneUtil::getPrivateKeyList(const DatabaseFile & db)
+QMap MonotoneUtil::getPublicKeyMap(const DatabaseFile & db)
{
MonotoneTaskPtr task(new MonotoneTask(QStringList() << "keys"));
runSynchronousDatabaseTask(db, task);
@@ -319,6 +319,59 @@ QMap MonotoneUtil::get
foreach (const Stanza & st, stanzas)
{
QString lastHash;
+ QString lastLocalName;
+
+ foreach (const StanzaEntry & en, st)
+ {
+ if (en.sym == "hash")
+ {
+ lastHash = en.hash;
+ continue;
+ }
+
+ if (en.sym == "local_name")
+ {
+ lastLocalName = en.vals.at(0);
+ continue;
+ }
+
+ if (en.sym == "public_location")
+ {
+ I(!lastHash.isEmpty() && !lastLocalName.isEmpty());
+ keys.insert(lastHash, QObject::tr("%1 (%2...)")
+ .arg(lastLocalName).arg(lastHash.left(8)));
+ break;
+ }
+ }
+ }
+ return keys;
+}
+
+QMap MonotoneUtil::getPrivateKeyMap(const DatabaseFile & db)
+{
+ MonotoneTaskPtr task(new MonotoneTask(QStringList() << "keys"));
+ runSynchronousDatabaseTask(db, task);
+ if (!task->isFinished())
+ {
+ C(QString("task '%1' aborted").arg(QString(task->getEncodedInput())));
+ return QMap();
+ }
+
+ if (task->getReturnCode() > 0)
+ {
+ C(QString("Couldn't query keys: %1")
+ .arg(task->getLast(MonotoneTask::Error)));
+ return QMap();
+ }
+
+ BasicIOParser parser(task->getDecodedOutput());
+ I(parser.parse());
+
+ QMap keys;
+ StanzaList stanzas = parser.getStanzas();
+ foreach (const Stanza & st, stanzas)
+ {
+ QString lastHash;
QString lastGivenName;
foreach (const StanzaEntry & en, st)
============================================================
--- src/monotone/MonotoneUtil.h 0ba7e01b0566dee10d08162b05d48cbd0fa78ccd
+++ src/monotone/MonotoneUtil.h 9364f0fee38d44cd3cc0d8f6f4dbf28e21d3db64
@@ -38,7 +38,8 @@ public:
static QStringList resolveSelector(const DatabaseFile &, const QString &);
static CertList getCerts(const DatabaseFile &, const QString &);
static FileEntryList getRevisionManifest(const DatabaseFile &, const QString &);
- static QMap getPrivateKeyList(const DatabaseFile &);
+ static QMap getPublicKeyMap(const DatabaseFile &);
+ static QMap getPrivateKeyMap(const DatabaseFile &);
static QStringList getPreviousContentMarks(const DatabaseFile &, const QString &, const QString &);
static QString getCorrespondingPath(const DatabaseFile &, const QString &, const QString &, const QString &);
static QString getFileId(const DatabaseFile &, const QString &);
============================================================
--- src/view/dialogs/AnnotateFile.cpp 692f21e4684bfcf0617b4590475e8227b089b13a
+++ src/view/dialogs/AnnotateFile.cpp 9d9aae6eaa58f6b1f01872500ced7a7097664d49
@@ -22,7 +22,8 @@
#include
#include
-AnnotateFile::AnnotateFile(QWidget * parent) : Dialog(parent), annotateModel(0)
+AnnotateFile::AnnotateFile(QWidget * parent, const DatabaseFile & db)
+ : Dialog(parent), databaseFile(db), annotateModel(0)
{
setupUi(this);
Dialog::init();
@@ -34,6 +35,8 @@ AnnotateFile::AnnotateFile(QWidget * par
baseRevision, SLOT(clear())
);
+ certList->setKeyMap(MonotoneUtil::getPublicKeyMap(databaseFile));
+
annotateModel = new Annotate(this);
annotationView->setModel(annotateModel);
@@ -44,7 +47,7 @@ AnnotateFile::AnnotateFile(QWidget * par
connect(
annotateModel, SIGNAL(currentCertList(const CertList &)),
- changelog, SLOT(setCertList(const CertList &))
+ certList, SLOT(setCertList(const CertList &))
);
connect(
@@ -80,15 +83,14 @@ AnnotateFile::~AnnotateFile()
if (annotateModel) delete annotateModel;
}
-void AnnotateFile::read(const DatabaseFile & db, const QString & rev, const QString & file)
+void AnnotateFile::read(const QString & rev, const QString & file)
{
if (rev == annotateModel->getBaseRevision() && file == filePath)
{
return;
}
- databaseFile = db;
- filePath = file;
+ filePath = file;
int pos = baseRevision->findText(rev);
if (pos == -1)
@@ -130,7 +132,7 @@ void AnnotateFile::setSelectedRevision(c
return;
}
- read(databaseFile, rev, newPath);
+ read(rev, newPath);
}
void AnnotateFile::rowsSelected(const QModelIndexList & indexes)
============================================================
--- src/view/dialogs/AnnotateFile.h 6d8d61ba66b1f6691a5bf5b56959ccfb0331a016
+++ src/view/dialogs/AnnotateFile.h 7f3392e328b31a5daf075dd8f95491d6846ffe57
@@ -29,11 +29,11 @@ public:
Q_OBJECT
public:
- AnnotateFile(QWidget *);
+ AnnotateFile(QWidget *, const DatabaseFile &);
~AnnotateFile();
public slots:
- void read(const DatabaseFile &, const QString &, const QString &);
+ void read(const QString &, const QString &);
void setSelectedRevision(const QString &);
signals:
@@ -43,8 +43,8 @@ private:
void revisionDiff(const QString &, const QString &, const QString &);
private:
+ DatabaseFile databaseFile;
Annotate * annotateModel;
- DatabaseFile databaseFile;
QString filePath;
private slots:
============================================================
--- src/view/dialogs/CommitRevision.cpp 961367f97bfd8c5ac804752bda21e17f6a92961d
+++ src/view/dialogs/CommitRevision.cpp cea026866a5a7b92bfe0784e1741d009069f2a25
@@ -92,7 +92,7 @@ void CommitRevision::readWorkspaceRevisi
);
QMap privateKeys =
- MonotoneUtil::getPrivateKeyList(MonotoneUtil::getDatabaseFile(workspacePath));
+ MonotoneUtil::getPrivateKeyMap(MonotoneUtil::getDatabaseFile(workspacePath));
if (privateKeys.size() == 0)
{
============================================================
--- src/view/dialogs/DatabaseDialogManager.cpp 51cc7d27d32e6996f1b6a22bd30b2ff8f737b349
+++ src/view/dialogs/DatabaseDialogManager.cpp 1b3f4989aa6ed7892228a5066057baee3aeb2712
@@ -300,7 +300,7 @@ void DatabaseDialogManager::showAnnotati
{
if (!annotateFile)
{
- annotateFile = new AnnotateFile(parentWidget());
+ annotateFile = new AnnotateFile(parentWidget(), databaseFile);
connect(
annotateFile, SIGNAL(selectRevision()),
@@ -328,7 +328,7 @@ void DatabaseDialogManager::showAnnotati
);
}
- annotateFile->read(databaseFile, rev, file);
+ annotateFile->read(rev, file);
showDialog(annotateFile);
}
============================================================
--- src/view/dialogs/FileHistory.cpp 363e3cd95e7cc9938f3a7c694310f0622da224ef
+++ src/view/dialogs/FileHistory.cpp 39a8761450d502b9479f27973c791e155b35cf54
@@ -17,6 +17,7 @@
***************************************************************************/
#include "FileHistory.h"
+#include "MonotoneUtil.h"
FileHistory::FileHistory(QWidget * parent, const DatabaseFile & databaseFile)
: Dialog(parent)
@@ -26,6 +27,8 @@ FileHistory::FileHistory(QWidget * paren
splitter->restoreState();
+ certList->setKeyMap(MonotoneUtil::getPublicKeyMap(databaseFile));
+
changeModel = new GetContentChanged(this, databaseFile);
certsModel = new Certs(this, databaseFile);
============================================================
--- src/view/dialogs/Netsync.cpp 8cad65f0505bc50ecb0acdcf24be36ec2081d18a
+++ src/view/dialogs/Netsync.cpp 05beca66608fae00fd596121e46c4ccf9f797d2e
@@ -70,7 +70,7 @@ void Netsync::init()
}
QMap privateKeys =
- MonotoneUtil::getPrivateKeyList(db);
+ MonotoneUtil::getPrivateKeyMap(db);
keys->clear();
keys->addItem(tr(""), QString());
============================================================
--- src/view/dialogs/SelectRevision.cpp 9ebfde2a43baa073075f4608586bc1b20a8b1d6d
+++ src/view/dialogs/SelectRevision.cpp 8300d701a7249245e851c34b13b4d55058aed0ac
@@ -18,6 +18,7 @@
#include "SelectRevision.h"
#include "Settings.h"
+#include "MonotoneUtil.h"
#include
#include
@@ -61,6 +62,8 @@ SelectRevision::SelectRevision(QWidget *
// assign the models to the views
revisionList->setModel(sortModel);
+ certList->setKeyMap(MonotoneUtil::getPublicKeyMap(databaseFile));
+
connect(
certsModel, SIGNAL(certsRead(const CertList &)),
certList, SLOT(setCertList(const CertList &))
============================================================
--- src/view/widgets/CertListBrowser.cpp d5308d39e3f7ea8e7cc7d4cf1561967079c213ac
+++ src/view/widgets/CertListBrowser.cpp 03420e647fb84bc901b8e17c5166ce7f509bf4c6
@@ -24,6 +24,11 @@ CertListBrowser::~CertListBrowser() {}
CertListBrowser::~CertListBrowser() {}
+void CertListBrowser::setKeyMap(const QMap & map)
+{
+ keyMap = map;
+}
+
void CertListBrowser::setCertList(const CertList & list)
{
QString html =
@@ -37,8 +42,13 @@ void CertListBrowser::setCertList(const
foreach (const QString & signer, signers)
{
- QString certHtml, signerHtml = tr("Signer: %1
").arg(signer);
+ QString certHtml, signerHtml;
+ if (keyMap.contains(signer))
+ signerHtml = tr("Signer: %1
").arg(keyMap.value(signer));
+ else
+ signerHtml = tr("Signer: %1
").arg(signer);
+
foreach (const Cert & cert, list.findBySigner(signer))
{
QString name, value;
============================================================
--- src/view/widgets/CertListBrowser.h db0ffa6a52db23b4a74b5f6069c8243ea229a3ed
+++ src/view/widgets/CertListBrowser.h 6228fa6e76611a1f06f5ec309cdefc03b5d9bf25
@@ -21,6 +21,7 @@
#include "vocab.h"
#include
+#include
class CertListBrowser : public QTextBrowser
{
@@ -28,9 +29,13 @@ public:
public:
CertListBrowser(QWidget *);
~CertListBrowser();
+ void setKeyMap(const QMap &);
public slots:
void setCertList(const CertList &);
+
+private:
+ QMap keyMap;
};
#endif