1 /*
2 * This file Copyright (C) 2010-2015 Mnemosyne LLC
3 *
4 * It may be used under the GNU GPL versions 2 or 3
5 * or any future license endorsed by Mnemosyne LLC.
6 *
7 */
8
9 #pragma once
10
11 #include <QMetaType>
12 #include <QString>
13 #include <QVariant>
14
15 class FilterMode
16 {
17 public:
18 enum
19 {
20 SHOW_ALL,
21 SHOW_ACTIVE,
22 SHOW_DOWNLOADING,
23 SHOW_SEEDING,
24 SHOW_PAUSED,
25 SHOW_FINISHED,
26 SHOW_VERIFYING,
27 SHOW_ERROR,
28 NUM_MODES
29 };
30
31 public:
32 FilterMode(int mode = SHOW_ALL) :
myMode(mode)33 myMode(mode)
34 {
35 }
36
FilterMode(QString const & name)37 FilterMode(QString const& name) :
38 myMode(modeFromName(name))
39 {
40 }
41
mode()42 int mode() const
43 {
44 return myMode;
45 }
46
name()47 QString const& name() const
48 {
49 return names[myMode];
50 }
51
52 static int modeFromName(QString const& name);
53
nameFromMode(int mode)54 static QString const& nameFromMode(int mode)
55 {
56 return names[mode];
57 }
58
59 private:
60 int myMode;
61
62 static QString const names[];
63 };
64
Q_DECLARE_METATYPE(FilterMode)65 Q_DECLARE_METATYPE(FilterMode)
66
67 class SortMode
68 {
69 public:
70 enum
71 {
72 SORT_BY_ACTIVITY,
73 SORT_BY_AGE,
74 SORT_BY_ETA,
75 SORT_BY_NAME,
76 SORT_BY_PROGRESS,
77 SORT_BY_QUEUE,
78 SORT_BY_RATIO,
79 SORT_BY_SIZE,
80 SORT_BY_STATE,
81 SORT_BY_ID,
82 NUM_MODES
83 };
84
85 public:
86 SortMode(int mode = SORT_BY_ID) :
87 myMode(mode)
88 {
89 }
90
91 SortMode(QString const& name) :
92 myMode(modeFromName(name))
93 {
94 }
95
96 int mode() const
97 {
98 return myMode;
99 }
100
101 QString const& name() const
102 {
103 return names[myMode];
104 }
105
106 static int modeFromName(QString const& name);
107 static QString const& nameFromMode(int mode);
108
109 private:
110 int myMode;
111
112 static QString const names[];
113 };
114
115 Q_DECLARE_METATYPE(SortMode)
116