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)