/* * This file Copyright (C) 2010-2015 Mnemosyne LLC * * It may be used under the GNU GPL versions 2 or 3 * or any future license endorsed by Mnemosyne LLC. * */ #pragma once #include #include #include class FilterMode { public: enum { SHOW_ALL, SHOW_ACTIVE, SHOW_DOWNLOADING, SHOW_SEEDING, SHOW_PAUSED, SHOW_FINISHED, SHOW_VERIFYING, SHOW_ERROR, NUM_MODES }; public: FilterMode (int mode = SHOW_ALL): myMode (mode) {} FilterMode (const QString& name): myMode (modeFromName (name)) {} int mode () const { return myMode; } const QString& name () const { return names[myMode]; } static int modeFromName (const QString& name); static const QString& nameFromMode(int mode) { return names[mode]; } private: int myMode; static const QString names[]; }; Q_DECLARE_METATYPE(FilterMode) class SortMode { public: enum { SORT_BY_ACTIVITY, SORT_BY_AGE, SORT_BY_ETA, SORT_BY_NAME, SORT_BY_PROGRESS, SORT_BY_QUEUE, SORT_BY_RATIO, SORT_BY_SIZE, SORT_BY_STATE, SORT_BY_ID, NUM_MODES }; public: SortMode (int mode = SORT_BY_ID): myMode (mode) {} SortMode (const QString& name): myMode (modeFromName (name)) {} int mode () const { return myMode; } const QString& name () const { return names[myMode]; } static int modeFromName (const QString& name); static const QString& nameFromMode (int mode); private: int myMode; static const QString names[]; }; Q_DECLARE_METATYPE(SortMode)