1/* 2 * This file Copyright (C) Mnemosyne LLC 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License version 2 6 * as published by the Free Software Foundation. 7 * 8 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 9 * 10 * $Id: filters.h 12611 2011-08-02 03:59:54Z jordan $ 11 */ 12 13#ifndef QTR_FILTERS_H 14#define QTR_FILTERS_H 15 16#include <QMetaType> 17#include <QString> 18#include <QVariant> 19 20class FilterMode 21{ 22 private: 23 int myMode; 24 public: 25 FilterMode( int mode=SHOW_ALL ): myMode(mode) { } 26 FilterMode( const QString& name ): myMode(modeFromName(name)) { } 27 static const QString names[]; 28 enum { SHOW_ALL, SHOW_ACTIVE, SHOW_DOWNLOADING, SHOW_SEEDING, SHOW_PAUSED, 29 SHOW_FINISHED, SHOW_VERIFYING, SHOW_ERROR, NUM_MODES }; 30 static int modeFromName( const QString& name ); 31 static const QString& nameFromMode( int mode ) { return names[mode]; } 32 int mode() const { return myMode; } 33 const QString& name() const { return names[myMode]; } 34}; 35 36class SortMode 37{ 38 private: 39 int myMode; 40 public: 41 SortMode( int mode=SORT_BY_ID ): myMode(mode) { } 42 SortMode( const QString& name ): myMode(modeFromName(name)) { } 43 static const QString names[]; 44 enum { SORT_BY_ACTIVITY, SORT_BY_AGE, SORT_BY_ETA, SORT_BY_NAME, 45 SORT_BY_PROGRESS, SORT_BY_QUEUE, SORT_BY_RATIO, SORT_BY_SIZE, 46 SORT_BY_STATE, SORT_BY_ID, NUM_MODES }; 47 static int modeFromName( const QString& name ); 48 static const QString& nameFromMode( int mode ); 49 int mode() const { return myMode; } 50 const QString& name() const { return names[myMode]; } 51}; 52 53Q_DECLARE_METATYPE(FilterMode) 54Q_DECLARE_METATYPE(SortMode) 55 56#endif 57