Chris@116: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ Chris@116: Chris@116: /* Chris@116: EasyMercurial Chris@116: Chris@116: Based on HgExplorer by Jari Korhonen Chris@116: Copyright (c) 2010 Jari Korhonen Chris@116: Copyright (c) 2010 Chris Cannam Chris@116: Copyright (c) 2010 Queen Mary, University of London Chris@116: Chris@116: This program is free software; you can redistribute it and/or Chris@116: modify it under the terms of the GNU General Public License as Chris@116: published by the Free Software Foundation; either version 2 of the Chris@116: License, or (at your option) any later version. See the file Chris@116: COPYING included with this distribution for more information. Chris@116: */ Chris@116: Chris@116: #ifndef HISTORYWIDGET_H Chris@116: #define HISTORYWIDGET_H Chris@116: Chris@116: #include "changeset.h" Chris@116: Chris@116: #include Chris@133: #include Chris@116: Chris@116: class Panned; Chris@116: class Panner; Chris@129: class UncommittedItem; Chris@145: class QGraphicsScene; Chris@116: Chris@116: class HistoryWidget : public QWidget Chris@116: { Chris@116: Q_OBJECT Chris@116: Chris@116: public: Chris@116: HistoryWidget(); Chris@116: virtual ~HistoryWidget(); Chris@116: Chris@153: void setCurrent(QStringList ids, QString branch, bool showUncommitted); Chris@128: Chris@120: void parseNewLog(QString log); Chris@120: void parseIncrementalLog(QString log); Chris@134: Chris@134: bool haveNewItems() const { return !m_newIds.empty(); } Chris@141: Chris@154: void update(); Chris@154: Chris@141: signals: Chris@141: void commit(); Chris@141: void revert(); Chris@141: void diffWorkingFolder(); Chris@153: void showWork(); Chris@141: Chris@141: void updateTo(QString id); Chris@148: void diffToParent(QString id, QString parent); Chris@141: void diffToCurrent(QString id); Chris@141: void mergeFrom(QString id); Chris@141: void tag(QString id); Chris@116: Chris@116: private: Chris@116: Changesets m_changesets; Chris@128: QStringList m_currentIds; Chris@153: QString m_currentBranch; Chris@133: QSet m_newIds; Chris@145: bool m_showUncommitted; Chris@154: bool m_refreshNeeded; Chris@116: Chris@116: Panned *m_panned; Chris@116: Panner *m_panner; Chris@116: Chris@145: QGraphicsScene *scene(); Chris@116: void clearChangesets(); Chris@133: void replaceChangesets(Changesets); Chris@133: void addChangesets(Changesets); Chris@120: void layoutAll(); Chris@122: void setChangesetParents(); Chris@133: void updateNewAndCurrentItems(); Chris@141: void connectSceneSignals(); Chris@116: }; Chris@116: Chris@116: #endif