commitgraph.h 964 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #ifndef COMMITGRAPH_H
  2. #define COMMITGRAPH_H
  3. #include <QObject>
  4. #include <gitoid.h>
  5. #include <QString>
  6. #include <QHash>
  7. #include <QObjectList>
  8. class GitCommit;
  9. class GraphPoint;
  10. class GitBranch;
  11. class GitDiff;
  12. class CommitGraph : public QObject
  13. {
  14. Q_OBJECT
  15. Q_PROPERTY(QList<QObject*> points READ points CONSTANT)
  16. Q_PROPERTY(int branchesCount READ branchesCount NOTIFY branchesCountChanged)
  17. public:
  18. CommitGraph();
  19. void addHead(GitBranch* branch);
  20. void addHead(const GitOid& oid);
  21. QList<QObject*> points() const {
  22. return m_sortedPoints;
  23. }
  24. int branchesCount() const
  25. {
  26. return m_branchesCount;
  27. }
  28. signals:
  29. void branchesCountChanged(int branchesCount);
  30. private:
  31. void findParents(GitCommit *commit);
  32. void addCommits(QList<GitOid> &reversList);
  33. QString m_color;
  34. QHash<GitOid, GraphPoint*> m_points;
  35. QObjectList m_sortedPoints;
  36. int m_branchesCount;
  37. };
  38. #endif // COMMITGRAPH_H