CodePaster: Avoid use of global object pool

Change-Id: Ib81694d9dd3e8d040adc9ca12e9296e5cceb8208
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2018-02-07 11:48:18 +01:00
parent e48d8afedd
commit c9ceed697f
4 changed files with 6 additions and 8 deletions

View File

@@ -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;
}

View File

@@ -56,6 +56,7 @@ FileShareProtocol::FileShareProtocol() :
FileShareProtocol::~FileShareProtocol()
{
delete m_settingsPage;
}
QString FileShareProtocol::name() const

View File

@@ -62,8 +62,8 @@ Settings SettingsWidget::settings()
return rc;
}
SettingsPage::SettingsPage(const QSharedPointer<Settings> &settings) :
m_settings(settings), m_widget(nullptr)
SettingsPage::SettingsPage(const QSharedPointer<Settings> &settings, QObject *parent)
: Core::IOptionsPage(parent), m_settings(settings), m_widget(nullptr)
{
setId("A.CodePaster.General");
setDisplayName(tr("General"));

View File

@@ -56,7 +56,7 @@ class SettingsPage : public Core::IOptionsPage
Q_OBJECT
public:
explicit SettingsPage(const QSharedPointer<Settings> &settings);
explicit SettingsPage(const QSharedPointer<Settings> &settings, QObject *parent);
~SettingsPage() override;
QWidget *widget() override;