00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
#include "knotes/resourcemanager.h"
00035
#include "knotes/resourcelocal.h"
00036
00037
#include <libkcal/journal.h>
00038
00039
00040 KNotesResourceManager::KNotesResourceManager()
00041 :
QObject( 0, "KNotes Resource Manager" )
00042 {
00043 m_manager =
new KRES::Manager<ResourceNotes>(
"notes" );
00044 m_manager->addObserver(
this );
00045 m_manager->readConfig();
00046 }
00047
00048 KNotesResourceManager::~KNotesResourceManager()
00049 {
00050
delete m_manager;
00051 }
00052
00053
void KNotesResourceManager::load()
00054 {
00055
if ( !m_manager->standardResource() )
00056 {
00057 kdWarning(5500) <<
"No standard resource yet." << endl;
00058
ResourceNotes *resource =
new ResourceLocal( 0 );
00059 m_manager->add( resource );
00060 m_manager->setStandardResource( resource );
00061 }
00062
00063
00064 KRES::Manager<ResourceNotes>::ActiveIterator it;
00065
for ( it = m_manager->activeBegin(); it != m_manager->activeEnd(); ++it )
00066 {
00067 kdDebug(5500) <<
"Opening resource " + (*it)->resourceName() << endl;
00068 (*it)->setManager(
this );
00069
if ( (*it)->open() )
00070 (*it)->load();
00071 }
00072 }
00073
00074
void KNotesResourceManager::save()
00075 {
00076 KRES::Manager<ResourceNotes>::ActiveIterator it;
00077
for ( it = m_manager->activeBegin(); it != m_manager->activeEnd(); ++it )
00078 (*it)->save();
00079 }
00080
00081
00082
00083
void KNotesResourceManager::addNewNote( KCal::Journal *journal )
00084 {
00085
00086
ResourceNotes *resource = m_manager->standardResource();
00087
if ( resource )
00088 {
00089 resource->
addNote( journal );
00090 registerNote( resource, journal );
00091 }
00092
else
00093 kdWarning(5500) << k_funcinfo <<
"no resource!" << endl;
00094 }
00095
00096
void KNotesResourceManager::registerNote(
ResourceNotes *resource,
00097 KCal::Journal *journal )
00098 {
00099
00100 m_resourceMap.insert( journal->uid(), resource );
00101 emit sigRegisteredNote( journal );
00102 }
00103
00104
void KNotesResourceManager::deleteNote( KCal::Journal *journal )
00105 {
00106
QString uid = journal->uid();
00107
00108
00109 m_resourceMap[ uid ]->deleteNote( journal );
00110 m_resourceMap.remove( uid );
00111 emit sigDeregisteredNote( journal );
00112 }
00113
00114
void KNotesResourceManager::resourceAdded(
ResourceNotes *resource )
00115 {
00116 kdDebug(5500) <<
"Resource added: " << resource->resourceName() << endl;
00117
00118
if ( !resource->isActive() )
00119
return;
00120
00121 resource->
setManager(
this );
00122
if ( resource->open() )
00123 resource->
load();
00124 }
00125
00126
void KNotesResourceManager::resourceModified(
ResourceNotes *resource )
00127 {
00128 kdDebug(5500) <<
"Resource modified: " << resource->resourceName() << endl;
00129 }
00130
00131
void KNotesResourceManager::resourceDeleted(
ResourceNotes *resource )
00132 {
00133 kdDebug(5500) <<
"Resource deleted: " << resource->resourceName() << endl;
00134 }
00135
00136
00137
#include "resourcemanager.moc"