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)
{
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)));
}

View File

@@ -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();
}

View File

@@ -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