2003-07-02    <ginxd@btopenworld.com>

	* src/gj_roster.c: added member to roster item to know if the item
	is about to be deleted.  this is used to know not to add roster
	items when receiving presence if the item is about to cease to exist.

	* src/gj_gtk_register_service.c
	(gj_gtk_rs_registration_requirements_response): tidyed up the code
	in this module.

	* src/gj_gtk_event_viewer.c (gj_gtk_ev_model_populate_columns):
	moved the event viewer columns round.

	* src/gj_gtk_subscription_request.c: added this module for the
	first time. this module is the same as the
	roster_subscribe_contact module that used to exist, except this
	handles multiple requests at the same time.

2003-07-01    <ginxd@btopenworld.com>

	* src/gj_gtk_user_information.c (gj_gtk_ui_load): added bells and
	whistles (images) to add some colour to the dialog.

	* src/gj_gtk_my_information.c (gj_gtk_mi_set): added nickname
	support and also made the dialog slightly shorter in height.

2003-06-28  Martyn  <ginxd@btopenworld.com>

	* src/gj_gtk_roster.c (gj_gtk_roster_event_proc): removed the
	status bar update when users presence changes.
	(gj_gtk_roster_autoaway_update): fixed problem with auto away not
	working because it was using the gtk mpf options not the config
	options... 

	* src/gj_roster.c: added a function to get all items from an agent
	jid.

	* src/gj_gtk_register_service.c: improved this so it now reports
	back errors from the request.

	* src/gj_registration.c (registrationResponse): improved this to
	return errors now back to the callback.

	* src/gj_gtk_event_viewer.c: tarted up the event viewer.  now it
	looks much better with stock icons for the type of message
	(info, error, etc...) and the first column is now a friendly name
	instead of the JID which looked a little messy.  JID is available
	as an option.

2003-06-26  Martyn  <ginxd@btopenworld.com>

	* src/gj_gtk_first_time_run.c: added this for the first time.
	this is basically a little introduction about the current status
	of the application.

	* src/gj_gtk_add_contact.c: added extra page with contact details
	so the user can confirm it is the correct person they are adding
	to their roster.

	* src/gj_parser.c: changed all find functions to be case
	insensitive. 

2003-06-24  Martyn  <ginxd@btopenworld.com>

	* src/gj_gtk_group_message.c: this now works. could be improved by
	checking if there is anyone selected to send the message to before
	highlighting the "send" button. 

	* src/gj_gtk_chat.c (gj_gtk_cw_new): fixed problem which meant
	chat window wasnt set up correctly because it couldnt find roster
	item by jid WITH a resource. now checks for it without the
	resource to. 

2003-06-23  Martyn  <ginxd@btopenworld.com>

	* src/gj_gtk_roster.c: added rename option to the user and agent menus.

	* src/gj_gtk_add_contact.c (gj_gtk_ac_page_action): improved the
	way the name is obtained. it doesnt include the hotmail.com bit or
	the %msn.jabber.org bit either.

	* src/gj_gtk_send_message.c: added this module for the first time.

	* src/gj_gtk_add_contact.c: moved group editing interface to be
	the same as the "edit groups..." dialog.

	* src/gj_gtk_roster.c (gj_gtk_roster_model_add_contact): fixed
	this.  if i was a adding a new contact, the roster item was not
	permanant and had a subscription of none which meant it was put
	into the "unknown contacts" group which it shouldnt have been.

2003-06-22  Martyn  <ginxd@btopenworld.com>

	* src/gj_gtk_rename_group.c: added this module for the first
	time. this is simply here to allow editing of the name of the
	group.  there is small bug if the group has members which belong
	to multiple groups that needs fixing.

	* src/gj_roster.h: updated the roster module to allow deleting
	from the groups the contact belongs to.

	* src/gj_gtk_user_information.c: fixed a few problems with this,
	mainly since making the dialog hig compatible and not using frames
	any more.  one or two of the frames where used to be sensitive or
	not depending on supported services.

	* src/gj_gtk_edit_groups.c (gj_gtk_eg_load): renamed the old
	roster_group_edit module to edit groups module.  also slightly
	modified it so the user can not remove groups.  and the groups are
	not edited in the list widget, they are only added or selected in
	this window now.  the window can be renamed independantly now.

	* src/gj_gtk_group_message.c: added this module for the first time.

