Mercurial > hg > easyhg
diff src/changesetitem.h @ 370:b9c153e00e84
Move source files to src/
author | Chris Cannam |
---|---|
date | Thu, 24 Mar 2011 10:27:51 +0000 |
parents | changesetitem.h@5b4aa1c24407 |
children | ce6a70970808 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/changesetitem.h Thu Mar 24 10:27:51 2011 +0000 @@ -0,0 +1,105 @@ +/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ + +/* + EasyMercurial + + Based on HgExplorer by Jari Korhonen + Copyright (c) 2010 Jari Korhonen + Copyright (c) 2011 Chris Cannam + Copyright (c) 2011 Queen Mary, University of London + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. See the file + COPYING included with this distribution for more information. +*/ + +#ifndef CHANGESETITEM_H +#define CHANGESETITEM_H + +#include <QGraphicsObject> +#include <QFont> + +class Changeset; +class ChangesetDetailItem; + +class QAction; + +class ChangesetItem : public QGraphicsObject +{ + Q_OBJECT + +public: + ChangesetItem(Changeset *cs); + + virtual QRectF boundingRect() const; + virtual void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); + + Changeset *getChangeset() { return m_changeset; } + QString getId(); + + int column() const { return m_column; } + int row() const { return m_row; } + void setColumn(int c) { m_column = c; setX(c * 100); } + void setRow(int r) { m_row = r; setY(r * 90); } + + bool isWide() const { return m_wide; } + void setWide(bool w) { m_wide = w; } + + bool isCurrent() const { return m_current; } + void setCurrent(bool c) { m_current = c; } + + bool isNew() const { return m_new; } + void setNew(bool n) { m_new = n; } + + bool showBranch() const { return m_showBranch; } + void setShowBranch(bool s) { m_showBranch = s; } + +signals: + void detailShown(); + void detailHidden(); + + void updateTo(QString); + void diffToCurrent(QString); + void diffToParent(QString child, QString parent); + void showSummary(Changeset *); + void mergeFrom(QString); + void newBranch(QString); + void tag(QString); + +public slots: + void showDetail(); + void hideDetail(); + +private slots: + void copyIdActivated(); + void updateActivated(); + void diffToParentActivated(); + void showSummaryActivated(); + void diffToCurrentActivated(); + void mergeActivated(); + void tagActivated(); + void newBranchActivated(); + +protected: + virtual void mousePressEvent(QGraphicsSceneMouseEvent *); + +private: + void activateMenu(); + + QFont m_font; + Changeset *m_changeset; + ChangesetDetailItem *m_detail; + bool m_showBranch; + int m_column; + int m_row; + bool m_wide; + bool m_current; + bool m_new; + + QMap<QAction *, QString> m_parentDiffActions; + QMap<QAction *, QString> m_summaryActions; +}; + +#endif // CHANGESETITEM_H