Re: [Evolution-hackers] Bonobo activation fails... gconf/schema related?

2005-09-01 Thread Jules Colding
On Thu, 2005-09-01 at 13:02 +0200, Jules Colding wrote:
 On Thu, 2005-09-01 at 12:04 +0200, Jules Colding wrote:
  OK, top-posting but... this has me completely baffled:
 
 and still does, cause now it won't start again :-(

Killing bonobo-activation-server helps, but I can't see why as it should
inspect and use the BONOBO_ACTIVATION_PATH env variable, but maybe
bonobo-activation-server don't read this properly?

-- 
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] [Camale] When is the store finalize() called?

2005-09-13 Thread Jules Colding
On Tue, 2005-09-13 at 03:15 -0600, Susarla Parthasarathi wrote:
 Thats a known issue. A little complicated to fix. But is surely fixable.

Is it in Bugzilla?

-- 
  jules


 

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] [Camel] Folder names

2005-09-13 Thread Jules Colding
On Tue, 2005-09-13 at 14:06 +0200, Jules Colding wrote:
 Hi,
 
 Are folder names absolute path names in unix convention starting from
 the top folder, e.g.:
 
 /Inbox/evolution
 
 ??

My problem is that two folders might have identical paths if the above
is correct. I can't e.g. see any reason why two folders on Exchange
couldn't both be named:

/Inbox/Evolution
/Inbox/Evolution

but have different entryid. So how do I interpret the folder name in the
various methods where it participates?

Thanks,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] [Camel] When is the store finalize() called?

2005-09-14 Thread Jules Colding
On Tue, 2005-09-13 at 22:17 +0800, Not Zed wrote:
 How important is it?

Not really that important, more in the line of If it was designed to be
called then it should be called-issue. Nitpicking i guess.

 Exactly what are you requiring it for?

Freeing local resources.

 If you're using it to free remote resources, like connections, then this
 is the wrong place to do it.  disconnect() is the place for these types
 of resource deallocations.

OK, I do that already.

 Otherwise, if it is just memory leaks, it just isn't important.

It is only due to memory leaks.

Regards,
  jules



 On Tue, 2005-09-13 at 12:00 +0200, Jules Colding wrote:
  On Tue, 2005-09-13 at 17:24 +0800, Not Zed wrote:
   No.
   
   Sync could be called at any time.
   
   I wasn't aware it was a known issue either, stores certainly used to be
   finalised at one point.
  
  Is this an issue that will be fixed in the 2.4 branch or has it to low
  of a priority to fix unless there isn't anything else to hack on?
  
  Thanks,
jules
  
  
  
   On Tue, 2005-09-13 at 11:24 +0200, Jules Colding wrote:
On Tue, 2005-09-13 at 03:15 -0600, Susarla Parthasarathi wrote:
 Thats a known issue. A little complicated to fix. But is surely 
 fixable.
 
 So, none of the providers have their finalize method called.

OK, thanks. I can see that the last method being called is sync().
Could/should I safely call finalize() from that one?

Thanks,
  jules



___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers
  

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] [Camel] Folder names

2005-09-15 Thread Jules Colding
On Wed, 2005-09-14 at 18:10 +0800, Not Zed wrote:
  It certainly would. Does any upper-level component do any string
  manipulation with the full name? My idea is to put the entryid at the
  end of the full name and separate the full name readable part from the
  entryid part with '\0'. Something like (non-compilable short-hand):
 
  fi = {
  .name = evolution;
  .full_name = Inbox/evolution'\0'b7d33043-cfb0-4ea9-8aa1-941b0616e891;
  };
  
  Would that wreck havoc up-source?
 
 The full_name may be strcpy'd, so if that is a \0 and not a \\0, then i
 doubt it would work.
 
 It wouldn't work anyway, you'd have to add it to every folder name in
 the path.
 
 If you list:
  Inbox-UID
  Inbox/evolution-UID
 
 That wont work, since the parent path must be able to be found by
 stripping off the /.* off a given path.  

Yes, and it won't work for even more reasons. A .name like child'\0'
would expand into parent'\0'/child'\0' with more than one '\0'...


 Now ... with IMAP, the path we list doesn't map to the server name
 directly either.  

snip 

 You could do something like this to store the real folder name/id, and
 have a mapping function, using some fat-like 'low impact' munging to
 give you a unique name that isn't too messy, in the few cases you have
 overlaps.

I just got another idea. Is trailing whitespace ever removed from a name
being it full or not?

I could then add one or more trailing ' 's to any name to make it unique
among other folders with identical display name. Like this:

fi_a = {
.name = evolution ;
.full_name = Inbox /evolution ;
};

fi_b = {
.name = evolution  ;
.full_name = Inbox /evolution  ;
};

and keep an internal mapping table that gives me the entryid for any
given full name.

