Simplify data structures

Do some cleanup.

Change-Id: If40fefbdb646f0eb434539f8306421a40e47a3ee
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
Jarek Kobus
2022-10-06 19:34:47 +02:00
parent 7ffdada4a3
commit 28c507eccb
15 changed files with 82 additions and 229 deletions

View File

@@ -12,7 +12,7 @@ add_qtc_plugin(Fossil
DEPENDS Qt5::Widgets QtCreator::ExtensionSystem QtCreator::Utils DEPENDS Qt5::Widgets QtCreator::ExtensionSystem QtCreator::Utils
SOURCES SOURCES
annotationhighlighter.cpp annotationhighlighter.h annotationhighlighter.cpp annotationhighlighter.h
branchinfo.cpp branchinfo.h branchinfo.h
commiteditor.cpp commiteditor.h commiteditor.cpp commiteditor.h
configuredialog.cpp configuredialog.h configuredialog.ui configuredialog.cpp configuredialog.h configuredialog.ui
constants.h constants.h
@@ -25,6 +25,6 @@ add_qtc_plugin(Fossil
fossilsettings.cpp fossilsettings.h fossilsettings.cpp fossilsettings.h
pullorpushdialog.cpp pullorpushdialog.h pullorpushdialog.ui pullorpushdialog.cpp pullorpushdialog.h pullorpushdialog.ui
revertdialog.ui revertdialog.ui
revisioninfo.cpp revisioninfo.h revisioninfo.h
wizard/fossiljsextension.cpp wizard/fossiljsextension.h wizard/fossiljsextension.cpp wizard/fossiljsextension.h
) )

View File

@@ -44,7 +44,7 @@ QString FossilAnnotationHighlighter::changeNumber(const QString &block) const
QRegularExpressionMatch changesetIdMatch = m_changesetIdPattern.match(block); QRegularExpressionMatch changesetIdMatch = m_changesetIdPattern.match(block);
if (changesetIdMatch.hasMatch()) if (changesetIdMatch.hasMatch())
return changesetIdMatch.captured(1); return changesetIdMatch.captured(1);
return QString(); return {};
} }
} // namespace Internal } // namespace Internal

View File

@@ -1,57 +0,0 @@
/****************************************************************************
**
** Copyright (c) 2018 Artur Shepilko
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qt Creator.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 as published by the Free Software
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
****************************************************************************/
#include "branchinfo.h"
namespace Fossil {
namespace Internal {
BranchInfo::BranchInfo(const QString &name, BranchFlags flags) :
m_name(name),
m_flags(flags)
{ }
const QString &BranchInfo::name() const
{
return m_name;
}
bool BranchInfo::isCurrent() const
{
return m_flags.testFlag(Current);
}
bool BranchInfo::isClosed() const
{
return m_flags.testFlag(Closed);
}
bool BranchInfo::isPrivate() const
{
return m_flags.testFlag(Private);
}
} // namespace Internal
} // namespace Fossil

View File

@@ -40,17 +40,10 @@ public:
}; };
Q_DECLARE_FLAGS(BranchFlags, BranchFlag) Q_DECLARE_FLAGS(BranchFlags, BranchFlag)
explicit BranchInfo(const QString &name = QString(), BranchFlags flags = {}); bool isCurrent() const { return flags.testFlag(Current); }
public: QString name;
const QString &name() const; BranchFlags flags;
bool isCurrent() const;
bool isClosed() const;
bool isPrivate() const;
private:
QString m_name;
BranchFlags m_flags;
}; };
Q_DECLARE_OPERATORS_FOR_FLAGS(BranchInfo::BranchFlags) Q_DECLARE_OPERATORS_FOR_FLAGS(BranchInfo::BranchFlags)

View File

