File indexing completed on 2024-04-28 04:57:35

0001 /* This file is part of the KDE project
0002 
0003    Copyright (C) 2008 Javier Goday <jgoday@gmail.com>
0004 
0005    This program is free software; you can redistribute it and/or
0006    modify it under the terms of the GNU General Public
0007    License as published by the Free Software Foundation; either
0008    version 2 of the License, or (at your option) any later version.
0009 */
0010 #include "transferhistorycategorizeddelegate.h"
0011 
0012 #include <KCategorizedSortFilterProxyModel>
0013 
0014 #include <QDate>
0015 #include <QStandardItem>
0016 #include <QUrl>
0017 #include <QVariant>
0018 
0019 #include <KLocalizedString>
0020 
0021 TransferHistoryCategorizedDelegate::TransferHistoryCategorizedDelegate()
0022 {
0023 }
0024 
0025 TransferHistoryCategorizedDelegate::~TransferHistoryCategorizedDelegate()
0026 {
0027 }
0028 
0029 DateCategorizedDelegate::DateCategorizedDelegate()
0030     : TransferHistoryCategorizedDelegate()
0031 {
0032 }
0033 
0034 DateCategorizedDelegate::~DateCategorizedDelegate()
0035 {
0036 }
0037 
0038 void DateCategorizedDelegate::categorizeItem(QStandardItem *item)
0039 {
0040     int categorySort = 0;
0041 
0042     QDate date = item->data(TransferHistoryCategorizedDelegate::RoleDate).toDate();
0043     QVariant value;
0044 
0045     if (date == QDate::currentDate()) {
0046         value = QVariant(i18n("Today"));
0047     } else if (date.daysTo(QDate::currentDate()) <= 7) {
0048         categorySort = 1;
0049         value = QVariant(i18n("Last week"));
0050     } else if (date.daysTo(QDate::currentDate()) <= 30) {
0051         categorySort = 2;
0052         value = QVariant(i18n("Last Month"));
0053     } else {
0054         categorySort = 3;
0055         value = QVariant(i18n("A long time ago"));
0056     }
0057 
0058     item->setData(value, KCategorizedSortFilterProxyModel::CategoryDisplayRole);
0059     item->setData(categorySort, KCategorizedSortFilterProxyModel::CategorySortRole);
0060 }
0061 
0062 SizeCategorizedDelegate::SizeCategorizedDelegate()
0063     : TransferHistoryCategorizedDelegate()
0064 {
0065 }
0066 
0067 SizeCategorizedDelegate::~SizeCategorizedDelegate()
0068 {
0069 }
0070 
0071 void SizeCategorizedDelegate::categorizeItem(QStandardItem *item)
0072 {
0073     int size = item->data(TransferHistoryCategorizedDelegate::RoleSize).toInt();
0074     int categorySort = 0;
0075     QVariant value;
0076 
0077     if (size < 10 * 1024 * 1024) {
0078         value = QVariant(i18n("Under 10MiB"));
0079     } else if (size >= 10 * 1024 * 1024 && size < 50 * 1024 * 1024) {
0080         value = QVariant(i18n("Between 10MiB and 50MiB"));
0081         categorySort = 1;
0082     } else if (size >= 50 * 1024 * 1024 && size < 100 * 1024 * 1024) {
0083         value = QVariant(i18n("Between 50MiB and 100MiB"));
0084         categorySort = 2;
0085     } else {
0086         categorySort = 3;
0087         value = QVariant(i18n("More than 100MiB"));
0088     }
0089 
0090     item->setData(value, KCategorizedSortFilterProxyModel::CategoryDisplayRole);
0091     item->setData(categorySort, KCategorizedSortFilterProxyModel::CategorySortRole);
0092 }
0093 
0094 HostCategorizedDelegate::HostCategorizedDelegate()
0095     : TransferHistoryCategorizedDelegate()
0096 {
0097 }
0098 
0099 HostCategorizedDelegate::~HostCategorizedDelegate()
0100 {
0101 }
0102 
0103 void HostCategorizedDelegate::categorizeItem(QStandardItem *item)
0104 {
0105     QUrl host(item->data(TransferHistoryCategorizedDelegate::RoleUrl).toString());
0106 
0107     item->setData(host.host(), KCategorizedSortFilterProxyModel::CategoryDisplayRole);
0108     item->setData(host.host(), KCategorizedSortFilterProxyModel::CategorySortRole);
0109 }
0110 
0111 #include "moc_transferhistorycategorizeddelegate.cpp"