2003-06-16  Martyn  <ginxd@btopenworld.com>

	* src/gj_connection.c (gj_connection_connect_cb): fixed a small
	problem. basically, the tcp mode was set to GNET_TOS_RELIABILITY.
	this was causing problems on certain servers, for some reason.  i
	will file the bug with the gnet guys.

2003-06-08  Martyn  <ginxd@btopenworld.com>

	* src/gj_gtk_my_preferences.c (gj_gtk_mpf_get): added a message
	and changed the default action to continue if a config read
	fails.  the reason for this is that when the application is
	started for the first time, we want to ignore the failure because
	the file does not exist and still read the variables which have
	been set anyway.  when the preferences are saved this will be fine.

2003-05-31  Martyn  <ginxd@btopenworld.com>

	* src/gj_agents.c (agentListResponse): this now supports error
	code/messages when responding with the list of agents.

	* src/gj_gtk_browse_services.c (gj_gtk_bs_agent_list_response):
	improved the interface with glade.  more information is shown in
	the list about each agent.  there is also now a timeout progress
	bar for each request.

2003-05-30  Martyn  <ginxd@btopenworld.com>

	* src/gj_gtk_add_contact.c: spent a lot of time on the glade file,
	but also added checks at each page of the wizard and created
	member functions for structure access to private data.  this is
	looking a lot better, but needs more work especially in the adding
	contacts by transports area.

	* TODO: added this for the first time.

2003-05-29  Martyn  <ginxd@btopenworld.com>

	* src/gj_gtk_browse_services.c (gj_gtk_bs_model_populate_columns):
	changed the "are we registered" image to a boolean entry in the list.

	* src/gj_gtk_my_preferences.c: added support for the preference
	"use docklet".  it was half complete, now it works fully.

2003-05-18  Martyn  <ginxd@btopenworld.com>

	* src/gj_gtk_add_contact.c: changed the name of this module and
	updated the glade file to bring the gui together... protocols are
	now agents.

2003-05-17  Martyn  <ginxd@btopenworld.com>

	* src/gj_gtk_roster_contacts_add.c: improved the model and tree
	view handling code in this module.  it was a little dated.

	also, changed the "Add By Protocol" option.  now it lists only
	services which the user is already registered with.  so if they
	want msn and they are not registered with it, they will have to
	browse services and register the one they want.

	* src/gj_gtk_roster.c (gj_gtk_roster_load): icon is now loaded
	when the window is loaded. previously glade did this for me, but
	the images are not in the same location as the executable when it
	is deployed into {prefix}/pkgdatadir. (usually
	/usr/local/share/gnome-jabber). 

2003-05-17  Martyn Russell  <ginxd@btopenworld.com>

	* src/gj_gtk_headline.c (gj_gtk_hw_find_by_jid_len):  add this
	function for the time being.  this is bad, basically if i can not
	find by jid, i use this function.  the problem is, if the jid is
	msn.jabber.org first time and then the next message is
	msn.jabber.org/registered, then i do not find the window.  i need
	to somehow improve this.

2003-05-15  Martyn Russell  <ginxd@btopenworld.com>

	* src/gj_gtk_first_time_run.c: made a start at this.  this is no
	where near complete.  the idea is that this will be used to
	introduce new comers to the application and get them set up easily.

	* src/gj_main.c: improved this to check for all REQUIRED files to
	run the application, this also is used to determin if there is a
	config file / and config directory ("~/.gnome-jabber") which is
	required. if not, they are created.

	* src/gnome-jabber.glade: MAJOR changes to the interface (still
	not finished).  bringing UI inline with the gnome HIG.

	* src/gj_config_handler.c (gj_config_handler_write_string): fixed
	a problem which occured when saving with an empty entry box.  the
	config file would save the value back as "(null)".

2003-05-14  Martyn Russell  <ginxd@btopenworld.com>

	* src/gj_main.c (gnome_jabber_first_time_check): made a start at
	doing a "first time run" approach to the application.  now it
	checks for directories and files it needs.  still not finished.

2003-05-14  Martyn Russell  <ginxd@btopenworld.com>

	* src/gj_gtk_password_change.c (gj_gtk_pc_load): modified this to
	be more simple looking and changed the name from
	"connection_password_change" to "password_change".

