diff options
| author | hjk <[email protected]> | 2021-07-30 16:46:27 +0200 |
|---|---|---|
| committer | hjk <[email protected]> | 2021-08-02 14:40:33 +0000 |
| commit | ff57cb548d2c528a42fa2870b2486cddc08acfb7 (patch) | |
| tree | 0c7f371818d436d79cd3d65fac1c98de4d2391bf /src/plugins/mercurial | |
| parent | 17f907da9bd73d9b1515cbdd269c93f0061b7071 (diff) | |
Vcs: Use more FilePath for file paths
Change-Id: I855cde65d034a9647972a7fddf1e8266d7ccfa88
Reviewed-by: Orgad Shaneh <[email protected]>
Diffstat (limited to 'src/plugins/mercurial')
| -rw-r--r-- | src/plugins/mercurial/mercurialclient.cpp | 96 | ||||
| -rw-r--r-- | src/plugins/mercurial/mercurialclient.h | 40 | ||||
| -rw-r--r-- | src/plugins/mercurial/mercurialeditor.cpp | 6 | ||||
| -rw-r--r-- | src/plugins/mercurial/mercurialplugin.cpp | 33 | ||||
| -rw-r--r-- | src/plugins/mercurial/srcdestdialog.cpp | 8 | ||||
| -rw-r--r-- | src/plugins/mercurial/srcdestdialog.h | 2 |
6 files changed, 89 insertions, 96 deletions
diff --git a/src/plugins/mercurial/mercurialclient.cpp b/src/plugins/mercurial/mercurialclient.cpp index cefe23292c3..8fa54da42f6 100644 --- a/src/plugins/mercurial/mercurialclient.cpp +++ b/src/plugins/mercurial/mercurialclient.cpp @@ -91,7 +91,7 @@ MercurialClient::MercurialClient(MercurialSettings *settings) : VcsBaseClient(se { } -bool MercurialClient::manifestSync(const QString &repository, const QString &relativeFilename) +bool MercurialClient::manifestSync(const FilePath &repository, const QString &relativeFilename) { // This only works when called from the repo and outputs paths relative to it. const QStringList args(QLatin1String("manifest")); @@ -99,7 +99,7 @@ bool MercurialClient::manifestSync(const QString &repository, const QString &rel QtcProcess proc; vcsFullySynchronousExec(proc, repository, args); - const QDir repositoryDir(repository); + const QDir repositoryDir(repository.toString()); const QFileInfo needle = QFileInfo(repositoryDir, relativeFilename); const QStringList files = proc.stdOut().split(QLatin1Char('\n')); @@ -112,14 +112,12 @@ bool MercurialClient::manifestSync(const QString &repository, const QString &rel } //bool MercurialClient::clone(const QString &directory, const QString &url) -bool MercurialClient::synchronousClone(const FilePath &workingDir, +bool MercurialClient::synchronousClone(const FilePath &workingDirectory, const QString &srcLocation, const QString &dstLocation, const QStringList &extraOptions) { - Q_UNUSED(workingDir) Q_UNUSED(extraOptions) - QDir workingDirectory(srcLocation); const unsigned flags = VcsCommand::SshPasswordPrompt | VcsCommand::ShowStdOut | VcsCommand::ShowSuccessMessage; @@ -128,7 +126,7 @@ bool MercurialClient::synchronousClone(const FilePath &workingDir, // Let's make first init QStringList arguments(QLatin1String("init")); QtcProcess proc; - vcsFullySynchronousExec(proc, workingDirectory.path(), arguments); + vcsFullySynchronousExec(proc, workingDirectory, arguments); if (proc.result() != QtcProcess::FinishedWithSuccess) return false; @@ -136,12 +134,12 @@ bool MercurialClient::synchronousClone(const FilePath &workingDir, arguments.clear(); arguments << QLatin1String("pull") << dstLocation; QtcProcess proc1; - vcsSynchronousExec(proc1, workingDirectory.path(), arguments, flags); + vcsSynchronousExec(proc1, workingDirectory, arguments, flags); if (proc1.result() != QtcProcess::FinishedWithSuccess) return false; // By now, there is no hgrc file -> create it - FileSaver saver(Utils::FilePath::fromString(workingDirectory.path() + "/.hg/hgrc")); + FileSaver saver(workingDirectory.pathAppended(".hg/hgrc")); const QString hgrc = QLatin1String("[paths]\ndefault = ") + dstLocation + QLatin1Char('\n'); saver.write(hgrc.toUtf8()); if (!saver.finalize()) { @@ -153,19 +151,18 @@ bool MercurialClient::synchronousClone(const FilePath &workingDir, arguments.clear(); arguments << QLatin1String("update"); QtcProcess proc2; - vcsSynchronousExec(proc2, workingDirectory.path(), arguments, flags); + vcsSynchronousExec(proc2, workingDirectory, arguments, flags); return proc2.result() == QtcProcess::FinishedWithSuccess; } else { QStringList arguments(QLatin1String("clone")); - arguments << dstLocation << workingDirectory.dirName(); - workingDirectory.cdUp(); + arguments << dstLocation << workingDirectory.parentDir().toString(); QtcProcess proc; - vcsSynchronousExec(proc, workingDirectory.path(), arguments, flags); + vcsSynchronousExec(proc, workingDirectory.parentDir(), arguments, flags); return proc.result() == QtcProcess::FinishedWithSuccess; } } -bool MercurialClient::synchronousPull(const QString &workingDir, const QString &srcLocation, const QStringList &extraOptions) +bool MercurialClient::synchronousPull(const FilePath &workingDir, const QString &srcLocation, const QStringList &extraOptions) { QStringList args; args << vcsCommandString(PullCommand) << extraOptions << srcLocation; @@ -202,12 +199,12 @@ QString MercurialClient::branchQuerySync(const QString &repositoryRoot) return QLatin1String("Unknown Branch"); } -static inline QString msgParentRevisionFailed(const QString &workingDirectory, - const QString &revision, - const QString &why) +static QString msgParentRevisionFailed(const FilePath &workingDirectory, + const QString &revision, + const QString &why) { return MercurialClient::tr("Unable to find parent revisions of %1 in %2: %3"). - arg(revision, QDir::toNativeSeparators(workingDirectory), why); + arg(revision, workingDirectory.toUserOutput(), why); } static inline QString msgParseParentsOutputFailed(const QString &output) @@ -215,9 +212,9 @@ static inline QString msgParseParentsOutputFailed(const QString &output) return MercurialClient::tr("Cannot parse output: %1").arg(output); } -QStringList MercurialClient::parentRevisionsSync(const QString &workingDirectory, - const QString &file /* = QString() */, - const QString &revision) +QStringList MercurialClient::parentRevisionsSync(const FilePath &workingDirectory, + const QString &file /* = QString() */, + const QString &revision) { QStringList parents; QStringList args; @@ -258,9 +255,9 @@ user: ... } // Describe a change using an optional format -QString MercurialClient::shortDescriptionSync(const QString &workingDirectory, - const QString &revision, - const QString &format) +QString MercurialClient::shortDescriptionSync(const FilePath &workingDirectory, + const QString &revision, + const QString &format) { QStringList args; args << QLatin1String("log") << QLatin1String("-r") <<revision; @@ -277,13 +274,13 @@ QString MercurialClient::shortDescriptionSync(const QString &workingDirectory, // Default format: "SHA1 (author summmary)" static const char defaultFormatC[] = "{node} ({author|person} {desc|firstline})"; -QString MercurialClient::shortDescriptionSync(const QString &workingDirectory, - const QString &revision) +QString MercurialClient::shortDescriptionSync(const FilePath &workingDirectory, + const QString &revision) { return shortDescriptionSync(workingDirectory, revision, QLatin1String(defaultFormatC)); } -bool MercurialClient::managesFile(const QString &workingDirectory, const QString &fileName) const +bool MercurialClient::managesFile(const FilePath &workingDirectory, const QString &fileName) const { QStringList args; args << QLatin1String("status") << QLatin1String("--unknown") << fileName; @@ -292,44 +289,43 @@ bool MercurialClient::managesFile(const QString &workingDirectory, const QString return proc.stdOut().isEmpty(); } -void MercurialClient::incoming(const QString &repositoryRoot, const QString &repository) +void MercurialClient::incoming(const FilePath &repositoryRoot, const QString &repository) { QStringList args; args << QLatin1String("incoming") << QLatin1String("-g") << QLatin1String("-p"); if (!repository.isEmpty()) args.append(repository); - QString id = repositoryRoot; + QString id = repositoryRoot.toString(); if (!repository.isEmpty()) id += QLatin1Char('/') + repository; const QString title = tr("Hg incoming %1").arg(id); - VcsBaseEditorWidget *editor = createVcsEditor(Constants::DIFFLOG_ID, title, repositoryRoot, - VcsBaseEditor::getCodec(repositoryRoot), + VcsBaseEditorWidget *editor = createVcsEditor(Constants::DIFFLOG_ID, title, repositoryRoot.toString(), + VcsBaseEditor::getCodec(repositoryRoot.toString()), "incoming", id); - VcsCommand *cmd = createCommand(repository, editor); + VcsCommand *cmd = createCommand(FilePath::fromString(repository), editor); enqueueJob(cmd, args); } -void MercurialClient::outgoing(const QString &repositoryRoot) +void MercurialClient::outgoing(const FilePath &repositoryRoot) { QStringList args; args << QLatin1String("outgoing") << QLatin1String("-g") << QLatin1String("-p"); - const QString title = tr("Hg outgoing %1"). - arg(QDir::toNativeSeparators(repositoryRoot)); + const QString title = tr("Hg outgoing %1").arg(repositoryRoot.toUserOutput()); - VcsBaseEditorWidget *editor = createVcsEditor(Constants::DIFFLOG_ID, title, repositoryRoot, - VcsBaseEditor::getCodec(repositoryRoot), - "outgoing", repositoryRoot); + VcsBaseEditorWidget *editor = createVcsEditor(Constants::DIFFLOG_ID, title, repositoryRoot.toString(), + VcsBaseEditor::getCodec(repositoryRoot.toString()), + "outgoing", repositoryRoot.toString()); VcsCommand *cmd = createCommand(repositoryRoot, editor); enqueueJob(cmd, args); } VcsBaseEditorWidget *MercurialClient::annotate( - const QString &workingDir, const QString &file, const QString &revision, + const FilePath &workingDir, const QString &file, const QString &revision, int lineNumber, const QStringList &extraOptions) { QStringList args(extraOptions); @@ -337,7 +333,7 @@ VcsBaseEditorWidget *MercurialClient::annotate( return VcsBaseClient::annotate(workingDir, file, revision, lineNumber, args); } -void MercurialClient::commit(const QString &repositoryRoot, const QStringList &files, +void MercurialClient::commit(const FilePath &repositoryRoot, const QStringList &files, const QString &commitMessageFile, const QStringList &extraOptions) { @@ -346,7 +342,7 @@ void MercurialClient::commit(const QString &repositoryRoot, const QStringList &f VcsBaseClient::commit(repositoryRoot, files, commitMessageFile, args); } -void MercurialClient::diff(const QString &workingDir, const QStringList &files, +void MercurialClient::diff(const FilePath &workingDir, const QStringList &files, const QStringList &extraOptions) { Q_UNUSED(extraOptions) @@ -358,41 +354,41 @@ void MercurialClient::diff(const QString &workingDir, const QStringList &files, const QString sourceFile = VcsBaseEditor::getSource(workingDir, fileName); const QString documentId = QString(Constants::MERCURIAL_PLUGIN) + ".DiffRepo." + sourceFile; - requestReload(documentId, sourceFile, title, workingDir, {"diff"}); + requestReload(documentId, sourceFile, title, workingDir.toString(), {"diff"}); } else if (files.size() == 1) { fileName = files.at(0); const QString title = tr("Mercurial Diff \"%1\"").arg(fileName); const QString sourceFile = VcsBaseEditor::getSource(workingDir, fileName); const QString documentId = QString(Constants::MERCURIAL_PLUGIN) + ".DiffFile." + sourceFile; - requestReload(documentId, sourceFile, title, workingDir, {"diff", fileName}); + requestReload(documentId, sourceFile, title, workingDir.toString(), {"diff", fileName}); } else { - const QString title = tr("Mercurial Diff \"%1\"").arg(workingDir); + const QString title = tr("Mercurial Diff \"%1\"").arg(workingDir.toString()); const QString sourceFile = VcsBaseEditor::getSource(workingDir, fileName); const QString documentId = QString(Constants::MERCURIAL_PLUGIN) - + ".DiffFile." + workingDir; - requestReload(documentId, sourceFile, title, workingDir, QStringList{"diff"} + files); + + ".DiffFile." + workingDir.toString(); + requestReload(documentId, sourceFile, title, workingDir.toString(), QStringList{"diff"} + files); } } -void MercurialClient::import(const QString &repositoryRoot, const QStringList &files, +void MercurialClient::import(const FilePath &repositoryRoot, const QStringList &files, const QStringList &extraOptions) { VcsBaseClient::import(repositoryRoot, files, QStringList(extraOptions) << QLatin1String("--no-commit")); } -void MercurialClient::revertAll(const QString &workingDir, const QString &revision, +void MercurialClient::revertAll(const FilePath &workingDir, const QString &revision, const QStringList &extraOptions) { VcsBaseClient::revertAll(workingDir, revision, QStringList(extraOptions) << QLatin1String("--all")); } -bool MercurialClient::isVcsDirectory(const FilePath &fileName) const +bool MercurialClient::isVcsDirectory(const FilePath &filePath) const { - return fileName.isDir() - && !fileName.fileName().compare(Constants::MERCURIALREPO, HostOsInfo::fileNameCaseSensitivity()); + return filePath.isDir() + && !filePath.fileName().compare(Constants::MERCURIALREPO, HostOsInfo::fileNameCaseSensitivity()); } void MercurialClient::view(const QString &source, const QString &id, diff --git a/src/plugins/mercurial/mercurialclient.h b/src/plugins/mercurial/mercurialclient.h index e67853c24ed..7a9bd3dabd0 100644 --- a/src/plugins/mercurial/mercurialclient.h +++ b/src/plugins/mercurial/mercurialclient.h @@ -45,36 +45,36 @@ public: bool synchronousClone(const Utils::FilePath &workingDir, const QString &srcLocation, const QString &dstLocation, - const QStringList &extraOptions = QStringList()) override; - bool synchronousPull(const QString &workingDir, + const QStringList &extraOptions = {}) override; + bool synchronousPull(const Utils::FilePath &workingDir, const QString &srcLocation, - const QStringList &extraOptions = QStringList()) override; - bool manifestSync(const QString &repository, const QString &filename); + const QStringList &extraOptions = {}) override; + bool manifestSync(const Utils::FilePath &repository, const QString &filename); QString branchQuerySync(const QString &repositoryRoot); - QStringList parentRevisionsSync(const QString &workingDirectory, + QStringList parentRevisionsSync(const Utils::FilePath &workingDirectory, const QString &file /* = QString() */, const QString &revision); - QString shortDescriptionSync(const QString &workingDirectory, const QString &revision, + QString shortDescriptionSync(const Utils::FilePath &workingDirectory, const QString &revision, const QString &format /* = QString() */); - QString shortDescriptionSync(const QString &workingDirectory, const QString &revision); - void incoming(const QString &repositoryRoot, const QString &repository = QString()); - void outgoing(const QString &repositoryRoot); - bool managesFile(const QString &workingDirectory, const QString &fileName) const; + QString shortDescriptionSync(const Utils::FilePath &workingDirectory, const QString &revision); + void incoming(const Utils::FilePath &repositoryRoot, const QString &repository = {}); + void outgoing(const Utils::FilePath &repositoryRoot); + bool managesFile(const Utils::FilePath &workingDirectory, const QString &fileName) const; VcsBase::VcsBaseEditorWidget *annotate( - const QString &workingDir, const QString &file, const QString &revision = QString(), - int lineNumber = -1, const QStringList &extraOptions = QStringList()) override; - void commit(const QString &repositoryRoot, const QStringList &files, + const Utils::FilePath &workingDir, const QString &file, const QString &revision = {}, + int lineNumber = -1, const QStringList &extraOptions = {}) override; + void commit(const Utils::FilePath &repositoryRoot, const QStringList &files, const QString &commitMessageFile, const QStringList &extraOptions = QStringList()) override; - void diff(const QString &workingDir, const QStringList &files = QStringList(), - const QStringList &extraOptions = QStringList()) override; - void import(const QString &repositoryRoot, const QStringList &files, - const QStringList &extraOptions = QStringList()) override; - void revertAll(const QString &workingDir, const QString &revision = QString(), - const QStringList &extraOptions = QStringList()) override; + void diff(const Utils::FilePath &workingDir, const QStringList &files = {}, + const QStringList &extraOptions = {}) override; + void import(const Utils::FilePath &repositoryRoot, const QStringList &files, + const QStringList &extraOptions = {}) override; + void revertAll(const Utils::FilePath &workingDir, const QString &revision = {}, + const QStringList &extraOptions = {}) override; - bool isVcsDirectory(const Utils::FilePath &fileName) const; + bool isVcsDirectory(const Utils::FilePath &filePath) const; Utils::FilePath findTopLevelForFile(const Utils::FilePath &file) const override; void view(const QString &source, const QString &id, diff --git a/src/plugins/mercurial/mercurialeditor.cpp b/src/plugins/mercurial/mercurialeditor.cpp index 3523d72efc1..83caff8f74c 100644 --- a/src/plugins/mercurial/mercurialeditor.cpp +++ b/src/plugins/mercurial/mercurialeditor.cpp @@ -39,6 +39,8 @@ #include <QFileInfo> #include <QDebug> +using namespace Utils; + namespace Mercurial { namespace Internal { @@ -80,7 +82,7 @@ QString MercurialEditorWidget::decorateVersion(const QString &revision) const const QFileInfo fi(source()); const QString workingDirectory = fi.absolutePath(); // Format with short summary - return m_client->shortDescriptionSync(workingDirectory, revision); + return m_client->shortDescriptionSync(FilePath::fromString(workingDirectory), revision); } QStringList MercurialEditorWidget::annotationPreviousVersions(const QString &revision) const @@ -88,7 +90,7 @@ QStringList MercurialEditorWidget::annotationPreviousVersions(const QString &rev const QFileInfo fi(source()); const QString workingDirectory = fi.absolutePath(); // Retrieve parent revisions - return m_client->parentRevisionsSync(workingDirectory, fi.fileName(), revision); + return m_client->parentRevisionsSync(FilePath::fromString(workingDirectory), fi.fileName(), revision); } } // namespace Internal diff --git a/src/plugins/mercurial/mercurialplugin.cpp b/src/plugins/mercurial/mercurialplugin.cpp index f1ca7dfb64e..12b8cb6a186 100644 --- a/src/plugins/mercurial/mercurialplugin.cpp +++ b/src/plugins/mercurial/mercurialplugin.cpp @@ -215,7 +215,7 @@ private: QAction *m_createRepositoryAction = nullptr; QAction *m_menuAction = nullptr; - QString m_submitRepository; + FilePath m_submitRepository; bool m_submitActionTriggered = false; @@ -657,12 +657,11 @@ void MercurialPluginPrivate::showCommitWidget(const QList<VcsBaseClient::StatusI this, &MercurialPluginPrivate::diffFromEditorSelected); commitEditor->setCheckScriptWorkingDirectory(m_submitRepository); - const QString msg = tr("Commit changes for \"%1\"."). - arg(QDir::toNativeSeparators(m_submitRepository)); + const QString msg = tr("Commit changes for \"%1\".").arg(m_submitRepository.toUserOutput()); commitEditor->document()->setPreferredDisplayName(msg); - const QString branch = vcsTopic(FilePath::fromString(m_submitRepository)); - commitEditor->setFields(QFileInfo(m_submitRepository), branch, + const QString branch = vcsTopic(m_submitRepository); + commitEditor->setFields(QFileInfo(m_submitRepository.toString()), branch, m_settings.userName.value(), m_settings.userEmail.value(), status); } @@ -762,7 +761,7 @@ bool MercurialPluginPrivate::managesDirectory(const FilePath &filePath, FilePath bool MercurialPluginPrivate::managesFile(const FilePath &workingDirectory, const QString &fileName) const { - return m_client.managesFile(workingDirectory.toString(), fileName); + return m_client.managesFile(workingDirectory, fileName); } bool MercurialPluginPrivate::isConfigured() const @@ -800,23 +799,21 @@ bool MercurialPluginPrivate::vcsOpen(const FilePath &filePath) bool MercurialPluginPrivate::vcsAdd(const FilePath &filePath) { - const QFileInfo fi = filePath.toFileInfo(); - return m_client.synchronousAdd(fi.absolutePath(), fi.fileName()); + return m_client.synchronousAdd(filePath.parentDir(), filePath.fileName()); } bool MercurialPluginPrivate::vcsDelete(const FilePath &filePath) { - const QFileInfo fi = filePath.toFileInfo(); - return m_client.synchronousRemove(fi.absolutePath(), fi.fileName()); + return m_client.synchronousRemove(filePath.parentDir(), filePath.fileName()); } bool MercurialPluginPrivate::vcsMove(const FilePath &from, const FilePath &to) { const QFileInfo fromInfo = from.toFileInfo(); const QFileInfo toInfo = to.toFileInfo(); - return m_client.synchronousMove(fromInfo.absolutePath(), - fromInfo.absoluteFilePath(), - toInfo.absoluteFilePath()); + return m_client.synchronousMove(from.parentDir(), + fromInfo.absoluteFilePath(), + toInfo.absoluteFilePath()); } bool MercurialPluginPrivate::vcsCreateRepository(const FilePath &directory) @@ -826,8 +823,7 @@ bool MercurialPluginPrivate::vcsCreateRepository(const FilePath &directory) void MercurialPluginPrivate::vcsAnnotate(const FilePath &filePath, int line) { - const QFileInfo fi = filePath.toFileInfo(); - m_client.annotate(fi.absolutePath(), fi.fileName(), QString(), line); + m_client.annotate(filePath.parentDir(), filePath.fileName(), QString(), line); } Core::ShellCommand *MercurialPluginPrivate::createInitialCheckoutCommand(const QString &url, @@ -837,8 +833,7 @@ Core::ShellCommand *MercurialPluginPrivate::createInitialCheckoutCommand(const Q { QStringList args; args << QLatin1String("clone") << extraArgs << url << localName; - auto command = new VcsBase::VcsCommand(baseDirectory.toString(), - m_client.processEnvironment()); + auto command = new VcsBase::VcsCommand(baseDirectory, m_client.processEnvironment()); command->addJob({m_settings.binaryPath.filePath(), args}, -1); return command; } @@ -851,14 +846,14 @@ bool MercurialPluginPrivate::sccManaged(const QString &filename) if (!managed || topLevel.isEmpty()) return false; const QDir topLevelDir(topLevel.toString()); - return m_client.manifestSync(topLevel.toString(), topLevelDir.relativeFilePath(filename)); + return m_client.manifestSync(topLevel, topLevelDir.relativeFilePath(filename)); } void MercurialPluginPrivate::changed(const QVariant &v) { switch (v.type()) { case QVariant::String: - emit repositoryChanged(v.toString()); + emit repositoryChanged(FilePath::fromVariant(v)); break; case QVariant::StringList: emit filesChanged(v.toStringList()); diff --git a/src/plugins/mercurial/srcdestdialog.cpp b/src/plugins/mercurial/srcdestdialog.cpp index 34d93391104..5d2352f0911 100644 --- a/src/plugins/mercurial/srcdestdialog.cpp +++ b/src/plugins/mercurial/srcdestdialog.cpp @@ -90,16 +90,16 @@ QString SrcDestDialog::getRepositoryString() const return m_ui->urlLineEdit->text(); } -QString SrcDestDialog::workingDir() const +Utils::FilePath SrcDestDialog::workingDir() const { - return m_workingdir; + return Utils::FilePath::fromString(m_workingdir); } QUrl SrcDestDialog::getRepoUrl() const { // Repo to use: Default to the project repo, but use the current - const QString projectLoc = m_state.currentProjectPath(); - const QString fileLoc = m_state.currentFileTopLevel(); + const QString projectLoc = m_state.currentProjectPath().toString(); + const QString fileLoc = m_state.currentFileTopLevel().toString(); m_workingdir = projectLoc; if (!fileLoc.isEmpty()) m_workingdir = fileLoc; diff --git a/src/plugins/mercurial/srcdestdialog.h b/src/plugins/mercurial/srcdestdialog.h index 05506f2783c..84a2a898b6b 100644 --- a/src/plugins/mercurial/srcdestdialog.h +++ b/src/plugins/mercurial/srcdestdialog.h @@ -45,7 +45,7 @@ public: void setPathChooserKind(Utils::PathChooser::Kind kind); QString getRepositoryString() const; - QString workingDir() const; + Utils::FilePath workingDir() const; private: QUrl getRepoUrl() const; |
