diff options
author | Tobias Hunger <[email protected]> | 2011-10-05 10:35:24 +0000 |
---|---|---|
committer | Tobias Hunger <[email protected]> | 2011-10-05 16:03:32 +0200 |
commit | 363b230abfb825c0e28b38904c734de45f779571 (patch) | |
tree | 4f75bf2f8fda8ae5e6aa9d3252bba968bd8a7286 /src/plugins/git/gitclient.h | |
parent | f6068c1ff91d834b1483d7508fcd2a851269747d (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.h | 59 |
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; }; |