[POS-commit] r6422 - in kiwi/trunk: . kiwi/ui
Johan Dahlin
jdahlin at async.com.br
Wed Apr 25 10:43:14 BRT 2007
Author: jdahlin
Date: Wed Apr 25 10:43:14 2007
New Revision: 6422
Modified:
kiwi/trunk/ChangeLog
kiwi/trunk/kiwi/ui/objectlist.py
Log:
2007-04-25 Ali Afshar <aafshar at gmail.com>
reviewed by: Johan Dahlin <jdahlin at async.com.br>
* kiwi/ui/objectlist.py (ObjectList.grab_focus):
Add, fixes #3326
Modified: kiwi/trunk/ChangeLog
==============================================================================
--- kiwi/trunk/ChangeLog (original)
+++ kiwi/trunk/ChangeLog Wed Apr 25 10:43:14 2007
@@ -1,3 +1,10 @@
+2007-04-25 Ali Afshar <aafshar at gmail.com>
+
+ reviewed by: Johan Dahlin <jdahlin at async.com.br>
+
+ * kiwi/ui/objectlist.py (ObjectList.grab_focus):
+ Add, fixes #3326
+
2007-04-20 Johan Dahlin <jdahlin at async.com.br>
* examples/search.py: Add an example.
Modified: kiwi/trunk/kiwi/ui/objectlist.py
==============================================================================
--- kiwi/trunk/kiwi/ui/objectlist.py (original)
+++ kiwi/trunk/kiwi/ui/objectlist.py Wed Apr 25 10:43:14 2007
@@ -483,7 +483,10 @@
gsignal('double-click', object)
# row right-clicked
- gsignal('right-click', object)
+ gsignal('right-click', object, gtk.gdk.Event)
+
+ # row middle-clicked
+ gsignal('middle-click', object, gtk.gdk.Event)
# edited object, attribute name
gsignal('cell-edited', object, str)
@@ -1082,26 +1085,38 @@
item = row[COL_MODEL]
self.emit('row-activated', item)
- def _on_treeview__button_press_event(self, treeview, event):
- "Generic button-press-event handler to be able to catch double clicks"
-
+ def _get_selection_or_selected_rows(self):
selection = self._treeview.get_selection()
mode = selection.get_mode()
if mode == gtk.SELECTION_MULTIPLE:
item = self.get_selected_rows()
else:
item = self.get_selected()
+ return item
- if not item:
- return
+ def _emit_button_press_signal(self, signal_name, event):
+ item = self._get_selection_or_selected_rows()
+ if item:
+ self.emit(signal_name, item, event)
- # Double left click
- if event.type == gtk.gdk._2BUTTON_PRESS and event.button == 1:
- self.emit('double-click', item)
+ def _on_treeview__button_press_event(self, treeview, event):
+ "Generic button-press-event handler to be able to catch double clicks"
- # Right click
- if event.type == gtk.gdk.BUTTON_PRESS and event.button == 3:
- self.emit('right-click', item)
+ # Right and Middle click
+ if event.type == gtk.gdk.BUTTON_PRESS:
+ if event.button == 3:
+ signal_name = 'right-click'
+ elif event.button == 2:
+ signal_name = 'middle-click'
+ else:
+ return
+ gobject.idle_add(self._emit_button_press_signal, signal_name,
+ event.copy())
+ # Double left click
+ elif event.type == gtk.gdk._2BUTTON_PRESS and event.button == 1:
+ item = self._get_selection_or_selected_rows()
+ if item:
+ self.emit('double-click', item)
# CellRenderers
def _cell_data_text_func(self, tree_column, renderer, model, treeiter,
@@ -1313,6 +1328,12 @@
tree_columns = self._treeview.get_columns()
return tree_columns[index]
+ def grab_focus(self):
+ """
+ Grabs the focus of the ObjectList
+ """
+ self._treeview.grab_focus()
+
def _clear_columns(self):
# Reset the sort function for all model columns
model = self._model
More information about the POS-commit
mailing list