[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdepim/akonadi/resources/kabc
From: Volker Krause <vkrause () kde ! org>
Date: 2008-08-14 8:57:10
Message-ID: 1218704230.807105.31941.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 846847 by vkrause:
- implement config reloading
- don't remove previous settings when configuring
M +33 -12 kabcresource.cpp
M +4 -0 kabcresource.h
--- trunk/KDE/kdepim/akonadi/resources/kabc/kabcresource.cpp #846846:846847
@@ -52,6 +52,7 @@
QString mLastError;
};
+// workaround to access protected method
class KABCResource::AddressBook : public KABC::AddressBook
{
public:
@@ -72,11 +73,17 @@
mDelayedUpdateTimer( new QTimer( this ) ),
mErrorHandler( new ErrorHandler( this ) )
{
- mAddressBook->setErrorHandler( mErrorHandler );
-
mDelayedUpdateTimer->setInterval( 10 );
mDelayedUpdateTimer->setSingleShot( true );
+ load();
+ connect( this, SIGNAL(reloadConfiguration()), SLOT(reload()) );
+}
+
+void KABCResource::load()
+{
+ mAddressBook->setErrorHandler( mErrorHandler );
+
KSharedConfig::Ptr config = KGlobal::config();
Q_ASSERT( !config.isNull() );
@@ -136,6 +143,9 @@
void KABCResource::aboutToQuit()
{
+ if ( !mResource )
+ return;
+
mErrorHandler->mLastError.clear();
KABC::Ticket *ticket = mAddressBook->requestSaveTicket();
@@ -159,19 +169,15 @@
QWidget *window = 0; // should use windowId somehow
+ KRES::Manager<KABC::Resource> *manager = mAddressBook->getResourceManager();
+
if ( mResource != 0 ) {
- disconnect( mResource, SIGNAL( loadingFinished( Resource* ) ),
- this, SLOT(loadingFinished( Resource* ) ) );
- disconnect( mResource, SIGNAL( loadingError( Resource*, const QString& ) ),
- this, SLOT(loadingError( Resource*, const QString& ) ) );
-
- mAddressBook->removeResource( mResource );
- mResource = 0;
- mLoaded = false;
+ KRES::ConfigDialog dlg( window, QLatin1String( "contact" ), mResource );
+ if ( dlg.exec() )
+ manager->writeConfig( KGlobal::config().data() );
+ return;
}
- KRES::Manager<KABC::Resource> *manager = mAddressBook->getResourceManager();
-
QStringList types = manager->resourceTypeNames();
QStringList descs = manager->resourceTypeDescriptions();
@@ -377,6 +383,21 @@
itemsRetrieved( items );
}
+void KABCResource::reload()
+{
+ kDebug();
+ KGlobal::config()->reparseConfiguration();
+ aboutToQuit();
+ delete mAddressBook;
+
+ mAddressBook = new AddressBook();
+ mResource = 0;
+ mLoaded = false;
+ mExplicitLoading = false;
+
+ load();
+}
+
AKONADI_RESOURCE_MAIN( KABCResource )
#include "kabcresource.moc"
--- trunk/KDE/kdepim/akonadi/resources/kabc/kabcresource.h #846846:846847
@@ -51,6 +51,9 @@
virtual void itemRemoved( const Akonadi::Item &item );
private:
+ void load();
+
+ private:
class AddressBook;
AddressBook *mAddressBook;
KABC::Resource *mResource;
@@ -68,6 +71,7 @@
void loadingError( Resource *resource, const QString &message );
void addressBookChanged();
void delayedUpdate();
+ void reload();
};
#endif
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic