-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathqgitrepository.h
More file actions
134 lines (124 loc) · 5.08 KB
/
qgitrepository.h
File metadata and controls
134 lines (124 loc) · 5.08 KB
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#pragma once
#include <QNetworkAccessManager>
#include <QListWidgetItem>
#include <QTreeWidgetItem>
#include <QThread>
#include <QWidget>
#include <QIcon>
#include "qgit.h"
#include "qgitcommit.h"
#include "qgitbranch.h"
#include "qgittag.h"
namespace Ui {
class QGitRepository;
}
class QGitRepository : public QWidget
{
Q_OBJECT
public:
explicit QGitRepository(const QString &path, QWidget *parent);
~QGitRepository();
void refreshData();
void stash(const QString &name);
void branchDialog();
void commit();
void fetch();
void pull();
void push();
QGit *git() const;
signals:
void localStash(QString name);
void repositoryPush(QString remote, QStringList branches, bool tags, bool force);
void repositoryFetch(bool fetchFromAllRemotes, bool purgeDeletedBranches, bool fetchAllTags);
void repositoryBranches();
void repositoryStashes();
void repositoryChangedFiles(int show, int sort, bool reversed);
void repositoryStageFiles(QStringList items);
void repositoryUnstageFiles(QStringList items);
void repositoryCommit(QString message, bool withPush);
void repositoryGetCommits(QString object, int length);
void repositoryGetCommitDiff(QString commitId, bool ignoreWhitespace = false);
void stageFileLines(QString filename, QVector<QGitDiffWidgetLine> lines);
void unstageFileLines(QString filename, QVector<QGitDiffWidgetLine> lines);
void repositoryDiscardFiles(QStringList items);
void repositoryDiscardFileLines(QString filename, QVector<QGitDiffWidgetLine> lines);
void deleteBranches(QList<QGitBranch> branches, bool force);
protected:
void keyPressEvent(QKeyEvent *event) override;
bool event(QEvent *event) override;
private slots:
void gravatarImageDownloadFinished(QNetworkReply *reply);
void localStashSaveReply(QGitError error);
void localStashRemoveReply(QGitError error);
void repositoryFetchReply(QGitError error);
void repositoryPushReply(QGitError error);
void repositoryBranchesAndTagsReply(QList<QGitBranch> branches, QList<QGitTag> tags, QGitError error);
void repositoryStashesReply(QStringList stashes, QGitError error);
void repositoryChangedFilesReply(QList<QPair<QString, git_status_t>> files, QGitError error);
void repositoryStageFilesReply(QGitError error);
void repositoryUnstageFilesReply(QGitError error);
void repositoryDiscardFilesReply(QGitError error);
void repositoryCommitReply(QString commit_id, QGitError error);
void repositoryGetCommitsReply(QList<QGitCommit> commits, QGitError error);
void repositoryGetCommitDiffReply(QString commitId, QGitCommit diff, QGitError error);
void deleteBranchesReply(QGitError error);
void historyTableSliderMoved(int pos);
void selectedLines(QString filename, QVector<QGitDiffWidgetLine> lines);
void on_repositoryDetail_currentChanged(int index);
void on_logHistory_commits_currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn);
void on_checkBox_StagedFiles_clicked();
void on_checkBox_UnstagedFiles_clicked();
void on_listWidget_staged_itemChanged(QListWidgetItem *item);
void on_listWidget_unstaged_itemChanged(QListWidgetItem *item);
void on_pushButton_commit_clicked();
void on_pushButton_commitCancel_clicked();
void on_plainTextEdit_commitMessage_focus();
void on_logHistory_files_itemSelectionChanged();
void on_listWidget_staged_itemSelectionChanged();
void on_listWidget_unstaged_itemSelectionChanged();
void on_listWidget_unstaged_customContextMenuRequested(const QPoint &pos);
void on_branchesTreeView_itemDoubleClicked(QTreeWidgetItem *item, int column);
void on_branchesTreeView_customContextMenuRequested(const QPoint &pos);
void stashApplyReply(QGitError error);
void stashPopReply(QGitError error);
void checkoutBranchReply(QGitError error);
void renameBranchReply(QGitError error);
void setUpstreamReply(QGitError error);
void deleteTagReply(QGitError error);
void on_comboBox_gitStatusFiles_itemClicked(int index);
void on_comboBox_gitDiffOptions_optionsChanged();
void on_commit_diff_customContextMenuRequested(const QPoint &pos);
private:
void fetchCommits();
void activateCommitOperation(bool activate);
void fetchRepositoryChangedFiles();
Ui::QGitRepository *ui = nullptr;
QNetworkAccessManager m_networkManager;
QString m_path;
bool m_allCommitsLoaded;
QGitCommit m_stagedDiff;
QGitCommit m_unstagedDiff;
QGitCommit m_commitDiff;
QThread m_thread;
QIcon m_iconFileNew;
QIcon m_iconFileClean;
QIcon m_iconFileModified;
QIcon m_iconFileRemoved;
QIcon m_iconFileRenamed;
QIcon m_iconFileConflict;
QIcon m_iconFileIgnored;
QIcon m_iconFileUnknown;
QIcon m_iconTag;
QIcon m_iconWhiteCheckbox;
QIcon m_iconCurrentBranch;
QIcon m_iconBranch;
QIcon m_iconRemote;
QIcon m_iconStash;
QIcon m_iconRemoteBranch;
QString m_searchingCommitHash;
bool m_stageingFiles = true;
QString m_lastRemote;
QStringList m_lastBranches;
bool m_lastTags;
QGit *m_git = nullptr;
};