Working on debugability and usability with the task list
authorEd Page <eopage@byu.net>
Fri, 17 Apr 2009 22:29:29 +0000 (17:29 -0500)
committerEd Page <eopage@byu.net>
Fri, 17 Apr 2009 22:29:29 +0000 (17:29 -0500)
src/gtk_toolbox.py
src/rtm_view.py

index bebe859..2e2028a 100644 (file)
@@ -312,7 +312,7 @@ class MessageBox2(gtk.MessageDialog):
 
 class PopupCalendar(object):
 
-       def __init__(self, parent, displayDate):
+       def __init__(self, parent, displayDate, title = ""):
                self._displayDate = displayDate
 
                self._calendar = gtk.Calendar()
@@ -327,7 +327,7 @@ class PopupCalendar(object):
                self._calendar.connect("day-selected", self._on_day_selected)
 
                self._popupWindow = gtk.Window()
-               self._popupWindow.set_title("")
+               self._popupWindow.set_title(title)
                self._popupWindow.add(self._calendar)
                self._popupWindow.set_transient_for(parent)
                self._popupWindow.set_modal(True)
index 1eb8516..1749e0e 100644 (file)
@@ -175,6 +175,7 @@ class ItemListView(object):
                self._nameCell = gtk.CellRendererText()
                self._nameColumn.pack_start(self._nameCell, True)
                self._nameColumn.set_attributes(self._nameCell, text=self.NAME_IDX)
+               self._nameColumn.set_expand(True)
                self._dueColumn = gtk.TreeViewColumn('Due')
                self._dueCell = gtk.CellRendererText()
                self._dueColumn.pack_start(self._nameCell, False)
@@ -183,7 +184,7 @@ class ItemListView(object):
                self._linkCell = gtk.CellRendererText()
                self._linkColumn.pack_start(self._nameCell, False)
                self._linkColumn.set_attributes(self._nameCell, text=self.LINK_IDX)
-               self._notesColumn = gtk.TreeViewColumn('') # Notes
+               self._notesColumn = gtk.TreeViewColumn('Notes') # Notes
                self._notesCell = gtk.CellRendererText()
                self._notesColumn.pack_start(self._nameCell, False)
                self._notesColumn.set_attributes(self._nameCell, text=self.NOTES_IDX)
@@ -192,8 +193,18 @@ class ItemListView(object):
                self._todoItemScroll = gtk.ScrolledWindow()
                self._todoItemScroll.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
                self._todoItemTree = gtk.TreeView()
+               self._todoItemTree.set_headers_visible(True)
+               self._todoItemTree.set_rules_hint(True)
+               self._todoItemTree.set_search_column(self.NAME_IDX)
+               self._todoItemTree.set_enable_search(True)
+               self._todoItemTree.append_column(self._completionColumn)
+               self._todoItemTree.append_column(self._priorityColumn)
+               self._todoItemTree.append_column(self._nameColumn)
+               self._todoItemTree.append_column(self._dueColumn)
+               self._todoItemTree.append_column(self._linkColumn)
+               self._todoItemTree.append_column(self._notesColumn)
+               self._todoItemTree.connect("row-activated", self._on_item_select)
                self._todoItemScroll.add(self._todoItemTree)
-               self._onItemSelectId = 0
 
        def enable(self, manager, projId):
                self._manager = manager
@@ -203,36 +214,18 @@ class ItemListView(object):
                self._todoItemScroll.show_all()
 
                self._itemList.clear()
-               self._todoItemTree.append_column(self._completionColumn)
-               self._todoItemTree.append_column(self._priorityColumn)
-               self._todoItemTree.append_column(self._nameColumn)
-               self._todoItemTree.append_column(self._dueColumn)
-               self._todoItemTree.append_column(self._linkColumn)
-               self._todoItemTree.append_column(self._notesColumn)
                try:
                        self.reset_task_list(self._projId)
                except StandardError, e:
                        self._errorDisplay.push_exception()
 
-               self._todoItemTree.set_headers_visible(False)
-               self._nameColumn.set_expand(True)
-
-               self._onItemSelectId = self._todoItemTree.connect("row-activated", self._on_item_select)
-
        def disable(self):
                self._manager = None
                self._projId = None
 
                self._todoBox.remove(self._todoItemScroll)
                self._todoItemScroll.hide_all()
-               self._todoItemTree.disconnect(self._onItemSelectId)
-
-               self._todoItemTree.remove_column(self._completionColumn)
-               self._todoItemTree.remove_column(self._priorityColumn)
-               self._todoItemTree.remove_column(self._nameColumn)
-               self._todoItemTree.remove_column(self._dueColumn)
-               self._todoItemTree.remove_column(self._linkColumn)
-               self._todoItemTree.remove_column(self._notesColumn)
+
                self._itemList.clear()
                self._itemList.set_model(None)
 
@@ -293,7 +286,7 @@ class ItemListView(object):
                        elif viewColumn is self._dueColumn:
                                due = self._manager.get_task_details(taskId)["dueDate"]
                                if due.is_good():
-                                       calendar = gtk_toolbox.PopupCalendar(None, due.get())
+                                       calendar = gtk_toolbox.PopupCalendar(None, due.get(), "Due Date")
                                        calendar.run()
                        elif viewColumn is self._linkColumn:
                                webbrowser.open(self._manager.get_task_details(taskId)["url"])