Mercurial > hg > easyhg
comparison 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 |
comparison
equal
deleted
inserted
replaced
42:9a89dedf260a | 43:c32067cd19f8 |
---|---|
6 #include <QtCore> | 6 #include <QtCore> |
7 #include <QClipboard> | 7 #include <QClipboard> |
8 | 8 |
9 #include "hgexpwidget.h" | 9 #include "hgexpwidget.h" |
10 #include "common.h" | 10 #include "common.h" |
11 #include "logparser.h" | |
12 #include "changeset.h" | |
13 #include "changesetitem.h" | |
11 | 14 |
12 #define REMOTE_REPO_STR "Remote repository: " | 15 #define REMOTE_REPO_STR "Remote repository: " |
13 #define LOCAL_REPO_STR "Local repository: " | 16 #define LOCAL_REPO_STR "Local repository: " |
14 #define WORKFOLDER_STR "Working folder: " | 17 #define WORKFOLDER_STR "Working folder: " |
15 | 18 |
82 mainLayout -> addWidget(grpRemoteRepo, 1); | 85 mainLayout -> addWidget(grpRemoteRepo, 1); |
83 mainLayout -> addWidget(grpLocalRepo, 8); | 86 mainLayout -> addWidget(grpLocalRepo, 8); |
84 mainLayout -> addWidget(grpWorkFolder, 12); | 87 mainLayout -> addWidget(grpWorkFolder, 12); |
85 addTab(workPageWidget, tr("Work")); | 88 addTab(workPageWidget, tr("Work")); |
86 | 89 |
90 // History graph page | |
91 historyGraphPageWidget = new QGraphicsView; | |
92 addTab(historyGraphPageWidget, tr("History (graph)")); | |
93 | |
94 | |
87 //History page | 95 //History page |
88 //History page | 96 //History page |
89 //History page | 97 //History page |
90 historyPageWidget = new QWidget; | 98 historyPageWidget = new QWidget; |
91 localRepoHgLogList = new QListWidget; | 99 localRepoHgLogList = new QListWidget; |
230 void HgExpWidget::updateLocalRepoHgLogList(QString hgLogList) | 238 void HgExpWidget::updateLocalRepoHgLogList(QString hgLogList) |
231 { | 239 { |
232 localRepoHgLogList -> clear(); | 240 localRepoHgLogList -> clear(); |
233 localRepoHgLogList -> addItems(splitChangeSets(hgLogList)); | 241 localRepoHgLogList -> addItems(splitChangeSets(hgLogList)); |
234 | 242 |
235 } | 243 //!!! |
244 QGraphicsView *gv = static_cast<QGraphicsView *>(historyGraphPageWidget); | |
245 gv->scene()->deleteLater(); | |
246 QGraphicsScene *scene = new QGraphicsScene(); | |
247 Changesets csets = parseChangeSets(hgLogList); | |
248 foreach (Changeset *cs, csets) { | |
249 ChangesetItem *item = new ChangesetItem(cs); | |
250 item->setX(0); | |
251 item->setY(cs->number() * 100); | |
252 scene->addItem(item); | |
253 } | |
254 gv->setScene(scene); | |
255 } | |
256 | |
236 | 257 |
237 | 258 |
238 int HgExpWidget::findLineStart(int nowIndex, QString str) | 259 int HgExpWidget::findLineStart(int nowIndex, QString str) |
239 { | 260 { |
240 if (nowIndex < 0) | 261 if (nowIndex < 0) |
254 } | 275 } |
255 | 276 |
256 | 277 |
257 QStringList HgExpWidget::splitChangeSets(QString chgSetsStr) | 278 QStringList HgExpWidget::splitChangeSets(QString chgSetsStr) |
258 { | 279 { |
280 return LogParser(chgSetsStr).split(); | |
281 /* | |
259 int currChgSet; | 282 int currChgSet; |
260 int currChgSetLineStart; | 283 int currChgSetLineStart; |
261 | 284 |
262 int prevChgSet; | 285 int prevChgSet; |
263 QStringList tmp; | 286 QStringList tmp; |
291 tmp.append(chgSetsStr.mid(0)); | 314 tmp.append(chgSetsStr.mid(0)); |
292 } | 315 } |
293 } | 316 } |
294 | 317 |
295 return tmp; | 318 return tmp; |
319 */ | |
320 } | |
321 | |
322 Changesets HgExpWidget::parseChangeSets(QString changeSetsStr) | |
323 { | |
324 Changesets csets; | |
325 LogList log = LogParser(changeSetsStr).parse(); | |
326 foreach (LogEntry e, log) { | |
327 Changeset *cs = new Changeset(); | |
328 foreach (QString key, e.keys()) { | |
329 cs->setProperty(key.toLocal8Bit().data(), e.value(key)); | |
330 } | |
331 csets.push_back(cs); | |
332 } | |
333 return csets; | |
296 } | 334 } |
297 | 335 |
298 QString HgExpWidget::getCurrentFileListLine() | 336 QString HgExpWidget::getCurrentFileListLine() |
299 { | 337 { |
300 if (workFolderFileList -> currentItem() != NULL) | 338 if (workFolderFileList -> currentItem() != NULL) |