From f6328e77c022ac1fa1dcd830a025dd9476d8c81b Mon Sep 17 00:00:00 2001 From: hjk Date: Mon, 15 Jul 2024 16:36:22 +0200 Subject: [PATCH] Fossil: Hide FossilEditorWidget definition ... and de-pimpl. Change-Id: I360379350a696b2d465e869b47c6c02fbd4aa996 Reviewed-by: Orgad Shaneh --- src/plugins/fossil/fossilclient.cpp | 7 ++--- src/plugins/fossil/fossileditor.cpp | 43 +++++++++++++++-------------- src/plugins/fossil/fossileditor.h | 27 +++--------------- src/plugins/fossil/fossilplugin.cpp | 6 ++-- 4 files changed, 33 insertions(+), 50 deletions(-) diff --git a/src/plugins/fossil/fossilclient.cpp b/src/plugins/fossil/fossilclient.cpp index d80dc223cd6..6b19eaec41b 100644 --- a/src/plugins/fossil/fossilclient.cpp +++ b/src/plugins/fossil/fossilclient.cpp @@ -4,7 +4,6 @@ #include "fossilclient.h" #include "constants.h" -#include "fossileditor.h" #include "fossiltr.h" #include @@ -701,7 +700,7 @@ void FossilClient::annotate(const FilePath &workingDir, const QString &file, int VcsBaseEditor::getCodec(source), vcsCmdString.toLatin1().constData(), id); - auto *fossilEditor = qobject_cast(editor); + auto fossilEditor = qobject_cast(editor); QTC_ASSERT(fossilEditor, return); if (!fossilEditor->editorConfig()) { @@ -905,7 +904,7 @@ void FossilClient::log(const FilePath &workingDir, const QStringList &files, VcsBaseEditor::getCodec(source), vcsCmdString.toLatin1().constData(), id); - auto *fossilEditor = qobject_cast(editor); + auto fossilEditor = qobject_cast(editor); QTC_ASSERT(fossilEditor, return); fossilEditor->setFileLogAnnotateEnabled(enableAnnotationContextMenu); @@ -961,7 +960,7 @@ void FossilClient::logCurrentFile(const FilePath &workingDir, const QStringList VcsBaseEditor::getCodec(source), vcsCmdString.toLatin1().constData(), id); - auto *fossilEditor = qobject_cast(editor); + auto fossilEditor = qobject_cast(editor); QTC_ASSERT(fossilEditor, return); fossilEditor->setFileLogAnnotateEnabled(enableAnnotationContextMenu); diff --git a/src/plugins/fossil/fossileditor.cpp b/src/plugins/fossil/fossileditor.cpp index 5e719515981..b43878f8bf9 100644 --- a/src/plugins/fossil/fossileditor.cpp +++ b/src/plugins/fossil/fossileditor.cpp @@ -10,45 +10,43 @@ #include +#include + #include #include namespace Fossil::Internal { -class FossilEditorWidgetPrivate +class FossilEditorWidget final : public VcsBase::VcsBaseEditorWidget { public: - FossilEditorWidgetPrivate() : - m_exactChangesetId(Constants::CHANGESET_ID_EXACT) + FossilEditorWidget() + : m_exactChangesetId(Constants::CHANGESET_ID_EXACT) { - QTC_ASSERT(m_exactChangesetId.isValid(), return); + QTC_CHECK(m_exactChangesetId.isValid()); + setAnnotateRevisionTextFormat(Tr::tr("&Annotate %1")); + setAnnotatePreviousRevisionTextFormat(Tr::tr("Annotate &Parent Revision %1")); + setDiffFilePattern(Constants::DIFFFILE_ID_EXACT); + setLogEntryPattern("^.*\\[([0-9a-f]{5,40})\\]"); + setAnnotationEntryPattern(QString("^") + Constants::CHANGESET_ID + " "); } +private: + QString changeUnderCursor(const QTextCursor &cursor) const final; + QString decorateVersion(const QString &revision) const final; + QStringList annotationPreviousVersions(const QString &revision) const final; + VcsBase::BaseAnnotationHighlighterCreator annotationHighlighterCreator() const final; + const QRegularExpression m_exactChangesetId; }; -FossilEditorWidget::FossilEditorWidget() : - d(new FossilEditorWidgetPrivate) -{ - setAnnotateRevisionTextFormat(Tr::tr("&Annotate %1")); - setAnnotatePreviousRevisionTextFormat(Tr::tr("Annotate &Parent Revision %1")); - setDiffFilePattern(Constants::DIFFFILE_ID_EXACT); - setLogEntryPattern("^.*\\[([0-9a-f]{5,40})\\]"); - setAnnotationEntryPattern(QString("^") + Constants::CHANGESET_ID + " "); -} - -FossilEditorWidget::~FossilEditorWidget() -{ - delete d; -} - QString FossilEditorWidget::changeUnderCursor(const QTextCursor &cursorIn) const { QTextCursor cursor = cursorIn; cursor.select(QTextCursor::WordUnderCursor); if (cursor.hasSelection()) { const QString change = cursor.selectedText(); - const QRegularExpressionMatch exactChangesetIdMatch = d->m_exactChangesetId.match(change); + const QRegularExpressionMatch exactChangesetIdMatch = m_exactChangesetId.match(change); if (exactChangesetIdMatch.hasMatch()) return change; } @@ -94,4 +92,9 @@ VcsBase::BaseAnnotationHighlighterCreator FossilEditorWidget::annotationHighligh return VcsBase::getAnnotationHighlighterCreator(); } +QWidget *createFossilEditorWidget() +{ + return new FossilEditorWidget; +} + } // namespace Fossil::Internal diff --git a/src/plugins/fossil/fossileditor.h b/src/plugins/fossil/fossileditor.h index 70b398fc035..f77f7ba7d35 100644 --- a/src/plugins/fossil/fossileditor.h +++ b/src/plugins/fossil/fossileditor.h @@ -3,29 +3,10 @@ #pragma once -#include +#include -namespace Fossil { -namespace Internal { +namespace Fossil::Internal { -class FossilEditorWidgetPrivate; +QWidget *createFossilEditorWidget(); -class FossilEditorWidget final : public VcsBase::VcsBaseEditorWidget -{ - Q_OBJECT - -public: - FossilEditorWidget(); - ~FossilEditorWidget() final; - -private: - QString changeUnderCursor(const QTextCursor &cursor) const final; - QString decorateVersion(const QString &revision) const final; - QStringList annotationPreviousVersions(const QString &revision) const final; - VcsBase::BaseAnnotationHighlighterCreator annotationHighlighterCreator() const final; - - FossilEditorWidgetPrivate *d; -}; - -} // namespace Internal -} // namespace Fossil +} // Fossil::Internal diff --git a/src/plugins/fossil/fossilplugin.cpp b/src/plugins/fossil/fossilplugin.cpp index 9821607033f..7f4f48b19f9 100644 --- a/src/plugins/fossil/fossilplugin.cpp +++ b/src/plugins/fossil/fossilplugin.cpp @@ -138,7 +138,7 @@ public: Constants::FILELOG_ID, VcsBase::Tr::tr("Fossil File Log Editor"), Constants::LOGAPP, - [] { return new FossilEditorWidget; }, + &createFossilEditorWidget, std::bind(&FossilPluginPrivate::vcsDescribe, this, _1, _2) }}; @@ -147,7 +147,7 @@ public: Constants::ANNOTATELOG_ID, VcsBase::Tr::tr("Fossil Annotation Editor"), Constants::ANNOTATEAPP, - [] { return new FossilEditorWidget; }, + &createFossilEditorWidget, std::bind(&FossilPluginPrivate::vcsDescribe, this, _1, _2) }}; @@ -156,7 +156,7 @@ public: Constants::DIFFLOG_ID, VcsBase::Tr::tr("Fossil Diff Editor"), Constants::DIFFAPP, - [] { return new FossilEditorWidget; }, + &createFossilEditorWidget, std::bind(&FossilPluginPrivate::vcsDescribe, this, _1, _2) }};