aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/git/gitclient.h
diff options
context:
space:
mode:
authorTobias Hunger <[email protected]>2011-10-05 10:35:24 +0000
committerTobias Hunger <[email protected]>2011-10-05 16:03:32 +0200
commit363b230abfb825c0e28b38904c734de45f779571 (patch)
tree4f75bf2f8fda8ae5e6aa9d3252bba968bd8a7286 /src/plugins/git/gitclient.h
parentf6068c1ff91d834b1483d7508fcd2a851269747d (diff)
git: Reuse more code from vcsbase
Change-Id: I873d2caa2cead5c339eec887a5fcdef4d33bec24 Reviewed-on: http://codereview.qt-project.org/6071 Reviewed-by: Tobias Hunger <[email protected]>
Diffstat (limited to 'src/plugins/git/gitclient.h')
-rw-r--r--src/plugins/git/gitclient.h59
1 files changed, 16 insertions, 43 deletions
diff --git a/src/plugins/git/gitclient.h b/src/plugins/git/gitclient.h
index f20d49e50e9..17eb0c657ee 100644
--- a/src/plugins/git/gitclient.h
+++ b/src/plugins/git/gitclient.h
@@ -38,6 +38,7 @@
#include <coreplugin/editormanager/ieditor.h>
+#include <QtCore/QObject>
#include <QtCore/QString>
#include <QtCore/QStringList>
#include <QtGui/QWidget>
@@ -79,9 +80,13 @@ class GitClient : public QObject
public:
static const char *stashNamePrefix;
- explicit GitClient(GitPlugin *plugin);
+ explicit GitClient(GitSettings *settings);
~GitClient();
+ QString gitBinaryPath(bool *ok = 0, QString *errorMessage = 0) const;
+ unsigned gitVersion(bool silent, QString *errorMessage = 0) const;
+ QString gitVersionString(bool silent, QString *errorMessage = 0) const;
+
static QString findRepositoryForDirectory(const QString &dir);
void diff(const QString &workingDirectory, const QStringList &diffArgs, const QString &fileName);
@@ -94,7 +99,7 @@ public:
void status(const QString &workingDirectory);
void graphLog(const QString &workingDirectory) { graphLog(workingDirectory, QString()); }
void graphLog(const QString &workingDirectory, const QString &branch);
- void log(const QString &workingDirectory, const QStringList &fileNames,
+ void log(const QString &workingDirectory, const QStringList &fileNames = QStringList(),
bool enableAnnotationContextMenu = false);
void blame(const QString &workingDirectory, const QStringList &args, const QString &fileName,
const QString &revision = QString(), int lineNumber = -1);
@@ -160,10 +165,6 @@ public:
QStringList *descriptions, QString *errorMessage);
bool synchronousTopRevision(const QString &workingDirectory, QString *revision = 0,
QString *branch = 0, QString *errorMessage = 0);
- // determine version as '(major << 16) + (minor << 8) + patch' or 0
- // with some smart caching.
- unsigned gitVersion(bool silent, QString *errorMessage = 0);
- QString gitVersionString(bool silent, QString *errorMessage = 0);
bool cloneRepository(const QString &directory, const QByteArray &url);
QString vcsGetRepositoryURL(const QString &directory);
@@ -218,12 +219,9 @@ public:
void launchGitK(const QString &workingDirectory);
QStringList synchronousRepositoryBranches(const QString &repositoryURL);
- GitSettings settings() const;
- void setSettings(const GitSettings &s);
+ GitSettings *settings() const;
- QString binary() const; // Executable + basic arguments
QProcessEnvironment processEnvironment() const;
- static QString fakeWinHome(const QProcessEnvironment &e);
static QString msgNoChangedFiles();
@@ -249,13 +247,13 @@ private:
GitCommand *createCommand(const QString &workingDirectory,
VCSBase::VCSBaseEditorWidget* editor = 0,
- bool outputToWindow = false,
+ bool useOutputToWindow = false,
int editorLineNumber = -1);
GitCommand *executeGit(const QString &workingDirectory,
const QStringList &arguments,
VCSBase::VCSBaseEditorWidget* editor = 0,
- bool outputToWindow = false,
+ bool useOutputToWindow = false,
GitCommand::TerminationReportMode tm = GitCommand::NoReport,
int editorLineNumber = -1,
bool unixTerminalDisabled = false);
@@ -265,7 +263,7 @@ private:
const QStringList &arguments,
QByteArray* outputText,
QByteArray* errorText,
- bool logCommandToWindow = true);
+ bool logCommandToWindow = true) const;
// Synchronous git execution using Utils::SynchronousProcess, with
// log windows updating (using VCSBasePlugin::runVCS with flags).
@@ -274,7 +272,7 @@ private:
unsigned flags = 0, QTextCodec *outputCodec = 0);
// determine version as '(major << 16) + (minor << 8) + patch' or 0.
- unsigned synchronousGitVersion(bool silent, QString *errorMessage = 0);
+ unsigned synchronousGitVersion(bool silent, QString *errorMessage = 0) const;
enum RevertResult { RevertOk, RevertUnchanged, RevertCanceled, RevertFailed };
RevertResult revertI(QStringList files,
@@ -289,37 +287,12 @@ private:
const QString &gitBinDirectory,
bool silent);
+ mutable QString m_gitVersionForBinary;
+ mutable unsigned m_cachedGitVersion;
+
const QString m_msgWait;
- GitPlugin *m_plugin;
- Core::ICore *m_core;
- GitSettings m_settings;
- QString m_binaryPath;
+ Core::ICore *m_core;
QSignalMapper *m_repositoryChangedSignalMapper;
- unsigned m_cachedGitVersion;
- bool m_hasCachedGitVersion;
-};
-
-class BaseGitArgumentsWidget : public QWidget {
- Q_OBJECT
-
-public:
- BaseGitArgumentsWidget(GitSettings *settings,
- GitClient *client, const QString &directory,
- const QStringList &args);
-
- virtual QStringList arguments() const = 0;
-
-public slots:
- virtual void redoCommand() = 0;
-
-protected slots:
- virtual void testForArgumentsChanged() = 0;
-
-protected:
- GitClient *m_client;
-
- const QString m_workingDirectory;
- QStringList m_diffArgs;
GitSettings *m_settings;
};