calfilter.h
00001 /* 00002 This file is part of libkcal. 00003 00004 Copyright (c) 2001,2003,2004 Cornelius Schumacher <schumacher@kde.org> 00005 Copyright (C) 2003-2004 Reinhold Kainhofer <reinhold@kainhofer.com> 00006 00007 This library is free software; you can redistribute it and/or 00008 modify it under the terms of the GNU Library General Public 00009 License as published by the Free Software Foundation; either 00010 version 2 of the License, or (at your option) any later version. 00011 00012 This library is distributed in the hope that it will be useful, 00013 but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 Library General Public License for more details. 00016 00017 You should have received a copy of the GNU Library General Public License 00018 along with this library; see the file COPYING.LIB. If not, write to 00019 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00020 Boston, MA 02110-1301, USA. 00021 */ 00022 #ifndef KCAL_CALFILTER_H 00023 #define KCAL_CALFILTER_H 00024 00025 #include <tqstring.h> 00026 #include <tqptrlist.h> 00027 00028 #include "event.h" 00029 #include "todo.h" 00030 #include "journal.h" 00031 #include "libkcal_export.h" 00032 00033 namespace KCal { 00034 00038 class LIBKCAL_EXPORT CalFilter 00039 { 00040 public: 00042 CalFilter(); 00044 CalFilter( const TQString &name ); 00046 ~CalFilter(); 00047 00051 void setName( const TQString &name ) { mName = name; } 00055 TQString name() const { return mName; } 00056 00061 void apply( Event::List *eventlist ) const; 00062 00067 void apply( Todo::List *todolist ) const; 00068 00073 void apply( Journal::List *journallist) const; 00074 00079 bool filterIncidence( Incidence * ) const; 00080 00084 void setEnabled( bool ); 00088 bool isEnabled() const; 00089 00090 00096 void setCategoryList( const TQStringList & ); 00101 TQStringList categoryList() const; 00102 00108 void setEmailList( const TQStringList & ); 00115 TQStringList emailList() const; 00116 00117 enum { HideRecurring = 1, HideCompleted = 2, ShowCategories = 4, 00118 HideInactiveTodos = 8, HideTodosWithoutAttendeeInEmailList = 16 }; 00119 00123 void setCriteria( int ); 00127 int criteria() const; 00128 00134 void setCompletedTimeSpan( int timespan ); 00139 int completedTimeSpan() const; 00140 00141 private: 00142 TQString mName; 00143 00144 int mCriteria; 00145 00146 bool mEnabled; 00147 00148 TQStringList mCategoryList; 00149 TQStringList mEmailList; 00150 int mCompletedTimeSpan; 00151 00152 class Private; 00153 Private *d; 00154 }; 00155 00156 } 00157 00158 #endif