diff --git a/src/plugins/git/gitsubmiteditor.cpp b/src/plugins/git/gitsubmiteditor.cpp index fa560d4e0b7926eb66ee0911ddf7eded4fc6816b..2bb63d50e76e94f2793e5d40b1d54c06c938a22e 100644 --- a/src/plugins/git/gitsubmiteditor.cpp +++ b/src/plugins/git/gitsubmiteditor.cpp @@ -61,8 +61,10 @@ GitSubmitEditorWidget *GitSubmitEditor::submitEditorWidget() void GitSubmitEditor::setCommitData(const CommitData &d) { - submitEditorWidget()->setPanelData(d.panelData); - submitEditorWidget()->setPanelInfo(d.panelInfo); + GitSubmitEditorWidget *w = submitEditorWidget(); + w->setPanelData(d.panelData); + w->setPanelInfo(d.panelInfo); + w->setHasUnmerged(false); m_commitEncoding = d.commitEncoding; @@ -73,12 +75,14 @@ void GitSubmitEditor::setCommitData(const CommitData &d) const FileStates state = it->first; const QString file = it->second; VcsBase::CheckMode checkMode; - if (state & UnmergedFile) + if (state & UnmergedFile) { checkMode = VcsBase::Uncheckable; - else if (state & StagedFile) + w->setHasUnmerged(true); + } else if (state & StagedFile) { checkMode = VcsBase::Checked; - else + } else { checkMode = VcsBase::Unchecked; + } m_model->addFile(file, CommitData::stateDisplayName(state), checkMode, QVariant(static_cast<int>(state))); } diff --git a/src/plugins/git/gitsubmiteditorwidget.cpp b/src/plugins/git/gitsubmiteditorwidget.cpp index 6afcc2aa52a3347298a921476ad03000b4ecc021..9e234fd5b491fcc35e1004ee8f026930b8ccd5f4 100644 --- a/src/plugins/git/gitsubmiteditorwidget.cpp +++ b/src/plugins/git/gitsubmiteditorwidget.cpp @@ -115,7 +115,8 @@ void GitSubmitHighlighter::highlightBlock(const QString &text) // ------------------ GitSubmitEditorWidget::GitSubmitEditorWidget(QWidget *parent) : Utils::SubmitEditorWidget(parent), - m_gitSubmitPanel(new QWidget) + m_gitSubmitPanel(new QWidget), + m_hasUnmerged(false) { m_gitSubmitPanelUi.setupUi(m_gitSubmitPanel); insertTopWidget(m_gitSubmitPanel); @@ -139,6 +140,11 @@ void GitSubmitEditorWidget::setPanelInfo(const GitSubmitEditorPanelInfo &info) m_gitSubmitPanelUi.branchLabel->setText(info.branch); } +void GitSubmitEditorWidget::setHasUnmerged(bool e) +{ + m_hasUnmerged = e; +} + GitSubmitEditorPanelData GitSubmitEditorWidget::panelData() const { GitSubmitEditorPanelData rc; @@ -159,7 +165,8 @@ void GitSubmitEditorWidget::setPanelData(const GitSubmitEditorPanelData &data) bool GitSubmitEditorWidget::canSubmit() const { if (m_gitSubmitPanelUi.invalidAuthorLabel->isVisible() - || m_gitSubmitPanelUi.invalidEmailLabel->isVisible()) + || m_gitSubmitPanelUi.invalidEmailLabel->isVisible() + || m_hasUnmerged) return false; return SubmitEditorWidget::canSubmit(); } diff --git a/src/plugins/git/gitsubmiteditorwidget.h b/src/plugins/git/gitsubmiteditorwidget.h index f00048a2d0d542aff9eb1d59a531a0762d2397a9..18f93c987e01e4eeb2f976d78f1326a2e8f56f94 100644 --- a/src/plugins/git/gitsubmiteditorwidget.h +++ b/src/plugins/git/gitsubmiteditorwidget.h @@ -59,11 +59,10 @@ class GitSubmitEditorWidget : public Utils::SubmitEditorWidget public: explicit GitSubmitEditorWidget(QWidget *parent = 0); - GitSubmitEditorPanelData panelData() const; void setPanelData(const GitSubmitEditorPanelData &data); - void setPanelInfo(const GitSubmitEditorPanelInfo &info); + void setHasUnmerged(bool e); protected: bool canSubmit() const; @@ -78,6 +77,7 @@ private: QWidget *m_gitSubmitPanel; Ui::GitSubmitPanel m_gitSubmitPanelUi; QValidator *m_emailValidator; + bool m_hasUnmerged; }; } // namespace Internal