Manual for OpenFLUID 2.1.11
utils
GitProxy.hpp
Go to the documentation of this file.
1
/*
2
3
This file is part of OpenFLUID software
4
Copyright(c) 2007, INRA - Montpellier SupAgro
5
6
7
== GNU General Public License Usage ==
8
9
OpenFLUID is free software: you can redistribute it and/or modify
10
it under the terms of the GNU General Public License as published by
11
the Free Software Foundation, either version 3 of the License, or
12
(at your option) any later version.
13
14
OpenFLUID is distributed in the hope that it will be useful,
15
but WITHOUT ANY WARRANTY; without even the implied warranty of
16
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
GNU General Public License for more details.
18
19
You should have received a copy of the GNU General Public License
20
along with OpenFLUID. If not, see <http://www.gnu.org/licenses/>.
21
22
23
== Other Usage ==
24
25
Other Usage means a use of OpenFLUID that is inconsistent with the GPL
26
license, and requires a written agreement between You and INRA.
27
Licensees for Other Usage of OpenFLUID may use this file in accordance
28
with the terms contained in the written agreement between You and INRA.
29
30
*/
31
32
33
/**
34
@file GitProxy.hpp
35
36
@author Aline LIBRES <aline.libres@gmail.com>
37
@author Jean-Christophe Fabre <jean-christophe.fabre@inra.fr>
38
*/
39
40
41
#ifndef __OPENFLUID_UTILS_GITPROXY_HPP__
42
#define __OPENFLUID_UTILS_GITPROXY_HPP__
43
44
45
#include <QString>
46
#include <QObject>
47
#include <QProcess>
48
#include <QMap>
49
#include <QFile>
50
51
#include <
openfluid/dllexport.hpp
>
52
#include <
openfluid/utils/ProgramProxy.hpp
>
53
54
55
namespace
openfluid
{
namespace
utils {
56
57
58
class
OPENFLUID_API
GitProxy
:
public
QObject,
public
ProgramProxy
<GitProxy>
59
{
60
Q_OBJECT
61
62
public
:
63
64
enum class
FileStatus
65
{
66
TRACKED, UNTRACKED, IGNORED, CONFLICT, ADDED, DELETED, MODIFIED
67
};
68
69
struct
FileStatusInfo
70
{
71
bool
m_IsDirty =
false
;
72
73
FileStatus
m_IndexStatus = FileStatus::TRACKED;
74
};
75
76
struct
TreeStatusInfo
77
{
78
bool
m_IsGitTracked =
false
;
79
80
QString m_BranchName =
""
;
81
82
QMap<QString, FileStatusInfo>
m_FileStatusByTreePath
;
83
};
84
85
86
private
:
87
88
QProcess* mp_Process =
nullptr
;
89
90
QString m_TmpPath;
91
92
QFile m_AskPassFile;
93
94
static
void
findGitProgram();
95
96
97
private
slots:
98
99
void
processStandardOutput();
100
101
void
processErrorOutput();
102
103
void
processErrorOutputAsInfo();
104
105
106
signals:
107
108
void
info(
const
QString& Message);
109
110
void
error(
const
QString& Message);
111
112
113
public
:
114
115
GitProxy
();
116
117
~
GitProxy
();
118
119
static
bool
isAvailable();
120
121
static
QString getCurrentOpenFLUIDBranchName();
122
123
bool
clone(
const
QString& FromUrl,
const
QString& ToPath,
124
const
QString& Username =
""
,
const
QString& Password =
""
,
125
bool
SslNoVerify =
false
);
126
127
TreeStatusInfo
status(
const
QString& Path);
128
129
QString statusHtml(
const
QString& Path,
bool
WithColorCodes);
130
131
QString logHtml(
const
QString& Path,
bool
WithColorCodes);
132
133
};
134
135
136
} }
// namespaces
137
138
139
#endif
/* __OPENFLUID_UTILS_GITPROXY_HPP__ */
openfluid::utils::ProgramProxy
Definition:
ProgramProxy.hpp:51
OPENFLUID_API
#define OPENFLUID_API
Definition:
dllexport.hpp:86
ProgramProxy.hpp
openfluid::utils::GitProxy::FileStatusInfo
Definition:
GitProxy.hpp:69
openfluid::utils::GitProxy
Definition:
GitProxy.hpp:58
openfluid
Definition:
ApplicationException.hpp:47
openfluid::utils::GitProxy::TreeStatusInfo::m_FileStatusByTreePath
QMap< QString, FileStatusInfo > m_FileStatusByTreePath
Definition:
GitProxy.hpp:82
dllexport.hpp
openfluid::utils::GitProxy::TreeStatusInfo
Definition:
GitProxy.hpp:76
openfluid::utils::GitProxy::FileStatus
FileStatus
Definition:
GitProxy.hpp:64
Generated by
1.8.17