2003-05-16 Mike Kestner <mkestner@ximian.com>
* gal-view-collection.c (view_changed): block the signal
that got us here until we're done to stop an infinite
recursion. Fixes 43153.
2003-05-16 Mike Kestner <mkestner@ximian.com>
* e-cell-text.c (invisible_finalize): kill
(ect_stop_editing): destroy the invisible, not weak_unref
(e_cell_text_view_get_invisible): don't weak_ref the invisible
since we own its ref.
2003-05-16 Mike Kestner <mkestner@ximian.com>
* e-table-item.c (eti_event): fix a couple timer checks
* e-tree-table-adapter.c (update_node): Traverse POST order
so that the parent nodes are at the head of the prepended list.
Don't restore expanded state to nodes that aren't in the tree
any longer. Hopefully fixes#42856.
svn path=/trunk/; revision=21229
2003-04-21 Mike Kestner <mkestner@ximian.com>
* e-cell-tree.c (ect_draw): use e_tree_table_adapter_node_get_next
to determine how to draw sibling lines.
(ect_print): ditto
* e-tree-table-adapter.c (e_t_t_a_node_get_next): new
svn path=/trunk/; revision=20902
2003-04-15 Hans Petter Jansson <hpj@ximian.com>
* e-table-header-utils.c (e_table_draw_elided_string): Don't unref
the layout that was passed in.
(e_table_header_draw_button): Always unref the layout when we're
done with it.
* e-tree-table-adapter.c (e_tree_table_adapter_load_expanded_state):
Free the id when we're done with it.
svn path=/trunk/; revision=20853
2003-04-02 Mike Kestner <mkestner@ximian.com>
* e-tree-table-adapter.c (update_node): restore expanded
state of node and all children. Fixes Ximian bug #40393.
(check_expanded): new traverser function
svn path=/trunk/; revision=20642
2003-03-31 Mike Kestner <mkestner@ximian.com>
* e-tree-table-adapter.c (kill_gnode): if killing the root
node, set it to NULL in the priv data. Bug #39441.
svn path=/trunk/; revision=20607
2003-03-24 Mike Kestner <mkestner@ximian.com>
* e-tree-table-adapter.c (update_node): don't call delete_node
on the root node since generate_tree already does that. Thanks
to Antonio Xu <antonio.xu@sun.com> for identifying the cause of
the bug and providing a candidate patch. Bug #38320.
svn path=/trunk/; revision=20481
2003-03-14 Mike Kestner <mkestner@ximian.com>
* e-tree-table-adapter.c (update_node): save and restore expanded
state so parents don't collapse when children are added to them.
(e_tree_table_adapter_node_is_expanded): guard against null nodes.
svn path=/trunk/; revision=20303
2003-03-04 Mike Kestner <mkestner@ximian.com>
* e-tree-selection-model.c : rewrite to store selected paths in a
hashtable instead of a tree.
* e-tree-table-adapter.c : lose the hacky orig_position api since
etsm doesn't need it anymore.
svn path=/trunk/; revision=20136
2003-02-20 Mike Kestner <mkestner@ximian.com>
* e-tree-selection-model.c (etsm_orig_position): kill
(etsm_find_node_unless_equals): use new etta_orig_position
(update_parents): use new etta_orig_position
(etsm_recurse_is_path_selected): use new etta_orig_position
* e-tree-table-adapter.c (e_tree_table_adapter_orig_position): new
(resort_node): populate orig_pos, fix sorting_map bound bug
(create_gnode): initialize orig_pos
(delete_node): call resort_node so orig_pos gets updated
(insert_node): always call resort_node let it decide whether to sort
svn path=/trunk/; revision=19975
2003-02-12 Mike Kestner <mkestner@ximian.com>
* e-tree-table-adapter.c (insert_node): work around broken models
that insert children before parents. bad models.
(e_tree_table_adapter_load_expanded_state): don't update_node
(e_tree_table_adapter_node_set_expanded): recursively expand
parent if the node is not visible yet.
(e_tree_table_adapter_set_sort_info): don't resort empty trees
svn path=/trunk/; revision=19894
2003-02-06 Mike Kestner <mkestner@ximian.com>
* e-tree-table-adapter.c (resort_node): index bound bug
(insert_children): prepend/reverse for now
(generate_tree): resize old map to zero before filling it again
(insert_node): fix assumption that root parent node has an index
svn path=/trunk/; revision=19828
2003-02-06 Not Zed <NotZed@Ximian.com>
* e-tree-table-adapter.c (delete_node): use the parent path to
find the parent node rather than the row, which is not valid for
the root node, which still needs its visible child count updated.
svn path=/trunk/; revision=19797
2003-01-15 Jeffrey Stedfast <fejj@ximian.com>
* e-tree-table-adapter.c
(e_tree_table_adapter_save_expanded_state): Same here.
* e-table-state.c (e_table_state_save_to_file): Same as below.
* e-table-specification.c (e_table_specification_save_to_file):
Back to using e_xml_save_file(). Not sure we can really trust
xmlSaveFile (sure as hell couldn't in the libxml-1.x days),
besides, e_xml_save_file protects against corruption due to not
enough disk space.
svn path=/trunk/; revision=19481
2002-08-06 Jeffrey Stedfast <fejj@ximian.com>
* e-tree-table-adapter.c
(e_tree_table_adapter_save_expanded_state): And finally here.
* e-table-state.c (e_table_state_save_to_file): Same here.
* e-table-specification.c (e_table_specification_save_to_file): No
need to save to a temp file first here either since
e_xml_save_file now does that for us.
* e-table.c (e_table_save_specification): No need to handle
writing to a temp file first anymore, since I've updated
e_xml_save_file() to handle that for us.
svn path=/trunk/; revision=17724
2002-08-06 Jeffrey Stedfast <fejj@ximian.com>
* e-cell-progress.c: #include <string.h> for memset
* e-table.c (e_table_save_specification): Updated to use
e_xml_save_file() instead of xmlSaveFile(). Also fixed to save to
a tmp file first.
* e-table-specification.c (e_table_specification_save_to_file):
Same as above.
* e-table-state.c (e_table_state_save_to_file): Same here.
* e-tree-table-adapter.c
(e_tree_table_adapter_save_expanded_state): And here too.
svn path=/trunk/; revision=17717
2002-07-19 Christopher James Lahey <clahey@ximian.com>
* e-tree-table-adapter.c (find_next_node, find_first_child_node):
Made these able to find the potential row for a new node which
will be the last row.
(find_row_num): Made this handle find_next_node and
find_first_child_node returning n_map.
svn path=/trunk/; revision=17517
2002-06-05 Christopher James Lahey <clahey@ximian.com>
* e-tree-model.c (d): Added debugging printfs.
* e-tree-sorted.c (ets_proxy_node_changed,
ets_proxy_node_data_changed, ets_proxy_node_col_changed,
ets_proxy_node_inserted): Added a bunch of e_tree_model_no_change
signals where appropriate.
* e-tree-table-adapter.c (etta_proxy_node_changed): Added an
e_table_model_no_change signal where appropriate.
svn path=/trunk/; revision=17116
2002-05-24 Christopher James Lahey <clahey@ximian.com>
* e-tree-table-adapter.c
(e_tree_table_adapter_node_would_be_expanded,
e_tree_table_adapter_node_is_expanded): Added would_be_expanded
refactoring code out of is_expanded.
(find_first_child_node_maybe_deleted): Use the new function.
svn path=/trunk/; revision=17016
2002-05-21 Christopher James Lahey <clahey@ximian.com>
* e-tree-sorted.c (ets_proxy_node_request_collapse): Check for
path being NULL.
* e-tree-table-adapter.c
(e_tree_table_adapter_load_expanded_state): Rebuild the tree after
loading the state.
svn path=/trunk/; revision=16963
2002-05-13 Christopher James Lahey <clahey@ximian.com>
* e-tree-table-adapter.c: Changed a lot of direct uses in this
file of node->is_expanded to call the function
e_tree_table_adapter_node_is_expanded instead.
(e_tree_table_adapter_node_is_expanded): Improved this function to
know if the root node is visible and always return it as being
expanded if it's not. It also doesn't bother creating nodes if
they don't exist yet, and instead figures out whether they would
be expanded if they were to be created and returns that value
instead.
svn path=/trunk/; revision=16768
* e-tree-table-adapter.c
(e_tree_table_adapter_save_expanded_state): Bump file version to 2.
(This will make older versions of gal ignore the file, fixing the
problem where going from evo HEAD to evo 1.0.x makes the folder
tree disappear.) Store the default expanded state in the file now
to prevent this from happening again in the future.
(e_tree_table_adapter_load_expanded_state): Deal with version 2.
If the model's default expansion state doesn't match the saved
state, ignore the save file.
svn path=/trunk/; revision=16736
2002-03-08 Christopher James Lahey <clahey@ximian.com>
* e-tree-memory.c (etmm_node_request_collapse): Handle a collapse
request by marking all descendents of that node as needing their
children recomputed.
* e-tree-model.c, e-tree-model.h
(e_tree_model_node_request_collapse): Added this signal to request
that the view of your tree collapse this node.
* e-tree-selection-model.c (etsm_selected_count): Pass the root of
the sorted model here instead of the root of the base model.
* e-tree-table-adapter.c (etta_proxy_node_request_collapse):
Handle a collapse request by collapsing the node in the tree.
svn path=/trunk/; revision=15990
2001-10-31 Christopher James Lahey <clahey@ximian.com>
* e-table-item.c, e-table-item.h: Added frozen_count variable to
know not to show the cursor while a change is going on.
* e-table-model.c, e-table-model.h, e-tree-model.c,
e-tree-model.h: Added a model_no_change signal to pair with a
pre_change if there's no change.
* e-table-selection-model.h: Removed an unused frozen field here.
* e-table-sorted.c, e-table-subset.c, e-table-subset.h,
e-table-without.c, e-tree-memory.c, e-tree-sorted.c,
e-tree-table-adapter.c: Made sure pre_changes were all matched by
some change. Proxy no_change signal where appropriate.
* e-tree-selection-model.c: Keep track of the frozen_count
variable to know whether a change is going on.
svn path=/trunk/; revision=14523
2001-10-29 Christopher James Lahey <clahey@ximian.com>
* e-table-subset.c (etss_get_view_row), e-tree-sorted.c
(check_last_access), e-tree-table-adapter.c (find_row_num): Don't
go outside the table looking for matches when doing the
last_access search.
svn path=/trunk/; revision=14359
2001-10-22 Christopher James Lahey <clahey@ximian.com>
* e-table-item.c (eti_idle_maybe_show_cursor): Make this check
immediately for whether to show the cursor, instead of in the idle
handler.
* e-tree-table-adapter.c (e_tree_table_adapter_node_set_expanded):
Added a pre_change here since we send two changes.
svn path=/trunk/; revision=13931
2001-10-16 Christopher James Lahey <clahey@ximian.com>
* e-tree-table-adapter.c (find_next_node_maybe_deleted,
find_first_child_node_maybe_deleted, find_next_node,
find_first_child_node, find_row_num): Added bounds checking in a
number of places.
(etta_init): Initialize all the fields here.
svn path=/trunk/; revision=13712
2001-09-16 Christopher James Lahey <clahey@ximian.com>
* configure.in: Bumped version number to 0.11.99.4.
* gal/e-text/e-completion-view.c (e_completion_view_construct),
tests/test-table-1.c (create_table): Changed the parameters to
e_table_simple_new here to adjust to changes in the interface.
* gal/widgets/e-categories-master-list-array.c (ecmla_default):
Fixed a memory leak here.
* gal/widgets/e-categories.c (e_categories_get_save_id): Added
get_save_id here so that selection would be maintained across
changes.
From gal/e-table/ChangeLog:
2001-09-16 Christopher James Lahey <clahey@ximian.com>
* e-table-model.c, e-table-model.h (e_table_model_class_init):
Rearranged order of has_save_id and get_save_id to be more
consistent with ETree.
* e-table-selection-model.c, e-table-selection-model.h: Turned on
the code to maintain selection and cursor across changes if the
model supports get_save_id.
* e-table-simple.c, e-table-simple.h: Changed this interface to
take all of the ETableModel functions in the _new function.
* e-table-subset.c (etss_has_save_id, etss_get_save_id): Added
these to properly proxy the save_id functionality.
* e-tree-memory-callbacks.c, e-tree-memory-callbacks.h,
e-tree-model.c, e-tree-model.h, e-tree-sorted.c: Made the save_id
parameter to get_node_by_id be const char * instead of char *.
* e-tree-table-adapter.c (etta_class_init): Rearranged some
assignments here to be more consistent.
svn path=/trunk/; revision=12869
2001-09-01 Christopher James Lahey <clahey@ximian.com>
* e-cell-float.c (ecf_get_text, ecf_free_text): Rename these
functions from ecn_get_text and ecn_free_text.
* e-cell-tree.c (ect_height): Make sure the height is a multiple
of two here.
* e-table-header-item.c, e-table-header-item.h: Added a "tree"
argument so that the sorting can be set by right clicking on the
header item.
* e-table-item.c (eti_table_model_rows_deleted): Added some
assertions here.
* e-tree-selection-model.c (etsm_find_node_unless_equals): Fixed
indentation.
* e-tree-table-adapter.c (etta_proxy_node_changed): Rewrote this
to be more readable.
(e_tree_table_adapter_node_set_expanded): Added an assertion.
* e-tree.c, e-tree.h (e_tree_get_spec): Added this function.
(e_tree_setup_header): Set the tree argument on the
ETableHeaderItem here.
svn path=/trunk/; revision=12553
2001-08-03 Christopher James Lahey <clahey@ximian.com>
* e-tree-table-adapter.c (e_tree_table_adapter_node_at_row):
e_tree_table_adapter_node_at_row would have pulled data from one
past the end of its array if you asked it to and the root was
hidden. Fixed it. Fixes Ximian bug #4761.
svn path=/trunk/; revision=11647
2001-07-12 Christopher James Lahey <clahey@ximian.com>
* e-tree-table-adapter.c (e_tree_table_adapter_node_set_expanded):
Ignore set_expanded if the node is the root and root_visible is
FALSE.
* e-tree.c (item_key_press): Don't call set_expanded on NULL
paths.
svn path=/trunk/; revision=11061
2001-07-06 Christopher James Lahey <clahey@ximian.com>
* e-tree-table-adapter.c (e_tree_table_adapter_node_at_row): Added
checks for if row is outside of the appropriate range.
svn path=/trunk/; revision=10878
2001-04-25 Christopher James Lahey <clahey@ximian.com>
* e-tree-table-adapter.c (e_tree_table_adapter_row_of_node): Made
this return -1 instead of -2 for not found if the root is not
visible.
* e-tree-selection-model.c (etsm_row_foreach_cb): Made this accept
any negative number as not found instead of just -1.
svn path=/trunk/; revision=9562
2001-04-12 Christopher James Lahey <clahey@ximian.com>
* configure.in: Upped the version number to 0.6.99.0. Upped the
so number to 6.
* docs/etablexml.txt: Made some updates here.
* tests/test-tree-1.c, tests/test-tree-3.c: Added NULL, NULL to
the call to e_tree_memory_callbacks_new.
From gal/e-table/ChangeLog:
2001-04-12 Christopher James Lahey <clahey@ximian.com>
* e-table-item.c (eti_cursor_change): Only move the screen to show
the cursor if there are no changes pending. Updated the commented
out code for alternating colors a bit.
* e-table-model.c, e-table-model.h: Added
e_table_model_has_change_pending.
* e-tree-memory-callbacks.c, e-tree-memory-callbacks.h: Added
has_get_node_by_id and get_node_by_id.
* e-tree-model.c, e-tree-model.h: Added
e_tree_model_has_get_node_by_id and e_tree_model_get_node_by_id.
Added e_tree_model_has_change_pending.
* e-tree-selection-model.c: Handle the selection and cursor
properly across the tree changing.
* e-tree-sorted.c: Implemented has_get_node_by_id and
get_node_by_id, and has_changes_pending.
* e-tree-table-adapter.c: Implemented has_changes_pending. Fixed
an array underflow.
svn path=/trunk/; revision=9289
2001-04-04 Christopher James Lahey <clahey@ximian.com>
* e-tree-sorted.c: Make it so you can switch checking around the
last access on and off for tuning purposes.
* e-tree-table-adapter.c: Apparently, ETreeTableAdapter is much
faster if the value_at function doesn't change the last_access
variable.
svn path=/trunk/; revision=9170
2001-04-04 Christopher James Lahey <clahey@ximian.com>
* e-tree-selection-model.c, e-tree-selection-model.h: Added
e_tree_selection_model_select_single_path and made selection_start
be the path as it should be instead of the row.
* e-tree-sorted.c: Added a last_access variable to speed up
access.
* e-tree-table-adapter.c: Made checking last_access look at the 10
values before and after the listed value to look for the value
requested.
* e-tree.c: Call e_tree_selection_model_select_single_path if
E_TREE_USE_TREE_SELECTION.
svn path=/trunk/; revision=9169