annotate src/changesetscene.h @ 425:ad106f5fe75f

Add "Ignore Files" and "Edit Ignored List" to Work menu (latter is subsumed from Advanced menu formerly). Also subsume Serve via HTTP into File menu as Share Repository, and add a more helpful description of it. Remove Advanced menu
author Chris Cannam
date Thu, 23 Jun 2011 10:58:32 +0100
parents 75003687f364
children 306a62fe851e
rev   line source
Chris@119 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@119 2
Chris@119 3 /*
Chris@119 4 EasyMercurial
Chris@119 5
Chris@119 6 Based on HgExplorer by Jari Korhonen
Chris@119 7 Copyright (c) 2010 Jari Korhonen
Chris@244 8 Copyright (c) 2011 Chris Cannam
Chris@244 9 Copyright (c) 2011 Queen Mary, University of London
Chris@119 10
Chris@119 11 This program is free software; you can redistribute it and/or
Chris@119 12 modify it under the terms of the GNU General Public License as
Chris@119 13 published by the Free Software Foundation; either version 2 of the
Chris@119 14 License, or (at your option) any later version. See the file
Chris@119 15 COPYING included with this distribution for more information.
Chris@119 16 */
Chris@119 17
Chris@119 18 #ifndef CHANGESETSCENE_H
Chris@119 19 #define CHANGESETSCENE_H
Chris@119 20
Chris@119 21 #include <QGraphicsScene>
Chris@397 22 #include <QMap>
Chris@119 23
Chris@119 24 class ChangesetItem;
Chris@289 25 class Changeset;
Chris@141 26 class UncommittedItem;
Chris@119 27
Chris@119 28 class ChangesetScene : public QGraphicsScene
Chris@119 29 {
Chris@119 30 Q_OBJECT
Chris@119 31
Chris@119 32 public:
Chris@119 33 ChangesetScene();
Chris@119 34
Chris@141 35 void addChangesetItem(ChangesetItem *item);
Chris@141 36 void addUncommittedItem(UncommittedItem *item);
Chris@397 37
Chris@397 38 void addDateRange(QString label, int minrow, int nrows, bool even);
Chris@397 39
Chris@397 40 struct DateRange {
Chris@397 41 QString label;
Chris@397 42 int minrow;
Chris@397 43 int nrows;
Chris@397 44 bool even;
Chris@397 45 };
Chris@397 46
Chris@397 47 typedef QMap<int, DateRange> DateRanges; // key is minrow
Chris@397 48 DateRanges getDateRanges() const { return m_dateRanges; }
Chris@397 49
Chris@397 50 void itemAddCompleted(); // recalculate scene rect
Chris@141 51
Chris@281 52 ChangesetItem *getItemById(QString id); // Slow: traversal required
Chris@281 53
Chris@141 54 signals:
Chris@141 55 void commit();
Chris@141 56 void revert();
Chris@141 57 void diffWorkingFolder();
Chris@168 58 void showSummary();
Chris@153 59 void showWork();
Chris@311 60 void newBranch();
Chris@311 61 void noBranch();
Chris@141 62
Chris@141 63 void updateTo(QString id);
Chris@148 64 void diffToParent(QString id, QString parent);
Chris@289 65 void showSummary(Changeset *);
Chris@141 66 void diffToCurrent(QString id);
Chris@141 67 void mergeFrom(QString id);
Chris@278 68 void newBranch(QString id);
Chris@141 69 void tag(QString id);
Chris@141 70
Chris@168 71 private slots:
Chris@119 72 void changesetDetailShown();
Chris@168 73 void changesetDetailHidden();
Chris@402 74 void recalculateSceneRect();
Chris@397 75
Chris@397 76 protected:
Chris@397 77 void drawBackground(QPainter *, const QRectF &);
Chris@119 78
Chris@119 79 private:
Chris@119 80 ChangesetItem *m_detailShown;
Chris@397 81 DateRanges m_dateRanges;
Chris@119 82 };
Chris@119 83
Chris@119 84 #endif