From e0ebda60129fb2fdac4160f6ffdcb7851b2a8a32 Mon Sep 17 00:00:00 2001 From: Pier Luigi Fiorini Date: Sun, 28 May 2017 14:31:27 +0200 Subject: [PATCH] Don't use Qt private API Closes: #4 --- src/accountsservice/accountsservice.qbs | 4 ++-- src/accountsservice/useraccount.cpp | 12 +++++++----- src/accountsservice/useraccount.h | 2 ++ src/accountsservice/useraccount_p.h | 9 +++++---- src/accountsservice/usersmodel.cpp | 9 +++++---- src/accountsservice/usersmodel.h | 4 +++- src/accountsservice/usersmodel_p.h | 9 +++++---- 7 files changed, 29 insertions(+), 20 deletions(-) diff --git a/src/accountsservice/accountsservice.qbs b/src/accountsservice/accountsservice.qbs index 323318f..a23d616 100644 --- a/src/accountsservice/accountsservice.qbs +++ b/src/accountsservice/accountsservice.qbs @@ -6,7 +6,7 @@ LiriModule { targetName: "Qt5AccountsService" version: "0.0.0" - Depends { name: "Qt"; submodules: ["core", "core-private", "dbus", "gui"] } + Depends { name: "Qt"; submodules: ["core", "dbus", "gui"] } cpp.defines: base.concat([ "QTACCOUNTSSERVICE_VERSION=" + project.version, @@ -58,7 +58,7 @@ LiriModule { Export { Depends { name: "cpp" } - Depends { name: "Qt"; submodules: ["core", "core-private", "dbus", "gui"] } + Depends { name: "Qt"; submodules: ["core", "dbus", "gui"] } cpp.includePaths: product.generatedHeadersDir } diff --git a/src/accountsservice/useraccount.cpp b/src/accountsservice/useraccount.cpp index e1e4f15..6ed6443 100644 --- a/src/accountsservice/useraccount.cpp +++ b/src/accountsservice/useraccount.cpp @@ -34,14 +34,14 @@ namespace QtAccountsService { * UserAccountPrivate */ -UserAccountPrivate::UserAccountPrivate() - : QObjectPrivate() - , bus(QDBusConnection::systemBus()) +UserAccountPrivate::UserAccountPrivate(UserAccount *q) + : bus(QDBusConnection::systemBus()) , user(nullptr) , accountType(UserAccount::StandardAccountType) , locked(false) , automaticLogin(false) , passwordMode(UserAccount::NonePasswordMode) + , q_ptr(q) { } @@ -103,7 +103,8 @@ void UserAccountPrivate::emitSignals() Constructs a UserAccount object for the currently logged in user. */ UserAccount::UserAccount(const QDBusConnection &bus, QObject *parent) - : QObject(*new UserAccountPrivate(), parent) + : QObject(parent) + , d_ptr(new UserAccountPrivate(this)) { Q_D(UserAccount); @@ -120,7 +121,8 @@ UserAccount::UserAccount(const QDBusConnection &bus, QObject *parent) \param objectPath Accounts Service object path for the user account. */ UserAccount::UserAccount(const QString &objectPath, const QDBusConnection &bus, QObject *parent) - : QObject(*new UserAccountPrivate(), parent) + : QObject(parent) + , d_ptr(new UserAccountPrivate(this)) { Q_D(UserAccount); d->initialize(bus, objectPath); diff --git a/src/accountsservice/useraccount.h b/src/accountsservice/useraccount.h index e616009..9a821c0 100644 --- a/src/accountsservice/useraccount.h +++ b/src/accountsservice/useraccount.h @@ -160,6 +160,8 @@ class Q_ACCOUNTS_SERVICE_EXPORT UserAccount : public QObject friend class AccountsManager; friend class AccountsManagerPrivate; + UserAccountPrivate *const d_ptr; + UserAccount(const QString &objectPath, const QDBusConnection &bus = QDBusConnection::systemBus(), QObject *parent = nullptr); diff --git a/src/accountsservice/useraccount_p.h b/src/accountsservice/useraccount_p.h index 0c78f42..fa8049c 100644 --- a/src/accountsservice/useraccount_p.h +++ b/src/accountsservice/useraccount_p.h @@ -24,8 +24,6 @@ #ifndef QTACCOUNTSSERVICE_USERACCOUNT_P_H #define QTACCOUNTSSERVICE_USERACCOUNT_P_H -#include - #include "useraccount.h" #include "user_interface.h" @@ -42,12 +40,12 @@ namespace QtAccountsService { -class UserAccountPrivate : public QObjectPrivate +class UserAccountPrivate { Q_DECLARE_PUBLIC(UserAccount) Q_DISABLE_COPY(UserAccountPrivate) public: - explicit UserAccountPrivate(); + explicit UserAccountPrivate(UserAccount *q); void initialize(const QDBusConnection &connection, const QString &objectPath); void emitSignals(); @@ -68,6 +66,9 @@ class UserAccountPrivate : public QObjectPrivate QString language; QString location; QString xsession; + +protected: + UserAccount *q_ptr; }; } diff --git a/src/accountsservice/usersmodel.cpp b/src/accountsservice/usersmodel.cpp index a3440d4..3eee194 100644 --- a/src/accountsservice/usersmodel.cpp +++ b/src/accountsservice/usersmodel.cpp @@ -32,10 +32,10 @@ namespace QtAccountsService { * UsersModelPrivate */ -UsersModelPrivate::UsersModelPrivate() - : QAbstractItemModelPrivate() +UsersModelPrivate::UsersModelPrivate(UsersModel *q) + : manager(new AccountsManager()) + , q_ptr(q) { - manager = new AccountsManager(); } UsersModelPrivate::~UsersModelPrivate() @@ -79,7 +79,8 @@ void UsersModelPrivate::_q_userDeleted(qlonglong uid) */ UsersModel::UsersModel(QObject *parent) - : QAbstractListModel(*new UsersModelPrivate(), parent) + : QAbstractListModel(parent) + , d_ptr(new UsersModelPrivate(this)) { Q_D(UsersModel); diff --git a/src/accountsservice/usersmodel.h b/src/accountsservice/usersmodel.h index ddcc973..857ec22 100644 --- a/src/accountsservice/usersmodel.h +++ b/src/accountsservice/usersmodel.h @@ -36,6 +36,7 @@ class UsersModelPrivate; class Q_ACCOUNTS_SERVICE_EXPORT UsersModel : public QAbstractListModel { Q_OBJECT + Q_DECLARE_PRIVATE(UsersModel) public: enum Roles { UserAccountRole = Qt::UserRole + 1, @@ -74,7 +75,8 @@ class Q_ACCOUNTS_SERVICE_EXPORT UsersModel : public QAbstractListModel UserAccount *userAccount(const QModelIndex &index) const; private: - Q_DECLARE_PRIVATE(UsersModel) + UsersModelPrivate *const d_ptr; + Q_PRIVATE_SLOT(d_func(), void _q_userAdded(UserAccount *account)) Q_PRIVATE_SLOT(d_func(), void _q_userDeleted(qlonglong uid)) }; diff --git a/src/accountsservice/usersmodel_p.h b/src/accountsservice/usersmodel_p.h index 61a8c98..3c43c80 100644 --- a/src/accountsservice/usersmodel_p.h +++ b/src/accountsservice/usersmodel_p.h @@ -27,8 +27,6 @@ #include #include -#include - // // W A R N I N G // ------------- @@ -44,11 +42,11 @@ namespace QtAccountsService { class UsersModel; -class UsersModelPrivate : public QAbstractItemModelPrivate +class UsersModelPrivate { Q_DECLARE_PUBLIC(UsersModel) public: - UsersModelPrivate(); + UsersModelPrivate(UsersModel *q); ~UsersModelPrivate(); void populate(); @@ -59,6 +57,9 @@ class UsersModelPrivate : public QAbstractItemModelPrivate public Q_SLOTS: void _q_userAdded(UserAccount *account); void _q_userDeleted(qlonglong uid); + +protected: + UsersModel *q_ptr; }; }