• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdeutils API Reference
  • KDE Home
  • Contact Us
 

kdf

  • sources
  • kde-4.14
  • kdeutils
  • kdf
kdfsortproxymodel.cpp
Go to the documentation of this file.
1 /*
2 * kdfsortproxymodel.cpp
3 *
4 * Copyright (c) 2009 Dario Andres Rodriguez <andresbajotierra@gmail.com>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19 */
20 
21 #include "kdfsortproxymodel.h"
22 
23 #include "kdfwidget.h"
24 
25 bool KDFSortFilterProxyModel::lessThan(const QModelIndex &left, const QModelIndex &right) const
26 {
27 
28  //Properly sort the file sizes using the numeric size instead of the string
29  // representation (10Mb < 9Gb)
30  if( left.column() == KDFWidget::SizeCol || left.column() == KDFWidget::FreeCol )
31  {
32  qulonglong leftData = sourceModel()->data( left, Qt::UserRole ).toULongLong();
33  qulonglong rightData = sourceModel()->data( right, Qt::UserRole ).toULongLong();
34 
35  return leftData < rightData;
36  }
37  // Full percent can be -1 (non mounted disks)
38  else if ( left.column() == KDFWidget::FullCol || left.column() == KDFWidget::UsageBarCol )
39  {
40  int leftData = sourceModel()->data( left, Qt::UserRole ).toInt();
41  int rightData = sourceModel()->data( right, Qt::UserRole ).toInt();
42 
43  return leftData < rightData;
44 
45  }
46  // Default sorting rules for string values
47  else
48  {
49  return QSortFilterProxyModel::lessThan( left, right );
50  }
51 
52 }
QSortFilterProxyModel::lessThan
virtual bool lessThan(const QModelIndex &left, const QModelIndex &right) const
QModelIndex
KDFWidget::FullCol
Definition: kdfwidget.h:77
QVariant::toULongLong
qulonglong toULongLong(bool *ok) const
kdfwidget.h
QVariant::toInt
int toInt(bool *ok) const
QAbstractItemModel::data
virtual QVariant data(const QModelIndex &index, int role) const =0
KDFWidget::FreeCol
Definition: kdfwidget.h:76
KDFSortFilterProxyModel::lessThan
bool lessThan(const QModelIndex &left, const QModelIndex &right) const
Definition: kdfsortproxymodel.cpp:25
QAbstractProxyModel::sourceModel
QAbstractItemModel * sourceModel() const
KDFWidget::UsageBarCol
Definition: kdfwidget.h:78
QModelIndex::column
int column() const
kdfsortproxymodel.h
KDFWidget::SizeCol
Definition: kdfwidget.h:74
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:42:23 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kdf

Skip menu "kdf"
  • Main Page
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members

kdeutils API Reference

Skip menu "kdeutils API Reference"
  • ark
  • filelight
  • kcalc
  • kcharselect
  • kdf
  • kfloppy
  • kgpg
  • ktimer
  • kwallet
  • sweeper

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal