More on the path to generalizing quick add
authorEd Page <eopage@byu.net>
Fri, 24 Apr 2009 03:10:45 +0000 (22:10 -0500)
committerEd Page <eopage@byu.net>
Fri, 24 Apr 2009 03:10:45 +0000 (22:10 -0500)
src/coroutines.py
src/doneit.glade
src/null_view.py
src/rtm_view.py

index e43c6f1..c2c05a0 100755 (executable)
@@ -312,9 +312,9 @@ class CoSwitch(object):
        b ('b', 1, 2, 3)
        """
 
-       def __init__(self, signalKeys, key = (lambda eventData: eventData[0])):
+       def __init__(self, signalKeys, key = None):
                self.stage = self._stage()
-               self._key = key
+               self._key = key if key else lambda eventData: eventData[0]
                self._targets = {}
 
                for signalKey in signalKeys:
index 5aa296d..d1039fc 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
-<!--Generated with glade3 3.4.5 on Mon Apr 20 18:51:41 2009 -->
+<!--Generated with glade3 3.4.5 on Mon Apr 20 21:33:42 2009 -->
 <glade-interface>
   <widget class="GtkWindow" id="mainWindow">
     <property name="default_width">800</property>
                   <widget class="GtkHButtonBox" id="add-add-hbox">
                     <property name="visible">True</property>
                     <child>
-                      <widget class="GtkButton" id="add-addTaskButton">
+                      <widget class="GtkButton" id="add-addButton">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">True</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkEntry" id="add-taskNameEntry">
+                  <widget class="GtkEntry" id="add-nameEntry">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="has_focus">True</property>
                   <widget class="GtkHButtonBox" id="add-edit-hbox">
                     <property name="visible">True</property>
                     <child>
-                      <widget class="GtkButton" id="add-pasteTaskNameButton">
+                      <widget class="GtkButton" id="add-pasteNameButton">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">True</property>
                       </widget>
                     </child>
                     <child>
-                      <widget class="GtkButton" id="add-clearTaskNameButton">
+                      <widget class="GtkButton" id="add-clearNameButton">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">True</property>
         <property name="visible">True</property>
         <property name="spacing">2</property>
         <child>
-          <widget class="GtkComboBox" id="serviceCombo">
-            <property name="visible">True</property>
-          </widget>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">False</property>
-            <property name="position">1</property>
-          </packing>
-        </child>
-        <child>
           <widget class="GtkTable" id="table1">
             <property name="visible">True</property>
             <property name="n_rows">2</property>
             <property name="n_columns">2</property>
             <child>
-              <widget class="GtkLabel" id="username_label">
-                <property name="visible">True</property>
-                <property name="label" translatable="yes">Username</property>
-              </widget>
-            </child>
-            <child>
-              <widget class="GtkLabel" id="password_label">
+              <widget class="GtkEntry" id="passwordentry">
                 <property name="visible">True</property>
-                <property name="label" translatable="yes">Password</property>
+                <property name="can_focus">True</property>
+                <property name="visibility">False</property>
               </widget>
               <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
                 <property name="top_attach">1</property>
                 <property name="bottom_attach">2</property>
               </packing>
               </packing>
             </child>
             <child>
-              <widget class="GtkEntry" id="passwordentry">
+              <widget class="GtkLabel" id="password_label">
                 <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="visibility">False</property>
+                <property name="label" translatable="yes">Password</property>
               </widget>
               <packing>
-                <property name="left_attach">1</property>
-                <property name="right_attach">2</property>
                 <property name="top_attach">1</property>
                 <property name="bottom_attach">2</property>
               </packing>
             </child>
+            <child>
+              <widget class="GtkLabel" id="username_label">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">Username</property>
+              </widget>
+            </child>
           </widget>
           <packing>
             <property name="position">1</property>
           </packing>
         </child>
+        <child>
+          <widget class="GtkComboBox" id="serviceCombo">
+            <property name="visible">True</property>
+          </widget>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
         <child internal-child="action_area">
           <widget class="GtkHButtonBox" id="dialog-action_area1">
             <property name="visible">True</property>
                 <property name="n_rows">2</property>
                 <property name="n_columns">2</property>
                 <child>
-                  <widget class="GtkHBox" id="edit-dueDateDisplayControlBox">
+                  <widget class="GtkHBox" id="edit-hbox2">
                     <property name="visible">True</property>
                     <child>
-                      <widget class="GtkCalendar" id="edit-dueDateCalendar">
+                      <widget class="GtkEntry" id="edit-taskNameEntry">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
-                        <property name="year">2009</property>
-                        <property name="month">3</property>
-                        <property name="day">16</property>
-                        <property name="show_details">False</property>
+                        <property name="has_focus">True</property>
+                        <property name="is_focus">True</property>
+                        <property name="can_default">True</property>
+                        <property name="has_default">True</property>
+                        <property name="receives_default">True</property>
                       </widget>
                     </child>
                     <child>
-                      <widget class="GtkHButtonBox" id="edit-dueDateActionBox">
+                      <widget class="GtkHButtonBox" id="edit-hbuttonbox2">
                         <property name="visible">True</property>
                         <child>
-                          <widget class="GtkButton" id="edit-clearDueDate">
+                          <widget class="GtkButton" id="edit-pasteTaskNameButton">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="receives_default">True</property>
-                            <property name="label" translatable="yes">gtk-clear</property>
+                            <property name="label" translatable="yes">gtk-paste</property>
                             <property name="use_stock">True</property>
                             <property name="response_id">0</property>
                           </widget>
                       </widget>
                       <packing>
                         <property name="expand">False</property>
+                        <property name="fill">False</property>
                         <property name="position">1</property>
                       </packing>
                     </child>
                   <packing>
                     <property name="left_attach">1</property>
                     <property name="right_attach">2</property>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkLabel" id="edit-dueDateLabel">
-                    <property name="visible">True</property>
-                  </widget>
-                  <packing>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
                   </packing>
                 </child>
                 <child>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkHBox" id="edit-hbox2">
+                  <widget class="GtkLabel" id="edit-dueDateLabel">
+                    <property name="visible">True</property>
+                  </widget>
+                  <packing>
+                    <property name="top_attach">1</property>
+                    <property name="bottom_attach">2</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkHBox" id="edit-dueDateDisplayControlBox">
                     <property name="visible">True</property>
                     <child>
-                      <widget class="GtkEntry" id="edit-taskNameEntry">
+                      <widget class="GtkCalendar" id="edit-dueDateCalendar">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
-                        <property name="has_focus">True</property>
-                        <property name="is_focus">True</property>
-                        <property name="can_default">True</property>
-                        <property name="has_default">True</property>
-                        <property name="receives_default">True</property>
+                        <property name="year">2009</property>
+                        <property name="month">3</property>
+                        <property name="day">16</property>
+                        <property name="show_details">False</property>
                       </widget>
                     </child>
                     <child>
-                      <widget class="GtkHButtonBox" id="edit-hbuttonbox2">
+                      <widget class="GtkHButtonBox" id="edit-dueDateActionBox">
                         <property name="visible">True</property>
                         <child>
-                          <widget class="GtkButton" id="edit-pasteTaskNameButton">
+                          <widget class="GtkButton" id="edit-clearDueDate">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="receives_default">True</property>
-                            <property name="label" translatable="yes">gtk-paste</property>
+                            <property name="label" translatable="yes">gtk-clear</property>
                             <property name="use_stock">True</property>
                             <property name="response_id">0</property>
                           </widget>
                       </widget>
                       <packing>
                         <property name="expand">False</property>
-                        <property name="fill">False</property>
                         <property name="position">1</property>
                       </packing>
                     </child>
                   <packing>
                     <property name="left_attach">1</property>
                     <property name="right_attach">2</property>
+                    <property name="top_attach">1</property>
+                    <property name="bottom_attach">2</property>
                   </packing>
                 </child>
               </widget>
   </widget>
   <widget class="GtkDialog" id="notesDialog">
     <property name="border_width">5</property>
+    <property name="title" translatable="yes">Notes</property>
     <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
     <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
     <property name="transient_for">mainWindow</property>
   </widget>
   <widget class="GtkDialog" id="preferencesDialog">
     <property name="border_width">5</property>
+    <property name="title" translatable="yes">Preferences</property>
     <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
     <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
     <property name="has_separator">False</property>
       </widget>
     </child>
   </widget>
+  <widget class="GtkWindow" id="projectsDialog">
+    <property name="title" translatable="yes">Projects</property>
+    <property name="modal">True</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="skip_taskbar_hint">True</property>
+    <property name="skip_pager_hint">True</property>
+    <property name="transient_for">mainWindow</property>
+    <child>
+      <widget class="GtkVBox" id="vbox1">
+        <property name="visible">True</property>
+        <child>
+          <widget class="GtkScrolledWindow" id="scrolledwindow2">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
+            <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+            <child>
+              <widget class="GtkTreeView" id="treeview1">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+              </widget>
+            </child>
+          </widget>
+        </child>
+        <child>
+          <widget class="GtkHBox" id="addProj-hbox">
+            <property name="visible">True</property>
+            <child>
+              <widget class="GtkHButtonBox" id="addProj-add-hbox">
+                <property name="visible">True</property>
+                <child>
+                  <widget class="GtkButton" id="proj-addButton">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="receives_default">True</property>
+                    <property name="label" translatable="yes">gtk-add</property>
+                    <property name="use_stock">True</property>
+                    <property name="response_id">0</property>
+                  </widget>
+                </child>
+              </widget>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkEntry" id="proj-nameEntry">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="has_focus">True</property>
+                <property name="is_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="has_default">True</property>
+                <property name="receives_default">True</property>
+              </widget>
+              <packing>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkHButtonBox" id="addProj-edit-hbox">
+                <property name="visible">True</property>
+                <child>
+                  <widget class="GtkButton" id="proj-pasteNameButton">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="receives_default">True</property>
+                    <property name="label" translatable="yes">gtk-paste</property>
+                    <property name="use_stock">True</property>
+                    <property name="response_id">0</property>
+                  </widget>
+                </child>
+                <child>
+                  <widget class="GtkButton" id="proj-clearNameButton">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="receives_default">True</property>
+                    <property name="label" translatable="yes">gtk-clear</property>
+                    <property name="use_stock">True</property>
+                    <property name="response_id">0</property>
+                  </widget>
+                  <packing>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </widget>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">2</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="pack_type">GTK_PACK_END</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+  </widget>
 </glade-interface>
index 35bb296..00828c4 100644 (file)
@@ -10,7 +10,7 @@ class GtkNull(object):
                @note Thread agnostic
                """
                self._projectsCombo = widgetTree.get_widget("projectsCombo")
-               self._addTaskButton = widgetTree.get_widget("add-addTaskButton")
+               self._addTaskButton = widgetTree.get_widget("add-addButton")
 
                self._todoBox = widgetTree.get_widget("todoBox")
                self._todoAreaFiller = gtk.Label()
index 0fbcc7a..fa67a2c 100644 (file)
@@ -324,17 +324,17 @@ class ItemListView(object):
 
 class QuickAddView(object):
 
-       def __init__(self, widgetTree, errorDisplay, signalSink, prefix = "add"):
+       def __init__(self, widgetTree, errorDisplay, signalSink, prefix):
                self._errorDisplay = errorDisplay
                self._manager = None
                self._signalSink = signalSink
 
                self._clipboard = gtk.clipboard_get()
 
-               self._taskNameEntry = widgetTree.get_widget(prefix+"-taskNameEntry")
-               self._addTaskButton = widgetTree.get_widget(prefix+"-addTaskButton")
-               self._pasteTaskNameButton = widgetTree.get_widget(prefix+"-pasteTaskNameButton")
-               self._clearTaskNameButton = widgetTree.get_widget(prefix+"-clearTaskNameButton")
+               self._taskNameEntry = widgetTree.get_widget(prefix+"-nameEntry")
+               self._addTaskButton = widgetTree.get_widget(prefix+"-addButton")
+               self._pasteTaskNameButton = widgetTree.get_widget(prefix+"-pasteNameButton")
+               self._clearTaskNameButton = widgetTree.get_widget(prefix+"-clearNameButton")
                self._onAddId = None
                self._onAddClickedId = None
                self._onAddReleasedId = None
@@ -432,7 +432,7 @@ class GtkRtMilk(object):
                addSink = coroutines.CoSwitch(["add", "add-edit"])
                addSink.register_sink("add", coroutines.func_sink(self._on_add))
                addSink.register_sink("add-edit", coroutines.func_sink(self._on_add_edit))
-               self._addView = QuickAddView(widgetTree, self._errorDisplay, addSink)
+               self._addView = QuickAddView(widgetTree, self._errorDisplay, addSink, "add")
                self._credentialsDialog = gtk_toolbox.LoginWindow(widgetTree)
 
        @staticmethod