gitrepository.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #ifndef GITREPOSITORY_H
  2. #define GITREPOSITORY_H
  3. #include <QObject>
  4. #include <QString>
  5. struct git_repository;
  6. class GitRepository : public QObject
  7. {
  8. Q_OBJECT
  9. Q_PROPERTY(QString root READ root WRITE setRoot NOTIFY rootChanged)
  10. Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
  11. Q_PROPERTY(QString path READ path NOTIFY rootChanged)
  12. public:
  13. GitRepository(const QString &root);
  14. ~GitRepository();
  15. QString root() const {
  16. return m_root;
  17. }
  18. QString name() const {
  19. return m_name;
  20. }
  21. QString path() const
  22. {
  23. return m_path;
  24. }
  25. git_repository* raw() const {
  26. return m_raw;
  27. }
  28. bool isValid() const {
  29. return m_raw != nullptr;
  30. }
  31. public slots:
  32. void setRoot(QString root) {
  33. if (m_root == root)
  34. return;
  35. m_root = root;
  36. emit rootChanged(root);
  37. }
  38. void setName(QString name) {
  39. if (m_name == name)
  40. return;
  41. m_name = name;
  42. emit nameChanged(name);
  43. }
  44. signals:
  45. void rootChanged(QString root);
  46. void nameChanged(QString name);
  47. private:
  48. void close();
  49. QString m_root;
  50. QString m_name;
  51. QString m_path;
  52. git_repository* m_raw;
  53. };
  54. #endif // GITREPOSITORY_H