Commit Graph

137 Commits

Author SHA1 Message Date
Guillaume Desmottes
c15a7877e9 treemodelsort: destroy the root only if we are removing the latest row of the level
GtkIconView doesn't ref the rows of the model so we have to make sure that a
level is actually empty before destroying it.

https://bugzilla.gnome.org/show_bug.cgi?id=698846
2013-05-03 13:06:08 +02:00
Carlos Garnacho
676441398a treemodelsort: fix iter_previous so it can go back to the first item
It was getting the previous element, then checking whether it was the
first one, that has to be inverted so it doesn't stop on the second
item.

https://bugzilla.gnome.org/show_bug.cgi?id=674587
2012-04-28 02:01:16 -04:00
Javier Jardón
9d0febc9a6 Change FSF Address 2012-02-27 17:06:11 +00:00
Kristian Rietveld
b31c3f1c1f treemodelsort: eliminate unread variable assigments
Courtesy of scan-build/clang.
2011-08-22 21:30:35 +02:00
Kristian Rietveld
52faf1f984 Extend documentation about GtkTreeModelSort internals 2011-08-22 21:30:34 +02:00
Kristian Rietveld
60d031e311 Replace GArray with GSequence in GtkTreeModelSort
This is done in the same way as GArray was replaced with GSequence in
GtkTreeModelFilter, in a patch done by Xavier Claessens.

All sorting code has been reworked to use the GSequence sorting
and insert sort functions, instead of doing a lot on our own.
2011-08-22 21:30:34 +02:00
Kristian Rietveld
97b1f34868 Revert usage of parent_elt_index back to parent_elt pointers
Based on earlier patch for GtkTreeModelFilter by Xavier Claessens.
2011-08-22 21:30:33 +02:00
Kristian Rietveld
dec7a34047 Avoid unreferencing deleted nodes
Now that we call unref_node in free_level, we have to take care that
free_level may only unref (parent) nodes when these still exist in the
child model.  After row-deleted has been received for a node, its
children may no longer unref this node.
2011-08-22 21:30:31 +02:00
Kristian Rietveld
7677e2d4e3 Bug 611922 - gtk_tree_model_sort_ref_node() is too slow
Referencing a parent node for each referenced node is overdone.  Instead,
we now reference the parent from build_level and unreference in free_level.
Each level keeps a single reference on its immediate parent.  This both
alleviates the performence problems and should perfectly serve the purpose.
2011-08-22 21:30:31 +02:00
Kristian Rietveld
b8752210ba treemodelsort: Remove unnecessary comment
(I am no longer 17 years old and have grown up by now).
2011-08-22 21:30:31 +02:00
Kristian Rietveld
df0fcfb940 In sort model also emit row-deleted after updating the data structures 2011-08-22 21:30:30 +02:00
Kristian Rietveld
f0da89fa20 Print failed assertions for failed child iterator conversions 2011-08-22 21:30:29 +02:00
Kristian Rietveld
2f5fbcd10a Make _get_iter invalidate iterators when FALSE is returned 2011-08-22 21:30:29 +02:00
Javier Jardón
911ae50956 Move documentation to inline comments: GtkTreeModelSort 2011-04-18 02:08:37 +01:00
Szilárd Pfeiffer
8219ed3a26 Add gtk_tree_model_iter_previous() vfunc
https://bugzilla.gnome.org/show_bug.cgi?id=128058
2011-01-05 23:39:11 -05:00
Matthias Clasen
b45e5fa51e Remove sealed members from GtkTreeModelSort 2010-12-17 23:49:27 -05:00
Matthias Clasen
e0aa12eb0a Tons of transfer annotations 2010-09-21 00:18:11 -04:00
Javier Jardón
0a07e9733b gtk/: fully remove gtkalias hacks
https://bugzilla.gnome.org/show_bug.cgi?id=623845
2010-07-10 02:51:26 +02:00
Philip Withnall
0b51abbfdf Add (out) annotations to GtkTreeIter parameters 2010-07-07 18:20:37 +02:00
Johan Dahlin
fe85272112 [annotations] Add allow-none
This commit was created using a script that searched for all docstrings
containing a parameter and the string 'or %NULL'.
Gdk backends and demos excluded as they are not part of a public API

