1/*
2 This file is part of the kcal library.
3
4 Copyright (c) 2003 Cornelius Schumacher <schumacher@kde.org>
5
6 This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Library General Public
8 License as published by the Free Software Foundation; either
9 version 2 of the License, or (at your option) any later version.
10
11 This library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Library General Public License for more details.
15
16 You should have received a copy of the GNU Library General Public License
17 along with this library; see the file COPYING.LIB. If not, write to
18 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19 Boston, MA 02110-1301, USA.
20*/
21#ifndef KCAL_RESOURCELOCALDIRDIR_H
22#define KCAL_RESOURCELOCALDIRDIR_H
23
24#include "kcal_export.h"
25#include "resourcecached.h"
26
27namespace KCal {
28
29/**
30 @brief
31 This class provides a calendar stored as a file per incidence in a directory.
32*/
33class KCAL_DEPRECATED_EXPORT ResourceLocalDir : public ResourceCached
34{
35 Q_OBJECT
36 friend class ResourceLocalDirConfig;
37
38 public:
39 ResourceLocalDir();
40 explicit ResourceLocalDir( const KConfigGroup &group );
41 explicit ResourceLocalDir( const QString &fileName );
42 virtual ~ResourceLocalDir();
43
44 void readConfig( const KConfigGroup &group );
45 void writeConfig( KConfigGroup &group );
46
47 KABC::Lock *lock();
48
49 /** deletes an event from this calendar. */
50 bool deleteEvent( Event *event );
51
52 /** Removes all Events from this calendar. */
53 void deleteAllEvents();
54
55 /**
56 Remove a todo from the todolist.
57 */
58 bool deleteTodo( Todo *todo );
59
60 /**
61 Removes all todos from this calendar.
62 */
63 void deleteAllTodos();
64
65 /**
66 Remove a journal from the journallist.
67 */
68 bool deleteJournal( Journal *journal );
69
70 /**
71 Removes all journals from this calendar.
72 */
73 void deleteAllJournals();
74
75 void dump() const;
76
77 protected Q_SLOTS:
78 void reload( const QString &file );
79
80 protected:
81 bool doOpen();
82 virtual bool doLoad( bool syncCache );
83 virtual bool doSave( bool syncCache );
84 bool doSave( bool syncCache, Incidence *incidence );
85 virtual bool doFileLoad( CalendarLocal &cal, const QString &fileName );
86
87 private:
88 // Inherited virtual methods which should not be used by derived classes.
89 using ResourceCalendar::doLoad;
90 using ResourceCalendar::doSave;
91
92 //@cond PRIVATE
93 Q_DISABLE_COPY( ResourceLocalDir )
94 class Private;
95 Private *const d;
96 //@endcond
97};
98
99}
100
101#endif
102