28 #ifndef ARTICLEFILTER_H
29 #define ARTICLEFILTER_H
32 #include <tqvaluelist.h>
33 #include <tqvariant.h>
44 class AbstractMatcher;
66 const TQString&
name()
const;
67 void setName(
const TQString& name);
74 AbstractAction* action()
const;
75 void setAction(
const AbstractAction& action);
80 void writeConfig(KConfig* config)
const;
81 void readConfig(KConfig* config);
84 class ArticleFilterPrivate;
85 ArticleFilterPrivate* d;
89 class ArticleFilterList :
public TQValueList<ArticleFilter>
93 void writeConfig(KConfig* config)
const;
94 void readConfig(KConfig* config);
108 virtual bool matches(
const Article& article)
const = 0;
110 virtual void writeConfig(KConfig* config)
const = 0;
111 virtual void readConfig(KConfig* config) = 0;
122 TagMatcher(
const TQString& tagID);
123 TagMatcher(
const TagMatcher& other);
125 virtual ~TagMatcher();
128 virtual bool matches(
const Article& article)
const;
130 virtual TagMatcher* clone()
const;
132 virtual void writeConfig(KConfig* config)
const;
133 virtual void readConfig(KConfig* config);
135 TagMatcher& operator=(
const TagMatcher& other);
141 class TagMatcherPrivate;
142 TagMatcherPrivate* d;
148 virtual void exec(
Article& article) = 0;
150 virtual void writeConfig(KConfig* config)
const = 0;
151 virtual void readConfig(KConfig* config) = 0;
153 virtual AbstractAction* clone()
const = 0;
154 virtual bool operator==(
const AbstractAction& other) = 0;
157 class DeleteAction :
public AbstractAction
160 virtual void exec(Article& article);
162 virtual void writeConfig(KConfig* config)
const;
163 virtual void readConfig(KConfig* config);
165 virtual DeleteAction* clone()
const {
return new DeleteAction; }
166 virtual bool operator==(
const AbstractAction& other);
169 class SetStatusAction :
public AbstractAction
172 SetStatusAction(
int status=0);
174 virtual void exec(Article& article);
177 void setStatus(
int status);
179 virtual void writeConfig(KConfig* config)
const;
180 virtual void readConfig(KConfig* config);
182 virtual SetStatusAction* clone()
const {
return new SetStatusAction(*
this); }
183 virtual bool operator==(
const AbstractAction& other);
189 class AssignTagAction :
public AbstractAction
193 AssignTagAction(
const TQString& tagID=TQString());
194 virtual void exec(Article& article);
196 const TQString& tagID()
const;
197 void setTagID(
const TQString& tagID);
199 virtual void writeConfig(KConfig* config)
const;
200 virtual void readConfig(KConfig* config);
202 virtual AssignTagAction* clone()
const {
return new AssignTagAction(*
this); }
203 virtual bool operator==(
const AbstractAction& other);
217 None, LogicalAnd, LogicalOr
221 ArticleMatcher(
const TQValueList<Criterion> &criteria, Association assoc);
234 virtual bool matches(
const Article &article)
const;
239 virtual void writeConfig(KConfig* config)
const;
240 virtual void readConfig(KConfig* config);
244 static Association stringToAssociation(
const TQString& assocStr);
245 static TQString associationToString(Association association);
247 bool anyCriterionMatches(
const Article &a )
const;
248 bool allCriteriaMatch(
const Article &a )
const;
250 TQValueList<Criterion> m_criteria;
251 Association m_association;
262 Title, Description, Author, Link, Status, KeepFlag
265 static TQString subjectToString(Subject subj);
266 static Subject stringToSubject(
const TQString& subjStr);
275 static TQString predicateToString(Predicate pred);
276 static Predicate stringToPredicate(
const TQString& predStr);
279 Criterion( Subject subject, Predicate predicate,
const TQVariant &
object );
281 bool satisfiedBy(
const Article &article )
const;
283 virtual void writeConfig(KConfig* config)
const;
284 virtual void readConfig(KConfig* config);
286 Subject subject()
const;
287 Predicate predicate()
const;
288 TQVariant object()
const;
289 bool operator==(
const Criterion& other)
const
290 {
return m_subject == other.m_subject && m_predicate == other.m_predicate && m_object == other.m_object; }
294 Predicate m_predicate;