gitrepository.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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_PROPERTY(QString root READ root WRITE setRoot NOTIFY rootChanged)
  9. Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
  10. Q_PROPERTY(QString path READ path NOTIFY rootChanged)
  11. public:
  12. GitRepository(const QString &root);
  13. ~GitRepository();
  14. QString root() const {
  15. return m_root;
  16. }
  17. QString name() const {
  18. return m_name;
  19. }
  20. QString path() const
  21. {
  22. return m_path;
  23. }
  24. bool isValid() const {
  25. return m_repo != nullptr;
  26. }
  27. public slots:
  28. void setRoot(QString root) {
  29. if (m_root == root)
  30. return;
  31. m_root = root;
  32. emit rootChanged(root);
  33. }
  34. void setName(QString name) {
  35. if (m_name == name)
  36. return;
  37. m_name = name;
  38. emit nameChanged(name);
  39. }
  40. signals:
  41. void rootChanged(QString root);
  42. void nameChanged(QString name);
  43. private:
  44. void close();
  45. QString m_root;
  46. QString m_name;
  47. git_repository* m_repo;
  48. QString m_path;
  49. };
  50. #endif // GITREPOSITORY_H