controlpanelui/src/tonefetcher/src/tonefetchermodel.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 31 Aug 2010 15:15:28 +0300
branchRCL_3
changeset 13 90fe62538f66
permissions -rw-r--r--
Revision: 201029 Kit: 201035

/*
 * 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:
 *     The source file for tone list model
 */
#include "tonefetchermodel.h"
#include <QFileInfo>
#include <QtAlgorithms>

ToneFetcherModel::ToneFetcherModel(QObject *parent) 
    : QStringListModel(parent)
{
}

ToneFetcherModel::~ToneFetcherModel()
{
}

QVariant ToneFetcherModel::data(const QModelIndex &index, int role) const
{
    if (role == Qt::DisplayRole) {
        return  QFileInfo(QStringListModel::data(index, role).toString()).baseName();        
    } else {
        return QStringListModel::data(index, role);
    }
}

QString ToneFetcherModel::getPath(const QModelIndex &index) const
{    
    return  QStringListModel::data(index, Qt::DisplayRole).toString();
}

void ToneFetcherModel::sort()
{
    QStringList list = stringList();
    qStableSort(list.begin(), list.end(), caseSensitiveLessThan);   
    removeRows(0, rowCount());
    setStringList(list);
}
void ToneFetcherModel::layoutToBeChanged()
{
    emit layoutAboutToBeChanged();
}

void ToneFetcherModel::layoutHasChanged()
{
    emit layoutChanged();
}

bool ToneFetcherModel::caseSensitiveLessThan(const QString &s1, const QString &s2)
{
    return QFileInfo(s1).baseName().toLower() < QFileInfo(s2).baseName().toLower();
}
//End of File