GTG

Merge lp:~blinken/gtg/hotkeys into lp:~gtg/gtg/old-trunk

Proposed by Patrick Coleman
Status: Merged
Merged at revision: not available
Proposed branch: lp:~blinken/gtg/hotkeys
Merge into: lp:~gtg/gtg/old-trunk
Diff against target: None lines
To merge this branch: bzr merge lp:~blinken/gtg/hotkeys
Reviewer Review Type Date Requested Status
Gtg developers Pending
Review via email: mp+9465@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Patrick Coleman (blinken) wrote :

Fixes #406851, #369285 (merged trunk revision 296)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'CHANGELOG'
2--- CHANGELOG 2009-07-30 08:53:25 +0000
3+++ CHANGELOG 2009-07-30 14:30:27 +0000
4@@ -1,4 +1,5 @@
5- * Add Ctrl-W accelerator to close a task by Patrick Coleman
6+ * Fixed #406851, incorrect behaviour marking a dismissed task as done by Patrick Coleman
7+ * Added accelerators to the task editor by Patrick Coleman
8 * Add plugin engine by Paulo Cabido
9 * When GTG is already running, use DBUS to raise existing instance rather than failing silently
10 * Refactorization and PEP8ification work by Jonathan Lange
11
12=== modified file 'GTG/taskeditor/editor.py'
13--- GTG/taskeditor/editor.py 2009-07-30 13:44:15 +0000
14+++ GTG/taskeditor/editor.py 2009-07-30 14:30:27 +0000
15@@ -172,17 +172,38 @@
16 self.window.show()
17
18 # Define accelerator-keys for this dialog
19+ # TODO: undo/redo
20 def init_accelerators(self):
21- accelgroup = gtk.AccelGroup()
22+ agr = gtk.AccelGroup()
23+ self.window.add_accel_group(agr)
24
25- # Escape and Ctrl-W close the dialog
26+ # Escape and Ctrl-W close the dialog. It's faster to call close
27+ # directly, rather than use the close button widget
28 key, modifier = gtk.accelerator_parse('Escape')
29- accelgroup.connect_group(key, modifier, gtk.ACCEL_VISIBLE, self.close)
30+ agr.connect_group(key, modifier, gtk.ACCEL_VISIBLE, self.close)
31
32 key, modifier = gtk.accelerator_parse('<Control>w')
33- accelgroup.connect_group(key, modifier, gtk.ACCEL_VISIBLE, self.close)
34-
35- self.window.add_accel_group(accelgroup)
36+ agr.connect_group(key, modifier, gtk.ACCEL_VISIBLE, self.close)
37+
38+ # Ctrl-N creates a new task
39+ key, modifier = gtk.accelerator_parse('<Control>n')
40+ agr.connect_group(key, modifier, gtk.ACCEL_VISIBLE, self.new_task)
41+
42+ # Ctrl-Shift-N creates a new subtask
43+ insert_subtask = self.wTree.get_widget("insert_subtask")
44+ key, mod = gtk.accelerator_parse("<Control><Shift>n")
45+ insert_subtask.add_accelerator('clicked', agr, key, mod, gtk.ACCEL_VISIBLE)
46+
47+ # Ctrl-D marks task as done
48+ mark_as_done_editor = self.wTree.get_widget('mark_as_done_editor')
49+ key, mod = gtk.accelerator_parse('<Control>d')
50+ mark_as_done_editor.add_accelerator('clicked', agr, key, mod, gtk.ACCEL_VISIBLE)
51+
52+ # Ctrl-I marks task as dismissed
53+ dismiss_editor = self.wTree.get_widget('dismiss_editor')
54+ key, mod = gtk.accelerator_parse('<Control>i')
55+ dismiss_editor.add_accelerator('clicked', agr, key, mod, gtk.ACCEL_VISIBLE)
56+
57
58 #The refresh callback is None for all the initialization
59 #It's an optimisation that save us a low of unneeded refresh
60@@ -368,16 +389,13 @@
61
62 def dismiss(self,widget) : #pylint: disable-msg=W0613
63 stat = self.task.get_status()
64- toset = "Dismiss"
65- toclose = True
66- if stat == "Dismiss" :
67- toset = "Active"
68- toclose = False
69- self.task.set_status(toset)
70- if toclose : self.close(None)
71- else :
72+ if stat == "Dismiss":
73+ self.task.set_status("Active")
74 self.refresh_editor()
75- self.refresh_browser()
76+ self.refresh_browser()
77+ else:
78+ self.task.set_status("Dismiss")
79+ self.close(None)
80
81 def keepnote(self,widget) : #pylint: disable-msg=W0613
82 stat = self.task.get_status()
83@@ -390,17 +408,13 @@
84
85 def change_status(self,widget) : #pylint: disable-msg=W0613
86 stat = self.task.get_status()
87- if stat in ["Active","Dismiss"] :
88- toset = "Done"
89- toclose = True
90- else :
91- toset = "Active"
92- toclose = False
93- self.task.set_status(toset)
94- if toclose : self.close(None)
95- else :
96+ if stat == "Done":
97+ self.task.set_status("Active")
98 self.refresh_editor()
99- self.refresh_browser()
100+ self.refresh_browser()
101+ else:
102+ self.task.set_status("Done")
103+ self.close(None)
104
105 def delete_task(self,widget) :
106 if self.delete :
107@@ -415,6 +429,13 @@
108 subt.set_title(title)
109 tid = subt.get_id()
110 return tid
111+
112+ # Create a new task
113+ def new_task(self, *args):
114+ task = self.req.new_task(tags=None, newtask=True)
115+ task_id = task.get_id()
116+ self.refresh_browser()
117+ self.open_task(task_id)
118
119 def insert_subtask(self,widget) : #pylint: disable-msg=W0613
120 self.textview.insert_newtask()

Subscribers

People subscribed via source and target branches

to status/vote changes: