Mercurial > hg > easyhg
diff hgexpwidget.cpp @ 43:c32067cd19f8
* Some experiments towards a graph history view
author | Chris Cannam |
---|---|
date | Sun, 07 Nov 2010 19:59:54 +0000 |
parents | 4f307720272f |
children | bed7ab59f62e |
line wrap: on
line diff
--- a/hgexpwidget.cpp Thu Jun 24 23:41:21 2010 +0300 +++ b/hgexpwidget.cpp Sun Nov 07 19:59:54 2010 +0000 @@ -8,6 +8,9 @@ #include "hgexpwidget.h" #include "common.h" +#include "logparser.h" +#include "changeset.h" +#include "changesetitem.h" #define REMOTE_REPO_STR "Remote repository: " #define LOCAL_REPO_STR "Local repository: " @@ -84,6 +87,11 @@ mainLayout -> addWidget(grpWorkFolder, 12); addTab(workPageWidget, tr("Work")); + // History graph page + historyGraphPageWidget = new QGraphicsView; + addTab(historyGraphPageWidget, tr("History (graph)")); + + //History page //History page //History page @@ -232,9 +240,22 @@ localRepoHgLogList -> clear(); localRepoHgLogList -> addItems(splitChangeSets(hgLogList)); + //!!! + QGraphicsView *gv = static_cast<QGraphicsView *>(historyGraphPageWidget); + gv->scene()->deleteLater(); + QGraphicsScene *scene = new QGraphicsScene(); + Changesets csets = parseChangeSets(hgLogList); + foreach (Changeset *cs, csets) { + ChangesetItem *item = new ChangesetItem(cs); + item->setX(0); + item->setY(cs->number() * 100); + scene->addItem(item); + } + gv->setScene(scene); } + int HgExpWidget::findLineStart(int nowIndex, QString str) { if (nowIndex < 0) @@ -256,6 +277,8 @@ QStringList HgExpWidget::splitChangeSets(QString chgSetsStr) { + return LogParser(chgSetsStr).split(); + /* int currChgSet; int currChgSetLineStart; @@ -293,6 +316,21 @@ } return tmp; + */ +} + +Changesets HgExpWidget::parseChangeSets(QString changeSetsStr) +{ + Changesets csets; + LogList log = LogParser(changeSetsStr).parse(); + foreach (LogEntry e, log) { + Changeset *cs = new Changeset(); + foreach (QString key, e.keys()) { + cs->setProperty(key.toLocal8Bit().data(), e.value(key)); + } + csets.push_back(cs); + } + return csets; } QString HgExpWidget::getCurrentFileListLine()