forked from francescmm/GitQlient
-
Notifications
You must be signed in to change notification settings - Fork 0
/
RepositoryView.h
74 lines (62 loc) · 2.16 KB
/
RepositoryView.h
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
62
63
64
65
66
67
68
69
70
71
72
73
74
#pragma once
/*
Author: Marco Costalba (C) 2005-2007
Copyright: See COPYING file that comes with this distribution
*/
#include <QItemDelegate>
#include <QRegExp>
#include <QTreeView>
class Git;
class StateInfo;
class Domain;
class RepositoryModel;
class Revision;
class RevisionsCache;
enum class RepositoryModelColumns;
class RepositoryView : public QTreeView
{
Q_OBJECT
struct DropInfo;
signals:
void signalViewUpdated();
void signalOpenDiff(const QString &sha);
void signalAmmendCommit(const QString &sha);
public:
explicit RepositoryView(QSharedPointer<RevisionsCache> revCache, QSharedPointer<Git> git, QWidget *parent = nullptr);
~RepositoryView();
void setup();
const QString shaFromAnnId(int id);
void scrollToCurrent(ScrollHint hint = EnsureVisible);
void scrollToNext(int direction);
void getSelectedItems(QStringList &selectedItems);
bool update();
void addNewRevs(const QVector<QString> &shaVec);
const QString sha(int row) const;
int row(const QString &sha) const;
void markDiffToSha(const QString &sha);
void clear(bool complete);
Domain *domain();
void focusOnCommit(const QString &goToSha);
QVariant data(int row, RepositoryModelColumns column) const;
RepositoryModel *model() const { return mRepositoryModel; }
signals:
void rebase(const QString &from, const QString &to, const QString &onto);
void merge(const QStringList &shas, const QString &into);
void moveRef(const QString &refName, const QString &toSHA);
void diffTargetChanged(int); // used by new model_view integration
private slots:
virtual void currentChanged(const QModelIndex &, const QModelIndex &);
private:
QSharedPointer<RevisionsCache> mRevCache;
QSharedPointer<Git> mGit;
void showContextMenu(const QPoint &);
void setupGeometry();
bool filterRightButtonPressed(QMouseEvent *e);
bool getLaneParentsChildren(const QString &sha, int x, QStringList &p, QStringList &c);
int getLaneType(const QString &sha, int pos) const;
RepositoryModel *mRepositoryModel = nullptr;
Domain *d = nullptr;
StateInfo *st = nullptr;
unsigned long secs;
bool filterNextContextMenuRequest;
};