forked from qt-creator/qt-creator
Vcs: Proliferate FilePath a bit further
Change-Id: I8490917bf0bde59b1cef2509ec14c3ca985fa43d Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
@@ -708,7 +708,7 @@ void BazaarPluginPrivate::showCommitWidget(const QList<VcsBaseClient::StatusItem
|
|||||||
commitEditor->document()->setPreferredDisplayName(msg);
|
commitEditor->document()->setPreferredDisplayName(msg);
|
||||||
|
|
||||||
const BranchInfo branch = m_client.synchronousBranchQuery(m_submitRepository);
|
const BranchInfo branch = m_client.synchronousBranchQuery(m_submitRepository);
|
||||||
commitEditor->setFields(m_submitRepository.toString(), branch,
|
commitEditor->setFields(m_submitRepository, branch,
|
||||||
m_settings.userName.value(),
|
m_settings.userName.value(),
|
||||||
m_settings.userEmail.value(), status);
|
m_settings.userEmail.value(), status);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
#include <coreplugin/idocument.h>
|
#include <coreplugin/idocument.h>
|
||||||
#include <vcsbase/submitfilemodel.h>
|
#include <vcsbase/submitfilemodel.h>
|
||||||
|
|
||||||
#include <QDebug>
|
using namespace Utils;
|
||||||
|
|
||||||
namespace Bazaar::Internal {
|
namespace Bazaar::Internal {
|
||||||
|
|
||||||
@@ -26,7 +26,7 @@ BazaarCommitWidget *CommitEditor::commitWidget()
|
|||||||
return static_cast<BazaarCommitWidget *>(widget());
|
return static_cast<BazaarCommitWidget *>(widget());
|
||||||
}
|
}
|
||||||
|
|
||||||
void CommitEditor::setFields(const QString &repositoryRoot, const BranchInfo &branch,
|
void CommitEditor::setFields(const FilePath &repositoryRoot, const BranchInfo &branch,
|
||||||
const QString &userName, const QString &email,
|
const QString &userName, const QString &email,
|
||||||
const QList<VcsBase::VcsBaseClient::StatusItem> &repoStatus)
|
const QList<VcsBase::VcsBaseClient::StatusItem> &repoStatus)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ class CommitEditor : public VcsBase::VcsBaseSubmitEditor
|
|||||||
public:
|
public:
|
||||||
CommitEditor();
|
CommitEditor();
|
||||||
|
|
||||||
void setFields(const QString &repositoryRoot, const BranchInfo &branch,
|
void setFields(const Utils::FilePath &repositoryRoot, const BranchInfo &branch,
|
||||||
const QString &userName, const QString &email,
|
const QString &userName, const QString &email,
|
||||||
const QList<VcsBase::VcsBaseClient::StatusItem> &repoStatus);
|
const QList<VcsBase::VcsBaseClient::StatusItem> &repoStatus);
|
||||||
|
|
||||||
|
|||||||
@@ -2792,7 +2792,7 @@ bool GitClient::getCommitData(const FilePath &workingDirectory,
|
|||||||
// Filter out untracked files that are not part of the project
|
// Filter out untracked files that are not part of the project
|
||||||
QStringList untrackedFiles = commitData.filterFiles(UntrackedFile);
|
QStringList untrackedFiles = commitData.filterFiles(UntrackedFile);
|
||||||
|
|
||||||
VcsBaseSubmitEditor::filterUntrackedFilesOfProject(repoDirectory.toString(), &untrackedFiles);
|
VcsBaseSubmitEditor::filterUntrackedFilesOfProject(repoDirectory, &untrackedFiles);
|
||||||
QList<CommitData::StateFilePair> filteredFiles;
|
QList<CommitData::StateFilePair> filteredFiles;
|
||||||
QList<CommitData::StateFilePair>::const_iterator it = commitData.files.constBegin();
|
QList<CommitData::StateFilePair>::const_iterator it = commitData.files.constBegin();
|
||||||
for ( ; it != commitData.files.constEnd(); ++it) {
|
for ( ; it != commitData.files.constEnd(); ++it) {
|
||||||
|
|||||||
@@ -115,10 +115,8 @@ void GitSubmitEditor::setCommitData(const CommitData &d)
|
|||||||
setEmptyFileListEnabled(m_commitType == AmendCommit); // Allow for just correcting the message
|
setEmptyFileListEnabled(m_commitType == AmendCommit); // Allow for just correcting the message
|
||||||
|
|
||||||
m_model = new GitSubmitFileModel(this);
|
m_model = new GitSubmitFileModel(this);
|
||||||
m_model->setRepositoryRoot(d.panelInfo.repository.toString());
|
m_model->setRepositoryRoot(d.panelInfo.repository);
|
||||||
m_model->setFileStatusQualifier([](const QString &, const QVariant &extraData)
|
m_model->setFileStatusQualifier([](const QString &, const QVariant &extraData) {
|
||||||
-> SubmitFileModel::FileStatusHint
|
|
||||||
{
|
|
||||||
const FileStates state = static_cast<FileStates>(extraData.toInt());
|
const FileStates state = static_cast<FileStates>(extraData.toInt());
|
||||||
if (state & (UnmergedFile | UnmergedThem | UnmergedUs))
|
if (state & (UnmergedFile | UnmergedThem | UnmergedUs))
|
||||||
return SubmitFileModel::FileUnmerged;
|
return SubmitFileModel::FileUnmerged;
|
||||||
|
|||||||
@@ -9,9 +9,8 @@
|
|||||||
#include <coreplugin/idocument.h>
|
#include <coreplugin/idocument.h>
|
||||||
#include <vcsbase/submitfilemodel.h>
|
#include <vcsbase/submitfilemodel.h>
|
||||||
|
|
||||||
#include <QDebug>
|
|
||||||
|
|
||||||
using namespace VcsBase;
|
using namespace VcsBase;
|
||||||
|
using namespace Utils;
|
||||||
|
|
||||||
namespace Mercurial::Internal {
|
namespace Mercurial::Internal {
|
||||||
|
|
||||||
@@ -26,7 +25,7 @@ MercurialCommitWidget *CommitEditor::commitWidget() const
|
|||||||
return static_cast<MercurialCommitWidget *>(widget());
|
return static_cast<MercurialCommitWidget *>(widget());
|
||||||
}
|
}
|
||||||
|
|
||||||
void CommitEditor::setFields(const QFileInfo &repositoryRoot, const QString &branch,
|
void CommitEditor::setFields(const FilePath &repositoryRoot, const QString &branch,
|
||||||
const QString &userName, const QString &email,
|
const QString &userName, const QString &email,
|
||||||
const QList<VcsBaseClient::StatusItem> &repoStatus)
|
const QList<VcsBaseClient::StatusItem> &repoStatus)
|
||||||
{
|
{
|
||||||
@@ -34,7 +33,7 @@ void CommitEditor::setFields(const QFileInfo &repositoryRoot, const QString &bra
|
|||||||
if (!mercurialWidget)
|
if (!mercurialWidget)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
mercurialWidget->setFields(repositoryRoot.absoluteFilePath(), branch, userName, email);
|
mercurialWidget->setFields(repositoryRoot.absoluteFilePath().toString(), branch, userName, email);
|
||||||
|
|
||||||
fileModel = new SubmitFileModel(this);
|
fileModel = new SubmitFileModel(this);
|
||||||
fileModel->setRepositoryRoot(repositoryRoot.absoluteFilePath());
|
fileModel->setRepositoryRoot(repositoryRoot.absoluteFilePath());
|
||||||
|
|||||||
@@ -6,8 +6,6 @@
|
|||||||
#include <vcsbase/vcsbaseclient.h>
|
#include <vcsbase/vcsbaseclient.h>
|
||||||
#include <vcsbase/vcsbasesubmiteditor.h>
|
#include <vcsbase/vcsbasesubmiteditor.h>
|
||||||
|
|
||||||
#include <QFileInfo>
|
|
||||||
|
|
||||||
namespace VcsBase { class SubmitFileModel; }
|
namespace VcsBase { class SubmitFileModel; }
|
||||||
|
|
||||||
namespace Mercurial::Internal {
|
namespace Mercurial::Internal {
|
||||||
@@ -21,7 +19,7 @@ class CommitEditor : public VcsBase::VcsBaseSubmitEditor
|
|||||||
public:
|
public:
|
||||||
CommitEditor();
|
CommitEditor();
|
||||||
|
|
||||||
void setFields(const QFileInfo &repositoryRoot, const QString &branch,
|
void setFields(const Utils::FilePath &repositoryRoot, const QString &branch,
|
||||||
const QString &userName, const QString &email,
|
const QString &userName, const QString &email,
|
||||||
const QList<VcsBase::VcsBaseClient::StatusItem> &repoStatus);
|
const QList<VcsBase::VcsBaseClient::StatusItem> &repoStatus);
|
||||||
|
|
||||||
@@ -30,6 +28,7 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
MercurialCommitWidget *commitWidget() const;
|
MercurialCommitWidget *commitWidget() const;
|
||||||
|
|
||||||
VcsBase::SubmitFileModel *fileModel = nullptr;
|
VcsBase::SubmitFileModel *fileModel = nullptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -634,7 +634,7 @@ void MercurialPluginPrivate::showCommitWidget(const QList<VcsBaseClient::StatusI
|
|||||||
commitEditor->document()->setPreferredDisplayName(msg);
|
commitEditor->document()->setPreferredDisplayName(msg);
|
||||||
|
|
||||||
const QString branch = vcsTopic(m_submitRepository);
|
const QString branch = vcsTopic(m_submitRepository);
|
||||||
commitEditor->setFields(QFileInfo(m_submitRepository.toString()), branch,
|
commitEditor->setFields(m_submitRepository, branch,
|
||||||
m_settings.userName.value(),
|
m_settings.userName.value(),
|
||||||
m_settings.userEmail.value(), status);
|
m_settings.userEmail.value(), status);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,15 +3,15 @@
|
|||||||
|
|
||||||
#include "submitfilemodel.h"
|
#include "submitfilemodel.h"
|
||||||
|
|
||||||
#include <utils/fileutils.h>
|
|
||||||
#include <utils/fsengine/fileiconprovider.h>
|
#include <utils/fsengine/fileiconprovider.h>
|
||||||
#include <utils/qtcassert.h>
|
#include <utils/qtcassert.h>
|
||||||
#include <utils/theme/theme.h>
|
#include <utils/theme/theme.h>
|
||||||
|
|
||||||
#include <QStandardItem>
|
#include <QStandardItem>
|
||||||
#include <QFileInfo>
|
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
|
||||||
|
using namespace Utils;
|
||||||
|
|
||||||
namespace VcsBase {
|
namespace VcsBase {
|
||||||
|
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
@@ -22,7 +22,6 @@ enum { StateColumn = 0, FileColumn = 1 };
|
|||||||
|
|
||||||
static QBrush fileStatusTextForeground(SubmitFileModel::FileStatusHint statusHint)
|
static QBrush fileStatusTextForeground(SubmitFileModel::FileStatusHint statusHint)
|
||||||
{
|
{
|
||||||
using Utils::Theme;
|
|
||||||
Theme::Color statusTextColor = Theme::VcsBase_FileStatusUnknown_TextColor;
|
Theme::Color statusTextColor = Theme::VcsBase_FileStatusUnknown_TextColor;
|
||||||
switch (statusHint) {
|
switch (statusHint) {
|
||||||
case SubmitFileModel::FileStatusUnknown:
|
case SubmitFileModel::FileStatusUnknown:
|
||||||
@@ -47,7 +46,7 @@ static QBrush fileStatusTextForeground(SubmitFileModel::FileStatusHint statusHin
|
|||||||
return QBrush(Utils::creatorTheme()->color(statusTextColor));
|
return QBrush(Utils::creatorTheme()->color(statusTextColor));
|
||||||
}
|
}
|
||||||
|
|
||||||
static QList<QStandardItem *> createFileRow(const QString &repositoryRoot,
|
static QList<QStandardItem *> createFileRow(const FilePath &repositoryRoot,
|
||||||
const QString &fileName,
|
const QString &fileName,
|
||||||
const QString &status,
|
const QString &status,
|
||||||
SubmitFileModel::FileStatusHint statusHint,
|
SubmitFileModel::FileStatusHint statusHint,
|
||||||
@@ -67,8 +66,7 @@ static QList<QStandardItem *> createFileRow(const QString &repositoryRoot,
|
|||||||
// For some reason, Windows (at least) requires a valid (existing) file path to the icon, so
|
// For some reason, Windows (at least) requires a valid (existing) file path to the icon, so
|
||||||
// the repository root is needed here.
|
// the repository root is needed here.
|
||||||
// Note: for "overlaid" icons in Utils::FileIconProvider a valid file path is not required
|
// Note: for "overlaid" icons in Utils::FileIconProvider a valid file path is not required
|
||||||
fileItem->setIcon(Utils::FileIconProvider::icon(
|
fileItem->setIcon(FileIconProvider::icon(repositoryRoot.pathAppended(fileName)));
|
||||||
Utils::FilePath::fromString(repositoryRoot).pathAppended(fileName)));
|
|
||||||
const QList<QStandardItem *> row{statusItem, fileItem};
|
const QList<QStandardItem *> row{statusItem, fileItem};
|
||||||
if (statusHint != SubmitFileModel::FileStatusUnknown) {
|
if (statusHint != SubmitFileModel::FileStatusUnknown) {
|
||||||
const QBrush textForeground = fileStatusTextForeground(statusHint);
|
const QBrush textForeground = fileStatusTextForeground(statusHint);
|
||||||
@@ -97,12 +95,12 @@ SubmitFileModel::SubmitFileModel(QObject *parent) :
|
|||||||
setHorizontalHeaderLabels({tr("State"), tr("File")});
|
setHorizontalHeaderLabels({tr("State"), tr("File")});
|
||||||
}
|
}
|
||||||
|
|
||||||
const QString &SubmitFileModel::repositoryRoot() const
|
const FilePath &SubmitFileModel::repositoryRoot() const
|
||||||
{
|
{
|
||||||
return m_repositoryRoot;
|
return m_repositoryRoot;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SubmitFileModel::setRepositoryRoot(const QString &repoRoot)
|
void SubmitFileModel::setRepositoryRoot(const FilePath &repoRoot)
|
||||||
{
|
{
|
||||||
m_repositoryRoot = repoRoot;
|
m_repositoryRoot = repoRoot;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,8 @@
|
|||||||
|
|
||||||
#include "vcsbase_global.h"
|
#include "vcsbase_global.h"
|
||||||
|
|
||||||
|
#include <utils/filepath.h>
|
||||||
|
|
||||||
#include <QStandardItemModel>
|
#include <QStandardItemModel>
|
||||||
|
|
||||||
#include <functional>
|
#include <functional>
|
||||||
@@ -24,8 +26,8 @@ class VCSBASE_EXPORT SubmitFileModel : public QStandardItemModel
|
|||||||
public:
|
public:
|
||||||
explicit SubmitFileModel(QObject *parent = nullptr);
|
explicit SubmitFileModel(QObject *parent = nullptr);
|
||||||
|
|
||||||
const QString &repositoryRoot() const;
|
const Utils::FilePath &repositoryRoot() const;
|
||||||
void setRepositoryRoot(const QString &repoRoot);
|
void setRepositoryRoot(const Utils::FilePath &repoRoot);
|
||||||
|
|
||||||
// Convenience to create and add rows containing a file plus status text.
|
// Convenience to create and add rows containing a file plus status text.
|
||||||
QList<QStandardItem *> addFile(const QString &fileName, const QString &status = QString(),
|
QList<QStandardItem *> addFile(const QString &fileName, const QString &status = QString(),
|
||||||
@@ -67,7 +69,7 @@ public:
|
|||||||
void setFileStatusQualifier(FileStatusQualifier &&func);
|
void setFileStatusQualifier(FileStatusQualifier &&func);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QString m_repositoryRoot;
|
Utils::FilePath m_repositoryRoot;
|
||||||
FileStatusQualifier m_fileStatusQualifier;
|
FileStatusQualifier m_fileStatusQualifier;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -328,9 +328,9 @@ Core::IDocument *VcsBaseSubmitEditor::document() const
|
|||||||
return &d->m_file;
|
return &d->m_file;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString VcsBaseSubmitEditor::checkScriptWorkingDirectory() const
|
FilePath VcsBaseSubmitEditor::checkScriptWorkingDirectory() const
|
||||||
{
|
{
|
||||||
return d->m_checkScriptWorkingDirectory.toString();
|
return d->m_checkScriptWorkingDirectory;
|
||||||
}
|
}
|
||||||
|
|
||||||
void VcsBaseSubmitEditor::setCheckScriptWorkingDirectory(const FilePath &s)
|
void VcsBaseSubmitEditor::setCheckScriptWorkingDirectory(const FilePath &s)
|
||||||
@@ -380,8 +380,7 @@ static QSet<FilePath> filesFromModel(SubmitFileModel *model)
|
|||||||
QSet<FilePath> result;
|
QSet<FilePath> result;
|
||||||
result.reserve(model->rowCount());
|
result.reserve(model->rowCount());
|
||||||
for (int row = 0; row < model->rowCount(); ++row) {
|
for (int row = 0; row < model->rowCount(); ++row) {
|
||||||
result.insert(FilePath::fromString(
|
result.insert(model->repositoryRoot().resolvePath(model->file(row)).absoluteFilePath());
|
||||||
QFileInfo(model->repositoryRoot(), model->file(row)).absoluteFilePath()));
|
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -628,13 +627,12 @@ QIcon VcsBaseSubmitEditor::submitIcon()
|
|||||||
|
|
||||||
// Reduce a list of untracked files reported by a VCS down to the files
|
// Reduce a list of untracked files reported by a VCS down to the files
|
||||||
// that are actually part of the current project(s).
|
// that are actually part of the current project(s).
|
||||||
void VcsBaseSubmitEditor::filterUntrackedFilesOfProject(const QString &repositoryDirectory,
|
void VcsBaseSubmitEditor::filterUntrackedFilesOfProject(const FilePath &repositoryDirectory,
|
||||||
QStringList *untrackedFiles)
|
QStringList *untrackedFiles)
|
||||||
{
|
{
|
||||||
const QDir repoDir(repositoryDirectory);
|
|
||||||
for (QStringList::iterator it = untrackedFiles->begin(); it != untrackedFiles->end(); ) {
|
for (QStringList::iterator it = untrackedFiles->begin(); it != untrackedFiles->end(); ) {
|
||||||
const QString path = repoDir.absoluteFilePath(*it);
|
const FilePath path = repositoryDirectory.resolvePath(*it).absoluteFilePath();
|
||||||
if (ProjectExplorer::SessionManager::projectForFile(FilePath::fromString(path)))
|
if (ProjectExplorer::SessionManager::projectForFile(path))
|
||||||
++it;
|
++it;
|
||||||
else
|
else
|
||||||
it = untrackedFiles->erase(it);
|
it = untrackedFiles->erase(it);
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ public:
|
|||||||
int lineWrapWidth() const;
|
int lineWrapWidth() const;
|
||||||
void setLineWrapWidth(int);
|
void setLineWrapWidth(int);
|
||||||
|
|
||||||
QString checkScriptWorkingDirectory() const;
|
Utils::FilePath checkScriptWorkingDirectory() const;
|
||||||
void setCheckScriptWorkingDirectory(const Utils::FilePath &);
|
void setCheckScriptWorkingDirectory(const Utils::FilePath &);
|
||||||
|
|
||||||
Core::IDocument *document() const override;
|
Core::IDocument *document() const override;
|
||||||
@@ -83,7 +83,8 @@ public:
|
|||||||
|
|
||||||
// Reduce a list of untracked files reported by a VCS down to the files
|
// Reduce a list of untracked files reported by a VCS down to the files
|
||||||
// that are actually part of the current project(s).
|
// that are actually part of the current project(s).
|
||||||
static void filterUntrackedFilesOfProject(const QString &repositoryDirectory, QStringList *untrackedFiles);
|
static void filterUntrackedFilesOfProject(const Utils::FilePath &repositoryDirectory,
|
||||||
|
QStringList *untrackedFiles);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void diffSelectedFiles(const QStringList &files);
|
void diffSelectedFiles(const QStringList &files);
|
||||||
|
|||||||
Reference in New Issue
Block a user