Updated the comments in the code
svn: r1043
This commit is contained in:
		| @@ -1,4 +1,3 @@ | ||||
| #! /usr/bin/python -O | ||||
| # | ||||
| # Gramps - a GTK+/GNOME based genealogy program | ||||
| # | ||||
| @@ -19,13 +18,19 @@ | ||||
| # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA | ||||
| # | ||||
|  | ||||
| """ | ||||
| Provides a sorting interface to GtkCList widgets. | ||||
| """ | ||||
|  | ||||
| __author__ = "Donald N. Allingham" | ||||
| __version__ = "$Revision:" | ||||
|  | ||||
| #------------------------------------------------------------------------- | ||||
| # | ||||
| # GTK/Gnome modules | ||||
| # | ||||
| #------------------------------------------------------------------------- | ||||
| import GTK | ||||
| import gtk | ||||
|  | ||||
| #------------------------------------------------------------------------- | ||||
| # | ||||
| @@ -36,7 +41,27 @@ import GrampsCfg | ||||
| import ListColors | ||||
|  | ||||
| class Sorter: | ||||
|  | ||||
|     """Provides a sorting interface to a GtkCList. Instead of | ||||
|     providing a sorting function, the table should be built with ASCII | ||||
|     sorting information loaded into the table. If the sorting data | ||||
|     should not be visible, the column should be hidden. | ||||
|      | ||||
|     Each column should have a column header that contains a | ||||
|     GtkArrow. The Sorter class with alter the GtkArrow based off | ||||
|     whether the column is sorted in ascending or descending order.""" | ||||
|      | ||||
|     def __init__(self, clist, column_map, key): | ||||
|         """ | ||||
|         Creates a sorter instance associated with the GtkCList. | ||||
|  | ||||
|         clist      - GtkCList with which the Sorter is associated | ||||
|         column_map - A list of tuples that assocates a column with its | ||||
|                      sort column and the GtkArrow that should be altered | ||||
|                      with the column. | ||||
|         key        - text key used for storing the sort column and | ||||
|                      direction in the configuration database. | ||||
|         """ | ||||
|         self.clist = clist | ||||
|         self.column_map = column_map | ||||
|         self.key = key | ||||
| @@ -45,15 +70,25 @@ class Sorter: | ||||
|         self.clist.connect('click-column',self.click) | ||||
|  | ||||
|     def sort_col(self): | ||||
|         """Returns the current column that is being sorted (not the acutal sort | ||||
|         column, but the user visable column""" | ||||
|         return self.col | ||||
|  | ||||
|     def sort_direction(self): | ||||
|         """Returns the current sort direction, either GTK.SORT_ASCENDING or | ||||
|         GTK.SORT_DESCENDING""" | ||||
|         return self.sort | ||||
|  | ||||
|     def click(self,obj,column): | ||||
|         """Callback function that is associated with the GtkCList, changing the | ||||
|         sort column""" | ||||
|         self.change_sort(column) | ||||
|  | ||||
|     def sort_list(self): | ||||
|         """ | ||||
|         Sorts the GtkCList. If list colors have been enabled, set the foreground and | ||||
|         background colors of each row.  | ||||
|         """ | ||||
|         self.clist.freeze() | ||||
|         self.clist.sort() | ||||
|         self.clist.sort() | ||||
| @@ -81,6 +116,15 @@ class Sorter: | ||||
|         self.clist.thaw() | ||||
|          | ||||
|     def change_sort(self,column,change=1): | ||||
|         """ | ||||
|         Changes the sort column of the GtkList if the requested column | ||||
|         is in the column map. If the column has changed, the sort direction | ||||
|         is set to ascending, if the column has not changed, the sort direction | ||||
|         is changed to the opposite sort direction | ||||
|  | ||||
|         column - visible column that should be sorted | ||||
|         change - don't alter the direction | ||||
|         """ | ||||
|         try: | ||||
|             (sort_col,arrow) = self.column_map[column] | ||||
|         except: | ||||
| @@ -107,7 +151,6 @@ class Sorter: | ||||
|         self.clist.set_sort_type(self.sort) | ||||
|  | ||||
|         self.sort_list() | ||||
|  | ||||
|         self.col = column | ||||
|  | ||||
|         if len(self.clist.selection) > 1: | ||||
| @@ -117,7 +160,14 @@ class Sorter: | ||||
|         GrampsCfg.save_sort_cols(self.key,self.col,self.sort) | ||||
|          | ||||
| class ChildSorter(Sorter): | ||||
|  | ||||
|     """ | ||||
|     Derived from the basic Sorter class to allow the GtkList to be | ||||
|     manually reorderable by the user. | ||||
|     """ | ||||
|      | ||||
|     def change_sort(self,column,change=1): | ||||
|         """ | ||||
|         If the column is the 0, set the list as reorderable. | ||||
|         """ | ||||
|         Sorter.change_sort(self,column,change) | ||||
|         self.clist.set_reorderable(self.col == 0) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user