summaryrefslogtreecommitdiffabout
path: root/kabc
authorulf69 <ulf69>2004-06-29 05:06:57 (UTC)
committer ulf69 <ulf69>2004-06-29 05:06:57 (UTC)
commitbeccf25496b482fa9eccd41f13c07e67e32f3a52 (patch) (side-by-side diff)
tree2f50a252b93bb866c7f41beebcf539861e7f4e2c /kabc
parentd55d405ad63c4b9e9372430ccd3f73ef927bf7d9 (diff)
downloadkdepimpi-beccf25496b482fa9eccd41f13c07e67e32f3a52.zip
kdepimpi-beccf25496b482fa9eccd41f13c07e67e32f3a52.tar.gz
kdepimpi-beccf25496b482fa9eccd41f13c07e67e32f3a52.tar.bz2
enable dynamic loading
Diffstat (limited to 'kabc') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/plugins/dir/resourcedir.cpp33
-rw-r--r--kabc/plugins/file/resourcefile.cpp36
2 files changed, 32 insertions, 37 deletions
diff --git a/kabc/plugins/dir/resourcedir.cpp b/kabc/plugins/dir/resourcedir.cpp
index f354a9e..be19821 100644
--- a/kabc/plugins/dir/resourcedir.cpp
+++ b/kabc/plugins/dir/resourcedir.cpp
@@ -34,91 +34,90 @@ $Id$
#include <qregexp.h>
#include <qtimer.h>
#include <qwidget.h>
#include <kapplication.h>
#include <kconfig.h>
#include <kdebug.h>
//US #include <kgenericfactory.h>
#include <kglobal.h>
#include <klocale.h>
#include <kstandarddirs.h>
#include <kurlrequester.h>
#include "addressbook.h"
-//US #include "formatfactory.h"
+#include "formatfactory.h"
#include "resourcedirconfig.h"
#include "stdaddressbook.h"
//US
#include <qdir.h>
-#include <formats/vcardformatplugin2.h>
-#include <formats/binaryformat.h>
+//US #include "../../formats/vcardformatplugin2.h"
+//US #include "../../formats/binaryformat.h"
#include "resourcedir.h"
using namespace KABC;
extern "C"
{
- void *init_kabc_dir()
+//US void *init_kabc_dir()
+ void *init_microkabc_dir()
{
- qDebug("resourcedir.cpp : init_kabc_dir has to be changed");
-//US return new KRES::PluginFactory<ResourceDir,ResourceDirConfig>();
- return 0;
+ return new KRES::PluginFactory<ResourceDir,ResourceDirConfig>();
}
}
ResourceDir::ResourceDir( const KConfig *config )
: Resource( config )
{
QString path;
KConfig *cfg = (KConfig *)config;
if ( cfg ) {
//US path = config->readEntry( "FilePath" );
path = cfg->readEntry( "FilePath", StdAddressBook::directoryName() );
//US mFormatName = config->readEntry( "FileFormat" );
mFormatName = cfg->readEntry( "FileFormat", "vcard" );
} else {
path = StdAddressBook::directoryName();
mFormatName = "vcard";
}
-/*US FormatFactory *factory = FormatFactory::self();
+ FormatFactory *factory = FormatFactory::self();
mFormat = factory->format( mFormatName );
if ( !mFormat ) {
mFormatName = "vcard";
mFormat = factory->format( mFormatName );
}
-*/
+/*US
//US qDebug("ResourceDir::ResourceDir initialized with format %s ", mFormatName.latin1());
if (mFormatName == "vcard")
mFormat = new VCardFormatPlugin2();
else if (mFormatName == "binary")
mFormat = new BinaryFormat();
else
qDebug("ResourceFile::init format unknown !!! %s ", mFormatName.latin1());
-
+*/
/*US we have no KDirWatch. SO simulate the signals from inside the apropriate methods
connect( &mDirWatch, SIGNAL( dirty(const QString&) ), SLOT( pathChanged() ) );
connect( &mDirWatch, SIGNAL( created(const QString&) ), SLOT( pathChanged() ) );
connect( &mDirWatch, SIGNAL( deleted(const QString&) ), SLOT( pathChanged() ) );
*/
setPath( path );
}
ResourceDir::~ResourceDir()
{
delete mFormat;
mFormat = 0;
}
@@ -248,39 +247,35 @@ bool ResourceDir::lock( const QString &path )
QString lockUniqueName;
lockUniqueName = p + KApplication::randomString( 8 );
url = lockUniqueName;
//US mLockUniqueName = locateLocal( "data", "kabc/lock/" + lockUniqueName );
mLockUniqueName = locateLocal( "data", "kabc/lock/" + url.fileName() );
kdDebug(5700) << "-- lock unique name: " << mLockUniqueName << endl;
// Create unique file
QFile file( mLockUniqueName );
file.open( IO_WriteOnly );
file.close();
// Create lock file
-#ifdef _WIN32_
- int result = 0;
- qDebug("WARNING: ResourceDir::lock cannot link ");
-#else
int result = ::link( QFile::encodeName( mLockUniqueName ),
QFile::encodeName( lockName ) );
-#endif
+
if ( result == 0 ) {
addressBook()->emitAddressBookLocked();
return true;
}
// TODO: check stat
return false;
}
void ResourceDir::unlock( const QString &path )
{
QString p = path;
//US change the implementation how the lockfilename is getting created
//US p.replace( QRegExp( "/" ), "_" );
//US QString lockName = locate( "data", "kabc/lock/" + p + ".lock" );
@@ -309,43 +304,43 @@ void ResourceDir::setPath( const QString &path )
pathChanged();
}
QString ResourceDir::path() const
{
return mPath;
}
void ResourceDir::setFormat( const QString &format )
{
mFormatName = format;
if ( mFormat )
delete mFormat;
-//US FormatFactory *factory = FormatFactory::self();
-//US mFormat = factory->format( mFormatName );
-
+ FormatFactory *factory = FormatFactory::self();
+ mFormat = factory->format( mFormatName );
+/*US
qDebug("ResourceDir::setFormat initialized with format %s ", format.latin1());
if (mFormatName == "vcard")
mFormat = new VCardFormatPlugin2();
else if (mFormatName == "binary")
mFormat = new BinaryFormat();
else
qDebug("ResourceDir::setFormat format unknown !!! %s ", format.latin1());
-
+*/
}
QString ResourceDir::format() const
{
return mFormatName;
}
void ResourceDir::pathChanged()
{
if ( !addressBook() )
return;
load();
addressBook()->emitAddressBookChanged();
}
diff --git a/kabc/plugins/file/resourcefile.cpp b/kabc/plugins/file/resourcefile.cpp
index d30ed2f..80af841 100644
--- a/kabc/plugins/file/resourcefile.cpp
+++ b/kabc/plugins/file/resourcefile.cpp
@@ -30,53 +30,52 @@ $Id$
#ifndef _WIN32_
#include <unistd.h>
#endif
#include <qfile.h>
#include <qfileinfo.h>
#include <qregexp.h>
#include <qtimer.h>
#include <kapplication.h>
#include <kconfig.h>
#include <kdebug.h>
#include <klocale.h>
//US #include <ksavefile.h>
#include <kstandarddirs.h>
-//US #include "formatfactory.h"
+#include "formatfactory.h"
#include "resource.h"
#include "resourcefileconfig.h"
#include "stdaddressbook.h"
-#include <formats/vcardformatplugin2.h>
-#include <formats/binaryformat.h>
+//US #include "../../formats/vcardformatplugin2.h"
+//US #include "../../formats/binaryformat.h"
#include "resourcefile.h"
using namespace KABC;
extern "C"
{
- void *init_kabc_file()
+//US void *init_kabc_file()
+ void *init_microkabc_file()
{
- qDebug("!!!resourcefile.cpp : init_kabc_file has to be changed");
-//US return new KRES::PluginFactory<ResourceFile,ResourceFileConfig>();
- return 0;
+ return new KRES::PluginFactory<ResourceFile,ResourceFileConfig>();
}
}
ResourceFile::ResourceFile( const KConfig *config )
: Resource( config ) , mFormat( 0 )
{
QString fileName, formatName;
KConfig *cfg = (KConfig *)config;
if ( cfg ) {
fileName = cfg->readEntry( "FileName", StdAddressBook::fileName() );
formatName = cfg->readEntry( "FileFormat", "vcard" );
// qDebug("ResourceFile::ResourceFile : 1 %s, %s", fileName.latin1(), formatName.latin1() );
} else {
fileName = StdAddressBook::fileName();
@@ -86,52 +85,53 @@ ResourceFile::ResourceFile( const KConfig *config )
init( fileName, formatName );
}
ResourceFile::ResourceFile( const QString &fileName,
const QString &formatName )
: Resource( 0 )
{
// qDebug("ResourceFile::ResourceFile : 3 %s, %s", fileName.latin1(), formatName.latin1());
init( fileName, formatName );
}
void ResourceFile::init( const QString &fileName, const QString &formatName )
{
mFormatName = formatName;
-/*US FormatFactory *factory = FormatFactory::self();
- mFormat = factory->format( mFormatName );
+ FormatFactory *factory = FormatFactory::self();
+ mFormat = factory->format( mFormatName );
if ( !mFormat ) {
mFormatName = "vcard";
mFormat = factory->format( mFormatName );
}
-*/
+/*US
//US qDebug("ResourceFile::init initialized with format %s ", formatName.latin1());
if (mFormatName == "vcard") {
mFormat = new VCardFormatPlugin2();
// qDebug("ResourceFile::init format VCardFormatPlugin2");
}
else if (mFormatName == "binary") {
mFormat = new BinaryFormat();
// qDebug("ResourceFile::init format BinaryFormat");
}
else
qDebug("ResourceFile::init format unknown !!! %s ", formatName.latin1());
+*/
/*US we have no KDirWatch. SO simulate the signals from inside the apropriate methods
connect( &mDirWatch, SIGNAL( dirty(const QString&) ), SLOT( fileChanged() ) );
connect( &mDirWatch, SIGNAL( created(const QString&) ), SLOT( fileChanged() ) );
connect( &mDirWatch, SIGNAL( deleted(const QString&) ), SLOT( fileChanged() ) );
*/
setFileName( fileName );
}
ResourceFile::~ResourceFile()
{
delete mFormat;
mFormat = 0;
}
@@ -204,34 +204,34 @@ bool ResourceFile::load()
// qDebug("ResourceFile::load format %s, %s", mFileName.latin1(), mFormatName.latin1());
return mFormat->loadAll( addressBook(), this, &file );
}
bool ResourceFile::save( Ticket *ticket )
{
// qDebug("ResourceFile::save format %s, %s", mFileName.latin1(), mFormatName.latin1());
kdDebug(5700) << "ResourceFile::save()" << endl;
// create backup file
QString extension = "_" + QString::number( QDate::currentDate().dayOfWeek() );
/*US we use a simpler method to create a backupfile
- (void) KSaveFile::backupFile( mFileName, QString::null /*directory*/
-/*US ,extension );
+ (void) KSaveFile::backupFile( mFileName, QString::null
+ ,extension );
KSaveFile saveFile( mFileName );
bool ok = false;
if ( saveFile.status() == 0 && saveFile.file() )
{
mFormat->saveAll( addressBook(), this, saveFile.file() );
ok = saveFile.close();
}
*/
//US ToDo: write backupfile
QFile info;
info.setName( mFileName );
bool ok = info.open( IO_WriteOnly );
if ( ok ) {
mFormat->saveAll( addressBook(), this, &info );
@@ -273,35 +273,34 @@ bool ResourceFile::lock( const QString &fileName )
if (QFile::exists( lockName )) return false;
QString lockUniqueName;
lockUniqueName = fn + KApplication::randomString( 8 );
url = lockUniqueName;
//US mLockUniqueName = locateLocal( "data", "kabc/lock/" + lockUniqueName );
mLockUniqueName = locateLocal( "data", "kabc/lock/" + url.fileName() );
kdDebug(5700) << "-- lock unique name: " << mLockUniqueName << endl;
// Create unique file
QFile file( mLockUniqueName );
file.open( IO_WriteOnly );
file.close();
// Create lock file
- int result = 0;//::link( QFile::encodeName( mLockUniqueName ),
- // QFile::encodeName( lockName ) );
- qDebug("lock files %s, %s needs to be fixed", mLockUniqueName.latin1(), lockName.latin1() );
+ int result = ::link( QFile::encodeName( mLockUniqueName ),
+ QFile::encodeName( lockName ) );
if ( result == 0 ) {
addressBook()->emitAddressBookLocked();
return true;
}
// TODO: check stat
return false;
}
void ResourceFile::unlock( const QString &fileName )
{
QString fn = fileName;
//US change the implementation how the lockfilename is getting created
//US fn.replace( QRegExp( "/" ), "_" );
@@ -329,46 +328,47 @@ void ResourceFile::setFileName( const QString &fileName )
mDirWatch.startScan();
*/
//US simulate KDirWatch event
fileChanged();
}
QString ResourceFile::fileName() const
{
return mFileName;
}
void ResourceFile::setFormat( const QString &format )
{
mFormatName = format;
delete mFormat;
-//US FormatFactory *factory = FormatFactory::self();
-//US mFormat = factory->format( mFormatName );
-
+ FormatFactory *factory = FormatFactory::self();
+ mFormat = factory->format( mFormatName );
+/*US
//qDebug("ResourceFile::setFormat initialized with format %s ", format.latin1());
if (mFormatName == "vcard") {
mFormat = new VCardFormatPlugin2();
// qDebug("ResourceFile::setFormat format %s", mFormatName.latin1());
}
else if (mFormatName == "binary") {
mFormat = new BinaryFormat();
// qDebug("ResourceFile::setFormat format %s", mFormatName.latin1());
}
else
qDebug("ResourceFile::setFormat format unknown !!! %s ", format.latin1());
+*/
}
QString ResourceFile::format() const
{
return mFormatName;
}
void ResourceFile::fileChanged()
{
// There is a small theoretical chance that KDirWatch calls us before
// we are fully constructed
if (!addressBook())
return;
load();
addressBook()->emitAddressBookChanged();