2003-05-14  Martyn Russell  <ginxd@btopenworld.com>

	* src/gj_gtk_connection_progress.c (gj_gtk_cp_state_handle_idle):
	added a timeout at the connecting stage so the user knows the
	application has not crashed IF the connection takes a while to
	make.  This generally should not be the case, and would be
	recognised mainly when the address to connect to is incorrect in
	someway OR the server is not there.

2003-05-11  Martyn Russell  <ginxd@btopenworld.com>

	* src/gj_gtk_event_viewer.c: added this for the first time, not
	yet working though.
	(gj_gtk_ev_model_populate_columns): improved it a little, has the
	basic information in there, but the formatting needs to be updated.

	* src/gj_gtk_chat.c (gj_gtk_cw_send_set): improved this to add the
	thread when replying.
	(gj_gtk_cw_notification_new): added the composing icon to be shown
	when a message window is created and the composing event was
	present in the message.  testing this mainly with MSN is a pain in
	the arse! - MSN messenger seems to send the SAME id for the
	xevents EVERY time, and it appears to be the thread of the
	conversation which should be different.  also, when taking focus
	of MSN messenger OR closing the window the application does not
	notify my client that they are no longer composing, either they
	don't bother or i need to figure out how to trigger it.

	* src/gj_connection.c (gj_connection_connect_cb): improved this to
	use a different callback on error.  currently there is an issue
	with using an invalid port.  i tried jabber.org.uk with 5003 and
	it connected ok, but when sending the opening stream information,
	the connection was cut.  this was not reflected up and needs to be.

	* src/gj_stream.c: added error support for the connection. this is
	good and will inform higher up if there is a connection issue.

	* src/gj_gtk_connection_progress.c: improved this some more. this
	now has a local copy of the server, user, pass, etc and does not
	constantly relate back to the connection settings.

	also, improved it to support errors better than before.

2003-05-10  Martyn Russell  <ginxd@btopenworld.com>

	* src/gj_gtk_connection_settings.c: fixed problems caused by
	connection progress changes made in other modules.

	* configure.in: updated to use gnet-2.0 instead of gnet-1.3

2003-05-09  Martyn Russell  <ginxd@btopenworld.com>

	* src/gj_stream.c (streamConnected): this needs improving,
	currently if there is a gnet error with the tcp address, this is
	not echoed up to the gui.

	* src/gj_connection.c (gj_connection_destroy): fixed problem which
	meant stream was disconnected, cb was triggered, then the stream
	was freed, which meant the connection was freed which tried to
	disconnect the socket before freeing it, RE-TRIGGERING the
	disconnected callback causing a warning.

	* src/gj_gtk_connection_progress.c: tried to improve this module,
	there is currently a bug where the you disconnect and reconnect,
	and the dialog does not come up, because it is still loaded
	somewhere?? 

	* src/gj_gtk_chat.c (gj_gtk_cw_send_new): added fix that meant
	multiple chat windows could be used to talk to the same person.

2003-04-26  Martyn Russell  <ginxd@btopenworld.com>

	* src/gj_gtk_register_service.c: improved this module's ui
	slightly... still needs a lot of work.

	* src/gj_gtk_browse_services.c: improved this module's ui
	slightly... still needs a lot of work.

2003-04-25  Martyn Russell  <ginxd@btopenworld.com>

	* images/Makefile.in: improvements so that now images load
	correctly when installed, and glade file is in position.

	* src/gj_gtk_roster.c (gj_gtk_roster_model_remove_contact): fixed
	a nasty bug which meant removing the last item continued in for
	loop because valid was TRUE.  valid is returned by the
	store_remove function and wasnt being used to know if the next
	item the iter pointed to was valid. 

2003-04-24  Martyn Russell  <ginxd@btopenworld.com>

	* src/gj_main.c: added #ifdef HAVE_CONFIG_H then #include
	"config.h" into all the files that depend on definitions from it.

	* src/gj_gtk_docklet.c (gj_gtk_docklet_load): added the docklet
	for the first time.

2003-04-23  Martyn Russell  <ginxd@btopenworld.com>

	* src/gj_gtk_roster.c (gj_gtk_roster_setup): got the presence menu
	working!