https://bugzilla.gnome.org/show_bug.cgi?id=610474
2010-02-19 17:57:51 -02:00
Kristian Rietveld
a59c39f370 Bug 346800 - Rework sort/filter models to use indices to parents...
Rework the sort and filter models to store their reference to the parent
element as an array index instead of a pointer to an array element.
These pointers could become invalid with any array modification, whereas
indices do not.
2009-09-06 14:12:46 +02:00
Kristian Rietveld
bce2a5173d Bug 573321 – additional check in gtk_tree_model_filter_convert_*
Added checks to see whether the passed iterators are not the same in
convert_child_iter_to_iter() and iter_to_child_iter() functions in both
the sort and filter models.

Fixes bug 573321, suggestion by Vadim Godunko.
2009-07-30 20:24:31 +02:00
Matthias Clasen
1873c20239 Improve the docs
2009-01-03  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtktreesortable.c: Improve the docs

        * gtk/gtktreemodelsort.c: Don't assert when using the "unsorted"
        sort column id.


svn path=/trunk/; revision=22048
2009-01-03 06:57:10 +00:00
Sven Neumann
e3c01cf601 gtk/gtktext.c gtk/gtktextbuffer.c gtk/gtktextlayout.c
2008-08-08  Sven Neumann  <sven@gimp.org>

	* gtk/gtktext.c
	* gtk/gtktextbuffer.c
	* gtk/gtktextlayout.c
	* gtk/gtktexttagtable.c
	* gtk/gtktextview.c
	* gtk/gtktipsquery.c
	* gtk/gtktoolbar.c
	* gtk/gtktoolitem.c
	* gtk/gtktreeitem.c
	* gtk/gtktreemodelfilter.c
	* gtk/gtktreemodelsort.c
	* gtk/gtktreeviewcolumn.c: use canonical signal names.


svn path=/trunk/; revision=21045
2008-08-08 14:23:32 +00:00
Johan Dahlin
d97cdbdf53 Include "config.h" instead of <config.h> Command used: find -name
2008-06-21  Johan Dahlin  <jdahlin@async.com.br>

    * *.[ch]: Include "config.h" instead of <config.h>
    Command used:
    find -name \*.[ch]|xargs perl -p -i -e 's/^#include <config.h>/#include "config.h"/g'
    Rubberstamped by Mitch and Tim


svn path=/trunk/; revision=20669
2008-06-22 14:28:52 +00:00
Michael Natterer
fe8a946e87 deprecate GtkDestroyNotify.
2008-06-18  Michael Natterer  <mitch@imendio.com>

	* gtk/gtktypeutils.h: deprecate GtkDestroyNotify.

	* gtk/gtkactiongroup.[ch]
	* gtk/gtkcombobox.[ch]
	* gtk/gtkcontainer.[ch]
	* gtk/gtkliststore.[ch]
	* gtk/gtkmain.[ch]
	* gtk/gtkmenu.c
	* gtk/gtkstock.[ch]
	* gtk/gtktreedatalist.[ch]
	* gtk/gtktreemodelfilter.[ch]
	* gtk/gtktreemodelsort.[ch]
	* gtk/gtktreeprivate.h
	* gtk/gtktreeselection.[ch]
	* gtk/gtktreesortable.[ch]
	* gtk/gtktreestore.[ch]
	* gtk/gtktreeview.[ch]
	* gtk/gtktreeviewcolumn.[ch]: s/GtkDestroyNotify/GDestroyNotify/g.


svn path=/trunk/; revision=20448
2008-06-18 09:12:32 +00:00
Kristian Rietveld
e72827b2cd Amendment of bug 485218 - Strange warning encountered.
2008-05-28  Kristian Rietveld  <kris@imendio.com>

	Amendment of bug 485218 - Strange warning encountered.

	* gtk/gtktreemodelsort.[ch]
	(gtk_tree_model_sort_convert_child_iter_to_iter): return a boolean
	indication whether or not the conversion had succeeded.


svn path=/trunk/; revision=20204
2008-05-28 09:02:29 +00:00
Matthias Clasen
ea9c6f301d Bug 485218 - Strange warning encountered
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_row_inserted):
        (gtk_tree_model_sort_convert_child_iter_to_iter):
        (gtk_tree_model_sort_build_level): Better warnings. Patch
        by Kristian Rietveld.


svn path=/trunk/; revision=20198
2008-05-27 23:16:06 +00:00
Matthias Clasen
a6b824d7a4 fix the build
svn path=/trunk/; revision=18774
2007-09-09 23:54:17 +00:00
Matthias Clasen
5c4d0d697d Don't assume that a path of depth 0 has no indices. (#467324, Szilard
2007-09-09  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtktreemodelfilter.c (gtk_tree_model_filter_rows_reordered):
        * gtk/gtktreemodelsort.c (gtk_tree_model_sort_rows_reordered): Don't
        assume that a path of depth 0 has no indices.  (#467324, Szilard
        Pfeiffer)



