diff options
author | Andre Moreira Magalhaes (andrunko) <andre.magalhaes@collabora.co.uk> | 2010-06-18 16:10:18 -0300 |
---|---|---|
committer | Andre Moreira Magalhaes (andrunko) <andre.magalhaes@collabora.co.uk> | 2010-06-28 15:20:00 -0300 |
commit | c79d4ebc5d30c44c5e717fa46293023dce2b202c (patch) | |
tree | e668f2238bedcfc26bfdb69e15820f8e5b6fe25d /qt4/TelepathyQt4/account-set-internal.h | |
parent | bf5f58ec6e2bc3d521ae7d983073c6b01c636e2b (diff) |
AccountSet: Added class to represent a set of accounts filtered by a given criteria.
Diffstat (limited to 'qt4/TelepathyQt4/account-set-internal.h')
-rw-r--r-- | qt4/TelepathyQt4/account-set-internal.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/qt4/TelepathyQt4/account-set-internal.h b/qt4/TelepathyQt4/account-set-internal.h new file mode 100644 index 000000000..0a0294e71 --- /dev/null +++ b/qt4/TelepathyQt4/account-set-internal.h @@ -0,0 +1,67 @@ +/* + * This file is part of TelepathyQt4 + * + * Copyright (C) 2010 Collabora Ltd. <http://www.collabora.co.uk/> + * Copyright (C) 2010 Nokia Corporation + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +namespace Tp +{ + +struct AccountSet::Private +{ + class AccountWrapper; + + Private(AccountSet *parent, const AccountManagerPtr &accountManager, + const QVariantMap &filter); + + void insertAccount(const QString &accountPath); + void removeAccount(const QString &accountPath); + void wrapAccount(const AccountPtr &account); + void filterAccount(const AccountPtr &account); + bool accountMatchFilter(const AccountPtr &account, const QVariantMap &filter); + + AccountSet *parent; + AccountManagerPtr accountManager; + QVariantMap filter; + QHash<QString, AccountWrapper *> wrappers; + QHash<QString, AccountPtr> accounts; + bool ready; +}; + +class TELEPATHY_QT4_NO_EXPORT AccountSet::Private::AccountWrapper : public QObject +{ + Q_OBJECT + +public: + AccountWrapper(const AccountPtr &account, QObject *parent = 0); + ~AccountWrapper(); + + AccountPtr account() { return mAccount; } + +Q_SIGNALS: + void accountPropertyChanged(const Tp::AccountPtr &account, + const QString &propertyName); + +private Q_SLOTS: + void onAccountPropertyChanged(const QString &propertyName); + +private: + AccountPtr mAccount; +}; + +} // Tp |