1/*
2 This file is part of the kcal library.
3
4 Copyright (c) 2000-2003 Cornelius Schumacher <schumacher@kde.org>
5 Copyright (C) 2004 Reinhold Kainhofer <reinhold@kainhofer.com>
6
7 This library is free software; you can redistribute it and/or
8 modify it under the terms of the GNU Library General Public
9 License as published by the Free Software Foundation; either
10 version 2 of the License, or (at your option) any later version.
11
12 This library is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Library General Public License for more details.
16
17 You should have received a copy of the GNU Library General Public License
18 along with this library; see the file COPYING.LIB. If not, write to
19 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20 Boston, MA 02110-1301, USA.
21*/
22#ifndef KCAL_HTMLEXPORT_H
23#define KCAL_HTMLEXPORT_H
24
25#include "kcal_export.h"
26
27#include <QtCore/QDateTime>
28#include <QtCore/QString>
29#include <QtCore/QTextStream>
30
31class QTextStream;
32
33namespace KCal {
34
35class HTMLExportSettings;
36class Calendar;
37class Event;
38class Incidence;
39class Todo;
40
41/**
42 This class provides the functions to export a calendar as a HTML page.
43*/
44class KCAL_DEPRECATED_EXPORT HtmlExport
45{
46 public:
47 /**
48 Create new HTML exporter for calendar.
49 */
50 HtmlExport( Calendar *calendar, HTMLExportSettings *settings );
51 virtual ~HtmlExport();
52
53 /**
54 Writes out the calendar in HTML format.
55 */
56 bool save( const QString &fileName = QString() );
57
58 /**
59 Writes out calendar to text stream.
60 */
61 bool save( QTextStream *ts );
62
63 void addHoliday( const QDate &date, const QString &name );
64
65 protected:
66 void createWeekView( QTextStream *ts );
67 void createMonthView( QTextStream *ts );
68 void createEventList( QTextStream *ts );
69 void createTodoList( QTextStream *ts );
70 void createJournalView( QTextStream *ts );
71 void createFreeBusyView( QTextStream *ts );
72
73 void createTodo( QTextStream *ts, Todo *todo );
74 void createEvent( QTextStream *ts, Event *event, QDate date,
75 bool withDescription = true );
76 void createFooter( QTextStream *ts );
77
78 bool checkSecrecy( Incidence *incidence );
79
80 void formatLocation( QTextStream *ts, Incidence *incidence );
81 void formatCategories( QTextStream *ts, Incidence *incidence );
82 void formatAttendees( QTextStream *ts, Incidence *incidence );
83
84 QString breakString( const QString &text );
85
86 QDate fromDate() const;
87 QDate toDate() const;
88 QString styleSheet() const;
89
90 private:
91 //@cond PRIVATE
92 Q_DISABLE_COPY( HtmlExport )
93 class Private;
94 Private *const d;
95 //@endcond
96};
97
98}
99
100#endif
101