korganizer Library API Documentation

htmlexport.h

00001 /*
00002     This file is part of KOrganizer.
00003     Copyright (c) 2000, 2001 Cornelius Schumacher <schumacher@kde.org>
00004 
00005     This program is free software; you can redistribute it and/or modify
00006     it under the terms of the GNU General Public License as published by
00007     the Free Software Foundation; either version 2 of the License, or
00008     (at your option) any later version.
00009 
00010     This program is distributed in the hope that it will be useful,
00011     but WITHOUT ANY WARRANTY; without even the implied warranty of
00012     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
00013     GNU General Public License for more details.
00014 
00015     You should have received a copy of the GNU General Public License
00016     along with this program; if not, write to the Free Software
00017     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
00018 
00019     As a special exception, permission is given to link this program
00020     with any edition of Qt, and distribute the resulting executable,
00021     without including the source code for Qt in the source distribution.
00022 */
00023 #ifndef HTMLEXPORT_H
00024 #define HTMLEXPORT_H
00025 
00026 #include <qstring.h>
00027 #include <qdatetime.h>
00028 
00029 #include <libkcal/calendar.h>
00030 
00031 class QFile;
00032 class QTextStream;
00033 
00034 using namespace KCal;
00035 
00039 class HtmlExport {
00040   public:
00042     HtmlExport(Calendar *calendar) :
00043         mCalendar(calendar),
00044         mMonthViewEnabled(true),mEventsEnabled(false),mTodosEnabled(true),
00045         mCategoriesTodoEnabled(false),mAttendeesTodoEnabled(false),
00046         mCategoriesEventEnabled(false),mAttendeesEventEnabled(false),
00047         mDueDateEnabled(false),
00048         mExcludePrivateTodoEnabled(false),
00049         mExcludeConfidentialTodoEnabled(false),
00050         mExcludePrivateEventEnabled(false),
00051         mExcludeConfidentialEventEnabled(false) {}
00052     virtual ~HtmlExport() {};
00053 
00057     bool save(const QString &fileName);
00058 
00062     bool save(QTextStream *);
00063 
00064     void setMonthViewEnabled(bool enable=true) { mMonthViewEnabled = enable; }
00065     bool monthViewEnabled() { return mMonthViewEnabled; }
00066 
00067     void setEventsEnabled(bool enable=true) { mEventsEnabled = enable; }
00068     bool eventsEnabled() { return mEventsEnabled; }
00069 
00070     void setTodosEnabled(bool enable=true) { mTodosEnabled = enable; }
00071     bool todosEnabled() { return mTodosEnabled; }
00072   
00073     void setCategoriesTodoEnabled(bool enable=true) { mCategoriesTodoEnabled = enable; }
00074     bool categoriesTodoEnabled() { return mCategoriesTodoEnabled; }
00075   
00076     void setAttendeesTodoEnabled(bool enable=true) { mAttendeesTodoEnabled = enable; }
00077     bool attendeesTodoEnabled() { return mAttendeesTodoEnabled; }
00078 
00079     void setExcludePrivateTodoEnabled(bool enable=true) { mExcludePrivateTodoEnabled = enable; }
00080     bool excludePrivateTodoEnabled() { return mExcludePrivateTodoEnabled; }
00081 
00082     void setExcludeConfidentialTodoEnabled(bool enable=true) { mExcludeConfidentialTodoEnabled = enable; }
00083     bool excludeConfidentialTodoEnabled() { return mExcludeConfidentialTodoEnabled; }
00084   
00085     void setCategoriesEventEnabled(bool enable=true) { mCategoriesEventEnabled = enable; }
00086     bool categoriesEventEnabled() { return mCategoriesEventEnabled; }
00087   
00088     void setAttendeesEventEnabled(bool enable=true) { mAttendeesEventEnabled = enable; }
00089     bool attendeesEventEnabled() { return mAttendeesEventEnabled; }
00090 
00091     void setExcludePrivateEventEnabled(bool enable=true) { mExcludePrivateEventEnabled = enable; }
00092     bool excludePrivateEventEnabled() { return mExcludePrivateEventEnabled; }
00093 
00094     void setExcludeConfidentialEventEnabled(bool enable=true) { mExcludeConfidentialEventEnabled = enable; }
00095     bool excludeConfidentialEventEnabled() { return mExcludeConfidentialEventEnabled; }
00096 
00097     void setDueDateEnabled(bool enable=true) { mDueDateEnabled = enable; }
00098     bool dueDateEnabled() { return mDueDateEnabled; }
00099   
00100     void setDateRange(const QDate &from,const QDate &to) { mFromDate = from, mToDate = to; }
00101     QDate fromDate() { return mFromDate; }
00102     QDate toDate() { return mToDate; }
00103   
00104     void setStyleSheet( const QString & );
00105     QString styleSheet();
00106   
00107   protected:
00108 
00109     void createHtmlMonthView (QTextStream *ts);  
00110     void createHtmlEventList (QTextStream *ts);
00111     void createHtmlTodoList (QTextStream *ts);
00112 
00113     void createHtmlTodo (QTextStream *ts,Todo *todo);
00114     void createHtmlEvent (QTextStream *ts,Event *event,QDate date, bool withDescription = true);
00115 
00116     bool checkSecrecy( Incidence * );
00117 
00118     void formatHtmlCategories (QTextStream *ts,Incidence *event);
00119     void formatHtmlAttendees (QTextStream *ts,Incidence *event);
00120 
00121     QString breakString(const QString &text);
00122 
00123   private:
00124     QString cleanChars(const QString &txt);
00125   
00126     Calendar *mCalendar;
00127 
00128     bool mMonthViewEnabled;
00129     bool mEventsEnabled;
00130     bool mTodosEnabled;
00131     bool mCategoriesTodoEnabled;
00132     bool mAttendeesTodoEnabled;
00133     bool mCategoriesEventEnabled;
00134     bool mAttendeesEventEnabled;
00135     bool mDueDateEnabled;
00136     bool mExcludePrivateTodoEnabled;
00137     bool mExcludeConfidentialTodoEnabled;
00138     bool mExcludePrivateEventEnabled;
00139     bool mExcludeConfidentialEventEnabled;
00140     
00141     QDate mFromDate;
00142     QDate mToDate;
00143 
00144     QString mStyleSheet;
00145 };
00146 
00147 #endif
KDE Logo
This file is part of the documentation for kdelibs Version 3.1.5.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Sun Feb 15 11:41:08 2004 by doxygen 1.3.5 written by Dimitri van Heesch, © 1997-2001