1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
/*
SPDX-FileCopyrightText: 2008 Evgeniy Ivanov <powerfox@kde.ru>
SPDX-FileCopyrightText: 2012 Aleix Pol Gonzalez <aleixpol@kde.org>
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
*/
#ifndef KDEVPLATFORM_BRANCHESLISTMODEL_H
#define KDEVPLATFORM_BRANCHESLISTMODEL_H
#include <QStandardItemModel>
#include <QUrl>
#include <vcs/vcsexport.h>
namespace KDevelop {
class IBranchingVersionControl;
class IProject;
class BranchesListModelPrivate;
class KDEVPLATFORMVCS_EXPORT BranchesListModel : public QStandardItemModel
{
Q_OBJECT
Q_PROPERTY(KDevelop::IProject* project READ project WRITE setProject)
Q_PROPERTY(QString currentBranch READ currentBranch WRITE setCurrentBranch NOTIFY currentBranchChanged)
public:
enum Roles { CurrentRole = Qt::UserRole+1 };
explicit BranchesListModel(QObject* parent = nullptr);
~BranchesListModel() override;
void initialize(KDevelop::IBranchingVersionControl* dvcsplugin, const QUrl& repo);
QHash<int, QByteArray> roleNames() const override;
Q_INVOKABLE void createBranch(const QString& baseBranch, const QString& newBranch);
Q_INVOKABLE void removeBranch(const QString& branch);
QUrl repository() const;
KDevelop::IBranchingVersionControl* interface() const;
void refresh();
QString currentBranch() const;
void setCurrentBranch(const QString& branch);
KDevelop::IProject* project() const;
void setProject(KDevelop::IProject* p);
public Q_SLOTS:
void resetCurrent();
Q_SIGNALS:
void currentBranchChanged();
private:
const QScopedPointer<class BranchesListModelPrivate> d_ptr;
Q_DECLARE_PRIVATE(BranchesListModel)
};
}
#endif // KDEVPLATFORM_BRANCHESLISTMODEL_H
|