[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-pim
Subject: Re: [Kde-pim] ManagerObserver not notified about active/inactive
From: Guenter Schwann <schwann () icg ! tu-graz ! ac ! at>
Date: 2004-01-25 19:39:15
Message-ID: 200401252039.15526.schwann () icg ! tu-graz ! ac ! at
[Download RAW message or body]
[Attachment #2 (multipart/signed)]
[Attachment #4 (multipart/mixed)]
On Saturday 24 January 2004 14:33, Cornelius Schumacher wrote:
> Reimplement doClose() in ResourceCalendar and emit the signal from
> there. This also needs the doClose() function in subclasses of
> ResourceCalendar to be changed to call ResourceCalendar::doClose().
Here's a patch doing this.
The next patch for D'n'D of events/todos will follow next week...
ciao
--
Guenter Schwann
["resources.diff" (text/x-diff)]
Index: egroupware/kcal_resourcexmlrpc.cpp
===================================================================
RCS file: /home/kde/kdepim/kresources/egroupware/kcal_resourcexmlrpc.cpp,v
retrieving revision 1.3
diff -u -3 -p -r1.3 kcal_resourcexmlrpc.cpp
--- egroupware/kcal_resourcexmlrpc.cpp 21 Jan 2004 14:34:57 -0000 1.3
+++ egroupware/kcal_resourcexmlrpc.cpp 25 Jan 2004 19:31:56 -0000
@@ -301,6 +301,7 @@ void ResourceXMLRPC::doClose()
mCalendar.close();
mOpen = false;
+ ResourceCalendar::doClose();
}
Index: exchange/resourceexchange.cpp
===================================================================
RCS file: /home/kde/kdepim/kresources/exchange/resourceexchange.cpp,v
retrieving revision 1.22
diff -u -3 -p -r1.22 resourceexchange.cpp
--- exchange/resourceexchange.cpp 18 Jan 2004 01:34:42 -0000 1.22
+++ exchange/resourceexchange.cpp 25 Jan 2004 19:31:56 -0000
@@ -156,6 +156,7 @@ void ResourceExchange::doClose()
mCache->close();
delete mCache; mCache = 0;
}
+ ResourceCalendar::doClose();
// setModified( false );
}
["libkcal.diff" (text/x-diff)]
? Doxyfile
Index: calendarresources.cpp
===================================================================
RCS file: /home/kde/kdepim/libkcal/calendarresources.cpp,v
retrieving revision 1.36
diff -u -3 -p -r1.36 calendarresources.cpp
--- calendarresources.cpp 18 Jan 2004 20:49:39 -0000 1.36
+++ calendarresources.cpp 25 Jan 2004 19:31:02 -0000
@@ -99,6 +99,8 @@ CalendarResources::~CalendarResources()
close();
delete mManager;
+ delete mStandardPolicy;
+ delete mAskPolicy;
}
void CalendarResources::readConfig( KConfig *config )
@@ -111,7 +113,7 @@ void CalendarResources::load()
if ( !mManager->standardResource() ) {
kdDebug(5800) << "Warning! No standard resource yet." << endl;
}
-
+
// set the timezone for all resources. Otherwise we'll have those terrible tz troubles ;-((
CalendarResourceManager::Iterator i1;
for ( i1 = mManager->begin(); i1 != mManager->end(); ++i1 ) {
@@ -320,7 +322,7 @@ Todo::List CalendarResources::rawTodos()
mResourceMap[ *it2 ] = *it;
}
}
-
+
return result;
}
@@ -336,7 +338,6 @@ Todo *CalendarResources::todo( const QSt
return todo;
}
}
-
// not found
return 0;
}
@@ -356,7 +357,6 @@ Todo::List CalendarResources::todos( con
mResourceMap[ *it2 ] = *it;
}
}
-
return result;
}
@@ -598,8 +598,11 @@ void CalendarResources::connectResource(
SIGNAL( calendarChanged() ) );
connect( resource, SIGNAL( resourceSaved( ResourceCalendar * ) ),
SIGNAL( calendarSaved() ) );
+ connect( resource, SIGNAL( resourceClosed( ResourceCalendar * ) ),
+ SLOT( clearResourceMap( ResourceCalendar * ) ) );
}
+
ResourceCalendar *CalendarResources::resource(Incidence *inc)
{
if ( mResourceMap.find( inc ) != mResourceMap.end() ) {
@@ -608,6 +611,17 @@ ResourceCalendar *CalendarResources::res
return 0;
}
+ResourceCalendar *CalendarResources::resource(const QString &UID)
+{
+ QMap<Incidence*, ResourceCalendar*>::iterator it;
+ for ( it=mResourceMap.begin(); it!=mResourceMap.end(); it++ ) {
+ if ( it.key()->uid() == UID )
+ return it.data();
+ }
+ return 0;
+}
+
+
void CalendarResources::resourceAdded( ResourceCalendar *resource )
{
kdDebug(5800) << "Resource added: " << resource->resourceName() << endl;
@@ -757,4 +771,19 @@ int CalendarResources::decrementChangeCo
return count;
}
+void CalendarResources::clearResourceMap( ResourceCalendar *resource )
+{
+ QMap<Incidence*, ResourceCalendar*>::iterator it;
+ QMap<Incidence*, ResourceCalendar*>::iterator iit;
+ it=mResourceMap.begin();
+ while ( it != mResourceMap.end() )
+ {
+ iit = it;
+ it++;
+ if ( iit.data() == resource ) {
+ mResourceMap.erase( iit );
+ }
+ }
+}
+
#include "calendarresources.moc"
Index: calendarresources.h
===================================================================
RCS file: /home/kde/kdepim/libkcal/calendarresources.h,v
retrieving revision 1.29
diff -u -3 -p -r1.29 calendarresources.h
--- calendarresources.h 18 Jan 2004 20:49:40 -0000 1.29
+++ calendarresources.h 25 Jan 2004 19:31:02 -0000
@@ -242,9 +242,12 @@ class CalendarResources : public Calenda
/** Return all alarms, which ocur before given date. */
Alarm::List alarmsTo( const QDateTime &to );
- /** Return Resource for given uid */
+ /** Return Resource for given Incidence */
ResourceCalendar *resource(Incidence *);
+ /** Return Resource for given uid */
+ ResourceCalendar *resource(const QString &UID);
+
bool beginChange( Incidence * );
bool endChange( Incidence * );
@@ -285,6 +288,9 @@ class CalendarResources : public Calenda
int incrementChangeCount( ResourceCalendar * );
int decrementChangeCount( ResourceCalendar * );
+
+ protected slots:
+ void clearResourceMap( ResourceCalendar *resource );
private:
void init();
Index: resourcecalendar.cpp
===================================================================
RCS file: /home/kde/kdepim/libkcal/resourcecalendar.cpp,v
retrieving revision 1.9
diff -u -3 -p -r1.9 resourcecalendar.cpp
--- resourcecalendar.cpp 22 Jul 2003 18:56:46 -0000 1.9
+++ resourcecalendar.cpp 25 Jan 2004 19:31:02 -0000
@@ -56,4 +56,9 @@ Incidence::List ResourceCalendar::rawInc
return Calendar::mergeIncidenceList( rawEvents(), rawTodos(), journals() );
}
+void ResourceCalendar::doClose()
+{
+ emit resourceClosed( this );
+}
+
#include "resourcecalendar.moc"
Index: resourcecalendar.h
===================================================================
RCS file: /home/kde/kdepim/libkcal/resourcecalendar.h,v
retrieving revision 1.19
diff -u -3 -p -r1.19 resourcecalendar.h
--- resourcecalendar.h 19 Dec 2003 17:00:05 -0000 1.19
+++ resourcecalendar.h 25 Jan 2004 19:31:02 -0000
@@ -161,6 +161,11 @@ class ResourceCalendar : public KRES::Re
finished.
*/
void resourceSaved( ResourceCalendar * );
+ /**
+ This signal is emitted when the resource is closed. For example when the
+ resource is deactivated.
+ */
+ void resourceClosed( ResourceCalendar * );
public:
/**
@@ -240,6 +245,13 @@ class ResourceCalendar : public KRES::Re
*/
virtual void setTimeZoneId( const QString &tzid ) = 0;
+ protected:
+ /**
+ Close this resource.
+ Pre-condition: resource is open. Post-condition: resource is closed.
+ */
+ virtual void doClose();
+
private:
class Private;
Private *d;
Index: resourcekabc.cpp
===================================================================
RCS file: /home/kde/kdepim/libkcal/resourcekabc.cpp,v
retrieving revision 1.11
diff -u -3 -p -r1.11 resourcekabc.cpp
--- resourcekabc.cpp 30 Oct 2003 09:44:04 -0000 1.11
+++ resourcekabc.cpp 25 Jan 2004 19:31:02 -0000
@@ -229,6 +229,7 @@ void ResourceKABC::doClose()
mCalendar.close();
mOpen = false;
+ ResourceCalendar::doClose();
}
Index: resourcelocal.cpp
===================================================================
RCS file: /home/kde/kdepim/libkcal/resourcelocal.cpp,v
retrieving revision 1.19
diff -u -3 -p -r1.19 resourcelocal.cpp
--- resourcelocal.cpp 24 Oct 2003 13:47:46 -0000 1.19
+++ resourcelocal.cpp 25 Jan 2004 19:31:02 -0000
@@ -167,6 +167,7 @@ void ResourceLocal::doClose()
mCalendar.close();
mOpen = false;
+ ResourceCalendar::doClose();
}
Index: resourcelocaldir.cpp
===================================================================
RCS file: /home/kde/kdepim/libkcal/resourcelocaldir.cpp,v
retrieving revision 1.17
diff -u -3 -p -r1.17 resourcelocaldir.cpp
--- resourcelocaldir.cpp 24 Oct 2003 13:47:46 -0000 1.17
+++ resourcelocaldir.cpp 25 Jan 2004 19:31:02 -0000
@@ -198,6 +198,7 @@ void ResourceLocalDir::doClose()
mCalendar.close();
mOpen = false;
+ ResourceCalendar::doClose();
}
Index: resourceremote.cpp
===================================================================
RCS file: /home/kde/kdepim/libkcal/resourceremote.cpp,v
retrieving revision 1.14
diff -u -3 -p -r1.14 resourceremote.cpp
--- resourceremote.cpp 25 Oct 2003 01:12:50 -0000 1.14
+++ resourceremote.cpp 25 Jan 2004 19:31:02 -0000
@@ -268,6 +268,7 @@ void ResourceRemote::doClose()
mCalendar.close();
mOpen = false;
+ ResourceCalendar::doClose();
}
KABC::Lock *ResourceRemote::lock()
[Attachment #9 (application/pgp-signature)]
_______________________________________________
kde-pim mailing list
kde-pim@mail.kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
kde-pim home page at http://pim.kde.org/
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic