summaryrefslogtreecommitdiffabout
path: root/kabc/plugins/file/resourcefile.h
Unidiff
Diffstat (limited to 'kabc/plugins/file/resourcefile.h') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/plugins/file/resourcefile.h162
1 files changed, 162 insertions, 0 deletions
diff --git a/kabc/plugins/file/resourcefile.h b/kabc/plugins/file/resourcefile.h
new file mode 100644
index 0000000..4522d78
--- a/dev/null
+++ b/kabc/plugins/file/resourcefile.h
@@ -0,0 +1,162 @@
1/*
2 This file is part of libkabc.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
4
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version.
9
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details.
14
15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA.
19*/
20
21/*
22Enhanced Version of the file for platform independent KDE tools.
23Copyright (c) 2004 Ulf Schenk
24
25$Id$
26*/
27
28
29#ifndef KABC_RESOURCEFILE_H
30#define KABC_RESOURCEFILE_H
31
32#include <kconfig.h>
33#include <kdirwatch.h>
34
35#include <sys/types.h>
36
37#include <resource.h>
38
39class QTimer;
40class FormatPlugin;
41
42namespace KABC {
43
44//US class FormatPlugin;
45class ResourceConfigWidget;
46
47/**
48 @internal
49*/
50class ResourceFile : public Resource
51{
52 Q_OBJECT
53
54public:
55
56 /**
57 Constructor.
58
59 @param cfg The config object where custom resource settings are stored.
60 */
61 ResourceFile( const KConfig *cfg );
62
63 /**
64 Construct file resource on file @arg fileName using format @arg formatName.
65 */
66 ResourceFile( const QString &fileName, const QString &formatName = "vcard" );
67
68 /**
69 * Destructor.
70 */
71 ~ResourceFile();
72
73 /**
74 Writes the config back.
75 */
76 virtual void writeConfig( KConfig *cfg );
77
78 /**
79 * Tries to open the file and checks for the proper format.
80 * This method should be called before @ref load().
81 */
82 virtual bool doOpen();
83
84 /**
85 * Closes the file again.
86 */
87 virtual void doClose();
88
89 /**
90 * Requests a save ticket, that is used by @ref save()
91 */
92 virtual Ticket *requestSaveTicket();
93
94 /**
95 * Loads all addressees from file to the address book.
96 * Returns true if all addressees could be loaded otherwise false.
97 */
98 virtual bool load();
99
100 /**
101 * Saves all addresses from address book to file.
102 * Returns true if all addressees could be saved otherwise false.
103 *
104 * @param ticket The ticket returned by @ref requestSaveTicket()
105 */
106 virtual bool save( Ticket *ticket );
107
108 /**
109 * Set name of file to be used for saving.
110 */
111 void setFileName( const QString & );
112
113 /**
114 * Return name of file used for loading and saving the address book.
115 */
116 QString fileName() const;
117
118 /**
119 Sets a new format by name.
120 */
121 void setFormat( const QString &name );
122
123 /**
124 Returns the format name.
125 */
126 QString format() const;
127
128 /**
129 * Remove a addressee from its source.
130 * This method is mainly called by KABC::AddressBook.
131 */
132 virtual void removeAddressee( const Addressee& addr );
133
134 /**
135 * This method is called by an error handler if the application
136 * crashed
137 */
138 virtual void cleanUp();
139
140protected slots:
141 void fileChanged();
142
143protected:
144 void init( const QString &fileName, const QString &format );
145
146 bool lock( const QString &fileName );
147 void unlock( const QString &fileName );
148
149private:
150 QString mFileName;
151 QString mFormatName;
152
153 FormatPlugin *mFormat;
154
155 QString mLockUniqueName;
156
157 KDirWatch mDirWatch;
158};
159
160}
161
162#endif