2003-04-20  Martyn Russell  <ginxd@btopenworld.com>

	* gj_gtk_roster.c (gj_gtk_roster_model_remove_contact): fixed
	another minor bug.  when calling gtk_tree_store_remove, the iter
	is set to the next item, the code was using a for loop which
	automatically went to the next item on each loop.  this caused the
	next item to be missed after the one that was removed.
	(gj_gtk_roster_generate_mnu_user): changed the way the menus work.
	I was using GtkItemFactory and found it was quite limited with the
	user images - ok with stock images, but the fact that a gdkpixdata
	was needed to add a user specific image I thought was a little
	over the top, the API should be simpler than that.

2003-04-19  Martyn Russell  <ginxd@btopenworld.com>

	* gj_gtk_roster_groups.c (gj_gtk_rg_save): changed this so that
	the JID that is associated with the rosterItem is used, this NOW
	includes the resource, before it didnt and this caused problems.

	* gj_roster.c: SERIOUSLY improved this in places, such as getting
	the agent without the resource included in it.

	* gj_gtk_roster.c: SERIOUSLY changed the way the roster model add and remove
	functions work.  now they take into consideration the "hide
	offline group" preference.
	(gj_gtk_roster_model_add_contact_offline): added the group in the
	name for offline contacts...
	(gj_gtk_roster_timeout_function): improved this. was passing the
	pointer to the rosterItem but thought this was a bad idea, instead
	each roster item has a unique ID and that id is passed - much
	safer way of doing it.
	(gj_gtk_roster_set_message): this now sets the message for ALL
	jids which the message corresponds to instead of just the first one.

2003-04-18  Martyn Russell  <ginxd@btopenworld.com>

	* gj_gtk_user_information.c: fixed a serious flaw in the user
	information dialog. if the window was closed before ALL responses
	were received it crashed.

2003-04-17  Martyn Russell  <ginxd@btopenworld.com>

	* gj_gtk_browse_services.c (gj_gtk_bs_setup): added more servers
	(from jabber.org).

2003-04-16  Martyn Russell  <ginxd@btopenworld.com>

	* gj_gtk_register_new.c: added more to this, now has more visual
	checks on information being passed.

	* gj_gtk_user_information.c (gj_gtk_ui_load): added more
	information - such as if the user is actually on the roster or
	just temporary (like when receiving messages from unknown people).

2003-04-15  Martyn Russell  <ginxd@btopenworld.com>

	* gj_gtk_roster_contacts_add.c: added to the load function to
	allow a JID to be passed.  This way the wizard can jump to the
	next step because it is known already.  this is used primarily for
	adding contacts which are requesting subscription and the "add to
	roster" checkbutton is checked when clicking "allow".

	* gj_gtk_roster_contacts_subscribe.c: improved this to allow
	adding contacts, the add contact dialog now loads if the checkbox
	is clicked when "allow" is pressed. 

	* gj_roster.c (rosterItemFindByJIDWithoutResource): improved this
	so that both the jid supplied AND the roster id JID were checked
	for the resource.

2003-04-14  Martyn Russell  <ginxd@btopenworld.com>

	* gj_gtk_browse_services.c: continued to improve this.  it is
	almost done, now it starts up the register service dialog and
	*should* unregister, but this has not yet been tested.

	* gj_gtk_register_service.c: more improvements.  doesnt yet
	register the services because the iq and iq_request modules do not
	currently support it.

2003-04-14  Martyn Russell  <ginxd@btopenworld.com>

	* gj_gtk_browse_services.c: added this for the first time.

2003-04-13  Martyn Russell  <ginxd@btopenworld.com>

	* gj_registration.c: added registration and the glade windows
	related to that browsing services.  still not finished.

	* gj_parser.c (parseFindByNs): If not found at current depth, then
	recursivly got no where.  Instead, node->next should have been
	tested first.

2003-04-11  Martyn Russell  <ginxd@btopenworld.com>

	* gj_history.c: changed file names and the path is based on a
	config option.  also there is now an option NOT to log conversations.

	* common.h: added some extra config (history location).

