diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/src/HelpProxyModel.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/src/HelpProxyModel.cpp Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,65 @@ +/* +* 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: +* +*/ + +#include +#include + +#include "HelpUtils.h" +#include "HelpCommon.h" +#include "HelpProxyModel.h" + +HelpProxyModel::HelpProxyModel(QObject * parent):QSortFilterProxyModel(parent) +{ +} + +HelpProxyModel::~HelpProxyModel() +{ +} + +bool HelpProxyModel::filterAcceptsRow(int sourceRow, + const QModelIndex &sourceParent) const +{ + QModelIndex index = sourceModel()->index(sourceRow, 0, sourceParent); + + switch(filterRole()) + { + case KeywordRole: + { + QStringList keywordLst = sourceModel()->data(index, KeywordRole).toStringList(); + + foreach(QString str, keywordLst) + { + if(HelpUtils::findStr(str, filterRegExp().pattern()) != -1) + { + return true; + } + } + return false; + } + case Qt::DisplayRole: + { + QString title = sourceModel()->data(index, Qt::DisplayRole).toString(); + if(HelpUtils::findStr(title, filterRegExp().pattern()) != -1) + { + return true; + } + return false; + } + default: + return QSortFilterProxyModel::filterAcceptsRow(sourceRow, sourceParent); + } +}