Git: Disable Commit button when unmerged files exist

Change-Id: Icea74641516292b130784d2d7d48bd05254480df
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
This commit is contained in:
Orgad Shaneh
2012-12-25 19:46:45 +02:00
parent cbf75f676a
commit 4c9f7dac4a
3 changed files with 20 additions and 9 deletions

View File

@@ -61,8 +61,10 @@ GitSubmitEditorWidget *GitSubmitEditor::submitEditorWidget()
void GitSubmitEditor::setCommitData(const CommitData &d) void GitSubmitEditor::setCommitData(const CommitData &d)
{ {
submitEditorWidget()->setPanelData(d.panelData); GitSubmitEditorWidget *w = submitEditorWidget();
submitEditorWidget()->setPanelInfo(d.panelInfo); w->setPanelData(d.panelData);
w->setPanelInfo(d.panelInfo);
w->setHasUnmerged(false);
m_commitEncoding = d.commitEncoding; m_commitEncoding = d.commitEncoding;
@@ -73,12 +75,14 @@ void GitSubmitEditor::setCommitData(const CommitData &d)
const FileStates state = it->first; const FileStates state = it->first;
const QString file = it->second; const QString file = it->second;
VcsBase::CheckMode checkMode; VcsBase::CheckMode checkMode;
if (state & UnmergedFile) if (state & UnmergedFile) {
checkMode = VcsBase::Uncheckable; checkMode = VcsBase::Uncheckable;
else if (state & StagedFile) w->setHasUnmerged(true);
} else if (state & StagedFile) {
checkMode = VcsBase::Checked; checkMode = VcsBase::Checked;
else } else {
checkMode = VcsBase::Unchecked; checkMode = VcsBase::Unchecked;
}
m_model->addFile(file, CommitData::stateDisplayName(state), checkMode, m_model->addFile(file, CommitData::stateDisplayName(state), checkMode,
QVariant(static_cast<int>(state))); QVariant(static_cast<int>(state)));
} }

View File

@@ -115,7 +115,8 @@ void GitSubmitHighlighter::highlightBlock(const QString &text)
// ------------------ // ------------------
GitSubmitEditorWidget::GitSubmitEditorWidget(QWidget *parent) : GitSubmitEditorWidget::GitSubmitEditorWidget(QWidget *parent) :
Utils::SubmitEditorWidget(parent), Utils::SubmitEditorWidget(parent),
m_gitSubmitPanel(new QWidget) m_gitSubmitPanel(new QWidget),
m_hasUnmerged(false)
{ {
m_gitSubmitPanelUi.setupUi(m_gitSubmitPanel); m_gitSubmitPanelUi.setupUi(m_gitSubmitPanel);
insertTopWidget(m_gitSubmitPanel); insertTopWidget(m_gitSubmitPanel);
@@ -139,6 +140,11 @@ void GitSubmitEditorWidget::setPanelInfo(const GitSubmitEditorPanelInfo &info)
m_gitSubmitPanelUi.branchLabel->setText(info.branch); m_gitSubmitPanelUi.branchLabel->setText(info.branch);
} }
void GitSubmitEditorWidget::setHasUnmerged(bool e)
{
m_hasUnmerged = e;
}
GitSubmitEditorPanelData GitSubmitEditorWidget::panelData() const GitSubmitEditorPanelData GitSubmitEditorWidget::panelData() const
{ {
GitSubmitEditorPanelData rc; GitSubmitEditorPanelData rc;
@@ -159,7 +165,8 @@ void GitSubmitEditorWidget::setPanelData(const GitSubmitEditorPanelData &data)
bool GitSubmitEditorWidget::canSubmit() const bool GitSubmitEditorWidget::canSubmit() const
{ {
if (m_gitSubmitPanelUi.invalidAuthorLabel->isVisible() if (m_gitSubmitPanelUi.invalidAuthorLabel->isVisible()
|| m_gitSubmitPanelUi.invalidEmailLabel->isVisible()) || m_gitSubmitPanelUi.invalidEmailLabel->isVisible()
|| m_hasUnmerged)
return false; return false;
return SubmitEditorWidget::canSubmit(); return SubmitEditorWidget::canSubmit();
} }

View File

@@ -59,11 +59,10 @@ class GitSubmitEditorWidget : public Utils::SubmitEditorWidget
public: public:
explicit GitSubmitEditorWidget(QWidget *parent = 0); explicit GitSubmitEditorWidget(QWidget *parent = 0);
GitSubmitEditorPanelData panelData() const; GitSubmitEditorPanelData panelData() const;
void setPanelData(const GitSubmitEditorPanelData &data); void setPanelData(const GitSubmitEditorPanelData &data);
void setPanelInfo(const GitSubmitEditorPanelInfo &info); void setPanelInfo(const GitSubmitEditorPanelInfo &info);
void setHasUnmerged(bool e);
protected: protected:
bool canSubmit() const; bool canSubmit() const;
@@ -78,6 +77,7 @@ private:
QWidget *m_gitSubmitPanel; QWidget *m_gitSubmitPanel;
Ui::GitSubmitPanel m_gitSubmitPanelUi; Ui::GitSubmitPanel m_gitSubmitPanelUi;
QValidator *m_emailValidator; QValidator *m_emailValidator;
bool m_hasUnmerged;
}; };
} // namespace Internal } // namespace Internal