--- a/bluetoothengine/btui/btuimodel/btuimodelsortfilter.cpp Tue Aug 31 15:25:10 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,162 +0,0 @@
-/*
-* Copyright (c) 2010 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 <btuimodelsortfilter.h>
-#include <btdevicemodel.h>
-#include "btuidevtypemap.h"
-/*!
- Constructor.
- */
-BtuiModelSortFilter::BtuiModelSortFilter( QObject *parent )
- : QSortFilterProxyModel( parent )
-{
- setDynamicSortFilter( true );
-}
-
-/*!
- Destructor.
- */
-BtuiModelSortFilter::~BtuiModelSortFilter()
-{
-}
-
-/*!
- Replace current filter values for filtering on major device class with
- the specified.
- */
-void BtuiModelSortFilter::setDeviceMajorFilter( int filter, FilterMode mode )
-{
- mFilters.clear();
- addDeviceMajorFilter( filter, mode );
-}
-
-/*!
- Add the specified filter value for filtering on major device class
- if the specified filter doesn't exist when this function is called.
- */
-void BtuiModelSortFilter::addDeviceMajorFilter( int filter, FilterMode mode )
-{
- FilterItem f(filter, mode);
- if ( mFilters.indexOf(f) == -1 ) {
- mFilters.append( f );
- invalidateFilter();
- }
-}
-
-/*!
- Clear the specified filter value for filtering on major device class from this model.
- */
-void BtuiModelSortFilter::clearDeviceMajorFilter( int filter, FilterMode mode )
-{
- FilterItem f(filter, mode);
- int i = mFilters.indexOf(f);
- if ( i > -1 ) {
- mFilters.removeAt( i );
- invalidateFilter();
- }
-}
-
-/*!
- clear all filters for filtering on major device class.
- This Model will reset itself.
- */
-void BtuiModelSortFilter::clearDeviceMajorFilters()
-{
- // model reset is needed if there are filters :
- if ( mFilters.size() > 0 ) {
- mFilters.clear();
- invalidateFilter();
- }
-}
-
-/*!
- return true if the specified filter exists; return false otherwise.
- */
-bool BtuiModelSortFilter::hasFilter( int filter, FilterMode mode )
-{
- FilterItem f(filter, mode);
- return mFilters.indexOf(f) > -1 ;
-}
-
-/*!
- \reimp
- */
-bool BtuiModelSortFilter::filterAcceptsRow(
- int sourceRow, const QModelIndex &sourceParent) const
-{
- bool accepted (false );
- // Get the device name from the model
- QModelIndex index = sourceModel()->index(sourceRow, 0, sourceParent);
-
- // the row shall pass all filters:
- for (int i = 0; i < mFilters.size(); i++ ) {
- if ( mFilters.at(i).mFilter == BtuiDevProperty::NullProperty ) {
- accepted = true; // There is no filter, we accept all
- }
- else {
- int majorProperty =
- sourceModel()->data(index, BtDeviceModel::MajorPropertyRole).toInt();
- switch (mFilters.at(i).mMode) {
- case ExactMatch:
- // Accept if the match is spot-on
- accepted = majorProperty == mFilters.at(i).mFilter ;
- break;
- case AtLeastMatch:
- // accept if it matches all specified properties:
- accepted = ( mFilters.at(i).mFilter ==
- ( majorProperty & mFilters.at(i).mFilter ) );
- break;
- case RoughMatch:
- // Accept if it matches one of specified properties:
- accepted = (majorProperty & mFilters.at(i).mFilter) != 0;
- break;
- case Exclusive:
- // Accept if this is not one that we want to filter out
- accepted = (majorProperty & mFilters.at(i).mFilter) == 0;
- break;
- default:
- accepted = false;
- }
- }
- // Break out of the loop at first non-accepted condition
- if (!accepted)
- break;
- }
- if (accepted) {
- // emit signal to inform a row has been accepted by fitler,
- // currently this is only needed by search view
- emit const_cast<BtuiModelSortFilter*>(this)->deviceAcceptedByFilter( sourceRow );
- }
- return accepted;
-}
-
-/*!
- \reimp
- */
-bool BtuiModelSortFilter::lessThan(
- const QModelIndex &left, const QModelIndex &right) const
-{
- if (sortRole() == BtDeviceModel::NameAliasRole ||
- sortRole() == BtDeviceModel::LastUsedTimeRole ||
- sortRole() == BtDeviceModel::RssiRole ||
- sortRole() == BtDeviceModel::SeqNumRole) {
- // base class provides sorting for these types already:
- return QSortFilterProxyModel::lessThan(left, right);
- }
- // no custom sort supported yet.
- return true;
-}