gitoid.h 913 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #ifndef GITOID_H
  2. #define GITOID_H
  3. #include <QObject>
  4. #include <QString>
  5. #include <git2/oid.h>
  6. #include <QDebug>
  7. class GitRepository;
  8. class GitOid : public QObject
  9. {
  10. Q_OBJECT
  11. public:
  12. GitOid(const git_oid* oid, GitRepository *parent);
  13. GitOid(const GitOid& other);
  14. bool operator ==(const GitOid& other) const;
  15. bool operator <(const GitOid& other) const;
  16. GitOid& operator=(const GitOid& other);
  17. const git_oid* raw() const {
  18. return &m_oid;
  19. }
  20. GitRepository* repository() const {
  21. return m_repository;
  22. }
  23. QString toString() const;
  24. QString toShorten() const;
  25. bool isValid() const;
  26. private:
  27. void updateOid(const git_oid* oid);
  28. git_oid m_oid;
  29. QString m_string;
  30. GitRepository *m_repository;
  31. };
  32. inline uint qHash(const GitOid& oid) {
  33. return qHash(QByteArray((const char*)(oid.raw()->id), GIT_OID_RAWSZ));
  34. }
  35. #endif // GITOID_H