diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | 460c52653ab0dcca6f19a4f492ed2c5e4e963ab0 (patch) | |
tree | 67208f7c145782a7e90b123b982ca78d88cc2c87 /libkcal/calfilter.h | |
download | tdepim-460c52653ab0dcca6f19a4f492ed2c5e4e963ab0.tar.gz tdepim-460c52653ab0dcca6f19a4f492ed2c5e4e963ab0.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdepim@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'libkcal/calfilter.h')
-rw-r--r-- | libkcal/calfilter.h | 158 |
1 files changed, 158 insertions, 0 deletions
diff --git a/libkcal/calfilter.h b/libkcal/calfilter.h new file mode 100644 index 00000000..fb34454e --- /dev/null +++ b/libkcal/calfilter.h @@ -0,0 +1,158 @@ +/* + This file is part of libkcal. + + Copyright (c) 2001,2003,2004 Cornelius Schumacher <schumacher@kde.org> + Copyright (C) 2003-2004 Reinhold Kainhofer <reinhold@kainhofer.com> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#ifndef KCAL_CALFILTER_H +#define KCAL_CALFILTER_H + +#include <qstring.h> +#include <qptrlist.h> + +#include "event.h" +#include "todo.h" +#include "journal.h" +#include "libkcal_export.h" + +namespace KCal { + +/** + Filter for calendar objects. +*/ +class LIBKCAL_EXPORT CalFilter +{ + public: + /** Construct filter. */ + CalFilter(); + /** Construct filter with name */ + CalFilter( const QString &name ); + /** Destruct filter. */ + ~CalFilter(); + + /** + Set name of filter. + */ + void setName( const QString &name ) { mName = name; } + /** + Return name of filter. + */ + QString name() const { return mName; } + + /** + Apply filter to eventlist, all events not matching filter criterias are + removed from the list. + */ + void apply( Event::List *eventlist ) const; + + /** + Apply filter to todolist, all todos not matching filter criterias are + removed from the list. + */ + void apply( Todo::List *todolist ) const; + + /** + Apply filter to todolist, all todos not matching filter criterias are + removed from the list. + */ + void apply( Journal::List *journallist) const; + + /** + Apply filter criteria on the specified incidence. Return true, if event passes + criteria, otherwise return false. + */ + bool filterIncidence( Incidence * ) const; + + /** + Enable or disable filter. + */ + void setEnabled( bool ); + /** + Return wheter the filter is enabled or not. + */ + bool isEnabled() const; + + + /** + Set list of categories, which is used for showing/hiding categories of + events. + See related functions. + */ + void setCategoryList( const QStringList & ); + /** + Return category list, used for showing/hiding categories of events. + See related functions. + */ + QStringList categoryList() const; + + /** + Set list of email addresses which are to be considered when finding + incidences which the current user is not a participant of. This is + normally the list used by KOPrefs::thatIsMe() as well. + */ + void setEmailList( const QStringList & ); + /** + Return list of email addresses which are to be considered when finding + incidences which the current user is not a participant of. This is + normally the list used by KOPrefs::thatIsMe() as well. + See related functions. + */ + QStringList emailList() const; + + enum { HideRecurring = 1, HideCompleted = 2, ShowCategories = 4, + HideInactiveTodos = 8, HideTodosWithoutAttendeeInEmailList = 16 }; + + /** + Set criteria, which have to be fulfilled by events passing the filter. + */ + void setCriteria( int ); + /** + Get inclusive filter criteria. + */ + int criteria() const; + + /** + Set the number of days for "Hide completed todos", after which todos are + not shown any more. If nothing is set explicitly, all finished todos will + be hidden if the "hide completed todos" option is selected. + */ + void setCompletedTimeSpan( int timespan ); + /** + Return the number of days for "Hide completed todos", after which todos are + not shown any more. + */ + int completedTimeSpan() const; + + private: + QString mName; + + int mCriteria; + + bool mEnabled; + + QStringList mCategoryList; + QStringList mEmailList; + int mCompletedTimeSpan; + + class Private; + Private *d; +}; + +} + +#endif |