1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- #ifndef GITREPOSITORY_H
- #define GITREPOSITORY_H
- #include <QObject>
- #include <QString>
- #include <QMap>
- #include <QPointer>
- struct git_repository;
- class GitBranch;
- typedef QMap<QString, QPointer<GitBranch> > BranchContainer;
- class GitRepository : public QObject
- {
- Q_OBJECT
- Q_PROPERTY(QString root READ root WRITE setRoot NOTIFY rootChanged)
- Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
- Q_PROPERTY(QString path READ path NOTIFY rootChanged)
- public:
- GitRepository(const QString &root);
- ~GitRepository();
- QString root() const {
- return m_root;
- }
- QString name() const {
- return m_name;
- }
- QString path() const {
- return m_path;
- }
- git_repository* raw() const {
- return m_raw;
- }
- bool isValid() const {
- return m_raw != nullptr;
- }
- BranchContainer& branches() {
- return m_branches;
- }
- public slots:
- void setRoot(QString root) {
- if (m_root == root)
- return;
- m_root = root;
- emit rootChanged(root);
- }
- void setName(QString name) {
- if (m_name == name)
- return;
- m_name = name;
- emit nameChanged(name);
- }
- signals:
- void rootChanged(QString root);
- void nameChanged(QString name);
- private:
- void close();
- void readBranches();
- QString m_root;
- QString m_name;
- QString m_path;
- git_repository* m_raw;
- BranchContainer m_branches;
- };
- #endif // GITREPOSITORY_H
|