These name are as unique as any other string could be, you can strcpy()
it without any ill effects  and you can strip off the /* for any given
path to get the parent name.
 
A folder name without any trailing ' ' would indicate that the folder
hasn't got an entryid yet. This won't happen on Exchange before it is
committed to db. 

This scheme has the added advantage of producing names that looks
identical to the human eye as we are prone to overlook ' ' characters,
especially the trailing ones. 

Thoughts?
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] [Camel] Folder names

2005-09-16 Thread Jules Colding
On Fri, 2005-09-16 at 11:36 +0800, Not Zed wrote:
  I just got another idea. Is trailing whitespace ever removed from a name
  being it full or not?
  
  I could then add one or more trailing ' 's to any name to make it unique
  among other folders with identical display name. Like this:
  
  fi_a = {
  .name = evolution ;
  .full_name = Inbox /evolution ;
  };
  
  fi_b = {
  .name = evolution  ;
  .full_name = Inbox /evolution  ;
  };
 
 You dont need to add it to name, only full_name is used to uniquely
 identify folders.

OK.

  and keep an internal mapping table that gives me the entryid for any
  given full name.
  
  These name are as unique as any other string could be, you can strcpy()
  it without any ill effects  and you can strip off the /* for any given
  path to get the parent name.
   
  A folder name without any trailing ' ' would indicate that the folder
  hasn't got an entryid yet. This won't happen on Exchange before it is
  committed to db. 
  
  This scheme has the added advantage of producing names that looks
  identical to the human eye as we are prone to overlook ' ' characters,
  especially the trailing ones. 
 
 Hmm, i dunno it's up to you!

;-) 

Thanks a lot,
  jules

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] Link error in evolution-data-server/servers/groupwise

2005-10-03 Thread Jules Colding
Hi,

CVS (gnome-2-12 branch) gives:

# SNIP 
make  all-recursive
make[1]: Entering directory `/home/andersca/work/src/evolution-data-server'
Making all in libdb
make[2]: Entering directory 
`/home/andersca/work/src/evolution-data-server/libdb'
Making all in dist
make[3]: Entering directory 
`/home/andersca/work/src/evolution-data-server/libdb/dist'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory 
`/home/andersca/work/src/evolution-data-server/libdb/dist'
make[3]: Entering directory 
`/home/andersca/work/src/evolution-data-server/libdb'
make[3]: Nothing to be done for `all-am'.
make[3]: Leaving directory `/home/andersca/work/src/evolution-data-server/libdb'
make[2]: Leaving directory `/home/andersca/work/src/evolution-data-server/libdb'
Making all in libedataserver
make[2]: Entering directory 
`/home/andersca/work/src/evolution-data-server/libedataserver'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory 
`/home/andersca/work/src/evolution-data-server/libedataserver'
Making all in servers
make[2]: Entering directory 
`/home/andersca/work/src/evolution-data-server/servers'
Making all in groupwise
make[3]: Entering directory 
`/home/andersca/work/src/evolution-data-server/servers/groupwise'
/bin/sh ../../libtool --tag=CC --mode=link gcc  -g -O0 -Wall 
-Wmissing-prototypes  -Wno-sign-compare   -o soap-test  soap-test.o 
-L/home/andersca/opt/lib -lsoup-2.2 -lgnutls -lgcrypt -lgpg-error -lxml2 
-lpthread -lz -lm -lglib-2.0libegroupwise-1.2.la -pthread 
-Wl,--export-dynamic -L/home/andersca/opt/lib -lxml2 -lpthread -lz 
-lgobject-2.0 -lgnome-2 -lpopt -lgnomevfs-2 -lbonobo-2 -lgconf-2 
-lbonobo-activation -lORBit-2 -lm -lgmodule-2.0 -ldl -lgthread-2.0 -lglib-2.0   
-lpthread -L/usr/lib/mozilla -ldl -lplc4 -lplds4 -lnspr4
gcc -g -O0 -Wall -Wmissing-prototypes -Wno-sign-compare -o .libs/soap-test 
soap-test.o -pthread -Wl,--export-dynamic  -L/home/andersca/opt/lib 
-L/usr/lib64 ./.libs/libegroupwise-1.2.so -L/usr/lib/mozilla 
/home/andersca/opt/lib/libsoup-2.2.so /usr/lib64/libgnutls.so 
/usr/lib64/libgcrypt.so -lnsl /usr/lib64/libgpg-error.so 
/usr/lib64/libgnome-2.so /usr/lib64/libesd.so /usr/lib64/libasound.so 
/usr/lib64/libaudiofile.so /usr/lib64/libgnomevfs-2.so /usr/lib64/libxml2.so 
-lz -lssl -lcrypto -lresolv -lrt /usr/lib64/libbonobo-2.so 
/usr/lib64/libgconf-2.so /usr/lib64/libbonobo-activation.so 
/usr/lib64/libORBitCosNaming-2.so /usr/lib64/libORBit-2.so 
/home/andersca/opt/lib/libORBit-2.so /usr/lib64/libpopt.so 
/usr/lib64/libgobject-2.0.so -lm /usr/lib64/libgmodule-2.0.so 
/usr/lib64/libgthread-2.0.so /usr/lib64/libglib-2.0.so -lpthread -ldl -lplc4 
-lplds4 -lnspr4 -Wl,--rpath -Wl,/home/andersca/opt/lib
./.libs/libegroupwise-1.2.so: undefined reference to 
`e_gw_item_set_delivered_date'
collect2: ld returned 1 exit status
make[3]: *** [soap-test] Error 1
make[3]: Leaving directory 
`/home/andersca/work/src/evolution-data-server/servers/groupwise'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory 
`/home/andersca/work/src/evolution-data-server/servers'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/andersca/work/src/evolution-data-server'
make: *** [all] Error 2
# SNIP 


-- 
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] [Camel] How can I get a reference to the store class from another class?

2005-10-10 Thread Jules Colding
On Tue, 2005-09-13 at 22:15 +0800, Not Zed wrote:
 On Tue, 2005-09-13 at 04:31 -0600, Susarla Parthasarathi wrote:
  On Tue, 2005-09-13 at 10:26 +, Jules Colding  wrote:
   On Tue, 2005-09-13 at 04:08 -0600, Susarla Parthasarathi wrote:
On Tue, 2005-09-13 at 09:56 +, Jules Colding  wrote:
 Hi,
 
 There is a connect method in the transport class. I would like to use
 the connect method that I implemented in the store class. How do I 
 get a
 reference to that one from a CamelService?
If you want to use the same session, just implementing the send_to
method should do.
You could get the service object from CamelTransport and further get the
pointer to the CamelStore. Getting a session from the store should be
easy.
   
   Something like:
   
  CAMEL_SERVICE_CLASS(parent_class)-connect(service, ex);
   
   from within the transport connect() method?
   
  yup. you could do it. Should be no problem. Guess its a clean way to do
  it.
 
 Partha, what are you saying here?
 
 parent_class.connect() will only call the super-class method.
 
 Transport doesn't derive from Store, they both derive from Service.
 
 So if you want to share the connect() implementation from both classes,
 then it must be implemented in a sharable manner, and not separately.

I just noticed this recently added wiki entry:

http://go-evolution.org/Camel.Transport#Example:_Sending_a_message

where camel_service_connect() is used. It looks very much like
camel_service_connect() is using the inherited Camel store connect()
method:

## snip ###
trans = (CamelTransport *)camel_session_get_service(session, 
smtp://localhost/, ex);
if (camel_exception_is_set(ex))
return;
camel_service_connect(trans, ex);
if (camel_exception_is_set(ex))
goto noconnect;
## snip ###

and from camel-service.c:

ret = CSERV_CLASS (service)-connect (service, ex);

Can the camel_service_connect() method be used from the transport class
to invoke the provider specific Camel store connect() method or am I
totally off here once again?

Thanks,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] [CAMEL] CamelStore create_folder() name constraints...

2005-10-17 Thread Jules Colding
Hi,

Is the folder_name argument guaranteed to be a unique name in the
context of the parent folder? An example:

parent_name is Save/Evolution.
folder_name is doc. 

Is it guaranteed that no sub-folder with the name doc exists in
Save/Evolution when the function is invoked?

Is it guaranteed that the create_folder() method is invoked in a
thread-safe manner or must the provider specific store-create_folder()
method invoke its own locking mechanism?

Thanks,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] [CAMEL] CamelStore create_folder() name constraints...

2005-10-17 Thread Jules Colding
On Mon, 2005-10-17 at 16:24 +0530, Parthasarathi Susarla wrote:
 On Mon, 2005-10-17 at 12:13 +0200, Jules Colding wrote:
  Is it guaranteed that no sub-folder with the name doc exists in
  Save/Evolution when the function is invoked?
 
 Yes.

OK, good.

  Is it guaranteed that the create_folder() method is invoked in a
  thread-safe manner or must the provider specific store-create_folder()
  method invoke its own locking mechanism?
 Typically you would have to use a connect lock, ofcourse that is
 entirely dependent on the protocol specs your providers supports.

Thanks a lot,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] [CAMEL] CamelFolder *_getv() - What should it do?

2005-10-17 Thread Jules Colding
Hi,

I can see several providers implementing a *_getv() method. It seems
that it just provides a descriptive name of the folder in question. Is
that correct?

Thanks,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] [CAMEL] CamelFolder *_getv() - What should it do?

2005-10-17 Thread Jules Colding
On Mon, 2005-10-17 at 16:48 +0530, Parthasarathi Susarla wrote:
 On Mon, 2005-10-17 at 13:04 +0200, Jules Colding wrote:
  Hi,
  
  I can see several providers implementing a *_getv() method. It seems
  that it just provides a descriptive name of the folder in question. Is
  that correct?
 It does a lot more than that. getv provides info based on the type of
 argument that we require to know about. This would include Total count,
 Unread count, flags, full name.
 
 check the 'folder_getv' method in camel-folder.c. The implementation is
 clear enough

OK, thanks,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] [CAMEL] CamelStore create_folder() name constraints...

2005-10-18 Thread Jules Colding
On Tue, 2005-10-18 at 11:13 +0530, Parthasarathi Susarla wrote:
 On Mon, 2005-10-17 at 12:02 -0400, Jeffrey Stedfast wrote:
  On Mon, 2005-10-17 at 16:24 +0530, Parthasarathi Susarla wrote:
   On Mon, 2005-10-17 at 12:13 +0200, Jules Colding wrote:
Is it guaranteed that no sub-folder with the name doc exists in
Save/Evolution when the function is invoked?
   
   Yes.
  
  no, it is not.
 Thanks for pointing that out jeff. kinda had missed the point there.

So sibling folders with identical names might very well exist in any
folder? I can not create any such folder with Evolution 2.2.x so it is
up to the Camel provider to enforce any such constraint I guess??

-- 
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] [Camel/Exchange] What do I do with un-deletable folders?

2005-10-31 Thread Jules Colding
On Mon, 2005-10-31 at 14:13 +0100, Jules Colding wrote:
 Does Camel have a flag or something that I can use to mark those message
 stores as un-deletable folders or should I just ignore attempts to
 delete/modify them?

Never mind... I just noticed CAMEL_FOLDER_SYSTEM.

-- 
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] [CAMEL] CamelFolderInfo clarification please...

2005-11-01 Thread Jules Colding
Hi,

I think that I know how to interpret CamelFolderInfo but I would really
appreciate to have my understanding confirmed in the context of
get_folder_info().



CamelFolderInfo is declared as:

typedef struct _CamelFolderInfo {
struct _CamelFolderInfo *next;
struct _CamelFolderInfo *parent;
struct _CamelFolderInfo *child;

char *uri;
char *name;
char *full_name;

guint32 flags;
guint32 unread;
guint32 total;
} CamelFolderInfo;



get_folder_info() is declared as:

static CamelFolderInfo*
brutus_get_folder_info(CamelStore *store, 
   const char *top,
   guint32 flags, 
   CamelException *ex);


My understanding is:

next: A pointer to a CamelFolderInfo structure for the next folder on
the same tree-level as the current one. The current folder is top.

parent: If top is NULL then parent is NULL too. If top is non-NULL
then parent is a pointer to the CamelFolderInfo structure for the folder
containing top

child: This one is the one I am mostly confused about. I think that it
is an array of pointers to CamelFolderInfo structures of all folders
which is contained within top. The array is terminated with NULL.

uri: A string based upon the Camel.Service uri and the full folder name.
Its format is otherwise totally unspecified except that it must uniquely
identify a given folder. It does not seem to be used anywhere else in
Camel. Design oversight?

name: A basename()-ish version of full_name.

full_name: An absolute path to top.

flags: Flags describing top.

unread: The number of unread message objects in top.

total: The total number of message objects in top.

Could someone please confirm that my interpretation is correct?

Thanks a lot in advance,
  jules

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] CAMEL_FOLDER_HIDDEN?

2005-11-01 Thread Jules Colding
Hi,

I can see a CAMEL_FOLDER_VISIBLE but no HIDDEN. Is there a way to mark a
folder invisible??

Thanks,
  jules

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] CAMEL_FOLDER_HIDDEN?

2005-11-02 Thread Jules Colding
On Wed, 2005-11-02 at 09:18 +0800, Not Zed wrote:
 No.
 
 CAMEL_FOLDER_VISIBLE is a count of the number of visible messages in the
 folder, it has nothing to do with folder flags.

OK, thanks
  jules

 On Tue, 2005-11-01 at 13:35 +0100, Jules Colding wrote:
  Hi,
  
  I can see a CAMEL_FOLDER_VISIBLE but no HIDDEN. Is there a way to mark a
  folder invisible??
  
  Thanks,
jules
  
  ___
  Evolution-hackers mailing list
  Evolution-hackers@gnome.org
  http://mail.gnome.org/mailman/listinfo/evolution-hackers

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] [CAMEL] Can a CamelFolder do without a CamelFolderSummary?

2005-11-10 Thread Jules Colding
On Thu, 2005-11-10 at 12:25 +0100, Jules Colding wrote:
 Hi,
 
 Is the folder-summary member required to be non-NULL? I am seeing segvs
 all over the place, after having done my folder implementation, which I
 suspect is because of access to the folder-summary member which, being
 NULL, can't be accessed.

I was wrong. 

I discovered that Evolution did not check for uids being NULL in
message-list.c line 3474 after retrieving the uids from
camel_folder_get_uids(). Fixing my return value fixed the segvs.

-- 
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] [CAMEL] CamelFolder *_getv() - What should it do?

2005-11-14 Thread Jules Colding
Hi,

On Mon, 2005-10-17 at 16:48 +0530, Parthasarathi Susarla wrote:
 On Mon, 2005-10-17 at 13:04 +0200, Jules Colding wrote:
  Hi,
  
  I can see several providers implementing a *_getv() method. It seems
  that it just provides a descriptive name of the folder in question. Is
  that correct?
 It does a lot more than that. getv provides info based on the type of
 argument that we require to know about. This would include Total count,
 Unread count, flags, full name.
 
 check the 'folder_getv' method in camel-folder.c. The implementation is
 clear enough

Looking at folder_getv() raises memory handling questions. See e.g:

### snip #
case CAMEL_FOLDER_ARG_NAME:
*arg-ca_str = folder-name;
break;
case CAMEL_FOLDER_ARG_UID_ARRAY: {
int j;
CamelMessageInfo *info;
GPtrArray *array;

count = camel_folder_summary_count(folder-summary);
array = g_ptr_array_new();
g_ptr_array_set_size(array, count);
for (j=0; jcount; j++) {
if ((info = 
camel_folder_summary_index(folder-summary, j))) {
array-pdata[i] = 
g_strdup(camel_message_info_uid(info));
camel_message_info_free(info);
}
}
*arg-ca_ptr = array;
break; }

### snip #

arg-ca_ptr must be freed while folder-name is managed by the folder
instance. Whom is responsible for freeing the GPtrArray ?

Thanks,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] When do I update the Camel.FolderSummary?

2005-11-15 Thread Jules Colding
Hi,

Reading the comments in the code, it seems that I should only update the
folder summary when explicitly told so by Evolution invoking the
camel_folder_refresh_info() method or, obviously, when I know something
changed server-side.

Is that correct?


Thanks,
  jules

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] When do I update the Camel.FolderSummary?

2005-11-15 Thread Jules Colding
On Tue, 2005-11-15 at 16:36 +0530, Parthasarathi Susarla wrote:
 On Tue, 2005-11-15 at 11:45 +0100, Jules Colding wrote:
  Hi,
  
  Reading the comments in the code, it seems that I should only update the
  folder summary when explicitly told so by Evolution invoking the
  camel_folder_refresh_info() method or, obviously, when I know something
  changed server-side.
  
 refresh_info can be called in 3 ways:
 * either by clicking on Send/Receive button
 * auto sync (timed sync) based on your settings.
 * or when you select a folder, the selected folder is refreshed.
 
 You could explicitly call call camel_folder_refresh_info() when you want
 to, ofcourse, that is entirely provider implementation specific. But
 mostly, its usually done in one of the 3 ways mentioned above

OK, thanks.

Another thing, it is possible to establish a notification mechanism from
the remote Exchange server, thereby making it possible to make
refresh_info() a do-nothing method. 

Would that be considered bad practice from an Evolution hackers point of
view?

Thanks,
  jules 


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] Are SMTP header field names case sensitive?

2005-11-21 Thread Jules Colding
Hi,

RFC 2822 (or RFC 822 for that matter) doesn't explicitly states whether
SMTP header field names are case sensitive or not. I would think not but
could someone please confirm this?

Thanks,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Are SMTP header field names case sensitive?

2005-11-22 Thread Jules Colding
On Mon, 2005-11-21 at 11:00 -0500, Jeffrey Stedfast wrote:
 They're not SMTP header fields, they are Message header fields :)
 
 But no, they are not case-sensitive.

OK, thanks. That clears it up.

-- 
  jules


 Jeff
 
 On Mon, 2005-11-21 at 10:48 +0100, Jules Colding wrote:
  Hi,
  
  RFC 2822 (or RFC 822 for that matter) doesn't explicitly states whether
  SMTP header field names are case sensitive or not. I would think not but
  could someone please confirm this?
  
  Thanks,
jules
  
  
  ___
  Evolution-hackers mailing list
  Evolution-hackers@gnome.org
  http://mail.gnome.org/mailman/listinfo/evolution-hackers
  

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] I am confused about CamelMessageInfoBase.message_id

2005-11-25 Thread Jules Colding
Hi,

How do I populate this field? I can see in camel-nntp-utils.c:l196 that
it is a strdup() of the Message-ID message header filed, but
CamelSummaryMessageID is only 8 bytes big, so how can it fit in there?

This can't be right, so I am certain that I am missing something in a
really stupid and embarrassing way :-(

Could someone please lift the clouds from my eyes?

Thanks,
  jules

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] Re: [Apologies] Can camel-mime-utils.[ch] be made public please?

2005-11-28 Thread Jules Colding
On Mon, 2005-11-28 at 13:59 +0100, Jules Colding wrote:
 Hi,
 
 camel-mime-utils.[ch] contains a *lot* of extremely useful utility
 functions for Camel providers but those functions are inaccessible for
 provider backends being developed outside the main tree.
 
 Other utility functions, such as those in camel-file-utils.h, are
 already installed so why not camel-mime-utils?
 
 Please consider making these functions public.

Please accept my apologies. 

camel-mime-utils is already public and I have no idea why I couldn't
find the file in the include install directory.

Again, I am sincerely sorry for the noise :-(
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] camel_header_unfold()

2005-11-28 Thread Jules Colding
On Mon, 2005-11-28 at 15:10 +0100, Jules Colding wrote:

   *dst = *rfc822_header;
   if (!dst)
   break;

That should be:

*dst = *rfc822_header;
if ('\0' == *dst)
break;


-- 
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] I am confused about CamelMessageInfoBase.message_id

2005-11-29 Thread Jules Colding
On Mon, 2005-11-28 at 11:41 -0500, Jeffrey Stedfast wrote:
 I believe it's the first 8 bytes of a 16-byte MD5 hash of the Message-Id
 (or it might be the second 8 bytes)
 
 You can check the code in camel-folder-summary.c to find out how to
 calculate it.

Yes, at line 1653.

Thanks,
  jules


 Jeff
 
 On Fri, 2005-11-25 at 13:38 +0100, Jules Colding wrote:
  Hi,
  
  How do I populate this field? I can see in camel-nntp-utils.c:l196 that
  it is a strdup() of the Message-ID message header filed, but
  CamelSummaryMessageID is only 8 bytes big, so how can it fit in there?
  
  This can't be right, so I am certain that I am missing something in a
  really stupid and embarrassing way :-(
  
  Could someone please lift the clouds from my eyes?
  
  Thanks,
jules
  
  ___
  Evolution-hackers mailing list
  Evolution-hackers@gnome.org
  http://mail.gnome.org/mailman/listinfo/evolution-hackers
  

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] What do I do about missing data in the message summary?

2005-11-29 Thread Jules Colding
On Tue, 2005-11-29 at 03:04 +0530, Parthasarathi Susarla wrote:
 On Mon, 2005-11-28 at 10:20 -0500, Jeffrey Stedfast wrote:
  actually, that's not true. date_sent is gotten from the MIME message
  headers (Date: header, fwiw).
  
 But isnt that the Date received or the date created and not the date
 send per se?? (RFC 822)

Hmm... so which is it? Hands??

-- 
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] camel_header_unfold()

2005-11-29 Thread Jules Colding
On Mon, 2005-11-28 at 12:12 -0500, Jeffrey Stedfast wrote:
 I see what you are thinking, but by the time this code is run on any
 input, the \r has already been stripped and you cannot, by definition,
 have \n\n in a header (it terminates the header block so we don't have
 to worry about that).
 
 I suppose the following modification could be made to be more clear:
 
 char *
 camel_header_unfold(const char *in)
 {
   char *out = g_malloc(strlen(in)+1);
   const char *inptr = in;
   char c, *o = out;
 
   o = out;
   while ((c = *inptr++)) {
   if (c == '\n') {
   if (*inptr == ' ' || *inptr == '\t') {
   do {
   inptr++;
   } while (*inptr == ' ' || *inptr == '\t');
   *o++ = ' ';

Might be nitpicking, but RFC 2822 says:

   The process of moving from this folded multiple-line representation
   of a header field to its single line representation is called
   unfolding. Unfolding is accomplished by simply removing any CRLF
   that is immediately followed by WSP.  Each header field should be
   treated in its unfolded form for further syntactic and semantic
   evaluation.

So it appears to me that too much is being removed above. Shouldn't the
unfolding operation simply remove the CRLF and nothing else?

-- 
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] camel_header_unfold()

2005-11-30 Thread Jules Colding
On Tue, 2005-11-29 at 10:25 -0500, Jeffrey Stedfast wrote:
  Might be nitpicking, but RFC 2822 says:
  
 The process of moving from this folded multiple-line representation
 of a header field to its single line representation is called
 unfolding. Unfolding is accomplished by simply removing any CRLF
 that is immediately followed by WSP.  Each header field should be
 treated in its unfolded form for further syntactic and semantic
 evaluation.
  
  So it appears to me that too much is being removed above. Shouldn't the
  unfolding operation simply remove the CRLF and nothing else?
 
 if you wanted to get nitty gritty to the finer details of the spec,
 sure, but in reality it's much nicer to get rid of the extra whitespace
 many clients stick in there when folding.

Sigh... I see. 

I guess I am a nitpicking kind of guy when it comes to standards, but I
see the need for recognizing that strangely nonconforming place called
the real world.

 Often, mailers will folder part1 part2 into part1\n\tpart2 or part1
 \n\t part2 or sometimes even part1\npart2
 
 Anyways, if we wanted to remove the unfolding niceness, we'd simply
 remove that inner loop and it'd be fixed.

Yes, but your reasons for keeping this behavior seems sound.

Thanks,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] Weird late relase of CamelContentType* in camel-folder-summary.c

2005-12-02 Thread Jules Colding
Hi,

The ct valiable (of type CamelContentType*) in the
camel-folder-summary.c function message_info_new_from_header(), is
not released until line 1628, but the last time it is used is in a big
if statement at line 1614.

Why can't it be released at line 1618? Is it mysteriously being used
elsewhere in an invisible way??

Thanks,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] CamelMessageInfoBase.from/to/cc

2005-12-05 Thread Jules Colding
On Mon, 2005-12-05 at 19:46 +0530, Parthasarathi Susarla wrote:
 On Mon, 2005-12-05 at 14:14 +0100, Jules Colding wrote:
  Hi,
  
  Must the from, to and cc members be valid email addresses? I am
  trying to make my CamelMessageInfoBase-building function be as tolerant
  as possible towards missing or incomplete rfc822 data server-wise.
 Yes. They should be valid email addresses.
  
  What should I do if all of the above message fields is missing?
 
 Theres nothing much you can do, if you dont have enough information to
 populate the MessageInfo structure. The most obvious problem, if you
 dont populate the structure, is that you wont be able to view all the
 summary details in Evolution, like from, to, etc


Hmm.. OK. May I set the fields to NULL? 

The most likely situation is that evolution-brutus stumbles upon a draft
email where To, CC, From and Subject is still missing. Creating such a
message is possible in evo as today, so is the correct way to handle it
to set those entries to NULL??

Thanks,
  jules



___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] Should I unref a CamelMesageInfoBase?

2005-12-07 Thread Jules Colding
Hi,

Must I unref a reference to a message info when retrieved by
camel_folder_summary_uid()? This function increases the refcount before
returning it.

I can see from gw_update_summary() in the GroupWise provider that it
never unrefs the reference. Is that wrong?

Thanks,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] [Fwd: Weird late relase of CamelContentType* in camel-folder-summary.c]

2005-12-09 Thread Jules Colding
Hi,

Forwarded as my original reply is gone...

# snip ##
The ct valiable (of type CamelContentType*) in the
camel-folder-summary.c function message_info_new_from_header(), is
not released until line 1628, but the last time it is used is in a big
if statement at line 1614.

Why can't it be released at line 1618? Is it mysteriously being used
elsewhere in an invisible way??
# snip ##

ct can actually not be released early. the returned charset will be
garbage if ct is released any earlier.

-- 
  jules

---BeginMessage---
Hi,

The ct valiable (of type CamelContentType*) in the
camel-folder-summary.c function message_info_new_from_header(), is
not released until line 1628, but the last time it is used is in a big
if statement at line 1614.

Why can't it be released at line 1618? Is it mysteriously being used
elsewhere in an invisible way??

Thanks,
  jules

---End Message---
___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] Weird logic in Camel Groupwise provider...

2005-12-10 Thread Jules Colding
Hi,

The GW provider has this code snippet in
camel-groupwise-folder.c:gw_update_cache():

# snip ###
mi = (CamelGroupwiseMessageInfo *)camel_folder_summary_uid 
(folder-summary, id);
if (mi) {
exists = TRUE;
camel_message_info_free (mi-info); // == unref
}

if (!exists) {
type = e_gw_item_get_item_type (item);
if ((type == E_GW_ITEM_TYPE_CONTACT) || (type == 
E_GW_ITEM_TYPE_UNKNOWN)) {
exists = FALSE;
continue;
}

mi = camel_message_info_new (folder-summary); 
if (mi-info.content == NULL) {
mi-info.content = 
camel_folder_summary_content_info_new (folder-summary);
mi-info.content-type = camel_content_type_new 
(multipart, mixed);
}
}
## snip ##

What I do not understand is that mi is being unref-ed right after
having confirmed that mi indeed is a reference to an existing message
info. The source then proceeds to populate mi with new data without
releasing the pre-existing data in the info (such as to, from and
subject).

The mi structure members are just being overwritten. Doesn't this lead
to memory leaks?

Another thing is that the mi structure can suddenly vanish if another
thread unrefs it.

This shouldn't work if my reading of the source is correct, so I must
obviously be missing something very fundamental here :-(

Could someone please help me understand what I am missing?

Thanks a lot,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Possible bug in GW Camel provider

2005-12-14 Thread Jules Colding
Hi Partha,

On Tue, 2005-12-13 at 18:40 +0530, Parthasarathi Susarla wrote:
 On Tue, 2005-12-13 at 13:36 +0100, Jules Colding wrote:
 [snip]
 
  Problems seems to arise if exists is TRUE.
  
  Issue 1) pstrings, such as mi-info.from, are being overwritten
  without being released. 
 
  Issue 2) mi is being unref-ed but subsequently used. mi could vanish
  while in use if another thread unrefs it once more.
 
 The logic there is quite simple and straight forward, if a message
 exists in the summary already, then we just do a pstring_free and
 allocate memory for individual items of the MessageInfo structure. 

I can not see any explicit camel_pstring_free() in the source. I do see
a call to camel_message_info_free() if exists if TRUE. This call will
unconditionally unref the message info struct as far as I can see.

Please correct me if I am wrong here

 I
 dont know which source you are using, but i see that its being freed and
 used properly (if you are not updated, please do so)

I am using the gnome-2-12 branch of e-d-s as of today.

 And the messageinfo is *not* being unreffed

But camel_message_info_free() will unconditionally unref the message
info, won't it?

I'm sure it's me, but I can't make this add up in my head :-(


Thanks,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] http://go-evolution.org/ - Offline copy?

2005-12-15 Thread Jules Colding
Hi,

There is a wealth of information on the evo wiki, but is there any easy
way to save a local copy for offline viewing?


Thanks,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] http://go-evolution.org/ - Offline copy?

2005-12-15 Thread Jules Colding
On Thu, 2005-12-15 at 13:03 -0500, Lee Revell wrote:
 On Thu, 2005-12-15 at 12:41 +0100, Jules Colding wrote:
  Hi,
  
  There is a wealth of information on the evo wiki, but is there any easy
  way to save a local copy for offline viewing?
  
 
 wget

No. I tried that a few weeks ago, but nothing usable came back.

-- 
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] http://go-evolution.org/ - Offline copy?

2005-12-16 Thread Jules Colding
On Thu, 2005-12-15 at 14:32 -0500, Saikat Guha wrote:
 On Thu, 2005-12-15 at 13:03 -0500, Lee Revell wrote:
  On Thu, 2005-12-15 at 12:41 +0100, Jules Colding wrote:
   Hi,
   
   There is a wealth of information on the evo wiki, but is there any easy
   way to save a local copy for offline viewing?
   
  
  wget
 
 
 wget \
 --convert-links \
 --page-requisites \
 --html-extension \
 --recursive \
 --level=2 \
 --reject *edit*,*history*,*Special*,*oldid* \
 http://url/
 
 does a good job of ripping MediaWiki wikis

Indeed it does. My apologies to Lee for not realizing that my set of
wget options wasn't the only good set of options ;-)

Thanks,
  jules



___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] CamelMimeMessage - Should I set all or a subset of the headers?

2005-12-19 Thread Jules Colding
Hi,

I can not figure out if I should manually extract as many message header
fields from the remote server or if just a few of them (which?) are
needed to create a good CamelMimeMessage...

I think that I need to set as many as possible, but could someone please
confirm this?


Thanks,
  jules

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] [CAMEL] Can't get Evolution to detect UTF-8 message body

2006-01-04 Thread Jules Colding
Hi,

I get the following message source when I build a CamelMimeMessage from
Exchange 5.5:

### snip 
From [EMAIL PROTECTED] Tue Jan  3 09:38:42 2006
Date: Tue, 03 Jan 2006 09:38:42 +0001
Subject: Most certainly UTF-8
Message-Id: [EMAIL PROTECTED]
From: Jules Colding [EMAIL PROTECTED]
To: OMC User_0 [EMAIL PROTECTED]
Content-Type: multipart/mixed; boundary==-o18WtrkSaIZE4bTvVF8K
Mime-Version: 1.0


--=-o18WtrkSaIZE4bTvVF8K
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

æøå ÆØÅ == UTF-8 text (7 characters in all, the middle one a ' ')

--=-o18WtrkSaIZE4bTvVF8K--
### snip 

This message body displays correctly in my current day-to-day Evolution
client (2.2.x) but I can't make Evolution 2.4 (current CVS) to display
the UTF-8 characters unless I explicitly do View-Character
Encodings-Unicode (UTF-8) in the Evolution UI.

Shouldn't Evolution 2.4.x be able to detect the character encoding and
display the above message correctly with all UTF-8 characters showing?

Thanks,
  jules

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] [CAMEL] Can't get Evolution to detect UTF-8 message body

2006-01-04 Thread Jules Colding
On Wed, 2006-01-04 at 13:14 +0100, Jules Colding wrote:
 I get the following message source when I build a CamelMimeMessage from
 Exchange 5.5:
 
 ### snip 
 From [EMAIL PROTECTED] Tue Jan  3 09:38:42 2006
  ^
That character is not in the message source.

-- 
  jules


# correct message source repeated ###

From [EMAIL PROTECTED] Tue Jan  3 09:38:42 2006
Date: Tue, 03 Jan 2006 09:38:42 +0001
Subject: Most certainly UTF-8
Message-Id: [EMAIL PROTECTED]
From: Jules Colding [EMAIL PROTECTED]
To: OMC User_0 [EMAIL PROTECTED]
Content-Type: multipart/mixed; boundary==-o18WtrkSaIZE4bTvVF8K
Mime-Version: 1.0


--=-o18WtrkSaIZE4bTvVF8K
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

æøå ÆØÅ == UTF-8 text (7 characters in all, the middle one a ' ')

--=-o18WtrkSaIZE4bTvVF8K--


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] CamelStore.get_folder() with no folder name

2006-01-04 Thread Jules Colding
Hi,

I am seeing that get_folder() is being invoked with the empty string as
folder name as in:

my_provider_store-get_folder(some_store, , 0, ex);

What am I expected to return here?

Thanks,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] How do I make the transport capability of my Camel provider public?

2006-01-16 Thread Jules Colding
Hi,

I am doing the usual

brutus_provider.object_types[CAMEL_PROVIDER_STORE] =  
camel_brutus_store_get_type() ;
brutus_provider.object_types[CAMEL_PROVIDER_TRANSPORT] = 
camel_brutus_transport_get_type();

registration of the provider, but it does not seem to be accepted by
Evolution:

1) There is no Sending Email pane in the account properties for a
Brutus account. Any ideas why this is so?

2) Brutus does not show up as a Server Type option when selecting the
Sending Email pane in the account preferences for a POP3 account. How
can I make Brutus show up there?

I can see that camel_brutus_transport_get_type() and
camel_brutus_transport_class_init() is being invoked by Evolution with
no errors so I am really confused as to why my transport class is being
ignored.


Thanks a lot in advance,
  jules

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] Camel.Store - create_folder() confusion

2006-02-13 Thread Jules Colding
Hi,

I am slightly confused about the parent_name and folder_name
arguments to create_store(). Is parent_name a leading substring of
folder_name? 

I mean:

parent_name = /foo/bar/folder
folder_name = /foo/bar/folder/new_folder/yet_another_folder

Can folder_name contain non-existing parents and expect them to be
created in a 'mkdir -p like fashion?


Thanks,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] camel_store_get_folder_info() memory handling

2006-02-15 Thread Jules Colding
Hi,

Please correct me if I am wrong, but I have suddenly become in doubt
about who owns the memory returned by camel_store_get_folder_info().

camel_store_get_folder_info() returns a CamelFolderInfo* so the memory
pointed returned by my provider implementation of get_folder_info() must
be freed by the caller. Is that correct?


Thanks,
  jules



___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] camel_store_get_folder_info() memory handling

2006-02-16 Thread Jules Colding
On Wed, 2006-02-15 at 10:37 -0500, Jeffrey Stedfast wrote:
 CamelStore::free_folder_info()'s v.method can be overridden, so it's
 really up to your CamelStore implementation.
 
 The consumer of the ::get_folder_info() API is supposed to
 call ::free_folder_info(), but since it can be overridden - you can make
 it noop, free the info, or free some subset of the info (e.g. it could
 free the structs but not the strings or some such if the strings point
 to some internal memory).
 
 There are at least 2 convenience implementations in camel-store.h, one
 is a noop and one is a free-all type.
 
 Hope that helps,

It does.

Thanks a lot :-)
  jules


 
 Jeff
 
 On Wed, 2006-02-15 at 14:21 +0100, Jules Colding wrote:
  Hi,
  
  Please correct me if I am wrong, but I have suddenly become in doubt
  about who owns the memory returned by camel_store_get_folder_info().
  
  camel_store_get_folder_info() returns a CamelFolderInfo* so the memory
  pointed returned by my provider implementation of get_folder_info() must
  be freed by the caller. Is that correct?
  
  
  Thanks,
jules
  
  
  
  ___
  Evolution-hackers mailing list
  Evolution-hackers@gnome.org
  http://mail.gnome.org/mailman/listinfo/evolution-hackers
  

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Camel.Store or Camel.Folder sync()

2006-02-28 Thread Jules Colding
On Wed, 2006-03-01 at 11:19 +0530, Parthasarathi Susarla wrote:
 On Tue, 2006-02-28 at 15:21 +0100, Jules Colding wrote:
  Hi,
  
  Both methods seem to be designed to do the same wrt deleted messages -
  namely to expunge them if the option is set. 
  
  Where should I put the expunge functionality? In the store
  implementation or in the folder implementation??
 Expunge is a folder operation, so it would go into the CamelFolder
 Class. There is a method you need to implement in CamelFolderClass for
 expunge

Yes sure, but my question was more directed towards the expunge
functionality of sync(). Both camel_store_sync() and camel_folder_sync()
have an option for expunging folders. The functionality is therefore
shared between the Camel.Store and Camel.Folder classes.

I am therefore in doubt about which one is the preferred place to
actually implement the expunge functionality. 

I would guess in Camel.Folder but is that correct?


Thanks,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] CamelMessageInfoBase level dirty flag somewhere?

2006-03-02 Thread Jules Colding
Hi,

I am implementing camel_folder_sync().

It would be really nice to know, when loping over the message summaries,
if a summary has changed since it was loaded.

Imagine that the CAMEL_MESSAGE_FLAGGED flag has been set by the user in
CamelMessageInfoBase.flags. Is there any way for my provider to detect
if that flag has been set by the user or must a poll the server-side
message to detect any changes?

Likewise for other flags. Changes to message flags since the last
summary load should be detectable by the provider for performance
reasons. A message_info_dirty somewhere would be nice.

Is there a way to achieve that?

Thanks,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] When do I set the read flag?

2006-03-02 Thread Jules Colding
Hi,

A mail will be non-highlighted after about 1 or 2 seconds when clicked
upon if it hasn't been opened before.

How do I detect this change in the CamelMessageInfoBase flags? I would
like to delay the setting of the READ flag on the remote mail until it
happens visually for the user instead at message_get() time.

Can that be done?

Thanks,
  jules



___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] CamelMessageInfoBase level dirty flag somewhere?

2006-03-03 Thread Jules Colding
On Thu, 2006-03-02 at 10:00 -0500, Jeffrey Stedfast wrote:
 There's a flag CAMEL_MESSAGE_FOLDER_FLAGGED - if set, it means that
 particular message-info is dirty.
 
 As far as figiuring out which particular flags changed, you can add a
 server_flags variable to your own implementation's CamelMessageInfo
 and then diff those flags from the CamelMessageInfoBase.flags.


OK, thanks a lot.

-- 
  jules



 Jeff
 
 On Thu, 2006-03-02 at 11:13 +0100, Jules Colding wrote:
  Hi,
  
  I am implementing camel_folder_sync().
  
  It would be really nice to know, when loping over the message summaries,
  if a summary has changed since it was loaded.
  
  Imagine that the CAMEL_MESSAGE_FLAGGED flag has been set by the user in
  CamelMessageInfoBase.flags. Is there any way for my provider to detect
  if that flag has been set by the user or must a poll the server-side
  message to detect any changes?
  
  Likewise for other flags. Changes to message flags since the last
  summary load should be detectable by the provider for performance
  reasons. A message_info_dirty somewhere would be nice.
  
  Is there a way to achieve that?
  
  Thanks,
jules
  
  
  ___
  Evolution-hackers mailing list
  Evolution-hackers@gnome.org
  http://mail.gnome.org/mailman/listinfo/evolution-hackers
  

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Can we *PLEASE* get the go-evolution.org DNS restored?

2006-03-29 Thread Jules Colding
On Wed, 2006-03-29 at 09:54 +0200, guenther wrote:
 On Tue, 2006-03-28 at 09:27 +0200, Jules Colding wrote:
  On Mon, 2006-03-27 at 23:33 +0200, guenther wrote:
 
   'nuff said. Let me repeat it anyway:
   
 Can we *PLEASE* get the go-evolution.org DNS restored?
  
  I have a reasonably resent wget copy of the wiki. Shall I send a
  tar-ball your way?
 
 Thanks, but no thanks. ;)
 
 I don't want it myself. I try to get it back up for anyone who actually
 uses it. Besides some devel and build stuff in there, my original post
 points out why it is useful even for the users...

Certainly. I really can't imagine why it should go away...


 Anyway, please keep the tarball for reference till this is fixed, in
 case we'd need it at any point later. :)

OK. I'll leave it here for now:

   http://www.omesc.com/content/downloads/go-evolution.org.tar.gz


Best regards,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] New calendar backend - How do I make it appear?

2006-04-10 Thread Jules Colding
Hi,

I am writing a calendar backend for Brutus. I am (to the best of my
knowledge) following the wiki to the letter:

http://go-evolution.org/EDS_Architecture#Calendar_backends

The problem is that my calendar backend don't show up when trying to
create a new calendar in the Evolution 2.4 UI. I haven't yet tried
Evolution 2.6 but it should work in 2.4 as well...

I can't event see (using strace) that any of the libecalbackend*.so
libraries are being read by Evolution.

So, are there any magical trick (such as the .urls file for Camel)
that I must use?

Thanks a lot in advance,
  jules



PS: Full source (look in brutus/idl/products/evolution/2.4) here:

http://go-evolution.org/EDS_Architecture#Calendar_backends

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] New calendar backend - How do I make it appear?

2006-04-10 Thread Jules Colding
On Mon, 2006-04-10 at 15:41 +0200, Jules Colding wrote:

 PS: Full source (look in brutus/idl/products/evolution/2.4) here:


Corrected link:

http://www.omesc.com/content/downloads/brutus-snapshot.tar.bz2


-- 
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] How do I use e_passwords_ask_password() without segvs?

2006-04-26 Thread Jules Colding
Hi,

I am trying to invoke e_passwords_ask_password() from a standalone
application as well as from my Calendar backend. Both attempts fails
miserably with a segv. The segv is in gtk_icon_set_render_icon() and I
have no idea of why this happens.

The standalone test code that calls e_passwords_ask_password() is rather
trivial. Essentially linking all the right libraries, including all the
right headers and just doing:

int
main (int argc, char *argv[])
{
gboolean remember = FALSE;
char *password = NULL;

g_type_init();
g_thread_init(NULL);

password = e_passwords_ask_password(Enter password,
Brutus, 
profile, 
prompt,
E_PASSWORDS_REMEMBER_NEVER,
remember, 
NULL);
return EXIT_SUCCESS;
}

I would really appreciate any help in with this and have appended the
(lengthly) valgrind output below.

Thanks a lot in advance,
  jules


### valgrind output 
==11895== Memcheck, a memory error detector.
==11895== Copyright (C) 2002-2005, and GNU GPL'd, by Julian Seward et al.
==11895== Using LibVEX rev 1471, a library for dynamic binary translation.
==11895== Copyright (C) 2004-2005, and GNU GPL'd, by OpenWorks LLP.
==11895== Using valgrind-3.1.0, a dynamic binary instrumentation framework.
==11895== Copyright (C) 2000-2005, and GNU GPL'd, by Julian Seward et al.
==11895== For more details, rerun with: -v
==11895== 

(process:11895): Gtk-CRITICAL **: gtk_settings_get_for_screen: assertion 
`GDK_IS_SCREEN (screen)' failed

(process:11895): GLib-GObject-CRITICAL **: g_object_get: assertion `G_IS_OBJECT 
(object)' failed
==11895== Conditional jump or move depends on uninitialised value(s)
==11895==at 0xCDAFF9: g_param_value_validate (in 
/usr/lib/libgobject-2.0.so.0.1000.2)
==11895==by 0xCD9B8A: g_object_set_valist (in 
/usr/lib/libgobject-2.0.so.0.1000.2)
==11895==by 0xCD9FA5: g_object_set (in /usr/lib/libgobject-2.0.so.0.1000.2)
==11895==by 0x7295740: (within /usr/lib/libgtk-x11-2.0.so.0.800.17)
==11895==by 0x7295C97: (within /usr/lib/libgtk-x11-2.0.so.0.800.17)
==11895==by 0xCD7E59: g_object_newv (in /usr/lib/libgobject-2.0.so.0.1000.2)
==11895==by 0xCD89D8: g_object_new_valist (in 
/usr/lib/libgobject-2.0.so.0.1000.2)
==11895==by 0xCD8ADF: g_object_new (in /usr/lib/libgobject-2.0.so.0.1000.2)
==11895==by 0x729560B: gtk_button_new_from_stock (in 
/usr/lib/libgtk-x11-2.0.so.0.800.17)
==11895==by 0x72E120E: gtk_dialog_add_button (in 
/usr/lib/libgtk-x11-2.0.so.0.800.17)
==11895==by 0x7371F1C: (within /usr/lib/libgtk-x11-2.0.so.0.800.17)
==11895==by 0xCDA1DB: (within /usr/lib/libgobject-2.0.so.0.1000.2)
==11895== 
==11895== Conditional jump or move depends on uninitialised value(s)
==11895==at 0xCF7390: (within /usr/lib/libgobject-2.0.so.0.1000.2)
==11895==by 0xCF4CB4: g_value_transform (in 
/usr/lib/libgobject-2.0.so.0.1000.2)
==11895==by 0xCF8F11: g_strdup_value_contents (in 
/usr/lib/libgobject-2.0.so.0.1000.2)
==11895==by 0xCD9DE6: g_object_set_valist (in 
/usr/lib/libgobject-2.0.so.0.1000.2)
==11895==by 0xCD9FA5: g_object_set (in /usr/lib/libgobject-2.0.so.0.1000.2)
==11895==by 0x7295740: (within /usr/lib/libgtk-x11-2.0.so.0.800.17)
==11895==by 0x7295C97: (within /usr/lib/libgtk-x11-2.0.so.0.800.17)
==11895==by 0xCD7E59: g_object_newv (in /usr/lib/libgobject-2.0.so.0.1000.2)
==11895==by 0xCD89D8: g_object_new_valist (in 
/usr/lib/libgobject-2.0.so.0.1000.2)
==11895==by 0xCD8ADF: g_object_new (in /usr/lib/libgobject-2.0.so.0.1000.2)
==11895==by 0x729560B: gtk_button_new_from_stock (in 
/usr/lib/libgtk-x11-2.0.so.0.800.17)
==11895==by 0x72E120E: gtk_dialog_add_button (in 
/usr/lib/libgtk-x11-2.0.so.0.800.17)

(process:11895): GLib-GObject-WARNING **: value TRUE of type `gboolean' is 
invalid or out of range for property `visible' of type `gboolean'

(process:11895): Gtk-CRITICAL **: gtk_settings_get_for_screen: assertion 
`GDK_IS_SCREEN (screen)' failed

(process:11895): GLib-GObject-CRITICAL **: g_object_get: assertion `G_IS_OBJECT 
(object)' failed

(process:11895): GLib-GObject-WARNING **: value TRUE of type `gboolean' is 
invalid or out of range for property `visible' of type `gboolean'

(process:11895): GLib-GObject-CRITICAL **: g_object_get: assertion `G_IS_OBJECT 
(object)' failed
==11895== 
==11895== Conditional jump or move depends on uninitialised value(s)
==11895==at 0x72E0818: gtk_dialog_set_alternative_button_order (in 
/usr/lib/libgtk-x11-2.0.so.0.800.17)
==11895==by 0x7371F5C: (within /usr/lib/libgtk-x11-2.0.so.0.800.17)
==11895==by 0xCDA1DB: (within /usr/lib/libgobject-2.0.so.0.1000.2)
==11895==by 0xCD7E59: g_object_newv (in /usr/lib/libgobject-2.0.so.0.1000.2)

Re: [Evolution-hackers] How do I use e_passwords_ask_password() without segvs?

2006-04-26 Thread Jules Colding
On Wed, 2006-04-26 at 11:46 +0100, Ross Burton wrote:
 On Wed, 2006-04-26 at 12:27 +0200, Jules Colding wrote:
  I am trying to invoke e_passwords_ask_password() from a standalone
  application as well as from my Calendar backend. Both attempts fails
  miserably with a segv. The segv is in gtk_icon_set_render_icon() and I
  have no idea of why this happens.
 
 You don't call gtk_init() so any calls to GTK will randomly crash.

Yep, that was it. 

Thanks a lot :-)
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] How do I query a password from a calendar backend?

2006-04-26 Thread Jules Colding
Hi,

I am having difficulties using e_passwords_ask_password() from with my
calendar backend. I am trying to query the password from within the
open_sync() method. 

I have tried wrapping the e_passwords_ask_password() in
gdk_threads_enter()/gdk_threads_leave() but that will only result in
Evolution freezing when invoking e_passwords_ask_password().

Not doing the gdk_threads_enter()/gdk_threads_leave() wrapping will make
Xlib complain about an unexpected async call.

I can not simply put auth=1 in the gconf source as that would force a
password dialog to open even if I didn't want one to open. So I need a
way to query a password from the user when a password is really needed.

So, what can I do except from launching an external helper application?
In Camel I could use camel_session_get_password(). Is there anything
like that from within a calendar backend?


Thanks a lot in advance,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] emacs ChangeLog macro

2006-05-02 Thread Jules Colding
On Mon, 2006-05-01 at 10:56 -0400, Jeffrey Stedfast wrote:
 I've noticed a lot of inconsistantly formatted ChangeLog entries so I'm
 sending out this email so the hackers can all add it to their .emacs
 file (since I'm guessing they don't have it?).

C-x 4 a should do the same.

-- 
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] Camel password - Remembered?

2006-05-03 Thread Jules Colding
Hi,

How do I figure out if the user has chosen to check the Remember
password check box when queried by Camel for a password?

Thanks,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Camel password - Remembered?

2006-05-04 Thread Jules Colding
On Wed, 2006-05-03 at 12:30 -0400, Jeffrey Stedfast wrote:
 There's no way for a camel provider to know this... This is all handled
 in the front-end.

OK, thanks.
  jules


 Jeff
 
 On Wed, 2006-05-03 at 14:15 +0200, Jules Colding wrote:
  Hi,
  
  How do I figure out if the user has chosen to check the Remember
  password check box when queried by Camel for a password?
  
  Thanks,
jules
  
  
  ___
  Evolution-hackers mailing list
  Evolution-hackers@gnome.org
  http://mail.gnome.org/mailman/listinfo/evolution-hackers

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] How do I query a password from a calendar backend?

2006-05-04 Thread Jules Colding
Hi Chenthill,

On Thu, 2006-05-04 at 22:16 +0530, Chenthill wrote:
 Hi jules,
  It is not a good idea to prompt password from the backend. Probably you
 could write a plugin in evolution for creating the specific calendar and
 check if you need authentication before setting the auth property.
 e_password_get_password would get the password if the password has been
 remembered.

Thanks for the advise. I've tried different approaches and have settled
on an external helper application that pops up the libedataserverui
password GUI and saves the password in gnome-keyring.

My problem is that I want the mail account to integrate with the
calendar and tasks backends. This means that one password query for an
Exchange account is all that it should take for mail, calendar and task
accounts to logon to Exchange using evolution-brutus.

I really dislike the idea of having separate password/settings dialogs
for the calendar, mail and tasks even though they in reality refer to
the very same Exchange mailbox.

My approach integrates these account(s) into a single user-perceived
account - the mail account. Once the mail account is configured it
automatically enables the Exchange Calendar and Tasks in the Evolution
UI. This works just fine here.


Best regards,
  jules



___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] When do open_sync() gets called from a calendar backend?

2006-05-05 Thread Jules Colding
Hi,

I am a bit mystified, due to my lack of intellectual resources, about
the behavior of my calendar backend.

I have created the gconf source for the calendar and are trying to get
Evolution to call open_sync() on it, but that never happens. Instead I
am seeing set_mode_sync() and set_default_timezone_sync() being invoked
(in that order).

The next thing to happen is that Evolution tells me that it is unable to
open the calendar.

Do I have to invoke open_sync() myself at some appropriate time? 


Thanks,
  jules

BTW: I have invoked e_cal_backend_sync_set_lock(backend, TRUE) in
e_cal_backend_brutus_init() to force serialization of method
invocations. 

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] When do open_sync() gets called from a calendar backend?

2006-05-08 Thread Jules Colding
Hi Chenthill,

On Sat, 2006-05-06 at 15:06 +0530, Chenthill wrote:
 Hi Jules,
   Once the mode and timezone is set, e_cal_open_async would be called to
 open the calendar. Please check if e_cal_open_async is being called from
 evolution. You need not invoke it separately.

Hmm... I can see that e_cal_open() is being called, not
e_cal_open_async(). My calendar inherits from ECalBackendSync so isn't
that as it should be?

Well, I'll better spread a few printf()'s in e_cal_open() to see where
it fails.

Thanks,
  jules



 thanks, Chenthill.
 
 On Fri, 2006-05-05 at 14:05 +0200, Jules Colding wrote:
  Hi,
  
  I am a bit mystified, due to my lack of intellectual resources, about
  the behavior of my calendar backend.
  
  I have created the gconf source for the calendar and are trying to get
  Evolution to call open_sync() on it, but that never happens. Instead I
  am seeing set_mode_sync() and set_default_timezone_sync() being invoked
  (in that order).
  
  The next thing to happen is that Evolution tells me that it is unable to
  open the calendar.
  
  Do I have to invoke open_sync() myself at some appropriate time? 
  
  
  Thanks,
jules
  
  BTW: I have invoked e_cal_backend_sync_set_lock(backend, TRUE) in
  e_cal_backend_brutus_init() to force serialization of method
  invocations. 
  
  ___
  Evolution-hackers mailing list
  Evolution-hackers@gnome.org
  http://mail.gnome.org/mailman/listinfo/evolution-hackers

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] CAL_STATIC_CAPABILITY_* documentation?

2006-05-09 Thread Jules Colding
Hi,

Does any documentation as to the precise meaning of the capabilities
exists?

Some of these aren't entirely obvious. Here is my take on the
definitions:

* CAL_STATIC_CAPABILITY_NO_ALARM_REPEAT
No repeating alarms. How is this related to the backend? Isn't it the
Evolution front-end that do the alarm stuff?



* CAL_STATIC_CAPABILITY_NO_AUDIO_ALARMS
No audio alarms. Again, how is this related to the backend?



* CAL_STATIC_CAPABILITY_NO_DISPLAY_ALARMS
No visual alarms. Again, how is this related to the backend?



* CAL_STATIC_CAPABILITY_NO_EMAIL_ALARMS
No email alarms. Again, how is this related to the backend?



* CAL_STATIC_CAPABILITY_NO_PROCEDURE_ALARMS
What is this?



* CAL_STATIC_CAPABILITY_NO_TASK_ASSIGNMENT
The backend can not assign tasks to individual entities.


* CAL_STATIC_CAPABILITY_NO_THISANDFUTURE
The backend can not do a search for events/tasks that are starting at
any time from and including now.



* CAL_STATIC_CAPABILITY_NO_THISANDPRIOR
The backend can not do a search for events/tasks that are starting at
any time before but including now.



* CAL_STATIC_CAPABILITY_NO_TRANSPARENCY
What is this?


* CAL_STATIC_CAPABILITY_ONE_ALARM_ONLY
Only one alarm can be active at any one time. Again, how is this related
to the backend? Isn't it the Evolution front-end that do the alarm
stuff?



* CAL_STATIC_CAPABILITY_ORGANIZER_MUST_ATTEND
The organizer is a required participant in any meeting.



* CAL_STATIC_CAPABILITY_ORGANIZER_NOT_EMAIL_ADDRESS
What is this?



* CAL_STATIC_CAPABILITY_REMOVE_ALARMS
Alarms can be removed.



* CAL_STATIC_CAPABILITY_SAVE_SCHEDULES
What is this?

Thanks,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] CAL_STATIC_CAPABILITY_* documentation?

2006-05-09 Thread Jules Colding
On Tue, 2006-05-09 at 14:30 +0200, Jules Colding wrote:

 
 * CAL_STATIC_CAPABILITY_NO_AUDIO_ALARMS
 No audio alarms. Again, how is this related to the backend?

Hmm... cut'n paste from a HTML page. These horizontal lines wasn't
intended to be in the mail.

Sorry,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] CAL_STATIC_CAPABILITY_* documentation?

2006-05-10 Thread Jules Colding
Hi Harry,

Thanks a lot for these explanations. Most helpful :-)

Does any one know about the remaining ones below?

Thanks,
  jules

 
On Tue, 2006-05-09 at 20:59 +0800, Harry Lu wrote:
  * CAL_STATIC_CAPABILITY_NO_CONV_TO_ASSIGN_TASK
  What is this? Convert from what?
  
  * CAL_STATIC_CAPABILITY_NO_CONV_TO_RECUR
  What is this? Convert from what?

 A normal event can not be converted to a recurrence event.(???)
  * CAL_STATIC_CAPABILITY_NO_GEN_OPTIONS
  What is this? 
  
  * CAL_STATIC_CAPABILITY_REQ_SEND_OPTIONS
  What is this? 
  
  * CAL_STATIC_CAPABILITY_RECURRENCES_NO_MASTER
  What is this? 
  
  * CAL_STATIC_CAPABILITY_ORGANIZER_MUST_ACCEPT
  The organizer must accept the meeting.
  
  * CAL_STATIC_CAPABILITY_DELEGATE_SUPPORTED
  Support for delegation
  
  * CAL_STATIC_CAPABILITY_NO_ORGANIZER
  Support for meeting without any organizer.
  
  * CAL_STATIC_CAPABILITY_DELEGATE_TO_MANY
  Can delegate to more than one at the same time.
  
  * CAL_STATIC_CAPABILITY_HAS_UNACCEPTED_MEETING
  What is this?


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] Calendar backend - ECalComponent properties

2006-05-18 Thread Jules Colding
Hi,

How do I set properties on an ECalComponent to the effect that the
following check boxes are checked:

1) All day event 

2) Show time as busy

I can't see any methods in e-cal-component.h to that effect...


Thanks a lot,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] What 'role' should a resource-type cutype have?

2006-06-08 Thread Jules Colding
Hi, 

I can't decide upon the ICAL role that a ECalComponentAttendee should
have if cutype is a resource. I am currently doing:

attendee-cutype = ICAL_CUTYPE_RESOURCE;
attendee-role = ICAL_ROLE_NONPARTICIPANT; // what else?

Is that the best thing to do? - Thoughts?


Thanks,
  jules



___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] What 'role' should a resource-type cutype have?

2006-06-16 Thread Jules Colding
On Fri, 2006-06-16 at 11:46 +0530, Chenthill wrote:
 Hi Jules,
 On Thu, 2006-06-08 at 13:15 +0200, Jules Colding wrote:
  Hi, 
  
  I can't decide upon the ICAL role that a ECalComponentAttendee should
  have if cutype is a resource. I am currently doing:
  
  attendee-cutype = ICAL_CUTYPE_RESOURCE;
  attendee-role = ICAL_ROLE_NONPARTICIPANT; // what else?
  
  Is that the best thing to do? - Thoughts?
 yes, AFAIK the resource would be a non-participant.

OK, thanks a lot.

-- 
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] Events diplayed as tasks?

2006-06-16 Thread Jules Colding
Hi,

I have a functioning calendar backend that supports events as well as
tasks. The events are displayed in the calendar as expected, but they
are also appearing as tasks in the summary list. Why??

I haven't even populated the task cache yet, so everything displayed in
the task list is really nothing but a common event. 

Should events display in the task list or how can I stop them from doing
so??

Illustrative screenshot:

http://www.omesc.com/content/downloads/screenshots/event_tasks.png


Thanks a lot in advance,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] Calendar backend: RepositoryOffline V. OfflineUnavailable

2006-06-26 Thread Jules Colding
Hi,

What exactly is the difference between those two return values?


Thanks,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Multiple calendars

2006-07-11 Thread Jules Colding
Hi Scott,

On Fri, 2006-07-07 at 16:27 -0700, Scott Herscher wrote:
 Hey all. I'm struggling to understand something that I think should be
 obvious.  

I'll try a shot at an explanation below despite my very limited
knowledge...


 I'm writing a new e-cal backend, and it connects to a server that
 supports multiple calendars.  I get that when I create the account, my
 eplugin will query the server, learn about all the calendars, create
 one group and then create multiple sources (one for each calendar).
 But what happens after I've added the account?  What part of the
 evolution data server framework is responsible for monitoring if new
 calendars are added remotely, or calendars are delete remotely?

I think you should hide this in the implementation of your backend. The
gconf source will reflect an instance of a calendar as supported by your
backend. 

You can choose to get all of the data in your different simultaneously
supported calendars and display it in one single calendar or you can
choose to created multible gconf sources, one for each remote calendar,
and display that data in different calendars.

My experience is that newly create gconf sources will show up almost
instantaneously in the calendar view, but I'm creating the sources in
the Camel provider, so my experiences might not be applicable to you.


   Related to this first question...if I have multiple calendars and
 they all are individual e-sources, wouldn't they sync up to the server
 individually?  It seems like I'd want the e-group instance to initiate
 syncs, and then tell the individual e-sources what was added or
 deleted.  I'm sure I'm missing something here...I just don't know what
 it is yet.

Hmm - I'm not sure that I understand your question...


 Any help would be oh so greatly appreciated.

The usual answer is that you should look in the existing backends and
see what they do. Take a look into my Brutus backend too as it may
illuminate the problems in a different way.

Best regards,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Multiple calendars

2006-07-11 Thread Jules Colding
Hi Scott,

On Mon, 2006-07-10 at 16:48 -0700, Scott Herscher wrote:
 Hey Jules!  Thanks a lot for your reply.  I know my questions weren't
 so clearly worded.  So I guess I can boil down my questions to this
 question (and least until I think of more questions):  is there a
 one-to-one relationship between an e-source and an e-cal backend?

There is a one-to-one relationship between an e-source and an e-cal
backend object instance. The same physical backend library can serve
multiple calendars/task/whatever accounts.


 For my purposes, I don't think it would work to hide the multiple
 calendars and only display one calendar.  So I think I'm going to have
 to create an e-source for every calendar.  I'm just not sure how that
 relates to e-cal backend.  Again...any help would be greatly
 appreciated.

Any e-source with the right protocol (brutus:// in my case, maybe
zimbra:// in yours) will make the eds frontend instantiate an e-cal
backend object for that specific e-source. The supported e-cal backend
protocol is returned by the factory method _get_protocol().

You have to check for the specifics (what calendar in particular) by
looking at the e-source from within your backend. Just hide something
that identifies the particular calendar within the e-source uri.

HTH,
  jules



 Thanks,
 
 Scott
 
 - Original Message -
 From: Jules Colding [EMAIL PROTECTED]
 To: Scott Herscher [EMAIL PROTECTED]
 Cc: evolution-hackers@gnome.org
 Sent: Monday, July 10, 2006 2:36:26 AM GMT-0800
 Subject: Re: [Evolution-hackers] Multiple calendars
 
 Hi Scott,
 
 On Fri, 2006-07-07 at 16:27 -0700, Scott Herscher wrote:
  Hey all. I'm struggling to understand something that I think should
 be
  obvious.  
 
 I'll try a shot at an explanation below despite my very limited
 knowledge...
 
 
  I'm writing a new e-cal backend, and it connects to a server that
  supports multiple calendars.  I get that when I create the account,
 my
  eplugin will query the server, learn about all the calendars, create
  one group and then create multiple sources (one for each calendar).
  But what happens after I've added the account?  What part of the
  evolution data server framework is responsible for monitoring if new
  calendars are added remotely, or calendars are delete remotely?
 
 I think you should hide this in the implementation of your backend.
 The
 gconf source will reflect an instance of a calendar as supported by
 your
 backend. 
 
 You can choose to get all of the data in your different simultaneously
 supported calendars and display it in one single calendar or you can
 choose to created multible gconf sources, one for each remote
 calendar,
 and display that data in different calendars.
 
 My experience is that newly create gconf sources will show up almost
 instantaneously in the calendar view, but I'm creating the sources in
 the Camel provider, so my experiences might not be applicable to you.
 
 
Related to this first question...if I have multiple calendars and
  they all are individual e-sources, wouldn't they sync up to the
 server
  individually?  It seems like I'd want the e-group instance to
 initiate
  syncs, and then tell the individual e-sources what was added or
  deleted.  I'm sure I'm missing something here...I just don't know
 what
  it is yet.
 
 Hmm - I'm not sure that I understand your question...
 
 
  Any help would be oh so greatly appreciated.
 
 The usual answer is that you should look in the existing backends and
 see what they do. Take a look into my Brutus backend too as it may
 illuminate the problems in a different way.
 
 Best regards,
   jules
 
 

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] Camel: Recommended way to reload folder summary?

2006-08-10 Thread Jules Colding
Hi,

This is rather unusual, but I need a good way of reloading the folder
summary from file for a CamelFolder. Any recommended utility function(s)
to do that?

Or should I just unref the summary and then use
camel_folder_summary_load()?

Thanks,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Camel unreferencing question

2006-08-25 Thread Jules Colding
On Fri, 2006-08-25 at 12:10 +0200, Philip Van Hoof wrote:
 Camel hackers,
 
 It's not clear from the gtk-doc API documentation* whether or not you
 must unreference a store after getting it using camel_session_get_store
 
 *) http://pvanhoof.be/files/libcamel-api/html/CamelSession.html

The source is:

CamelService *
camel_session_get_service_connected (CamelSession *session,
 const char *url_string,
 CamelProviderType type,
 CamelException *ex)
{
CamelService *svc;

svc = camel_session_get_service (session, url_string, type, ex);
if (svc == NULL)
return NULL;

if (svc-status != CAMEL_SERVICE_CONNECTED) {
if (camel_service_connect (svc, ex) == FALSE) {
camel_object_unref (svc);
return NULL;
}
}

return svc;
}
#define camel_session_get_store(session, url_string, ex) \
((CamelStore *) camel_session_get_service_connected (session, 
url_string, CAMEL_PROVIDER_STORE, ex))

The comment for camel_session_get_service() says that the reference
count for the service is incremented for each retrieval. This seems to
conclusively prove that you should indeed unref the store after you are
done with it.

HTH,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] Recurrence ID?

2006-10-13 Thread Jules Colding
Hi,

What is the format of the recurrence ID (const char *rid) as used in
get_object(), remove_object() and other related calendar methods?

Thanks,
  jules



___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Recurrence ID?

2006-10-18 Thread Jules Colding
On Tue, 2006-10-17 at 22:34 +0530, chenthill wrote:
 Hi Jules,
   The format of the recurrence id (datetime value) is the same as
 that is specified in rfc 2445.

OK, thanks!
  jules



 thanks, Chenthill.
 On Fri, 2006-10-13 at 14:49 +0200, Jules Colding wrote:
  Hi,
  
  What is the format of the recurrence ID (const char *rid) as used in
  get_object(), remove_object() and other related calendar methods?
  
  Thanks,
jules
  
  
  
  ___
  Evolution-hackers mailing list
  Evolution-hackers@gnome.org
  http://mail.gnome.org/mailman/listinfo/evolution-hackers

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] [PATCH] Adding execversion to evolution-shell.pc

2006-11-02 Thread Jules Colding
Hi Harish,

On Thu, 2006-11-02 at 13:50 +0530, Harish Krishnaswamy wrote:
 Jules,
 
  The change is fine to commit. Add a ChangeLog before committing this
 though and please include ChangeLogs while submitting patches in future.
 TIA.

Sure, will do.


 It is also preferred to do patch submissions on bugzilla.gnome.org
 (first choice) or at least on evolution-patches.

Will do too ;-)

Best regards,
  jules


 - Harish
 
 On Tue, 2006-10-31 at 14:47 +0100, Jules Colding wrote:
  Hi,
  
  Would anyone object to the following patch? It makes it a lot easier to
  detect the Evolution version. I don't know if anyone else has that
  problem, but I do...
  
  Please reject or accept.
  
  Thanks,
jules
  
  
  Index: evolution-shell.pc.in
  ===
  RCS file: /cvs/gnome/evolution/evolution-shell.pc.in,v
  retrieving revision 1.13
  diff -u -p -r1.13 evolution-shell.pc.in
  --- evolution-shell.pc.in   19 Aug 2006 06:30:06 -  1.13
  +++ evolution-shell.pc.in   31 Oct 2006 13:44:55 -
  @@ -14,6 +14,8 @@ [EMAIL PROTECTED]@
   [EMAIL PROTECTED]@
   [EMAIL PROTECTED]@
   
  [EMAIL PROTECTED]@
  +
   IDL_INCLUDES=-I ${idldir} @IDL_INCLUDES@
   
   Name: evolution-shell
  
  
  ___
  Evolution-hackers mailing list
  Evolution-hackers@gnome.org
  http://mail.gnome.org/mailman/listinfo/evolution-hackers

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] what's the function of RECURRENCE-ID

2006-11-15 Thread Jules Colding
On Wed, 2006-11-15 at 10:39 +0800, yanglin wrote:
  Hi,
  
 The rfc2445 has the definition of RECURRENCE-ID, and the libical
 provides the interface:
 icalcomponent_get_recurrenceid ( ).  The rid can be used in the
 function e_cal_get_object ( ) to specify the rid of the
 icalcomponent. But the libical doesn't provide example of the usage of
 RECURRENCE-ID. I'm puzzled by the functions of RECURRENCE-ID.
 Rfc2445 has provided the recurrence component properties like
 recurrence rule, recurrence date/time, Exception rule...
 These are enough to describe a repeating component.
 Can anybody give me a use case that the RECURRENCE-ID must be used?

The recurrence ID is the ID of a specific occurrence.

HTH,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] what's the f unction of RECURRENCE-ID

2006-11-15 Thread Jules Colding
On Wed, 2006-11-15 at 18:55 +0800, yanglin wrote:
  
  Yes, I got it. When an instance of an repeating event needs to be
 modified instead of the whole set of the events, the RECURRENCE-ID is
 useful. In other word,
 
  To reschedule an event to a set of explicit dates/times but not
 replace the set with a new rule pattern, the sender shuld send a set
 of components with RECURRENCE-ID being set in each to handle the
 explicit override of the rule's date/time.
  It seems that the libical doesn't provide the interface to remove an
 instance of a repeating event from the backend. Is that right?

See e-cal-backend-sync.h:L47 and e-cal.c.

HTH,
  jules





___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] CamelStreamMem == CamelStream ?

2006-11-16 Thread Jules Colding
Hi,

I'm looking for an easy way to transfer the content of a CamelStreamMem
to a CamelStream without having a duplicate of the content around. Does
anyone know a non-hackish(*) way to do that?

What I want to accomplish is to read a structure from memory into a
CamelStreamMem and then store it in a CamelDataCache.

Maybe there is a better way to do this?

Thanks,
  jules


(*) Without accessing the private buffer member.

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] Why a bitfield in CamelOfflineFolder?

2006-11-30 Thread Jules Colding
Hi,

Is this really necessary?  

struct _CamelOfflineFolder {
CamelFolder parent_object;

unsigned int sync_offline:1;
};

Wouldn't it be much better/simpler/cleaner simply to do:

struct _CamelOfflineFolder {
CamelFolder parent_object;

gboolean sync_offline;
};

??

-- 
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] How do I detect changes in the sync_offline checkbox?

2006-11-30 Thread Jules Colding
Hi,

Is there a standard way to detect whenever a user checks or un-checks
the Copy folder content locally for offline operation check box(*)
short of creating a thread to check periodically? 

A call-bak function or something like that?


Thanks,
  jules

(*) For a CamelOfflineFolder instance


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Why a bitfield in CamelOfflineFolder?

2006-11-30 Thread Jules Colding
On Thu, 2006-11-30 at 10:23 +, Ross Burton wrote:
 On Thu, 2006-11-30 at 11:07 +0100, Jules Colding wrote:
  Sorry, I must be dim-witted here, but I don't understand your answer.
  The present definition of CamelOfflineFolder has:
  
  unsigned int sync_offline:1;
   ^^== bit field 
  
  I'm asking why we don't simply do:
  
  gboolean sync_offline;
  
  instead?
 
 I'm presuming to save memory -- maybe the folder is nested in another
 struct and the compiler can compact the bitfields into a single word.
 
 However that doesn't appear to be the case so in this situation a
 gboolean would use the same amount of memory as the int:1.  I'm guessing
 this was a style choice: always use a bitfield so future boolean flags
 are compacted.

A bit over-designed (and not consequently applied to other data
structures) if I may say so...


Thanks,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Why a bitfield in CamelOfflineFolder?

2006-12-01 Thread Jules Colding
On Thu, 2006-11-30 at 12:08 -0500, Matthew Barnes wrote:
 On Thu, 2006-11-30 at 11:51 -0500, Jeffrey Stedfast wrote:
  wow, that came out totally wrong...
  
  using a single bit allows us to extend the structure with more bitfields
  w/o breaking ABI if we find we need to.
  
  it's akin to having:
  
  unsigned int sync_offline:1;
  unsigned int unused:31;
 
 I'm just curious, but what's the advantage of bitfields over just having
 an integer field called flags and defining the individual flags as
 enum values?  The latter approach has all the advantages that Jeff
 enumerated, but it also allows you to work with groups of flags at once
 (e.g. masking, copying, etc.).  Perhaps that's not relevant for this
 particular case?

As far as I see it there is no difference/advantage at all. It is just a
matter of personal coding style if you prefer to handle bit fields
instead of bit flags.

I would have preferred a bit flags, but who am I to criticize the style
of another coder if there is no factual advantage of choosing one style
over the other?

Best regards,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Why a bitfield in CamelOfflineFolder?

2006-12-02 Thread Jules Colding
On Fri, 2006-12-01 at 10:18 -0500, David Malcolm wrote:
 On Fri, 2006-12-01 at 11:39 +0100, Jules Colding wrote:
  On Thu, 2006-11-30 at 12:08 -0500, Matthew Barnes wrote:
   On Thu, 2006-11-30 at 11:51 -0500, Jeffrey Stedfast wrote:
wow, that came out totally wrong...

using a single bit allows us to extend the structure with more bitfields
w/o breaking ABI if we find we need to.

it's akin to having:

unsigned int sync_offline:1;
unsigned int unused:31;
   
   I'm just curious, but what's the advantage of bitfields over just having
   an integer field called flags and defining the individual flags as
   enum values?  The latter approach has all the advantages that Jeff
   enumerated, but it also allows you to work with groups of flags at once
   (e.g. masking, copying, etc.).  Perhaps that's not relevant for this
   particular case?
  
  As far as I see it there is no difference/advantage at all. It is just a
  matter of personal coding style if you prefer to handle bit fields
  instead of bit flags.
  
  I would have preferred a bit flags, but who am I to criticize the style
  of another coder if there is no factual advantage of choosing one style
  over the other?
  
 A debugger has a chance of deciphering single-bit fields, whereas if you
 do it with #defined masks on a plain uint32, it (probably) can't.


Hmm... good point. At least it seems easier to read while debugging when
you are presented with a name instead of just a plain uint that you must
decipher in your head. So the difference points down to a matter of what
is easier to read when things go south. 

Thanks,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Visual indication of online/offline?

2006-12-07 Thread Jules Colding
Hi Srini,


On Wed, 2006-12-06 at 17:20 +, Srinivasa Ragavan wrote:
 Hey Jules,
 
 I have some plans on the intrusive error dialogs stuff. I dont think I
 can work on the current release time frame. May be post 2.10 is what I'm
 looking at. Basically cancel-able should be tasks, with a 'x' button in
 the status bar. If any errors occur, a '!' next to the status bar text
 and a visual cue to indicate error, which user can click and see the
 respective errors. The user can choose to  see or cancel all
 tasks/errors and no more intrusive popups. All background/foreground
 tasks will have a visible entry in the status bar. This is an initial
 idea I had, but Im sure, there could be lots of improvements to it. 

Sounds like a good way to do it. Please tell me when you have something
that I can test so that I can give you some constructive feedback.


 The idea of having a visual indication at the store level is good. This
 idea will also add more value if we can have store level online/offline
 state. 

Exactly. I've recently put a great deal of work into getting
evolution-brutus to handle various offline situations gracefully and it
is really annoying to see the Sorry the folder is offline popup every
time I click on an offline folder. 

Please do remember that there are tree kinds of offline mode at the
store level:

1) A store level version of the current offline mode. This mode
basically say Please do not attempt to pull mail from the server,
thanks. It is therefore not an error but merely a user request. The
present implementation lack the ability to put the store in real offline
mode. All it does, as far as I can see, is to disable the periodic mail
check. Which lead us to:

2) A store level voluntary offline mode. This is more than the current
offline state. A user requesting to be put in voluntary offline mode
knows that he will be truly offline. This could be a user which is about
to disconnect his laptop. This is therefore not an error condition
either.

3) A store level hard offline mode. This mode indicates that the
provider can't communicate flawlessly (if at all) with the remote
server. It might be down or something. It is therefore a true error
condition.

1), 2) and 3) should therefore be signalled differently to the user. The
user will have to deal with 2) or 3) every time he clicks on a voluntary
or hard offline folder.  It is therefore not always convenient to throw
an exception (with will show a popup window) each and every time. I will
propose the following scheme:

Voluntary offline
-

   The user can choose to go into voluntary offline mode. This mode is
not an error condition, so it should not be signalled as one. The store
and all of its folder should look like a disabled UI element, like a
disabled button.

Hard offline

   The store is technically incapable of communication with the remote
server. This is a true error condition and should therefore promptly be
presented to the user with a popup windows (CamelException) the first
time the error is encountered. No other popup windows should be shown in
subsequent store operations, but the store should make it very clear
that the error persists by showing some dramatic visual indication of
the error. The store might be blinking in bright red or something. The
user can choose to put the store in voluntary offline mode while his
admin fixes the problem.

Much of the above is store level implementation tasks, but the ability
to do the proposed signaling to the user is something that must be
supported by up-source e-d-s code.


Best regards,
  jules
 


 -Srini.
 
 On Wed, 2006-12-06 at 12:06 +0100, Jules Colding wrote:
  Hi,
  
  Is there any way to signal a visual indication that a specific
  CamelStore is offline? I'm thinking that making the account blink in
  bright red or maybe just a little store specific offline icon next to
  the account in the side bar would be much better than a CamelException.
  
  An exception is presented as an error to the user in a popup window. I
  would rather like to gently show a warning to the user. A popup is
  really disturbing...
  
  
  Thanks,
jules
  
  
  ___
  Evolution-hackers mailing list
  Evolution-hackers@gnome.org
  http://mail.gnome.org/mailman/listinfo/evolution-hackers

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] camel_operation_cancel_check() not working?

2006-12-07 Thread Jules Colding
Hi,

I have a big and potentially slow loop running when updating the folder
summaries. I'm basically initializing a CamelOperation like this:


CamelOperation *cop = camel_operation_registered();
if (!cop) {
cop = camel_operation_new (NULL, NULL);
if (!cop) 
return;

camel_operation_register(cop);
cop_unreg = TRUE;
}
camel_operation_start(cop, _(Fetching folder summary information));
camel_operation_progress(cop, 0);


Then in the loop I do like this:

do {
if (camel_operation_cancel_check(cop)) {
d(Cancelled);
camel_exception_set(ex,
CAMEL_EXCEPTION_USER_CANCEL,
_(Fetching folder summary information 
canceled));
goto cancelled;
}
do lots of stuff
cancelled:
camel_operation_progress(cop, 100);
camel_operation_end(cop);
if (cop_unreg)
camel_operation_unregister(cop);
camel_operation_unref(cop);
break;
} while (TRUE);

Now I expect that I'm able to press cancel after pressing f9 and have my
loop exit gracefully. 

In what way do I err?

Thanks,
  jules




___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] camel_operation_cancel_check() not working?

2006-12-07 Thread Jules Colding
On Thu, 2006-12-07 at 13:13 +0100, Jules Colding wrote:
 Now I expect that I'm able to press cancel after pressing f9 and have my
 loop exit gracefully. 

OK, I've discovered that if I press the big red Cancel button in the
Toolbar then it works, but not if I press the small Cancel button(s)
in the Send  Receive Mail popup window.

Also - The Send  Receive Mail progress bar does not progress even if
I see the progress count progress steadily from 0% to 100% in the
Status Bar.

What is going on here?

Thanks,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Removal of implementation details from public API, any breakages?

2007-05-21 Thread Jules Colding
On Sun, 2007-05-20 at 11:29 +0100, Ross Burton wrote:
 Hi,
 
 Last week I committed a patch to libebook, and want to commit a patch to
 libecal[1], which removes private functions and types from the installed
 headers.  This has several consequences:
 
 - e_cal_view_new() is removed
 - ECalListener is removed
 - ECalViewListener is removed
 
 I believe that nobody is using these functions apart from libecal
 itself, so this removal is safe.  However, I'd appreciate it if anyone
 writing advanced clients to EDS (like Zimbra or Brutas) remove their
 currently installed headers, apply the patch, and rebuild.

Brutus is safe.

Thanks for the notice,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Error dialogs in evolution data server plugin

2007-06-21 Thread Jules Colding
On Wed, 2007-06-20 at 14:10 -0700, Scott Herscher wrote:
 Thanks Jules!  Appreciate the help.

No problem ;-) 

Please just look at my source before you spend any time on coding your
own helper. I've made it identical to the official Evolution password
dialog so that it should fit into the overall design.

Best regards,
  jules


 Scott
 
 On Jun 20, 2007, at 12:29 AM, Jules Colding wrote:
 
  On Tue, 2007-06-19 at 16:59 -0700, Scott Herscher wrote:
  Okay, hopefully this will be my last question of the day. I'd like to
  throw up a dialog box in my Zimbra Connector for Evolution when a
  server's SSL certificate is bad. I was going down the path of using
  gtk_message_dialog_new(...), but it doesn't seem to be working.
 
  So I have two questions:
 
  1) Is there a better way of notifying the user of SSL certificate
  problems than using gtk_message_dialog_new?
 
  I've had the same problem in e-b when trying to get input (passwords)
  from the user. I ended up coding a separate helper application that
  displayed the dialog.
 
  No other way to do it I'm afraid...
 
  HTH,
jules
 
 

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] [Evolution] Debug enhancements for evo

2007-09-06 Thread Jules Colding
On Wed, 2007-09-05 at 16:05 -0400, Matthew Barnes wrote:
 On Wed, 2007-09-05 at 15:03 -0400, Paul Smith wrote:
  It seems that Evo is using a standard library (glib maybe?) to provide
  debug/logging facilities.  Is there any way to either resolve these
  issues in Evo itself, or else get them resolved by whomever manages the
  libraries?
 
 I don't have an answer to your immediate question but I have thought
 about Evolution's debug/logging facilities a bit.
 
 A lot of good debugging information is disabled in the released tarballs
 using this technique:
 
#define d(x)
 
...
 
d(printf (Useful debugging info...));
 
 A developer or interested hacker then has to redefine d as
 
#define d(x) x
 
 and recompile to unlock those debug messages.
 
 The problem with this is there's no central logging mechanism that all
 the messages flow through, so adding a timestamp as you suggested (and
 an excellent suggestion it is) would require changing all the messages
 individually.
 
 Instead, we should better utilize GLib's logging features.  For
 starters, change all debug messages over to
 
g_debug (Useful debugging info...);
 
 and give each Makefile.am a unique G_LOG_DOMAIN.
 
 Then register a handler function for all DEBUG-level messages.
 Depending on whether a DEBUG message's log domain is turned on or off
 (off by default), the handler function could time-stamp and print the
 message or silently eat it, respectively.
 
 Log domains could be turned on perhaps by way of an environment variable
 (and/or make the --debug option actually do something useful):
 
EVO_DEBUG=colon:separated:list:of:logging:domains
 
 There's a lot we could do here.  These are just a few ideas.  Something
 to shoot for in Evolution 2.14, perhaps?
 
 Further discussion should be moved to evolution-hackers.

Hereby moved. Maybe something like what I do in e-b could be used or
maybe inspire evo debugging...

I've had many of the same problems that Paul describes. One of the most
annoying ones was that I had to start evolution and e-d-s in separate
terminals to get debugging output from both. 

My solution was to write a small log daemon and then use a combination
of macros and utility functions to write to the log daemon.

The result can be seen if you download this tarball:

http://www.omesc.com/sites/default/files/downloads/dist/evolution-brutus/SOURCES/evolution-brutus-1.1.29.8.tar.gz

and inspect the log sub-directory as well as 'server/brutus.h' and
'server/brutus_debug.c'. All logging happens conditionally depending on
whether the BRUTUS_DEBUG environment variable is defined and whether or
not debugging has been enabled at compile time. Timestamps are on or off
depending on yet another environment variable.

HTH,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] SVN issues

2007-09-21 Thread Jules Colding
On Fri, 2007-09-21 at 13:10 +0530, Veerapuram Varadhan wrote:
 On Fri, 2007-09-21 at 09:18 +0200, Jules Colding wrote:
  On Thu, 2007-09-20 at 15:43 -0400, Paul Smith wrote:
   Hi all;
   
   I'm not an evolution developer but I'm trying to understand the way the
   project uses subversion.  I have some questions, especially now that
   there's been a release of 2.12:
   
 * Shouldn't there be a gnome-2-20 branch on evolution-webcal?
   there may be other Evo modules that don't have the right branch.
 * I notice that the versions of the code that I'm building still
   say 2.11.92, rather than 2.12, but I thought that 2.12 was
   officially released?  I don't see anything on the gnome-2-20
   branch that changes the version number, which is where you'd
   expect it to be.
 * Are we adding tags to the code to denote the release?  I don't
   see any tags that seem to be related to this release.
  
  I can only join you in your puzzlement. The following are excepts from
  configure.in and shell/Makefile.am:
  
  configure.in:
  AC_INIT(evolution, 2.11.92, 
  http://bugzilla.gnome.org/enter_bug.cgi?product=Evolution)
  
  
  shell/Makefile.am:
  noinst_PROGRAMS = evolution
  
  install-exec-local: install-evolution
  $(mkinstalldirs) $(DESTDIR)$(libexecdir)
  mv $(DESTDIR)$(bindir)/evolution-$(BASE_VERSION) 
  $(DESTDIR)$(libexecdir)/evolution-$(BASE_VERSION)
  $(INSTALL_PROGRAM) evolution-nognome 
  $(DESTDIR)$(bindir)/evolution-$(BASE_VERSION)
  
  
  These tree excerpts alone makes me believe that
  svn.gnome.org/svn/evolution/trunk isn't the primary repository that
  the Novell developers checks their source into...
  
 Certain instances make us believe somethings to be true, but, they are
 necessarily not.  
 
  puzzled,
 
 When kisses and misses happen, they leave us puzzled. ;-)

;-)


 Will be fixed shortly and thanks for bringing it out. 

Thanks,
  jules



___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Evo svn head requires libgtkhtml-3.14 = 3.16.0' but gtkhtml svn head is Version: 3.15.92

2007-09-25 Thread Jules Colding
On Tue, 2007-09-25 at 08:23 -0400, Matthew Barnes wrote:
 On Tue, 2007-09-25 at 12:11 +0530, Srinivasa Ragavan wrote:
  This also would do. But normally we would bump it during the next dot
  release. Anyways is fine IMO.
 
 Hi Srini,
 
 I think we still have a misunderstanding here.  The latest revision of
 Subversion trunk still has the version in configure.in at 3.15.92 and
 the latest ChangeLog entry is:
 
 2007-09-03  Srinivasa Ragavan  [EMAIL PROTECTED]
 
 ** GtkHTML 3.15.92 release
 
 * NEWS, configure.in:
 
 But the latest ChangeLog entry in the 3.16.0 tarball is:
 
 2007-09-17  Srinivasa Ragavan  [EMAIL PROTECTED]
 
 ** GtkHTML 3.16.0 release
 
 * NEWS:
 * configure.in:
 
 So it looks like at least the ChangeLog, NEWS, and configure.in changes
 prior to the 3.16.0 tarball upload were never committed.

Which, BTW, is still the case for evolution (version 2.11.92 in svn) and
e-d-s (version 1.11.92 in svn). The changes up to and including x.12.0
must still be on someones disk.

Please commit.

Thanks,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Evo svn head requires libgtkhtml-3.14 = 3.16.0' but gtkhtml svn head is Version: 3.15.92

2007-09-26 Thread Jules Colding
On Wed, 2007-09-26 at 10:07 +0530, Srinivasa Ragavan wrote:
 On Tue, 2007-09-25 at 14:34 +0200, Jules Colding wrote:
  On Tue, 2007-09-25 at 08:23 -0400, Matthew Barnes wrote:
   On Tue, 2007-09-25 at 12:11 +0530, Srinivasa Ragavan wrote:
This also would do. But normally we would bump it during the next dot
release. Anyways is fine IMO.
   
   Hi Srini,
   
   I think we still have a misunderstanding here.  The latest revision of
   Subversion trunk still has the version in configure.in at 3.15.92 and
   the latest ChangeLog entry is:
   
   2007-09-03  Srinivasa Ragavan  [EMAIL PROTECTED]
   
   ** GtkHTML 3.15.92 release
   
   * NEWS, configure.in:
   
   But the latest ChangeLog entry in the 3.16.0 tarball is:
   
   2007-09-17  Srinivasa Ragavan  [EMAIL PROTECTED]
   
   ** GtkHTML 3.16.0 release
   
   * NEWS:
   * configure.in:
   
   So it looks like at least the ChangeLog, NEWS, and configure.in changes
   prior to the 3.16.0 tarball upload were never committed.
  
  Which, BTW, is still the case for evolution (version 2.11.92 in svn) and
  e-d-s (version 1.11.92 in svn). The changes up to and including x.12.0
  must still be on someones disk.
 
 It is there in gnome-2-20 branch as well. It isn't there in trunk. 

So the gnome-2-20 branch is further along than trunk?

-- 
  jules



___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] New version of the Evo SVN Makefile

2007-10-03 Thread Jules Colding
On Tue, 2007-10-02 at 18:42 -0400, Paul Smith wrote:
 Hi all;
 
 I just uploaded a new version of my Makefile to build Evo from SVN.
 This version allows for building the current SVN trunk HEAD (up until
 today I was building on the 2.20 branch).

Really excellent I must say.

Thanks,
  jules


 Thanks to Reid Thompson for pointing out that gnome-icon-theme is now
 necessary for the build.  I also added a package prerequisite on the
 icon-naming-utils package, which is needed to build gnome-icon-theme.
 
 One potentially odd thing: gnome-icon-theme adds its pkgconfig info into
 $prefix/share/pkgconfig instead of $prefix/lib/pkgconfig like all the
 other packages; is this correct?  Maybe because the icon-theme package
 contains no architecture-specific content?
 
 
 Anyway, if you want a simple way to build Evo from SVN without
 rebuilding all of Gnome (as with GARNOME), give it a whirl!
 
 http://mad-scientist.us/evolution.html
 

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] EBook query string format?

2007-10-04 Thread Jules Colding
Hi,

Does anyone know the format of the query string in EBook functions such
as e_book_backend_db_cache_get_contacts()? 

Naturally I can start digesting e-book-backend-sexp.c but I would
rather not...

Thanks,
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Exchange MAPI Connector

2007-10-23 Thread Jules Colding
On Tue, 2007-10-23 at 12:07 +0530, Srinivasa Ragavan wrote:
 Hello everyone,
 
 For Evolution 2.22 we should be having MAPI based Exchange connector
 which developed in parallel with Openchange based libmapi. The team is
 currently working on that and the code is currently maintianed at GNOME
 SVN in EXCHANGE_MAPI_BRANCH (both for evolution and
 evolution-data-server)
 
 http://svn.gnome.org/viewvc/evolution/branches/EXCHANGE_MAPI_BRANCH/
 http://svn.gnome.org/viewvc/evolution-data-server/branches/EXCHANGE_MAPI_BRANCH/
 
 I created the branch yesterday and we committed our week long effort
 there. We now have a working account setup plugin, base camel/calendar
 code and a partially working addressbook impl. Things should get to a
 working shape in another week or two. I hope that soon, Johnny would be
 able to create a OpenSUSE Build Service repository (rpms for OpenSUSE,
 Fedora, Ubuntu and few more) for Evolution and its dependencies so that
 users can install the rpms and get a feel of it even before the
 release. 

Does this mean that evo + e-d-s will go GPLv3?

-- 
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Exchange MAPI Connector

2007-10-23 Thread Jules Colding
On Tue, 2007-10-23 at 13:55 +0530, Srinivasa Ragavan wrote:
 On Tue, 2007-10-23 at 09:53 +0200, Frederic Crozat wrote:
  Le mardi 23 octobre 2007 à 13:01 +0530, Srinivasa Ragavan a écrit :
   On Tue, 2007-10-23 at 09:19 +0200, Jules Colding wrote:
On Tue, 2007-10-23 at 12:07 +0530, Srinivasa Ragavan wrote:
 Hello everyone,
 
 For Evolution 2.22 we should be having MAPI based Exchange connector
 which developed in parallel with Openchange based libmapi. The team is
 currently working on that and the code is currently maintianed at 
 GNOME
 SVN in EXCHANGE_MAPI_BRANCH (both for evolution and
 evolution-data-server)
 
 http://svn.gnome.org/viewvc/evolution/branches/EXCHANGE_MAPI_BRANCH/
 http://svn.gnome.org/viewvc/evolution-data-server/branches/EXCHANGE_MAPI_BRANCH/
 
 I created the branch yesterday and we committed our week long effort
 there. We now have a working account setup plugin, base camel/calendar
 code and a partially working addressbook impl. Things should get to a
 working shape in another week or two. I hope that soon, Johnny would 
 be
 able to create a OpenSUSE Build Service repository (rpms for OpenSUSE,
 Fedora, Ubuntu and few more) for Evolution and its dependencies so 
 that
 users can install the rpms and get a feel of it even before the
 release. 

Does this mean that evo + e-d-s will go GPLv3?
   
   Jules, as I replied in a previous email thread, Im working with Novell
   legal team to modify the license to either GPLV2 or later or
   dual-license Evolution/EDS under GPLv2 and GPLv3. I dont have yet
   received the final nod. But the mapi providers/plugins are developed
   under GPLv3 which can be a issue now, but may not be after the license
   change.
  
  Well, it will be also a problem for other applications linking with
  e-d-s libraries.
 
 Since EDS is LGPLv2, it may not have much issues. IIRC when Harish moved
 EDS from GPL to LGPL, he made it LGPLv2 or later. (I'm not a licensing
 expert. Just posting from what we had discussed sometime back on e-h
 list).

Generally it is a mess down there in the eds source license wise. Many
files are LGPLv2 some are LGPLv2+ and many doesn't even have a license
notice.

Some samples:

LGPLv2 only: 
http://svn.gnome.org/viewvc/evolution-data-server/branches/EXCHANGE_MAPI_BRANCH/addressbook/libebook/e-contact.c?revision=8126view=markup

LGPLv2+:
http://svn.gnome.org/viewvc/evolution-data-server/branches/EXCHANGE_MAPI_BRANCH/camel/camel-certdb.c?revision=8126view=markup

No license header:
http://svn.gnome.org/viewvc/evolution-data-server/branches/EXCHANGE_MAPI_BRANCH/addressbook/idl/Evolution-DataServer-Addressbook.idl?revision=8126view=markup


-- 
  jules


___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] e-book-backend-db-cache.[ch] - clearing?

2007-11-20 Thread Jules Colding
Hi,

Is there any way to unconditionally clear an e-book-backend-db cache
from all of its content?

One could get all EContacts from the db and clear them one by one, but
that seems rather inelegant...

 
Thanks,
  jules

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


  1   2   >