Source Code (Use browser search to find items of interest.)
Class Index
krn'KMAddrBook (./kdenetwork/krn/kmaddrbook.h:11)
class KMAddrBook: protected QStrList
{
public:
KMAddrBook();
virtual ~KMAddrBook();
/** Insert given address to the addressbook. Sorted. Duplicate
addresses are not inserted. */
virtual void insert(const QString address);
/** Remove given address from the addressbook. */
virtual void remove(const QString address);
/** Returns first address in addressbook or NULL if addressbook is empty. */
virtual const char* first(void) { return KMAddrBookInherited::first(); }
/** Returns next address in addressbook or NULL. */
virtual const char* next(void) { return KMAddrBookInherited::next(); }
/** Clear addressbook (remove the contents). */
virtual void clear(void);
/** Open addressbook file and read contents. The default addressbook
file is used if no filename is given.
Returns IO_Ok on success and an IO device status on failure -- see
QIODevice::status(). */
virtual int load(const char* fileName=NULL);
/** Store addressbook in file or in same file of last load() call
if no filename is given. Returns IO_Ok on success and an IO device
status on failure -- see QIODevice::status(). */
virtual int store(const char* fileName=NULL);
/** Read/write configuration options. Uses the group "Addressbook"
in the app's config file. */
virtual void readConfig(void);
virtual void writeConfig(bool withSync=TRUE);
/** Test if the addressbook has unsaved changes. */
virtual bool modified(void) const { return mModified; }
protected:
virtual int compareItems(Item item1, Item item2);
/** Displays a detailed message box and returns 'status' */
virtual int fileError(int status) const;
QString mDefaultFileName;
bool mModified;
};
krn'KMAddrBook::KMAddrBook() (./kdenetwork/krn/kmaddrbook.cpp:18)
KMAddrBook::KMAddrBook(): KMAddrBookInherited()
{
mModified = FALSE;
}
//-----------------------------------------------------------------------------
krn'KMAddrBook::~KMAddrBook() (./kdenetwork/krn/kmaddrbook.cpp:25)
KMAddrBook::~KMAddrBook()
{
if (mModified)
{
if(store() == IO_FatalError)
KMsgBox::message(0,i18n("KMail Error"),
i18n("Storing the addressbook failed!\n"));
}
writeConfig(FALSE);
}
//-----------------------------------------------------------------------------
krn'KMAddrBook::insert() (./kdenetwork/krn/kmaddrbook.cpp:39)
void KMAddrBook::insert(const QString aAddress)
{
if (find(aAddress)<0)
{
inSort(aAddress);
mModified=TRUE;
}
}
//-----------------------------------------------------------------------------
krn'KMAddrBook::remove() (./kdenetwork/krn/kmaddrbook.cpp:50)
void KMAddrBook::remove(const QString aAddress)
{
remove(aAddress);
mModified=TRUE;
}
//-----------------------------------------------------------------------------
krn'KMAddrBook::clear() (./kdenetwork/krn/kmaddrbook.cpp:58)
void KMAddrBook::clear(void)
{
KMAddrBookInherited::clear();
mModified=TRUE;
}
//-----------------------------------------------------------------------------
krn'KMAddrBook::writeConfig() (./kdenetwork/krn/kmaddrbook.cpp:66)
void KMAddrBook::writeConfig(bool aWithSync)
{
KConfig* config = kapp->config();
config->setGroup("Addressbook");
config->writeEntry("default", mDefaultFileName);
if (aWithSync) config->sync();
}
//-----------------------------------------------------------------------------
krn'KMAddrBook::readConfig() (./kdenetwork/krn/kmaddrbook.cpp:78)
void KMAddrBook::readConfig(void)
{
KConfig* config = kapp->config();
config->setGroup("Addressbook");
mDefaultFileName = config->readEntry("default");
if (mDefaultFileName.isEmpty())
mDefaultFileName = locateLocal("data", "kmail/addressbook");
}
//-----------------------------------------------------------------------------
krn'KMAddrBook::load() (./kdenetwork/krn/kmaddrbook.cpp:90)
int KMAddrBook::load(const char* aFileName)
{
char line[256];
const char* fname = (aFileName ? aFileName : (const char*)mDefaultFileName);
QFile file(fname);
int rc;
//assert(fname != NULL);
if(!fname)
return IO_FatalError;
if (!file.open(IO_ReadOnly)) return file.status();
clear();
while (!file.atEnd())
{
if (file.readLine(line,255) > 0)
{
if (line[strlen(line)-1] < ' ') line[strlen(line)-1] = '\0';
if (line[0]!='#' && line[0]!='\0') inSort(line);
}
}
rc = file.status();
file.close();
mModified = FALSE;
return rc;
}
//-----------------------------------------------------------------------------
krn'KMAddrBook::store() (./kdenetwork/krn/kmaddrbook.cpp:121)
int KMAddrBook::store(const char* aFileName)
{
const char* addr;
const char* fname = (aFileName ? aFileName : (const char*)mDefaultFileName);
QFile file(fname);
//assert(fname != NULL);
if(!fname)
return IO_FatalError;
if (!file.open(IO_ReadWrite|IO_Truncate)) return fileError(file.status());
addr = "# kmail addressbook file\n";
if (file.writeBlock(addr,strlen(addr)) < 0) return fileError(file.status());
for (addr=first(); addr; addr=next())
{
if (file.writeBlock(addr,strlen(addr)) < 0) return fileError(file.status());
file.writeBlock("\n",1);
}
file.close();
mModified = FALSE;
return IO_Ok;
}
//-----------------------------------------------------------------------------
krn'KMAddrBook::fileError() (./kdenetwork/krn/kmaddrbook.cpp:150)
int KMAddrBook::fileError(int status) const
{
QString msg, str;
switch(status)
{
case IO_ReadError:
msg = i18n("Could not read file:\n%s");
break;
case IO_OpenError:
msg = i18n("Could not open file:\n%s");
break;
default:
msg = i18n("Error while writing file:\n%s");
}
str.sprintf(msg, mDefaultFileName.data());
KMsgBox::message(NULL, i18n("File I/O Error"), str,
KMsgBox::STOP, i18n("OK"));
return status;
}
//-----------------------------------------------------------------------------
krn'KMAddrBook::compareItems() (./kdenetwork/krn/kmaddrbook.cpp:175)
int KMAddrBook::compareItems(Item aItem1, Item aItem2)
{
return strcasecmp((const char*)aItem1, (const char*)aItem2);
}