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_RESOURCELOCALDIR_P_H
22#define KCAL_RESOURCELOCALDIR_P_H
23
24#include <kurl.h>
25#include <kdirwatch.h>
26
27class QString;
28namespace KABC { class Lock; }
29
30namespace KCal {
31
32class ResourceLocalDir;
33class Incidence;
34
35/**
36 Private class that helps to provide binary compatibility between releases.
37 @internal
38*/
39//@cond PRIVATE
40class ResourceLocalDir::Private : QObject
41{
42 Q_OBJECT
43 public:
44 Private( ResourceLocalDir *resource )
45 : mLock( 0 ), mResource( resource )
46 {
47 init();
48 }
49
50 Private ( const QString &dirName, ResourceLocalDir *resource )
51 : mLock( 0 ),
52 mURL( KUrl::fromPath( dirName ) ),
53 mResource( resource )
54 {
55 }
56
57 void init();
58 bool deleteIncidenceFile( Incidence *incidence );
59 static QString getUidFromFileName( const QString &fileName );
60 bool isTempFile( const QString &fileName ) const;
61 bool doFileLoad( CalendarLocal &cal, const QString &fileName, bool replace );
62
63 KABC::Lock *mLock;
64 KUrl mURL;
65 KDirWatch mDirWatch;
66 QList<Incidence *> mDeletedIncidences;
67 ResourceLocalDir *mResource;
68
69 Q_SIGNALS:
70 void resourceChanged( ResourceCalendar * );
71
72 protected Q_SLOTS:
73 void updateIncidenceInCalendar( const QString &file );
74 void addIncidenceToCalendar( const QString &file );
75 void deleteIncidenceFromCalendar( const QString &file );
76
77};
78//@endcond
79
80}
81
82#endif
83