gitbranch.h 991 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #ifndef GITBRANCH_H
  2. #define GITBRANCH_H
  3. #include <gitreference.h>
  4. #include <git2/types.h>
  5. struct git_oid;
  6. class GitBranch : public GitReference
  7. {
  8. Q_OBJECT
  9. Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
  10. Q_PROPERTY(BranchType type READ type CONSTANT)
  11. Q_ENUMS(BranchType)
  12. public:
  13. enum BranchType {
  14. Local = GIT_BRANCH_LOCAL,
  15. Remote = GIT_BRANCH_REMOTE
  16. };
  17. GitBranch(git_reference* ref, git_branch_t type, GitRepository* parent);
  18. virtual ~GitBranch();
  19. QString name() const {
  20. return m_name;
  21. }
  22. BranchType type() const;
  23. public slots:
  24. void setName(QString name) {
  25. if (m_name == name)
  26. return;
  27. m_name = name;
  28. emit nameChanged(name);
  29. }
  30. signals:
  31. void nameChanged(QString name);
  32. private:
  33. void free();
  34. GitBranch();
  35. Q_DISABLE_COPY(GitBranch)
  36. QString m_name;
  37. git_annotated_commit* m_commit;
  38. BranchType m_type;
  39. };
  40. #endif // GITBRANCH_H