1
/****************************************************************************
2
* Copyright (C) 2009-2013 by Savoir-Faire Linux *
3
* Author : Jérémy Quentin <jeremy.quentin@savoirfairelinux.com> *
4
* Emmanuel Lepage Vallee <emmanuel.lepage@savoirfairelinux.com> *
6
* This library is free software; you can redistribute it and/or *
7
* modify it under the terms of the GNU Lesser General Public *
8
* License as published by the Free Software Foundation; either *
9
* version 2.1 of the License, or (at your option) any later version. *
11
* This library 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 GNU *
14
* Lesser General Public License for more details. *
16
* You should have received a copy of the GNU General Public License *
17
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
18
***************************************************************************/
20
#ifndef SORTABLE_DOCK_COMMON
21
#define SORTABLE_DOCK_COMMON
23
#include <QtCore/QObject>
24
#include <QtCore/QHash>
25
#include <QtCore/QModelIndex>
26
#include <QtGui/QWidget>
28
#include "helperfunctions.h"
37
class StaticEventHandler;
41
///@enum ContactSortingMode Available sorting mode for the contact dock
42
enum ContactSortingMode {
50
///@enum HistorySortingMode Mode used to sort the history dock
51
enum HistorySortingMode {
58
///SortableDockCommon: Common code for filtering
59
template <typename CallWidget = QWidget*, typename Index = QModelIndex*>
60
class LIB_EXPORT SortableDockCommon {
62
friend class StaticEventHandler;
65
static QString getIdentity(Call* item);
66
static int usableNumberCount(Contact* cont);
67
static void setHistoryCategory ( QList<Call*>& calls , HistorySortingMode mode );
68
static void setContactCategory ( QList<Contact*> contacts , ContactSortingMode mode );
73
static QString timeToHistoryCategory ( QDate date );
74
static QHash<Contact*, QDateTime> getContactListByTime ( );
77
static QStringList m_slHistoryConst;
79
///@enum HistoryConst match m_slHistoryConst
93
Three_months_ago = 12 ,
94
Four_months_ago = 13 ,
95
Five_months_ago = 14 ,
97
Seven_months_ago = 16 ,
98
Eight_months_ago = 17 ,
99
Nine_months_ago = 18 ,
100
Ten_months_ago = 19 ,
101
Eleven_months_ago = 20 ,
102
Twelve_months_ago = 21 ,
104
Very_long_time_ago= 23 ,
109
static StaticEventHandler* m_spEvHandler ;
113
///StaticEventHandler: "cron jobs" for static member;
114
class LIB_EXPORT StaticEventHandler : public QObject
118
StaticEventHandler(QObject* parent, QStringList* list);
123
QStringList* m_pList;
126
#include "sortabledockcommon.hpp"