annotate changesetitem.h @ 145:644bd31e8301

* Include the uncommitted item in general graph layout (in case it is not at the head, when other items will need to avoid it)
author Chris Cannam
date Wed, 01 Dec 2010 17:41:14 +0000
parents e6c6b88d19b9
children 2fef6b0dfbe8
rev   line source
Chris@57 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@57 2
Chris@57 3 /*
Chris@57 4 EasyMercurial
Chris@57 5
Chris@57 6 Based on HgExplorer by Jari Korhonen
Chris@57 7 Copyright (c) 2010 Jari Korhonen
Chris@57 8 Copyright (c) 2010 Chris Cannam
Chris@57 9 Copyright (c) 2010 Queen Mary, University of London
Chris@57 10
Chris@57 11 This program is free software; you can redistribute it and/or
Chris@57 12 modify it under the terms of the GNU General Public License as
Chris@57 13 published by the Free Software Foundation; either version 2 of the
Chris@57 14 License, or (at your option) any later version. See the file
Chris@57 15 COPYING included with this distribution for more information.
Chris@57 16 */
Chris@57 17
Chris@43 18 #ifndef CHANGESETITEM_H
Chris@43 19 #define CHANGESETITEM_H
Chris@43 20
Chris@43 21 #include <QGraphicsItem>
Chris@53 22 #include <QFont>
Chris@43 23
Chris@43 24 class Changeset;
Chris@117 25 class ChangesetDetailItem;
Chris@43 26
Chris@119 27 class ChangesetItem : public QObject, public QGraphicsItem
Chris@43 28 {
Chris@119 29 Q_OBJECT
Chris@119 30 Q_INTERFACES(QGraphicsItem)
Chris@119 31
Chris@43 32 public:
Chris@53 33 ChangesetItem(Changeset *cs);
Chris@43 34
Chris@43 35 virtual QRectF boundingRect() const;
Chris@43 36 virtual void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *);
Chris@43 37
Chris@53 38 Changeset *getChangeset() { return m_changeset; }
Chris@141 39 QString getId();
Chris@53 40
Chris@44 41 int column() const { return m_column; }
Chris@44 42 int row() const { return m_row; }
Chris@46 43 void setColumn(int c) { m_column = c; setX(c * 100); }
Chris@53 44 void setRow(int r) { m_row = r; setY(r * 90); }
Chris@44 45
Chris@55 46 bool isWide() const { return m_wide; }
Chris@55 47 void setWide(bool w) { m_wide = w; }
Chris@55 48
Chris@128 49 bool isCurrent() const { return m_current; }
Chris@128 50 void setCurrent(bool c) { m_current = c; }
Chris@128 51
Chris@133 52 bool isNew() const { return m_new; }
Chris@133 53 void setNew(bool n) { m_new = n; }
Chris@133 54
Chris@74 55 bool shouldShowBranch() const { return m_showBranch; }
Chris@74 56 void setShowBranch(bool s) { m_showBranch = s; }
Chris@74 57
Chris@119 58 signals:
Chris@119 59 void detailShown();
Chris@119 60 void detailHidden();
Chris@119 61
Chris@141 62 void updateTo(QString);
Chris@141 63 void diffToPrevious(QString);
Chris@141 64 void diffToCurrent(QString);
Chris@141 65 void mergeFrom(QString);
Chris@141 66 void tag(QString);
Chris@141 67
Chris@119 68 public slots:
Chris@119 69 void showDetail();
Chris@119 70 void hideDetail();
Chris@119 71
Chris@141 72 private slots:
Chris@141 73 void updateActivated();
Chris@141 74 void diffToPreviousActivated();
Chris@141 75 void diffToCurrentActivated();
Chris@141 76 void mergeActivated();
Chris@141 77 void tagActivated();
Chris@141 78
Chris@117 79 protected:
Chris@117 80 virtual void mousePressEvent(QGraphicsSceneMouseEvent *);
Chris@117 81
Chris@43 82 private:
Chris@140 83 void activateMenu();
Chris@140 84
Chris@53 85 QFont m_font;
Chris@43 86 Changeset *m_changeset;
Chris@117 87 ChangesetDetailItem *m_detail;
Chris@74 88 bool m_showBranch;
Chris@44 89 int m_column;
Chris@44 90 int m_row;
Chris@55 91 bool m_wide;
Chris@128 92 bool m_current;
Chris@133 93 bool m_new;
Chris@43 94 };
Chris@43 95
Chris@43 96 #endif // CHANGESETITEM_H