Chris@119: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ Chris@119: Chris@119: /* Chris@119: EasyMercurial Chris@119: Chris@119: Based on HgExplorer by Jari Korhonen Chris@119: Copyright (c) 2010 Jari Korhonen Chris@644: Copyright (c) 2013 Chris Cannam Chris@644: Copyright (c) 2013 Queen Mary, University of London Chris@119: Chris@119: This program is free software; you can redistribute it and/or Chris@119: modify it under the terms of the GNU General Public License as Chris@119: published by the Free Software Foundation; either version 2 of the Chris@119: License, or (at your option) any later version. See the file Chris@119: COPYING included with this distribution for more information. Chris@119: */ Chris@119: Chris@119: #ifndef CHANGESETSCENE_H Chris@119: #define CHANGESETSCENE_H Chris@119: Chris@119: #include Chris@397: #include Chris@119: Chris@119: class ChangesetItem; Chris@289: class Changeset; Chris@141: class UncommittedItem; Chris@119: Chris@119: class ChangesetScene : public QGraphicsScene Chris@119: { Chris@119: Q_OBJECT Chris@119: Chris@119: public: Chris@119: ChangesetScene(); Chris@119: Chris@141: void addChangesetItem(ChangesetItem *item); Chris@141: void addUncommittedItem(UncommittedItem *item); Chris@397: Chris@397: void addDateRange(QString label, int minrow, int nrows, bool even); Chris@397: Chris@397: struct DateRange { Chris@397: QString label; Chris@397: int minrow; Chris@397: int nrows; Chris@397: bool even; Chris@397: }; Chris@397: Chris@397: typedef QMap DateRanges; // key is minrow Chris@397: DateRanges getDateRanges() const { return m_dateRanges; } Chris@397: Chris@397: void itemAddCompleted(); // recalculate scene rect Chris@141: Chris@281: ChangesetItem *getItemById(QString id); // Slow: traversal required Chris@281: Chris@141: signals: Chris@141: void commit(); Chris@141: void revert(); Chris@141: void diffWorkingFolder(); Chris@168: void showSummary(); Chris@153: void showWork(); Chris@311: void newBranch(); Chris@311: void noBranch(); Chris@141: Chris@141: void updateTo(QString id); Chris@148: void diffToParent(QString id, QString parent); Chris@289: void showSummary(Changeset *); Chris@141: void diffToCurrent(QString id); Chris@141: void mergeFrom(QString id); Chris@278: void newBranch(QString id); Chris@514: void closeBranch(QString id); Chris@141: void tag(QString id); Chris@141: Chris@168: private slots: Chris@119: void changesetDetailShown(); Chris@168: void changesetDetailHidden(); Chris@402: void recalculateSceneRect(); Chris@397: Chris@397: protected: Chris@397: void drawBackground(QPainter *, const QRectF &); Chris@119: Chris@119: private: Chris@119: ChangesetItem *m_detailShown; Chris@397: DateRanges m_dateRanges; Chris@119: }; Chris@119: Chris@119: #endif