2003-04-10  Martyn Russell  <ginxd@btopenworld.com>

	* gj_gtk_roster_groups.c: improved the interface and the whole way
	the model is handled.  it works a lot better.  noticed ANOTHER
	with the roster model.  when adding and deleteing groups, the
	original jid is not removed first, which means there are two
	instances of a jid when they belong to two groups.

2003-04-09  Martyn Russell  <ginxd@btopenworld.com>

	* gj_gtk_my_preferences.c: added sound files config options

2003-04-08  Martyn Russell  <ginxd@btopenworld.com>

	* gj_gtk_roster.c: added all the callbacks for the gui for windows.

2003-04-07    <martyn.2.russell@bt.com>

	* gj_main.c: **SERIOUS** changes to all the code.  
	- first major change is that all character arrays are not fudged
	with the -fsigned-char switch when compiling.  
	- all code is compiled with the pedantic flag.
	- it now compiles on WIN32 (signals need connecting and images
	setting up....)

2003-04-06  Martyn Russell  <ginxd@btopenworld.com>

	* gj_gtk_roster.c: improved code by NOT storing the GtkTreeStore
	in a structure and GETTING the model or store each time from the
	GtkTreeView when it is needed.  Also more checks in place for stability.

	* gj_gtk_docklet.c: more improvements - image is now scaled.
	(gj_gtk_docklet_clicked): added a menu for the right click.

	* gj_main.c: removed gnome-panel-applet stuff... and replaced it
	with eggtrayicon code instead... works much better.

2003-04-05  Martyn Russell  <ginxd@btopenworld.com>

	* gj_socket.c: removed all the crap and testing functions.  also
	improved this (on the read function).

	* gj_roster.c (rosterItemFindByJIDWithoutResource): added this
	function to find a roster item when the resource is NOT
	specified.  This is potentially VERY important. If someone is
	logged in to two places, (2 resources) then is sent a message,
	this functions means, that the contact can be found if the msg is
	send to the users id and not a particular resource.

	* gj_presence.c: changed JID from <id> to <id>/<resource> which is
	how it should have been from the start.

2003-03-31  Martyn Russell  <ginxd@btopenworld.com>

	* gj_gtk_chat.c (on_textbuffer_cw_receive_changed): improved the
	changed callback to be more efficient when looking for urls in the
	text.

2003-03-24  Martyn Russell  <ginxd@btopenworld.com>

	* gj_gtk_message.c: added url handling.

	* gj_gtk_chat.c: added url handling.

2003-03-21  Martyn Russell  <ginxd@btopenworld.com>

	* gj_gtk_chat.c (gj_gtk_cw_notification_of_xevent_new): now works
	properly. 

2003-03-20  Martyn Russell  <ginxd@btopenworld.com>

	* gj_gtk_chat.c: having problems with the xevents...

	* gj_gtk_connection_progress.c (gj_gtk_cp_start): now set my jid.

	* gj_me.c (struct ): added MY jid into this.

	* gj_message.c (messageXEventSend): added xeventing into messaging
	protocol. 

2003-03-18  Martyn Russell  <ginxd@btopenworld.com>

	* gj_history.c: now works at a VERY basic level. not for msgs only
	CHATS... 

	* gj_gtk_debug.c: added this to enabled inputing and output xml to
	simulate particular situations.

	* gj_gtk_message.c (on_button_mw_send_clicked): moved this over
	from gj_gtk_msg which is for msgboxes. this is for the message window.

	* gj_gtk_msg.c: updated to allow MULTIPLE msg boxes at the same
	time. 

	* gj_gtk_about.c: added about box.

2003-03-17  Martyn Russell  <ginxd@btopenworld.com>

	* gj_iq.h: tidied up code after change...

	* Makefile: BIG change to iqs.  now there are three modules, iq,
	iq_requests and iq_responses.  the iq module was getting too big.

