diff --git a/src/plugins/beautifier/beautifiertool.cpp b/src/plugins/beautifier/beautifiertool.cpp index 76b6e7dbd09..3fe53070d04 100644 --- a/src/plugins/beautifier/beautifiertool.cpp +++ b/src/plugins/beautifier/beautifiertool.cpp @@ -129,7 +129,6 @@ AbstractSettings::AbstractSettings(const QString &name, const QString &ending) , m_styleDir(Core::ICore::userResourcePath(Beautifier::Constants::SETTINGS_DIRNAME) .pathAppended(name) .toString()) - , m_versionUpdater(new VersionUpdater) { setSettingsGroups(Utils::Constants::BEAUTIFIER_SETTINGS_GROUP, name); @@ -159,9 +158,7 @@ AbstractSettings::AbstractSettings(const QString &name, const QString &ending) return types.join("; "); }); - connect(&command, &BaseAspect::changed, this, [this] { - m_versionUpdater->update(command()); - }); + connect(&command, &BaseAspect::changed, this, [this] { m_version = {}; version(); }); } AbstractSettings::~AbstractSettings() = default; @@ -232,12 +229,18 @@ QString AbstractSettings::styleFileName(const QString &key) const QVersionNumber AbstractSettings::version() const { - return m_versionUpdater->version(); + if (m_version.isNull()) { + VersionUpdater updater; + updater.setVersionRegExp(m_versionRegExp); + updater.update(command()); + m_version = updater.version(); + } + return m_version; } void AbstractSettings::setVersionRegExp(const QRegularExpression &versionRegExp) { - m_versionUpdater->setVersionRegExp(versionRegExp); + m_versionRegExp = versionRegExp; } bool AbstractSettings::isApplicable(const Core::IDocument *document) const diff --git a/src/plugins/beautifier/beautifiertool.h b/src/plugins/beautifier/beautifiertool.h index 0eb4faf6418..0c6bdfd37b5 100644 --- a/src/plugins/beautifier/beautifiertool.h +++ b/src/plugins/beautifier/beautifiertool.h @@ -8,22 +8,18 @@ #include #include -#include #include #include #include #include +#include #include #include +#include #include -QT_BEGIN_NAMESPACE -class QRegularExpression; -class QVersionNumber; -QT_END_NAMESPACE - namespace Core { class IDocument; class IEditor; @@ -58,8 +54,6 @@ public: static void showError(const QString &error); }; -class VersionUpdater; - class AbstractSettings : public Utils::AspectContainer { public: @@ -104,12 +98,13 @@ protected: virtual void readStyles(); private: - std::unique_ptr m_versionUpdater; QStringList m_stylesToRemove; QSet m_changedStyles; QHash m_options; QStringList m_docu; QStringList m_supportedMimeTypes; + mutable QVersionNumber m_version; + QRegularExpression m_versionRegExp; }; } // Beautifier::Internal