Documentation for OpenFLUID 2.2.2
Loading...
Searching...
No Matches
GitImportWorker.hpp
Go to the documentation of this file.
1/*
2
3 This file is part of OpenFLUID software
4 Copyright(c) 2021-2026, INRAE
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 GitImportWorker.hpp
35
36 @author Aline LIBRES <aline.libres@gmail.com>
37 @author Armel THÖNI <armel.thoni@inrae.fr>
38 */
39
40
41#ifndef __OPENFLUID_UIWARESDEV_GITIMPORTWORKER_HPP__
42#define __OPENFLUID_UIWARESDEV_GITIMPORTWORKER_HPP__
43
44
45#include <QObject>
46#include <QMap>
47#include <QStringList>
48
51
52
53namespace openfluid { namespace ui { namespace waresdev {
54
55
56typedef std::map<std::string, std::string> BranchMap_t;
57
59{
60 QString URL;
61 QString LocalPath;
62 QString Branch;
63
64 GitElementToImport(QString U, QString P, QString B="") : URL(U), LocalPath(P), Branch(B)
65 {}
66};
67
68
69// =====================================================================
70// =====================================================================
71
72
73class OPENFLUID_API GitImportWorker: public QObject
74{
75 Q_OBJECT
76
77
78 protected:
79
80 QString m_Username = "";
81 QString m_Password = "";
82
83 int m_Progress = 0;
84 double m_ProgressRatio = 100;
85
88
89 std::vector<std::pair<QString, QString>> m_ElementsToImport; // first: Git URL, second: local path
90 BranchMap_t m_BranchByURL; // optional information about custom branch choice per Git URL
91
92 void checkoutBranch(const QString& Path, QString Branch="");
93
94
95 protected slots:
96
97 virtual bool importElement(const GitElementToImport& Element) = 0;
98
99
100 signals:
101
102 void info(const QString& Message);
103
104 void warning(const QString& Message);
105
106 void error(const QString& Message);
107
108 void finished(bool Ok, const QString& Message);
109
110 void progressed(int Value);
111
112
113 public slots:
114
115 void setSelectedElements(const std::vector<std::pair<QString, QString>>& SelectedElements,
116 const BranchMap_t BranchByURL=BranchMap_t());
117
119
120
121 public:
122
123 GitImportWorker(bool SslNoVerify = false, bool AutoCheckout = false);
124
126
127 void setupUser(const QString& Username, const QString& Password);
128
129 void setProgressValues(int Progress, double ProgressRatio)
130 {
131 m_Progress = Progress;
132 m_ProgressRatio = ProgressRatio;
133 }
134
135};
136
137
138} } } // namespaces
139
140
141#endif /* __OPENFLUID_UIWARESDEV_GITIMPORTWORKER_HPP__ */
Definition GitImportWorker.hpp:74
bool m_AutoCheckout
Definition GitImportWorker.hpp:87
BranchMap_t m_BranchByURL
Definition GitImportWorker.hpp:90
void setupUser(const QString &Username, const QString &Password)
virtual bool importElement(const GitElementToImport &Element)=0
GitImportWorker(bool SslNoVerify=false, bool AutoCheckout=false)
std::vector< std::pair< QString, QString > > m_ElementsToImport
Definition GitImportWorker.hpp:89
void warning(const QString &Message)
void finished(bool Ok, const QString &Message)
void setSelectedElements(const std::vector< std::pair< QString, QString > > &SelectedElements, const BranchMap_t BranchByURL=BranchMap_t())
bool m_SslNoVerify
Definition GitImportWorker.hpp:86
void checkoutBranch(const QString &Path, QString Branch="")
void setProgressValues(int Progress, double ProgressRatio)
Definition GitImportWorker.hpp:129
void error(const QString &Message)
void info(const QString &Message)
#define OPENFLUID_API
Definition dllexport.hpp:86
std::map< std::string, std::string > BranchMap_t
Definition GitImportWorker.hpp:56
Definition ApplicationException.hpp:47
Definition GitImportWorker.hpp:59
QString LocalPath
Definition GitImportWorker.hpp:61
QString URL
Definition GitImportWorker.hpp:60
QString Branch
Definition GitImportWorker.hpp:62
GitElementToImport(QString U, QString P, QString B="")
Definition GitImportWorker.hpp:64