File indexing completed on 2024-04-21 04:57:18

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 
0011 #ifndef TRANSFERHISTORYCATEGORIZEDDELEGATE_H
0012 #define TRANSFERHISTORYCATEGORIZEDDELEGATE_H
0013 
0014 #include <QObject>
0015 
0016 class QStandardItem;
0017 
0018 class TransferHistoryCategorizedDelegate : public QObject
0019 {
0020     Q_OBJECT
0021 public:
0022     enum AlternativeRoles { RoleSize = 0xFF, RoleDate = 0xFE, RoleUrl = 0xFD, RoleDest = 0xFA };
0023 
0024     TransferHistoryCategorizedDelegate();
0025     ~TransferHistoryCategorizedDelegate() override;
0026 
0027     virtual void categorizeItem(QStandardItem *item)
0028     {
0029         Q_UNUSED(item)
0030     };
0031 };
0032 
0033 /** Categorizes the transfers in date ranges **/
0034 class DateCategorizedDelegate : public TransferHistoryCategorizedDelegate
0035 {
0036 public:
0037     DateCategorizedDelegate();
0038     ~DateCategorizedDelegate() override;
0039 
0040     void categorizeItem(QStandardItem *item) override;
0041 };
0042 
0043 /** Categorizes the transfers in size ranges **/
0044 class SizeCategorizedDelegate : public TransferHistoryCategorizedDelegate
0045 {
0046 public:
0047     SizeCategorizedDelegate();
0048     ~SizeCategorizedDelegate() override;
0049 
0050     void categorizeItem(QStandardItem *item) override;
0051 };
0052 
0053 /** Categorizes the transfer by source host **/
0054 class HostCategorizedDelegate : public TransferHistoryCategorizedDelegate
0055 {
0056 public:
0057     HostCategorizedDelegate();
0058     ~HostCategorizedDelegate() override;
0059 
0060     void categorizeItem(QStandardItem *item) override;
0061 };
0062 
0063 #endif