controlpanelui/src/tonefetcher/src/tonefetchermodel.cpp
branchRCL_3
changeset 34 90fe62538f66
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/controlpanelui/src/tonefetcher/src/tonefetchermodel.cpp	Tue Aug 31 15:15:28 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:
+ *     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