File indexing completed on 2024-05-19 04:58:24

0001 /*
0002     This file is part of Choqok, the KDE micro-blogging client
0003 
0004     SPDX-FileCopyrightText: 2010-2012 Mehrdad Momeny <mehrdad.momeny@gmail.com>
0005 
0006     SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0007 */
0008 
0009 #ifndef FILTERSETTINGS_H
0010 #define FILTERSETTINGS_H
0011 
0012 #include <QMap>
0013 #include <QObject>
0014 
0015 #include "filter.h"
0016 
0017 class KConfigGroup;
0018 
0019 class FilterSettings : public QObject
0020 {
0021     Q_OBJECT
0022 public:
0023     static FilterSettings *self();
0024     virtual ~FilterSettings();
0025 
0026     QList<Filter *> filters() const;
0027     void setFilters(const QList< Filter * > &filters);
0028     void writeConfig();
0029     void readConfig();
0030 
0031     static QMap<Filter::FilterField, QString> filterFieldsMap();
0032     static QMap<Filter::FilterType, QString> filterTypesMap();
0033     static QMap<Filter::FilterAction, QString> filterActionsMap();
0034 
0035     static QString filterFieldName(Filter::FilterField field);
0036     static Filter::FilterField filterFieldFromName(const QString &name);
0037     static QString filterTypeName(Filter::FilterType type);
0038     static Filter::FilterType filterTypeFromName(const QString &name);
0039     static QString filterActionName(Filter::FilterAction action);
0040     static Filter::FilterAction filterActionFromName(const QString &name);
0041 
0042     static bool hideNoneFriendsReplies();
0043     static void setHideNoneFriendsReplies(bool enable = true);
0044     static bool hideRepliesNotRelatedToMe();
0045     static void setHideRepliesNotRelatedToMe(bool enable = true);
0046 
0047 private:
0048     FilterSettings();
0049     static FilterSettings *_self;
0050 
0051     QList<Filter *> _filters;
0052     static QMap<Filter::FilterField, QString> _filterFieldName;
0053     static QMap<Filter::FilterType, QString> _filterTypeName;
0054     static QMap<Filter::FilterAction, QString> _filterActionName;
0055 
0056     static bool _hideNoneFriendsReplies;
0057     static bool _hideRepliesNotRelatedToMe;
0058 
0059     KConfigGroup *conf;
0060 };
0061 
0062 #endif // FILTERSETTINGS_H