QFactoryLoader does not need QObject as base class

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
Ivailo Monev 2022-06-11 22:40:02 +03:00
parent 0bfcac7ed2
commit a1ca746b80
2 changed files with 15 additions and 10 deletions

View file

@ -40,12 +40,12 @@ Q_GLOBAL_STATIC(QList<QFactoryLoader *>, qt_factory_loaders)
static std::recursive_mutex qGlobalFactoryLoaderMutex;
class QFactoryLoaderPrivate : public QObjectPrivate
class QFactoryLoaderPrivate
{
Q_DECLARE_PUBLIC(QFactoryLoader)
public:
QFactoryLoaderPrivate(){}
QFactoryLoaderPrivate();
~QFactoryLoaderPrivate();
mutable QMutex mutex;
QByteArray iid;
QList<QLibraryPrivate*> libraryList;
@ -56,6 +56,10 @@ public:
QStringList loadedPaths;
};
QFactoryLoaderPrivate::QFactoryLoaderPrivate()
{
}
QFactoryLoaderPrivate::~QFactoryLoaderPrivate()
{
foreach (QLibraryPrivate *library, libraryList)
@ -65,7 +69,7 @@ QFactoryLoaderPrivate::~QFactoryLoaderPrivate()
QFactoryLoader::QFactoryLoader(const char *iid,
const QString &suffix,
Qt::CaseSensitivity cs)
: QObject(*new QFactoryLoaderPrivate)
: d_ptr(new QFactoryLoaderPrivate())
{
Q_D(QFactoryLoader);
d->iid = iid;
@ -185,6 +189,7 @@ QFactoryLoader::~QFactoryLoader()
{
std::lock_guard<std::recursive_mutex> locker(qGlobalFactoryLoaderMutex);
qt_factory_loaders()->removeAll(this);
delete d_ptr;
}
QStringList QFactoryLoader::keys() const
@ -216,8 +221,6 @@ void QFactoryLoader::refreshAll()
}
}
#include "moc_qfactoryloader_p.h"
QT_END_NAMESPACE
#endif // QT_NO_LIBRARY

View file

@ -43,11 +43,8 @@ QT_BEGIN_NAMESPACE
class QFactoryLoaderPrivate;
class Q_CORE_EXPORT QFactoryLoader : public QObject
class Q_CORE_EXPORT QFactoryLoader
{
Q_OBJECT
Q_DECLARE_PRIVATE(QFactoryLoader)
public:
QFactoryLoader(const char *iid,
const QString &suffix,
@ -61,6 +58,11 @@ public:
void updateDir(const QString &pluginDir);
static void refreshAll();
private:
QFactoryLoaderPrivate *d_ptr;
Q_DECLARE_PRIVATE(QFactoryLoader)
};
QT_END_NAMESPACE