From c9ceed697ff288c2c0abcddc9f02e6958ea9d5cd Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 7 Feb 2018 11:48:18 +0100 Subject: [PATCH] CodePaster: Avoid use of global object pool Change-Id: Ib81694d9dd3e8d040adc9ca12e9296e5cceb8208 Reviewed-by: Christian Stenger --- src/plugins/cpaster/cpasterplugin.cpp | 7 ++----- src/plugins/cpaster/fileshareprotocol.cpp | 1 + src/plugins/cpaster/settingspage.cpp | 4 ++-- src/plugins/cpaster/settingspage.h | 2 +- 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/plugins/cpaster/cpasterplugin.cpp b/src/plugins/cpaster/cpasterplugin.cpp index 713ebbd1735..ef3d4cae5a7 100644 --- a/src/plugins/cpaster/cpasterplugin.cpp +++ b/src/plugins/cpaster/cpasterplugin.cpp @@ -116,8 +116,7 @@ bool CodepasterPlugin::initialize(const QStringList &arguments, QString *errorMe // Create the settings Page m_settings->fromSettings(ICore::settings()); - SettingsPage *settingsPage = new SettingsPage(m_settings); - addAutoReleasedObject(settingsPage); + SettingsPage *settingsPage = new SettingsPage(m_settings, this); // Create the protocols and append them to the Settings Protocol *protos[] = {new PasteBinDotComProtocol, @@ -130,8 +129,6 @@ bool CodepasterPlugin::initialize(const QStringList &arguments, QString *errorMe connect(protos[i], &Protocol::pasteDone, this, &CodepasterPlugin::finishPost); connect(protos[i], &Protocol::fetchDone, this, &CodepasterPlugin::finishFetch); settingsPage->addProtocol(protos[i]->name()); - if (protos[i]->hasSettings()) - addAutoReleasedObject(protos[i]->settingsPage()); m_protocols.append(protos[i]); } @@ -167,7 +164,7 @@ bool CodepasterPlugin::initialize(const QStringList &arguments, QString *errorMe connect(m_fetchUrlAction, &QAction::triggered, this, &CodepasterPlugin::fetchUrl); cpContainer->addAction(command); - addAutoReleasedObject(new CodePasterServiceImpl); + new CodePasterServiceImpl(this); return true; } diff --git a/src/plugins/cpaster/fileshareprotocol.cpp b/src/plugins/cpaster/fileshareprotocol.cpp index a3be32d7eaf..21a9796b746 100644 --- a/src/plugins/cpaster/fileshareprotocol.cpp +++ b/src/plugins/cpaster/fileshareprotocol.cpp @@ -56,6 +56,7 @@ FileShareProtocol::FileShareProtocol() : FileShareProtocol::~FileShareProtocol() { + delete m_settingsPage; } QString FileShareProtocol::name() const diff --git a/src/plugins/cpaster/settingspage.cpp b/src/plugins/cpaster/settingspage.cpp index 892b790fe5c..1aa8f260975 100644 --- a/src/plugins/cpaster/settingspage.cpp +++ b/src/plugins/cpaster/settingspage.cpp @@ -62,8 +62,8 @@ Settings SettingsWidget::settings() return rc; } -SettingsPage::SettingsPage(const QSharedPointer &settings) : - m_settings(settings), m_widget(nullptr) +SettingsPage::SettingsPage(const QSharedPointer &settings, QObject *parent) + : Core::IOptionsPage(parent), m_settings(settings), m_widget(nullptr) { setId("A.CodePaster.General"); setDisplayName(tr("General")); diff --git a/src/plugins/cpaster/settingspage.h b/src/plugins/cpaster/settingspage.h index 6eaba8dbb67..3abfd0397a8 100644 --- a/src/plugins/cpaster/settingspage.h +++ b/src/plugins/cpaster/settingspage.h @@ -56,7 +56,7 @@ class SettingsPage : public Core::IOptionsPage Q_OBJECT public: - explicit SettingsPage(const QSharedPointer &settings); + explicit SettingsPage(const QSharedPointer &settings, QObject *parent); ~SettingsPage() override; QWidget *widget() override;