aboutsummaryrefslogtreecommitdiff
path: root/src-qt5/desktop-utils/lumina-fm/gitCompat.h
diff options
context:
space:
mode:
Diffstat (limited to 'src-qt5/desktop-utils/lumina-fm/gitCompat.h')
-rw-r--r--src-qt5/desktop-utils/lumina-fm/gitCompat.h35
1 files changed, 30 insertions, 5 deletions
diff --git a/src-qt5/desktop-utils/lumina-fm/gitCompat.h b/src-qt5/desktop-utils/lumina-fm/gitCompat.h
index 44c6d5b1..a8b5bd1f 100644
--- a/src-qt5/desktop-utils/lumina-fm/gitCompat.h
+++ b/src-qt5/desktop-utils/lumina-fm/gitCompat.h
@@ -4,7 +4,7 @@
// Available under the 3-clause BSD license
// See the LICENSE file for full details
//===========================================
-// This is the backend classe for interacting with the "git" utility
+// This is the backend class for interacting with the "git" utility
//===========================================
#ifndef _LUMINA_FM_GIT_COMPAT_H
#define _LUMINA_FM_GIT_COMPAT_H
@@ -12,9 +12,35 @@
#include <QProcess>
#include <QString>
#include <QProcessEnvironment>
-
+#include <QDebug>
+#include <QTemporaryFile>
#include <LuminaUtils.h>
+#include <unistd.h>
+
+class GitProcess : public QProcess{
+ Q_OBJECT
+private:
+ QString log;
+ QFile tmpfile;
+public:
+ GitProcess();
+ ~GitProcess();
+
+ //Optional Inputs
+ void setSSHPassword(QString pass); //This is only used for SSH access
+
+private slots:
+ void cleanup();
+ void printoutput(){ qDebug() << "Proc Output:" << this->readAllStandardOutput(); }
+
+protected:
+ virtual void setupChildProcess(){
+ //Need to disable the controlling terminal within this process
+ setsid(); //Make current process new session leader - resulting in no controlling terminal for this session
+ }
+};
+
class GIT{
public:
//Check if the git utility is installed and available
@@ -45,10 +71,9 @@ public:
}
//Setup a process for running the clone operation (so the calling process can hook up any watchers and start it when ready)
- static QProcess* setupClone(QString indir, QString url, QString branch = "", int depth = -1){
+ static GitProcess* setupClone(QString indir, QString url, QString branch = "", int depth = -1){
//NOTE: The returned QProcess needs to be cleaned up when finished
- QProcess *P = new QProcess();
- P->setProcessEnvironment( QProcessEnvironment::systemEnvironment() );
+ GitProcess *P = new GitProcess();
P->setWorkingDirectory(indir);
P->setProgram("git");
QStringList args;
bgstack15