Git: Pass rows instead of files for diffSelectedFiles

Useful when the same file can appear more than once
(e.g. staged + modified)

Task-number: QTCREATORBUG-5347
Change-Id: I3ce716c22840c149490e00e6948612607ae57159
Reviewed-by: Petar Perisin <petar.perisin@gmail.com>
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
This commit is contained in:
Orgad Shaneh
2013-01-11 10:45:00 +02:00
committed by Tobias Hunger
parent 39e9c5ef20
commit 76f6729892
13 changed files with 52 additions and 47 deletions

View File

@@ -210,7 +210,7 @@ VcsBaseSubmitEditor::VcsBaseSubmitEditor(const VcsBaseSubmitEditorParameters *pa
connect(d->m_file, SIGNAL(saveMe(QString*,QString,bool)),
this, SLOT(save(QString*,QString,bool)));
connect(d->m_widget, SIGNAL(diffSelected(QStringList)), this, SLOT(slotDiffSelectedVcsFiles(QStringList)));
connect(d->m_widget, SIGNAL(diffSelected(QList<int>)), this, SLOT(slotDiffSelectedVcsFiles(QList<int>)));
connect(d->m_widget->descriptionEdit(), SIGNAL(textChanged()), this, SLOT(slotDescriptionChanged()));
const CommonVcsSettings settings = VcsPlugin::instance()->settings();
@@ -540,9 +540,25 @@ SubmitFileModel *VcsBaseSubmitEditor::fileModel() const
return d->m_widget->fileModel();
}
void VcsBaseSubmitEditor::slotDiffSelectedVcsFiles(const QStringList &rawList)
QStringList VcsBaseSubmitEditor::rowsToFiles(const QList<int> &rows) const
{
emit diffSelectedFiles(rawList);
if (rows.empty())
return QStringList();
QStringList rc;
const SubmitFileModel *model = fileModel();
const int count = rows.size();
for (int i = 0; i < count; i++)
rc.push_back(model->file(rows.at(i)));
return rc;
}
void VcsBaseSubmitEditor::slotDiffSelectedVcsFiles(const QList<int> &rawList)
{
if (d->m_parameters->diffType == VcsBaseSubmitEditorParameters::DiffRows)
emit diffSelectedFiles(rawList);
else
emit diffSelectedFiles(rowsToFiles(rawList));
}
bool VcsBaseSubmitEditor::save(QString *errorString, const QString &fileName, bool autoSave)