diff --git a/src/plugins/git/commitdata.cpp b/src/plugins/git/commitdata.cpp index 77b296a07f9dc87ac05833307748b14ae81ffd9f..c7e9097d512c9ccfd5db6b75e5af0850a5a84f08 100644 --- a/src/plugins/git/commitdata.cpp +++ b/src/plugins/git/commitdata.cpp @@ -76,6 +76,10 @@ QDebug operator<<(QDebug d, const GitSubmitEditorPanelData &data) return d; } +CommitData::CommitData(CommitType type) : commitType(type) +{ +} + void CommitData::clear() { panelInfo.clear(); diff --git a/src/plugins/git/commitdata.h b/src/plugins/git/commitdata.h index 746d5d259ad14c5ce843125c85a24cc875b5b75a..6688843dd5d4b08195bab0d9b296a2cfbbb16462 100644 --- a/src/plugins/git/commitdata.h +++ b/src/plugins/git/commitdata.h @@ -30,6 +30,8 @@ #ifndef COMMITDATA_H #define COMMITDATA_H +#include "gitsettings.h" // CommitType + #include <QStringList> #include <QPair> @@ -85,6 +87,7 @@ Q_DECLARE_FLAGS(FileStates, FileState) class CommitData { public: + CommitData(CommitType type = SimpleCommit); // A pair of state string/file name ('modified', 'file.cpp'). typedef QPair<FileStates, QString> StateFilePair; @@ -99,6 +102,7 @@ public: static QString stateDisplayName(const FileStates &state); + CommitType commitType; QString amendSHA1; QString commitEncoding; GitSubmitEditorPanelInfo panelInfo; diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index 9ab41a2fd127a0b7c8326bc48f86c1ac6782fc19..c1d9161551ce56626a5fb5b94ff2538a3c3c0f16 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -2018,7 +2018,6 @@ QString GitClient::gitBinaryPath(bool *ok, QString *errorMessage) const } bool GitClient::getCommitData(const QString &workingDirectory, - CommitType commitType, QString *commitTemplate, CommitData *commitData, QString *errorMessage) @@ -2047,7 +2046,7 @@ bool GitClient::getCommitData(const QString &workingDirectory, case StatusChanged: break; case StatusUnchanged: - if (commitType == AmendCommit) + if (commitData->commitType == AmendCommit) // amend might be run just for the commit message break; *errorMessage = msgNoChangedFiles(); return false; @@ -2081,7 +2080,7 @@ bool GitClient::getCommitData(const QString &workingDirectory, } commitData->files = filteredFiles; - if (commitData->files.isEmpty() && commitType != AmendCommit) { + if (commitData->files.isEmpty() && commitData->commitType != AmendCommit) { *errorMessage = msgNoChangedFiles(); return false; } @@ -2090,7 +2089,7 @@ bool GitClient::getCommitData(const QString &workingDirectory, commitData->commitEncoding = readConfigValue(workingDirectory, QLatin1String("i18n.commitEncoding")); // Get the commit template or the last commit message - switch (commitType) { + switch (commitData->commitType) { case AmendCommit: { // Amend: get last commit data as "SHA1<tab>author<tab>email<tab>message". QStringList args(QLatin1String("log")); diff --git a/src/plugins/git/gitclient.h b/src/plugins/git/gitclient.h index 6564ee6437dd8b01676ac1d98d9c1045ce07cc41..377b4240fb886cd6b11b6c6746e3f482c8539663 100644 --- a/src/plugins/git/gitclient.h +++ b/src/plugins/git/gitclient.h @@ -261,9 +261,8 @@ public: QString readConfigValue(const QString &workingDirectory, const QString &configVar) const; - bool getCommitData(const QString &workingDirectory, CommitType commitType, - QString *commitTemplate, CommitData *commitData, - QString *errorMessage); + bool getCommitData(const QString &workingDirectory, QString *commitTemplate, + CommitData *commitData, QString *errorMessage); bool addAndCommit(const QString &workingDirectory, const GitSubmitEditorPanelData &data, diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp index c62e57dbaa5b470838947911493cfff3af8da1c6..bad45c3b37ad13b9abab7b95d46952055e792e40 100644 --- a/src/plugins/git/gitplugin.cpp +++ b/src/plugins/git/gitplugin.cpp @@ -896,8 +896,8 @@ void GitPlugin::startCommit(CommitType commitType) QTC_ASSERT(state.hasTopLevel(), return); QString errorMessage, commitTemplate; - CommitData data; - if (!m_gitClient->getCommitData(state.topLevel(), commitType, &commitTemplate, &data, &errorMessage)) { + CommitData data(commitType); + if (!m_gitClient->getCommitData(state.topLevel(), &commitTemplate, &data, &errorMessage)) { VcsBase::VcsBaseOutputWindow::instance()->append(errorMessage); return; } @@ -917,7 +917,7 @@ void GitPlugin::startCommit(CommitType commitType) return; } m_commitMessageFileName = saver.fileName(); - openSubmitEditor(m_commitMessageFileName, data, commitType); + openSubmitEditor(m_commitMessageFileName, data); } void GitPlugin::updateVersionWarning() @@ -940,7 +940,7 @@ void GitPlugin::updateVersionWarning() Core::InfoBarEntry::GlobalSuppressionEnabled)); } -Core::IEditor *GitPlugin::openSubmitEditor(const QString &fileName, const CommitData &cd, CommitType commitType) +Core::IEditor *GitPlugin::openSubmitEditor(const QString &fileName, const CommitData &cd) { Core::IEditor *editor = Core::EditorManager::openEditor(fileName, Constants::GITSUBMITEDITOR_ID, Core::EditorManager::ModeSwitch); @@ -952,9 +952,8 @@ Core::IEditor *GitPlugin::openSubmitEditor(const QString &fileName, const Commit submitEditor->registerActions(m_undoAction, m_redoAction, m_submitCurrentAction, m_diffSelectedFilesAction); submitEditor->setCommitData(cd); submitEditor->setCheckScriptWorkingDirectory(m_submitRepository); - const QString title = (commitType == AmendCommit) ? tr("Amend %1").arg(cd.amendSHA1) : tr("Git Commit"); + const QString title = (cd.commitType == AmendCommit) ? tr("Amend %1").arg(cd.amendSHA1) : tr("Git Commit"); submitEditor->setDisplayName(title); - submitEditor->setCommitType(commitType); connect(submitEditor, SIGNAL(diff(QStringList,QStringList)), this, SLOT(submitEditorDiff(QStringList,QStringList))); connect(submitEditor, SIGNAL(merge(QStringList)), this, SLOT(submitEditorMerge(QStringList))); return editor; diff --git a/src/plugins/git/gitplugin.h b/src/plugins/git/gitplugin.h index da5f9a8843d3ff9909a9b93a804600c5b3f3b512..34e9f289a86cd0bd969d1f72c1ada7cd944d9803 100644 --- a/src/plugins/git/gitplugin.h +++ b/src/plugins/git/gitplugin.h @@ -192,7 +192,7 @@ private: void updateContinueAndAbortCommands(); void updateRepositoryBrowserAction(); bool isCommitEditorOpen() const; - Core::IEditor *openSubmitEditor(const QString &fileName, const CommitData &cd, CommitType commitType); + Core::IEditor *openSubmitEditor(const QString &fileName, const CommitData &cd); void cleanCommitMessageFile(); void cleanRepository(const QString &directory); void applyPatch(const QString &workingDirectory, QString file = QString()); diff --git a/src/plugins/git/gitsubmiteditor.cpp b/src/plugins/git/gitsubmiteditor.cpp index bb7a93a887e5132ef70a40c98ddb2fb7dd4b43cf..da3d1df4b84db4f12a6e914cc8360fb393489e7c 100644 --- a/src/plugins/git/gitsubmiteditor.cpp +++ b/src/plugins/git/gitsubmiteditor.cpp @@ -110,6 +110,8 @@ void GitSubmitEditor::setCommitData(const CommitData &d) m_commitEncoding = d.commitEncoding; m_workingDirectory = d.panelInfo.repository; + m_commitType = d.commitType; + setEmptyFileListEnabled(m_commitType == AmendCommit); // Allow for just correcting the message m_model = new GitSubmitFileModel(this); if (!d.files.isEmpty()) { @@ -133,12 +135,6 @@ void GitSubmitEditor::setCommitData(const CommitData &d) setFileModel(m_model, d.panelInfo.repository); } -void GitSubmitEditor::setCommitType(CommitType commitType) -{ - m_commitType = commitType; - setEmptyFileListEnabled(commitType == AmendCommit); // Allow for just correcting the message -} - void GitSubmitEditor::slotDiffSelected(const QList<int> &rows) { // Sort it apart into unmerged/staged/unstaged files @@ -167,8 +163,8 @@ void GitSubmitEditor::updateFileModel() return; GitClient *client = GitPlugin::instance()->gitClient(); QString errorMessage, commitTemplate; - CommitData data; - if (client->getCommitData(m_workingDirectory, m_commitType, &commitTemplate, &data, &errorMessage)) { + CommitData data(m_commitType); + if (client->getCommitData(m_workingDirectory, &commitTemplate, &data, &errorMessage)) { setCommitData(data); } else { VcsBase::VcsBaseOutputWindow::instance()->append(errorMessage); diff --git a/src/plugins/git/gitsubmiteditor.h b/src/plugins/git/gitsubmiteditor.h index ca6e0cf7f16f32bab1f1628baad060f5c538779b..e2d79e5fb73f281b6b020b7bfe7cfb254fe30363 100644 --- a/src/plugins/git/gitsubmiteditor.h +++ b/src/plugins/git/gitsubmiteditor.h @@ -54,7 +54,6 @@ public: explicit GitSubmitEditor(const VcsBase::VcsBaseSubmitEditorParameters *parameters, QWidget *parent); void setCommitData(const CommitData &); - void setCommitType(CommitType commitType); GitSubmitEditorPanelData panelData() const; bool forceClose() const { return m_forceClose; }