@@ -59,8 +59,7 @@ void CommitEditor::setFields(const QString &repositoryRoot, const BranchInfo &br
m_fileModel = new VcsBase::SubmitFileModel(this); m_fileModel = new VcsBase::SubmitFileModel(this);
m_fileModel->setRepositoryRoot(repositoryRoot); m_fileModel->setRepositoryRoot(repositoryRoot);
m_fileModel->setFileStatusQualifier([](const QString &status, const QVariant &) m_fileModel->setFileStatusQualifier([](const QString &status, const QVariant &)
-> VcsBase::SubmitFileModel::FileStatusHint -> VcsBase::SubmitFileModel::FileStatusHint {
{
if (status == Constants::FSTATUS_ADDED if (status == Constants::FSTATUS_ADDED
|| status == Constants::FSTATUS_ADDED_BY_MERGE || status == Constants::FSTATUS_ADDED_BY_MERGE
|| status == Constants::FSTATUS_ADDED_BY_INTEGRATE) { || status == Constants::FSTATUS_ADDED_BY_INTEGRATE) {
@@ -75,10 +74,11 @@ void CommitEditor::setFields(const QString &repositoryRoot, const BranchInfo &br
return VcsBase::SubmitFileModel::FileRenamed; return VcsBase::SubmitFileModel::FileRenamed;
} }
return VcsBase::SubmitFileModel::FileStatusUnknown; return VcsBase::SubmitFileModel::FileStatusUnknown;
} ); });
const QList<VcsBase::VcsBaseClient::StatusItem> toAdd = Utils::filtered(repoStatus, const QList<VcsBase::VcsBaseClient::StatusItem> toAdd = Utils::filtered(repoStatus,
[](const VcsBase::VcsBaseClient::StatusItem &item) { return item.flags != Constants::FSTATUS_UNKNOWN; }); [](const VcsBase::VcsBaseClient::StatusItem &item)
{ return item.flags != Constants::FSTATUS_UNKNOWN; });
for (const VcsBase::VcsBaseClient::StatusItem &item : toAdd) for (const VcsBase::VcsBaseClient::StatusItem &item : toAdd)
m_fileModel->addFile(item.file, item.flags); m_fileModel->addFile(item.file, item.flags);

View File

@@ -40,9 +40,8 @@ public:
RepositorySettings settings() { RepositorySettings settings() {
m_settings.user = m_ui.userLineEdit->text().trimmed(); m_settings.user = m_ui.userLineEdit->text().trimmed();
m_settings.sslIdentityFile = m_ui.sslIdentityFilePathChooser->filePath().toString(); m_settings.sslIdentityFile = m_ui.sslIdentityFilePathChooser->filePath().toString();
m_settings.autosync = m_settings.autosync = m_ui.disableAutosyncCheckBox->isChecked()
(m_ui.disableAutosyncCheckBox->isChecked() ? RepositorySettings::AutosyncOff ? RepositorySettings::AutosyncOff : RepositorySettings::AutosyncOn;
: RepositorySettings::AutosyncOn);
return m_settings; return m_settings;
} }

View File

@@ -21,9 +21,9 @@ QtcPlugin {
"fossileditor.cpp", "fossileditor.h", "fossileditor.cpp", "fossileditor.h",
"annotationhighlighter.cpp", "annotationhighlighter.h", "annotationhighlighter.cpp", "annotationhighlighter.h",
"pullorpushdialog.cpp", "pullorpushdialog.h", "pullorpushdialog.ui", "pullorpushdialog.cpp", "pullorpushdialog.h", "pullorpushdialog.ui",
"branchinfo.cpp", "branchinfo.h", "branchinfo.h",
"configuredialog.cpp", "configuredialog.h", "configuredialog.ui", "configuredialog.cpp", "configuredialog.h", "configuredialog.ui",
"revisioninfo.cpp", "revisioninfo.h", "revisioninfo.h",
"fossil.qrc", "fossil.qrc",
"revertdialog.ui", "revertdialog.ui",
"fossilcommitpanel.ui", "fossilcommitpanel.ui",

View File

@@ -287,11 +287,13 @@ QList<BranchInfo> FossilClient::branchListFromOutput(const QString &output, cons
// Branch list format: // Branch list format:
// " branch-name" // " branch-name"
// "* current-branch" // "* current-branch"
return Utils::transform(output.split('\n', Qt::SkipEmptyParts), [=](const QString &l) { return Utils::transform(output.split('\n', Qt::SkipEmptyParts),
[=](const QString &l) -> BranchInfo {
const QString &name = l.mid(2); const QString &name = l.mid(2);
QTC_ASSERT(!name.isEmpty(), return BranchInfo()); QTC_ASSERT(!name.isEmpty(), return {});
const BranchInfo::BranchFlags flags = (l.startsWith("* ") ? defaultFlags | BranchInfo::Current : defaultFlags); const BranchInfo::BranchFlags flags = (l.startsWith("* ")
return BranchInfo(name, flags); ? defaultFlags | BranchInfo::Current : defaultFlags);
return {name, flags};
}); });
} }
@@ -351,7 +353,7 @@ QList<BranchInfo> FossilClient::synchronousBranchQuery(const FilePath &workingDi
branches.append(branchListFromOutput(output, BranchInfo::Closed)); branches.append(branchListFromOutput(output, BranchInfo::Closed));
std::sort(branches.begin(), branches.end(), std::sort(branches.begin(), branches.end(),
[](const BranchInfo &a, const BranchInfo &b) { return a.name() < b.name(); }); [](const BranchInfo &a, const BranchInfo &b) { return a.name < b.name; });
return branches; return branches;
} }
@@ -377,7 +379,7 @@ RevisionInfo FossilClient::synchronousRevisionQuery(const FilePath &workingDirec
// Query details of the given revision/check-out id, // Query details of the given revision/check-out id,
// if none specified, provide information about current revision // if none specified, provide information about current revision
if (workingDirectory.isEmpty()) if (workingDirectory.isEmpty())
return RevisionInfo(); return {};
QStringList args("info"); QStringList args("info");
if (!id.isEmpty()) if (!id.isEmpty())
@@ -386,7 +388,7 @@ RevisionInfo FossilClient::synchronousRevisionQuery(const FilePath &workingDirec
const CommandResult result = vcsSynchronousExec(workingDirectory, args, const CommandResult result = vcsSynchronousExec(workingDirectory, args,
RunFlags::SuppressCommandLogging); RunFlags::SuppressCommandLogging);
if (result.result() != ProcessResult::FinishedWithSuccess) if (result.result() != ProcessResult::FinishedWithSuccess)
return RevisionInfo(); return {};
const QString output = sanitizeFossilOutput(result.cleanedStdOut()); const QString output = sanitizeFossilOutput(result.cleanedStdOut());
@@ -397,7 +399,7 @@ RevisionInfo FossilClient::synchronousRevisionQuery(const FilePath &workingDirec
QString committer; QString committer;
const QRegularExpression idRx("([0-9a-f]{5,40})"); const QRegularExpression idRx("([0-9a-f]{5,40})");
QTC_ASSERT(idRx.isValid(), return RevisionInfo()); QTC_ASSERT(idRx.isValid(), return {});
const QString hashToken = const QString hashToken =
QString::fromUtf8(supportedFeatures().testFlag(InfoHashFeature) ? "hash: " : "uuid: "); QString::fromUtf8(supportedFeatures().testFlag(InfoHashFeature) ? "hash: " : "uuid: ");
@@ -406,7 +408,7 @@ RevisionInfo FossilClient::synchronousRevisionQuery(const FilePath &workingDirec
if (l.startsWith("checkout: ", Qt::CaseInsensitive) if (l.startsWith("checkout: ", Qt::CaseInsensitive)
|| l.startsWith(hashToken, Qt::CaseInsensitive)) { || l.startsWith(hashToken, Qt::CaseInsensitive)) {
const QRegularExpressionMatch idMatch = idRx.match(l); const QRegularExpressionMatch idMatch = idRx.match(l);
QTC_ASSERT(idMatch.hasMatch(), return RevisionInfo()); QTC_ASSERT(idMatch.hasMatch(), return {});
revisionId = idMatch.captured(1); revisionId = idMatch.captured(1);
} else if (l.startsWith("parent: ", Qt::CaseInsensitive)){ } else if (l.startsWith("parent: ", Qt::CaseInsensitive)){
@@ -425,12 +427,12 @@ RevisionInfo FossilClient::synchronousRevisionQuery(const FilePath &workingDirec
} }
// make sure id at least partially matches the retrieved revisionId // make sure id at least partially matches the retrieved revisionId
QTC_ASSERT(revisionId.startsWith(id, Qt::CaseInsensitive), return RevisionInfo()); QTC_ASSERT(revisionId.startsWith(id, Qt::CaseInsensitive), return {});
if (parentId.isEmpty()) if (parentId.isEmpty())
parentId = revisionId; // root parentId = revisionId; // root
return RevisionInfo(revisionId, parentId, mergeParentIds, commentMsg, committer); return {revisionId, parentId, mergeParentIds, commentMsg, committer};
} }
QStringList FossilClient::synchronousTagQuery(const FilePath &workingDirectory, const QString &id) QStringList FossilClient::synchronousTagQuery(const FilePath &workingDirectory, const QString &id)
@@ -609,12 +611,7 @@ QString FossilClient::synchronousTopic(const FilePath &workingDirectory)
return {}; return {};
// return current branch name // return current branch name
return synchronousCurrentBranch(workingDirectory).name;
const BranchInfo branchInfo = synchronousCurrentBranch(workingDirectory);
if (branchInfo.name().isEmpty())
return {};
return branchInfo.name();
} }
bool FossilClient::synchronousCreateRepository(const FilePath &workingDirectory, const QStringList &extraOptions) bool FossilClient::synchronousCreateRepository(const FilePath &workingDirectory, const QStringList &extraOptions)
@@ -868,18 +865,11 @@ FossilClient::SupportedFeatures FossilClient::supportedFeatures() const
void FossilClient::view(const QString &source, const QString &id, const QStringList &extraOptions) void FossilClient::view(const QString &source, const QString &id, const QStringList &extraOptions)
{ {
QStringList args("diff");
const FilePath fPath = FilePath::fromString(source); const FilePath fPath = FilePath::fromString(source);
const FilePath workingDirectory = fPath.isFile() ? fPath.absolutePath() : fPath; const FilePath workingDirectory = fPath.isFile() ? fPath.absolutePath() : fPath;
RevisionInfo revisionInfo = synchronousRevisionQuery(workingDirectory,id); const RevisionInfo revisionInfo = synchronousRevisionQuery(workingDirectory,id);
const QStringList args{"diff", "--from", revisionInfo.parentId, "--to", revisionInfo.id, "-v"};
args << "--from" << revisionInfo.parentId
<< "--to" << revisionInfo.id
<< "-v"
<< extraOptions;
const Id kind = vcsEditorKind(DiffCommand); const Id kind = vcsEditorKind(DiffCommand);
const QString title = vcsEditorTitle(vcsCommandString(DiffCommand), id); const QString title = vcsEditorTitle(vcsCommandString(DiffCommand), id);
@@ -887,7 +877,7 @@ void FossilClient::view(const QString &source, const QString &id, const QStringL
VcsBaseEditor::getCodec(source), "view", id); VcsBaseEditor::getCodec(source), "view", id);
editor->setWorkingDirectory(workingDirectory); editor->setWorkingDirectory(workingDirectory);
enqueueJob(createCommand(workingDirectory, editor), args); enqueueJob(createCommand(workingDirectory, editor), args + extraOptions);
} }
class FossilLogHighlighter : QSyntaxHighlighter class FossilLogHighlighter : QSyntaxHighlighter

View File

@@ -70,56 +70,51 @@ public:
BranchInfo synchronousCurrentBranch(const Utils::FilePath &workingDirectory); BranchInfo synchronousCurrentBranch(const Utils::FilePath &workingDirectory);
QList<BranchInfo> synchronousBranchQuery(const Utils::FilePath &workingDirectory); QList<BranchInfo> synchronousBranchQuery(const Utils::FilePath &workingDirectory);
RevisionInfo synchronousRevisionQuery(const Utils::FilePath &workingDirectory, RevisionInfo synchronousRevisionQuery(const Utils::FilePath &workingDirectory,
const QString &id = QString(), const QString &id = {}, bool getCommentMsg = false) const;
bool getCommentMsg = false) const;
QStringList synchronousTagQuery(const Utils::FilePath &workingDirectory, const QString &id = {}); QStringList synchronousTagQuery(const Utils::FilePath &workingDirectory, const QString &id = {});
RepositorySettings synchronousSettingsQuery(const Utils::FilePath &workingDirectory); RepositorySettings synchronousSettingsQuery(const Utils::FilePath &workingDirectory);
bool synchronousSetSetting(const Utils::FilePath &workingDirectory, const QString &property, bool synchronousSetSetting(const Utils::FilePath &workingDirectory, const QString &property,
const QString &value = QString(), bool isGlobal = false); const QString &value = {}, bool isGlobal = false);
bool synchronousConfigureRepository(const Utils::FilePath &workingDirectory, const RepositorySettings &newSettings, bool synchronousConfigureRepository(const Utils::FilePath &workingDirectory,
const RepositorySettings &currentSettings = RepositorySettings()); const RepositorySettings &newSettings,
const RepositorySettings &currentSettings = {});
QString synchronousUserDefaultQuery(const Utils::FilePath &workingDirectory); QString synchronousUserDefaultQuery(const Utils::FilePath &workingDirectory);
bool synchronousSetUserDefault(const Utils::FilePath &workingDirectory, const QString &userName); bool synchronousSetUserDefault(const Utils::FilePath &workingDirectory, const QString &userName);
QString synchronousGetRepositoryURL(const Utils::FilePath &workingDirectory); QString synchronousGetRepositoryURL(const Utils::FilePath &workingDirectory);
QString synchronousTopic(const Utils::FilePath &workingDirectory); QString synchronousTopic(const Utils::FilePath &workingDirectory);
bool synchronousCreateRepository(const Utils::FilePath &workingDirectory, bool synchronousCreateRepository(const Utils::FilePath &workingDirectory,
const QStringList &extraOptions = QStringList()) final; const QStringList &extraOptions = {}) final;
bool synchronousMove(const Utils::FilePath &workingDir, bool synchronousMove(const Utils::FilePath &workingDir, const QString &from, const QString &to,
const QString &from, const QString &to, const QStringList &extraOptions = {}) final;
const QStringList &extraOptions = QStringList()) final; bool synchronousPull(const Utils::FilePath &workingDir, const QString &srcLocation,
bool synchronousPull(const Utils::FilePath &workingDir, const QStringList &extraOptions = {}) final;
const QString &srcLocation, bool synchronousPush(const Utils::FilePath &workingDir, const QString &dstLocation,
const QStringList &extraOptions = QStringList()) final; const QStringList &extraOptions = {}) final;
bool synchronousPush(const Utils::FilePath &workingDir,
const QString &dstLocation,
const QStringList &extraOptions = QStringList()) final;
void commit(const Utils::FilePath &repositoryRoot, const QStringList &files, void commit(const Utils::FilePath &repositoryRoot, const QStringList &files,
const QString &commitMessageFile, const QStringList &extraOptions = QStringList()) final; const QString &commitMessageFile, const QStringList &extraOptions = {}) final;
VcsBase::VcsBaseEditorWidget *annotate( VcsBase::VcsBaseEditorWidget *annotate(const Utils::FilePath &workingDir, const QString &file,
const Utils::FilePath &workingDir, const QString &file, const QString &revision = {}, const QString &revision = {}, int lineNumber = -1,
int lineNumber = -1, const QStringList &extraOptions = QStringList()) final; const QStringList &extraOptions = {}) final;
void log(const Utils::FilePath &workingDir, const QStringList &files = QStringList(), void log(const Utils::FilePath &workingDir, const QStringList &files = {},
const QStringList &extraOptions = QStringList(), const QStringList &extraOptions = {}, bool enableAnnotationContextMenu = false) final;
bool enableAnnotationContextMenu = false) final; void logCurrentFile(const Utils::FilePath &workingDir, const QStringList &files = {},
void logCurrentFile(const Utils::FilePath &workingDir, const QStringList &files = QStringList(), const QStringList &extraOptions = {},
const QStringList &extraOptions = QStringList(),
bool enableAnnotationContextMenu = false); bool enableAnnotationContextMenu = false);
void revertFile(const Utils::FilePath &workingDir, const QString &file, void revertFile(const Utils::FilePath &workingDir, const QString &file,
const QString &revision = QString(), const QString &revision = {}, const QStringList &extraOptions = {}) final;
const QStringList &extraOptions = QStringList()) final; void revertAll(const Utils::FilePath &workingDir, const QString &revision = {},
void revertAll(const Utils::FilePath &workingDir, const QString &revision = QString(), const QStringList &extraOptions = {}) final;
const QStringList &extraOptions = QStringList()) final;
bool isVcsFileOrDirectory(const Utils::FilePath &filePath) const; bool isVcsFileOrDirectory(const Utils::FilePath &filePath) const;
Utils::FilePath findTopLevelForFile(const Utils::FilePath &file) const final; Utils::FilePath findTopLevelForFile(const Utils::FilePath &file) const final;
bool managesFile(const Utils::FilePath &workingDirectory, const QString &fileName) const; bool managesFile(const Utils::FilePath &workingDirectory, const QString &fileName) const;
unsigned int binaryVersion() const; unsigned int binaryVersion() const;
QString binaryVersionString() const; QString binaryVersionString() const;
SupportedFeatures supportedFeatures() const; SupportedFeatures supportedFeatures() const;
void view(const QString &source, const QString &id, void view(const QString &source, const QString &id, const QStringList &extraOptions = {}) final;
const QStringList &extraOptions = QStringList()) final;
private: private:
static QList<BranchInfo> branchListFromOutput(const QString &output, const BranchInfo::BranchFlags defaultFlags = {}); static QList<BranchInfo> branchListFromOutput(const QString &output,
const BranchInfo::BranchFlags defaultFlags = {});
static QStringList parseRevisionCommentLine(const QString &commentLine); static QStringList parseRevisionCommentLine(const QString &commentLine);
QString sanitizeFossilOutput(const QString &output) const; QString sanitizeFossilOutput(const QString &output) const;

View File

@@ -33,11 +33,9 @@
#include <utils/completingtextedit.h> #include <utils/completingtextedit.h>
#include <utils/qtcassert.h> #include <utils/qtcassert.h>
#include <QSyntaxHighlighter>
#include <QTextEdit>
#include <QRegularExpression>
#include <QDir> #include <QDir>
#include <QRegularExpression>
#include <QSyntaxHighlighter>
namespace Fossil { namespace Fossil {
namespace Internal { namespace Internal {
@@ -101,7 +99,7 @@ void FossilCommitWidget::setFields(const QString &repoPath, const BranchInfo &br
const QStringList &tags, const QString &userName) const QStringList &tags, const QString &userName)
{ {
m_commitPanelUi.localRootLineEdit->setText(QDir::toNativeSeparators(repoPath)); m_commitPanelUi.localRootLineEdit->setText(QDir::toNativeSeparators(repoPath));
m_commitPanelUi.currentBranchLineEdit->setText(branch.name()); m_commitPanelUi.currentBranchLineEdit->setText(branch.name);
const QString tagsText = tags.join(", "); const QString tagsText = tags.join(", ");
m_commitPanelUi.currentTagsLineEdit->setText(tagsText); m_commitPanelUi.currentTagsLineEdit->setText(tagsText);
m_commitPanelUi.authorLineEdit->setText(userName); m_commitPanelUi.authorLineEdit->setText(userName);
@@ -111,29 +109,21 @@ void FossilCommitWidget::setFields(const QString &repoPath, const BranchInfo &br
QString FossilCommitWidget::newBranch() const QString FossilCommitWidget::newBranch() const
{ {
const QString branchName = m_commitPanelUi.branchLineEdit->text().trimmed(); return m_commitPanelUi.branchLineEdit->text().trimmed();
return branchName;
} }
QStringList FossilCommitWidget::tags() const QStringList FossilCommitWidget::tags() const
{ {
QString tagsText = m_commitPanelUi.tagsLineEdit->text().trimmed(); QString tagsText = m_commitPanelUi.tagsLineEdit->text().trimmed();
if (tagsText.isEmpty()) if (tagsText.isEmpty())
return QStringList(); return {};
tagsText.replace(',', ' '); return tagsText.replace(',', ' ').split(' ', Qt::SkipEmptyParts);
const QStringList tags = tagsText.split(' ', Qt::SkipEmptyParts);
return tags;
} }
QString FossilCommitWidget::committer() const QString FossilCommitWidget::committer() const
{ {
const QString author = m_commitPanelUi.authorLineEdit->text(); return m_commitPanelUi.authorLineEdit->text();
if (author.isEmpty())
return QString();
const QString user = author;
return user;
} }
bool FossilCommitWidget::isPrivateOptionEnabled() const bool FossilCommitWidget::isPrivateOptionEnabled() const

View File

@@ -50,8 +50,8 @@ class FossilCommitWidget : public VcsBase::SubmitEditorWidget
public: public:
FossilCommitWidget(); FossilCommitWidget();
void setFields(const QString &repoPath, void setFields(const QString &repoPath, const BranchInfo &newBranch, const QStringList &tags,
const BranchInfo &newBranch, const QStringList &tags, const QString &userName); const QString &userName);
QString newBranch() const; QString newBranch() const;
QStringList tags() const; QStringList tags() const;

View File

@@ -29,17 +29,10 @@
#include "fossilplugin.h" #include "fossilplugin.h"
#include "fossilclient.h" #include "fossilclient.h"
#include <coreplugin/editormanager/editormanager.h>
#include <utils/qtcassert.h> #include <utils/qtcassert.h>
#include <utils/qtcprocess.h>
#include <vcsbase/diffandloghighlighter.h>
#include <QRegularExpression> #include <QRegularExpression>
#include <QString>
#include <QTextCursor> #include <QTextCursor>
#include <QTextBlock>
#include <QDir>
#include <QFileInfo>
namespace Fossil { namespace Fossil {
namespace Internal { namespace Internal {
@@ -78,11 +71,11 @@ QString FossilEditorWidget::changeUnderCursor(const QTextCursor &cursorIn) const
cursor.select(QTextCursor::WordUnderCursor); cursor.select(QTextCursor::WordUnderCursor);
if (cursor.hasSelection()) { if (cursor.hasSelection()) {
const QString change = cursor.selectedText(); const QString change = cursor.selectedText();
QRegularExpressionMatch exactChangesetIdMatch = d->m_exactChangesetId.match(change); const QRegularExpressionMatch exactChangesetIdMatch = d->m_exactChangesetId.match(change);
if (exactChangesetIdMatch.hasMatch()) if (exactChangesetIdMatch.hasMatch())
return change; return change;
} }
return QString(); return {};
} }
QString FossilEditorWidget::decorateVersion(const QString &revision) const QString FossilEditorWidget::decorateVersion(const QString &revision) const
@@ -92,9 +85,8 @@ QString FossilEditorWidget::decorateVersion(const QString &revision) const
const Utils::FilePath workingDirectory = Utils::FilePath::fromString(source()).parentDir(); const Utils::FilePath workingDirectory = Utils::FilePath::fromString(source()).parentDir();
const FossilClient *client = FossilPlugin::client(); const FossilClient *client = FossilPlugin::client();
RevisionInfo revisionInfo = const RevisionInfo revisionInfo = client->synchronousRevisionQuery(workingDirectory, revision,
client->synchronousRevisionQuery(workingDirectory, revision, true); true);
// format: 'revision (committer "comment...")' // format: 'revision (committer "comment...")'
QString output = revision.left(shortChangesetIdSize) QString output = revision.left(shortChangesetIdSize)
+ " (" + revisionInfo.committer + " (" + revisionInfo.committer
@@ -110,15 +102,13 @@ QString FossilEditorWidget::decorateVersion(const QString &revision) const
QStringList FossilEditorWidget::annotationPreviousVersions(const QString &revision) const QStringList FossilEditorWidget::annotationPreviousVersions(const QString &revision) const
{ {
QStringList revisions;
const Utils::FilePath workingDirectory = Utils::FilePath::fromString(source()).parentDir(); const Utils::FilePath workingDirectory = Utils::FilePath::fromString(source()).parentDir();
const FossilClient *client = FossilPlugin::client(); const FossilClient *client = FossilPlugin::client();
RevisionInfo revisionInfo = const RevisionInfo revisionInfo = client->synchronousRevisionQuery(workingDirectory, revision);
client->synchronousRevisionQuery(workingDirectory, revision);
if (revisionInfo.parentId.isEmpty()) if (revisionInfo.parentId.isEmpty())
return QStringList(); return {};
revisions.append(revisionInfo.parentId); QStringList revisions{revisionInfo.parentId};
revisions.append(revisionInfo.mergeParentIds); revisions.append(revisionInfo.mergeParentIds);
return revisions; return revisions;
} }

View File

@@ -420,7 +420,7 @@ void FossilPluginPrivate::annotateCurrentFile()
const VcsBase::VcsBasePluginState state = currentState(); const VcsBase::VcsBasePluginState state = currentState();
QTC_ASSERT(state.hasFile(), return); QTC_ASSERT(state.hasFile(), return);
const int lineNumber = VcsBase::VcsBaseEditor::lineNumberOfCurrentEditor(state.currentFile()); const int lineNumber = VcsBase::VcsBaseEditor::lineNumberOfCurrentEditor(state.currentFile());
m_client.annotate(state.currentFileTopLevel(), state.relativeCurrentFile(), QString(), lineNumber); m_client.annotate(state.currentFileTopLevel(), state.relativeCurrentFile(), {}, lineNumber);
} }
void FossilPluginPrivate::diffCurrentFile() void FossilPluginPrivate::diffCurrentFile()
@@ -524,7 +524,7 @@ void FossilPluginPrivate::logRepository()
if (features.testFlag(FossilClient::TimelineWidthFeature)) if (features.testFlag(FossilClient::TimelineWidthFeature))
extraOptions << "-W" << QString::number(m_client.settings().timelineWidth.value()); extraOptions << "-W" << QString::number(m_client.settings().timelineWidth.value());
m_client.log(state.topLevel(), QStringList(), extraOptions); m_client.log(state.topLevel(), {}, extraOptions);
} }
void FossilPluginPrivate::revertAll() void FossilPluginPrivate::revertAll()
@@ -738,7 +738,7 @@ void FossilPluginPrivate::showCommitWidget(const QList<VcsBase::VcsBaseClient::S
const QString currentUser = m_client.synchronousUserDefaultQuery(m_submitRepository); const QString currentUser = m_client.synchronousUserDefaultQuery(m_submitRepository);
QStringList tags = m_client.synchronousTagQuery(m_submitRepository, currentRevision.id); QStringList tags = m_client.synchronousTagQuery(m_submitRepository, currentRevision.id);
// Fossil includes branch name in tag list -- remove. // Fossil includes branch name in tag list -- remove.
tags.removeAll(currentBranch.name()); tags.removeAll(currentBranch.name);
commitEditor->setFields(m_submitRepository.toString(), currentBranch, tags, currentUser, status); commitEditor->setFields(m_submitRepository.toString(), currentBranch, tags, currentUser, status);
connect(commitEditor, &VcsBase::VcsBaseSubmitEditor::diffSelectedFiles, connect(commitEditor, &VcsBase::VcsBaseSubmitEditor::diffSelectedFiles,
@@ -979,8 +979,7 @@ bool FossilPluginPrivate::vcsMove(const FilePath &from, const FilePath &to)
{ {
const QFileInfo fromInfo = from.toFileInfo(); const QFileInfo fromInfo = from.toFileInfo();
const QFileInfo toInfo = to.toFileInfo(); const QFileInfo toInfo = to.toFileInfo();
return m_client.synchronousMove(from.absolutePath(), return m_client.synchronousMove(from.absolutePath(), fromInfo.absoluteFilePath(),
fromInfo.absoluteFilePath(),
toInfo.absoluteFilePath()); toInfo.absoluteFilePath());
} }
@@ -991,10 +990,13 @@ bool FossilPluginPrivate::vcsCreateRepository(const FilePath &directory)
void FossilPluginPrivate::vcsAnnotate(const FilePath &filePath, int line) void FossilPluginPrivate::vcsAnnotate(const FilePath &filePath, int line)
{ {
m_client.annotate(filePath.absolutePath(), filePath.fileName(), QString(), line); m_client.annotate(filePath.absolutePath(), filePath.fileName(), {}, line);
} }
void FossilPluginPrivate::vcsDescribe(const FilePath &source, const QString &id) { m_client.view(source.toString(), id); } void FossilPluginPrivate::vcsDescribe(const FilePath &source, const QString &id)
{
m_client.view(source.toString(), id);
}
VcsCommand *FossilPluginPrivate::createInitialCheckoutCommand(const QString &sourceUrl, VcsCommand *FossilPluginPrivate::createInitialCheckoutCommand(const QString &sourceUrl,
const FilePath &baseDirectory, const FilePath &baseDirectory,

View File

@@ -1,42 +0,0 @@
/****************************************************************************
**
** Copyright (c) 2018 Artur Shepilko
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qt Creator.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 as published by the Free Software
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
****************************************************************************/
#include "revisioninfo.h"
namespace Fossil {
namespace Internal {
RevisionInfo::RevisionInfo(const QString &revisionId, const QString &parent,
const QStringList &mergeParents, const QString &comment,
const QString &user) :
id(revisionId),
parentId(parent),
mergeParentIds(mergeParents),
commentMsg(comment),
committer(user)
{ }
} // namespace Internal
} // namespace Fossil

View File

@@ -25,8 +25,6 @@
#pragma once #pragma once
#include "branchinfo.h"
#include <QString> #include <QString>
#include <QStringList> #include <QStringList>
@@ -36,16 +34,11 @@ namespace Internal {
class RevisionInfo class RevisionInfo
{ {
public: public:
explicit RevisionInfo(const QString &revisionId = QString(), const QString &parent = QString(),
const QStringList &mergeParents = QStringList(),
const QString &comment = QString(), const QString &user = QString());
const QString id; const QString id;
const QString parentId; const QString parentId;
const QStringList mergeParentIds; const QStringList mergeParentIds;
const QString commentMsg; const QString commentMsg;
const QString committer; const QString committer;
}; };
} // namespace Internal } // namespace Internal