diff -r f00a6757af32 -r 5f0182e07bfb homescreenapp/stateplugins/hsapplibrarystateplugin/inc/hsaddmodeproxymodel.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/homescreenapp/stateplugins/hsapplibrarystateplugin/inc/hsaddmodeproxymodel.h Tue Aug 31 15:06:34 2010 +0300 @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "Eclipse Public License v1.0" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html". + * + * Initial Contributors: + * Nokia Corporation - initial contribution. + * + * Contributors: + * + * Description: Proxy model for view in add to homescreen mode. + * + */ + +#ifndef HSADDMODEPROXYMODEL_H +#define HSADDMODEPROXYMODEL_H + +#include +#include +#include +#include + +#include "hsmenustates_global.h" + +class CaNotifier; + +class HsAddModeProxyModel : public QSortFilterProxyModel +{ + Q_OBJECT + + HS_STATES_TEST_FRIEND_CLASS(MenuStatesTest) + +public: + + HsAddModeProxyModel(QObject *parent = 0); + ~HsAddModeProxyModel(); + void initilizeCwrtWidgetCache(); + void setSourceModel(QAbstractItemModel *sourceModel); + +signals: + + void scrollTo(int row, QAbstractItemView::ScrollHint hint = + QAbstractItemView::EnsureVisible); + void countChange(); + +private slots: + + void updateCacheOnAddWidget(const QString &uri, const QVariantHash &preferences); + void updateCacheOnRemoveWidget(const QString &uri, const QVariantHash &preferences); + void updateEntryStatus(const CaEntry &entry, ChangeType changeType); + +private: + + virtual bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const; + static int findCwrtWidgetEntryId(const QVariantHash &preferences); + + QHash mCwrtWidgetCache; + CaQuery mQuery; + QScopedPointer mNotifier; +}; + +#endif //HSADDMODEPROXYMODEL_H +