2003-03-16  Martyn Russell  <ginxd@btopenworld.com>

	* gj_gtk_roster_contacts_subscribe.c: MAJOR changes to this to
	make this window unique to jid and be able to have multiple
	windows at once.  this is not tested yet, but is a start towards
	the problem of having multiple contacts subscribing at the same time.

	* gj_log.c: added debugging support. - also dont print debugging
	to cmd line, only to the gtk logging window which has a special
	colour for the text, so it is distinct.

	* gj_roster.c (rosterParseSetRequest): greatly improved the way
	this works. need to spend some time and improve this to post a
	message to a designated callback when roster changes occur.  there
	are still problems with changing the users group and name, it (for
	some reason) responds (from the server) with the subscription of
	"none"? 

	* gj_gtk_roster.c: changed contact remove function.  now it doesnt
	cause problems because it doesnt delete the parent in the deleted
	callback it there are no more contacts in a particular group.  the
	group it removed instead of the children first...

	* gj_parser.c: MAJOR change to parser.  Now uses a SAX struct to
	receive callbacks.  Also used to check document is correctly
	balanced before continuing....

	Added debug logging using g_log instead of a compiler
	definition. Now is seen in logs, need a way to customise what is
	shown in the log.

2003-03-15  Martyn Russell  <ginxd@btopenworld.com>

	* gj_gtk_roster.c: MAJOR thing to consider, do we have a roster
	item based on the JID (including the resource) or NOT including
	the resource? at the moment we do not use the resource, which
	means someone with an id abc@jabber.org/home will not work when
	using abc@jabber.org/work.

	* gj_gtk_user_information.c (gj_gtk_ui_time_response): this keeps
	crashing here?? why? something is shitting over the pointers?

	* gj_parser.c (parseInput): this needs SERIOUSLY improving. at the
	moment the biggest problem is that the stream could contain two
	messages, it this is the case, the end tag and the start tag do
	not relate and this causes problems.

	* gj_gtk_chat.c (gj_gtk_cw_send_set): implemented reverse text
	direction option.

2003-02-22  Martyn Russell  <ginxd@btopenworld.com>

	* gj_gtk_headline.c: added headline module for first time.  doesnt
	support oob namespace at this point but does the job.

2003-02-02  Martyn Russell  <ginxd@btopenworld.com>

	* gj_log.c (gj_log_init): changed file names to be one filename.
	the logs just fill up otherwise.
	(gj_log_init): also added more domains to capture messages from.
	before it was just gtk and glib, now its gmodule, gthreads,
	glib-gobject, glade and gobject 

	* Makefile: added clean target

	* gj_gtk_roster.c: changed the presence button on the roster
	window to be a menu. much better way of doing it.

	* gj_stream.c (streamNew): added checks for other streams that
	have the same 'to' field.  also made _new() ask for a host instead
	of being created simply on merit.

	* gj_gtk_roster.c: added dynamic real time menu creation for right
	clicks on the roster.  before they were in the glade file.
	added support for the group right click. - no actions yet available.
	
2003-02-01  Martyn Russell  <ginxd@btopenworld.com>

	* gj_gtk_roster_groups.c (gj_gtk_rg_save): added support for
	presence from resource when setting the roster groups.  this is
	required if not when setting the group for a transport, the
	transport is not correctly set, and an additional contact is added
	instead.

2003-01-11  Martyn Russell  <ginxd@btopenworld.com>

	* gj_history.c: made a start at the history. 

	* Makefile: moved over to a different way of compiling.  also
	added new flags to be more pedantic.  and i cant use the -pedantic
	switch because the of the signed and unsigned differences in
	xmlChar* and gchar*. 

	* Linux2gcc/machine_specific: added this file (better way of
	compiling) 

2002-12-15  Martyn Russell  <ginxd@btopenworld.com>

	* gj_gtk_roster.c (on_mnu_user_subscription_cancel_activate):
	added subscription request and cancellation from right click on
	the user.  the whole subscription and adding contacts needs a
	little more work... 

	* gj_config.c: added functions to get and set all the
	properties... (for connections only so far) 

	* gj_gtk_connection_settings.c (gj_gtk_cs_save): changed to use
	cross platform config solution. 

	* gj_gtk_roster_contacts_subscribe.c: added more subscriber
	support. now removes contact when denied subscription. 

	* gj_config.c: added this file to deal with config variables
	obtained using config_handler 

	* common.h: again, this file is slightly different with the new
	configuration scheme so add HAVE_GNOME macros... 

	* gj_gtk_connection_settings.c (gj_gtk_cs_open): added macros to
	check that HAVE_GNOME is defined.  if so, use the features 
 
	* Linux2gcc/Makefile: added changes to try and phase out gnome
	only support - for windows 