svn path=/trunk/; revision=18770
2007-09-09 19:48:22 +00:00
Kristian Rietveld
b1285c3fe6 when (un)reffing an element, also (un)ref its parent elements. (Fixes
2007-03-10  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreemodelsort.c (gtk_tree_model_sort_ref_node),
	(gtk_tree_model_sort_real_unref_node): when (un)reffing an
	element, also (un)ref its parent elements. (Fixes #364946,
	reported by many, testcase by Andreas Koehler).


svn path=/trunk/; revision=17457
2007-03-10 17:25:51 +00:00
Kristian Rietveld
ebe31a8802 ref count nodes the proper way, (gtk_tree_model_sort_ref_node),
2006-09-26  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktreemodelsort.c (gtk_tree_model_sort_row_changed),
	(gtk_tree_model_sort_sort_level): ref count nodes the proper way,
	(gtk_tree_model_sort_ref_node), (gtk_tree_model_sort_real_unref_node),
	(gtk_tree_model_sort_free_level): bring zero ref count loops in
	sync,
	(gtk_tree_model_sort_free_level): free child levels before
	decreasing the zero ref count of the current level,
	(gtk_tree_model_sort_clear_cache): only clear cache if zero_ref_count
	is > 0.
2006-09-27 12:08:12 +00:00
Matthias Clasen
0072406481 Don't leak default_sort_data. (#346341, Christian Weiske)
2006-07-02  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtktreemodelsort.c (gtk_tree_model_sort_finalize):
        Don't leak default_sort_data.  (#346341, Christian Weiske)
2006-07-02 14:48:00 +00:00
Matthias Clasen
113f364a37 More of the same 2006-05-14 04:25:34 +00:00
Matthias Clasen
f26aad1916 Boilerplate reduction 2006-05-02 23:56:43 +00:00
Kristian Rietveld
a25bc9a0b7 free temporary paths after usage (patch from maemo-gtk),
2006-02-08  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktreemodelfilter.c (gtk_tree_model_filter_ref_path),
	(gtk_tree_model_filter_unref_path): free temporary paths after
	usage (patch from maemo-gtk),
	(gtk_tree_model_filter_clear_cache): fix little typo in the docs
	(patch from maemo-gtk).

	* gtk/gtktreemodelsort.c (gtk_tree_model_sort_row_deleted): remove
	stale FIXME.
2006-02-08 15:20:43 +00:00
Kristian Rietveld
8700ff7bcf fix a typo which caused this whole thing to not function ...
2006-01-14  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreemodelsort.c (gtk_tree_model_sort_iter_children): fix
	a typo which caused this whole thing to not function ...
2006-01-14 19:58:04 +00:00
Matthias Clasen
957e3ce205 More of the same 2005-12-29 07:47:02 +00:00
Matthias Clasen
4cb44fcc8f Use the slice allocater for GtkTreeDataSortHeader.
2005-12-29  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtktreedatalist.c: Use the slice allocater for
	GtkTreeDataSortHeader.

	* gtk/gtktreedatalist.h:
	* gtk/gtktreedatalist.c (_gtk_tree_data_list_set_header): New function.

	* gtk/gtktreemodelsort.c (gtk_tree_model_sort_set_sort_func):
	* gtk/gtkliststore.c (gtk_list_store_set_sort_func):
	* gtk/gtktreestore.c (gtk_tree_store_set_sort_func): Use it here.
2005-12-29 05:26:09 +00:00
Kristian Rietveld
3fe6e98689 emitting row-has-child-toggled when the level is not in the cache does not
2005-10-24  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreemodelsort.c (gtk_tree_model_sort_row_inserted): emitting
	row-has-child-toggled when the level is not in the cache does not
	make sense.  (This bug probably crept in during the early stages
	of GtkTreeModelSort when there wasn't a correct row-has-child-toggled
	implementation yet),
	(gtk_tree_model_sort_real_unref_node): only get the child iter
	when we will actually also use it.
2005-10-24 19:01:36 +00:00
Matthias Clasen
94eec04267 Intern some more strings.
2005-09-01  Matthias Clasen  <mclasen@redhat.com>

        * gdk/*.c: Intern some more strings.
        * gtk/gtkintl.h:
        * gtk/*.c: Define an I_() macro and use it instead of the
        bulky g_intern_static_string().
2005-09-01 05:11:46 +00:00
Matthias Clasen
c09cc89317 Intern type names in code generated by glib-mkenums, too.
2005-08-31  Matthias Clasen  <mclasen@redhat.com>

	* gdk/Makefile.am:
	* gtk/Makefile.am: Intern type names in code generated by
	glib-mkenums, too.

	* gtk/*.c:
	* gdk/x11/*.c:
	* gdk/*.c: Intern type names before registering the type to avoid
	unnecessary copies.
2005-08-31 16:53:43 +00:00
Kristian Rietveld
e6615bfc3b don't bother inserting new rows in a level with a zero refcount and
2005-08-23  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreemodelsort.c (gtk_tree_model_sort_row_inserted): don't
	bother inserting new rows in a level with a zero refcount and
	immediately free the level. (Fixes #312350, reported by Markku Vire).
2005-08-23 20:33:42 +00:00
Matthias Clasen
e0f77a1f76 Trivial doc fixes.
2005-07-25  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtktreemodelsort.c: Trivial doc fixes.

	* gtk/gtktreesortable.c: Talk about comparison functions, not
	sort functions in some places.  (#311398, Fabrice Bauzac)



2005-07-25  Matthias Clasen  <mclasen@redhat.com>

	* gtk/tmpl/gtktreemodelsort.sgml: Note that the sorting
	function is not guaranteed to be stable.  (#311398,
	Fabrice Bauzac)
2005-07-25 13:55:31 +00:00
Matthias Clasen
9c002e4abc Cleanup a possible resize idle. (#311141, Robert Ögren)
2005-07-21  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkcombobox.c (gtk_combo_box_list_destroy): Cleanup
	a possible resize idle.  (#311141, Robert Ögren)

	* gtk/gtktreemodelsort.c (gtk_tree_model_sort_row_changed):
	(gtk_tree_model_sort_sort_level): Ref the level while using it,
	otherwise it may get nuked by gtk_tree_model_sort_increment_stamp.
	(gtk_tree_model_sort_row_deleted): Don't leak the root level
	here.  (#300089, James Bramford, Markku Vire)
2005-07-22 03:38:14 +00:00
Matthias Clasen
bcfe29ec12 Fix a typo in a warning.
2005-04-05  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtktreemodelsort.c (gtk_tree_model_sort_build_level):
	Fix a typo in a warning.
2005-04-05 23:05:53 +00:00
Matthias Clasen
269d89c79c Define macros GTK_PARAM_READABLE, GTK_PARAM_WRITABLE, GTK_PARAM_READWRITE
2005-03-21  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkprivate.h: Define macros GTK_PARAM_READABLE,
	GTK_PARAM_WRITABLE, GTK_PARAM_READWRITE which are like
	their G_ counterparts, but also mark the name, nick
	and blurb as static.

	* gtk/*.c: Mark param spec strings as static, using
	the new macros.
2005-03-22 02:14:55 +00:00
Matthias Clasen
cca8dd6347 Make PLT-reduction work with gcc4, and don't include everything in
2005-03-20  Matthias Clasen  <mclasen@redhat.com>

	Make PLT-reduction work with gcc4, and don't include
	everything in gdkalias.h:

	* gtk/grk.symbols: Group symbols by header and source file.
	* gtk/makegtkalias.pl: Protect definitions by the same
	preprocessor symbols used to guard the headers. Move
	the alias declarations to a separate file which is
	produced when calling makegtkalias.pl -def
	* gdk/Makefile.am (gtkaliasdef.c): Add a rule to generate
	this file.
	* gtk/*.c: Include gtkalias.h after the other headers,
	include gtkaliasdef.c at the bottom.
	* gtk/*.h: Small cleanups.
2005-03-20 07:01:23 +00:00
Matthias Clasen
35a3099ec6 Update the documentation to specify a more useful behaviour, which can be
2004-11-30  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtktreesortable.c (gtk_tree_sortable_get_sort_column_id): Update
	the documentation to specify a more useful behaviour, which can be
	implemented with the multiple special values we have now.  (#159984,
	Nicholas Rahn)

	* gtk/gtktreemodelsort.c (gtk_tree_model_sort_get_sort_column_id):
	* gtk/gtktreestore.c (gtk_tree_store_get_sort_column_id):
	* gtk/gtkliststore.c (gtk_list_store_get_sort_column_id): Update the
	implementations.
2004-11-30 21:45:26 +00:00
Matthias Clasen
3612aee585 Add hidden aliases for exported symbols which are used internally in order
Mon Aug  9 12:48:04 2004  Matthias Clasen  <maclas@gmx.de>

	Add hidden aliases for exported symbols which are
	used internally in order to get rid of many PLT
	entries.  (#145519, Arjan van de Ven)

	* gtk/Makefile.am: Add rules to generate gtk.def and
	from gtk.symbols, and make make check check the abi
	with abicheck.sh.
	(gtk_private_h_sources): Add gtkinternals.h
	(gtk_built_private_headers): Add gtkalias.h
	(gtk_extra_sources): Add gtk.symbols
	(EXTRA_DIST): Add makegtkalias.pl and abicheck.sh

	* gtk/gtk.symbols: New file. Definition of the GTK+ ABI.
	The file can be processed by cpp to filter out certain
	subsets of symbols.

	* gtk/abicheck.sh: New file. Script to check the actually
	symbols exported from libgtk-x11.2.0.so against the symbols
	found in gtk.symbols.

	* gtk/makegtkalias.pl: New file. Perl script to generate the
	header containing the alias definitions for internally used
	exported symbols from a list of symbols.

	* gtk/gtkinternals.h: New file. An uninstalled header listing
	symbols which must be exported for some reason and do not appear
	in any other header.

	* gtk/*.c: Include gtkalias.h
2004-08-09 16:59:53 +00:00