forked from qt-creator/qt-creator
VCSBase: Add common functionality, make checkout use page lists.
Move GitClient::filterUntrackedFilesOfProject into submit editor. Make checkout wizards use page lists for greater flexibility.
This commit is contained in:
@@ -60,18 +60,20 @@ QString CloneWizard::name() const
|
||||
return tr("Git Repository Clone");
|
||||
}
|
||||
|
||||
QWizardPage *CloneWizard::createParameterPage(const QString &path)
|
||||
QList<QWizardPage*> CloneWizard::createParameterPages(const QString &path)
|
||||
{
|
||||
CloneWizardPage *cwp = new CloneWizardPage;
|
||||
cwp->setPath(path);
|
||||
return cwp;
|
||||
QList<QWizardPage*> rc;
|
||||
rc.push_back(cwp);
|
||||
return rc;
|
||||
}
|
||||
|
||||
QSharedPointer<VCSBase::AbstractCheckoutJob> CloneWizard::createJob(const QWizardPage *parameterPage,
|
||||
QSharedPointer<VCSBase::AbstractCheckoutJob> CloneWizard::createJob(const QList<QWizardPage*> ¶meterPages,
|
||||
QString *checkoutPath)
|
||||
{
|
||||
// Collect parameters for the clone command.
|
||||
const CloneWizardPage *cwp = qobject_cast<const CloneWizardPage *>(parameterPage);
|
||||
const CloneWizardPage *cwp = qobject_cast<const CloneWizardPage *>(parameterPages.front());
|
||||
QTC_ASSERT(cwp, return QSharedPointer<VCSBase::AbstractCheckoutJob>())
|
||||
const GitClient *client = GitPlugin::instance()->gitClient();
|
||||
QStringList args = client->binary();
|
||||
|
||||
@@ -47,8 +47,8 @@ public:
|
||||
|
||||
protected:
|
||||
// BaseCheckoutWizard
|
||||
virtual QWizardPage *createParameterPage(const QString &path);
|
||||
virtual QSharedPointer<VCSBase::AbstractCheckoutJob> createJob(const QWizardPage *parameterPage,
|
||||
virtual QList<QWizardPage*> createParameterPages(const QString &path);
|
||||
virtual QSharedPointer<VCSBase::AbstractCheckoutJob> createJob(const QList<QWizardPage*> ¶meterPages,
|
||||
QString *checkoutPath);
|
||||
};
|
||||
|
||||
|
||||
@@ -684,25 +684,6 @@ GitClient::StatusResult GitClient::gitStatus(const QString &workingDirectory,
|
||||
return StatusChanged;
|
||||
}
|
||||
|
||||
// Filter out untracked files that are not part of the project
|
||||
static void filterUntrackedFilesOfProject(const QString &repoDir, QStringList *l)
|
||||
{
|
||||
if (l->empty())
|
||||
return;
|
||||
const QStringList nativeProjectFiles = VCSBase::VCSBaseSubmitEditor::currentProjectFiles(true);
|
||||
if (nativeProjectFiles.empty())
|
||||
return;
|
||||
const QDir repoDirectory(repoDir);
|
||||
for (QStringList::iterator it = l->begin(); it != l->end(); ) {
|
||||
const QString path = QDir::toNativeSeparators(repoDirectory.absoluteFilePath(*it));
|
||||
if (nativeProjectFiles.contains(path)) {
|
||||
++it;
|
||||
} else {
|
||||
it = l->erase(it);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool GitClient::getCommitData(const QString &workingDirectory,
|
||||
QString *commitTemplate,
|
||||
CommitData *d,
|
||||
@@ -771,7 +752,7 @@ bool GitClient::getCommitData(const QString &workingDirectory,
|
||||
return false;
|
||||
}
|
||||
// Filter out untracked files that are not part of the project
|
||||
filterUntrackedFilesOfProject(repoDirectory, &d->untrackedFiles);
|
||||
VCSBase::VCSBaseSubmitEditor::filterUntrackedFilesOfProject(repoDirectory, &d->untrackedFiles);
|
||||
if (d->filesEmpty()) {
|
||||
*errorMessage = msgNoChangedFiles();
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user