Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@sugarlabs.org>2009-07-07 09:44:01 (GMT)
committer Tomeu Vizoso <tomeu@sugarlabs.org>2009-07-07 09:44:01 (GMT)
commit0f33570021ca8a2191d3bc4c0e6a6235fae20ca5 (patch)
tree7122293265ddbf352be14616de1f7f4f3ca50b93 /src
parentf5c01859cadf14f5fa737adb79449b21e79243b8 (diff)
Fix object chooser
Diffstat (limited to 'src')
-rw-r--r--src/jarabe/journal/listview.py24
-rw-r--r--src/jarabe/journal/objectchooser.py59
2 files changed, 44 insertions, 39 deletions
diff --git a/src/jarabe/journal/listview.py b/src/jarabe/journal/listview.py
index 76cd30f..3c40779 100644
--- a/src/jarabe/journal/listview.py
+++ b/src/jarabe/journal/listview.py
@@ -132,7 +132,6 @@ class BaseListView(gtk.Bin):
self.tree_view.append_column(column)
self.cell_icon = CellRendererActivityIcon(self.tree_view)
- self.cell_icon.connect('clicked', self.__icon_clicked_cb)
column = gtk.TreeViewColumn('')
column.props.sizing = gtk.TREE_VIEW_COLUMN_FIXED
@@ -269,11 +268,6 @@ class BaseListView(gtk.Bin):
metadata['keep'] = '1'
model.write(metadata, update_mtime=False)
- def __icon_clicked_cb(self, cell, path):
- row = self._model[path]
- metadata = model.get(row[ListModel.COLUMN_UID])
- misc.resume(metadata)
-
def update_with_query(self, query_dict):
logging.debug('ListView.update_with_query')
self._query = query_dict
@@ -452,6 +446,8 @@ class ListView(BaseListView):
BaseListView.__init__(self)
self.cell_title.props.editable = True
+
+ self.cell_icon.connect('clicked', self.__icon_clicked_cb)
self.cell_icon.connect('detail-clicked', self.__detail_clicked_cb)
cell_detail = CellRendererDetail(self.tree_view)
@@ -470,6 +466,11 @@ class ListView(BaseListView):
def __detail_clicked_cb(self, cell, uid):
self.emit('detail-clicked', uid)
+ def __icon_clicked_cb(self, cell, path):
+ row = self.tree_view.get_model()[path]
+ metadata = model.get(row[ListModel.COLUMN_UID])
+ misc.resume(metadata)
+
class CellRendererFavorite(CellRendererIcon):
__gtype_name__ = 'JournalCellRendererFavorite'
@@ -510,6 +511,8 @@ class CellRendererActivityIcon(CellRendererIcon):
}
def __init__(self, tree_view):
+ self._show_palette = True
+
CellRendererIcon.__init__(self, tree_view)
self.props.width = style.GRID_CELL_SIZE
@@ -520,6 +523,9 @@ class CellRendererActivityIcon(CellRendererIcon):
self.tree_view = tree_view
def create_palette(self):
+ if not self._show_palette:
+ return None
+
tree_model = self.tree_view.get_model()
metadata = tree_model.get_metadata(self.props.palette_invoker.path)
@@ -531,6 +537,12 @@ class CellRendererActivityIcon(CellRendererIcon):
def __detail_clicked_cb(self, palette, uid):
self.emit('detail-clicked', uid)
+ def set_show_palette(self, show_palette):
+ self._show_palette = show_palette
+
+ show_palette = gobject.property(type=bool, default=True,
+ setter=set_show_palette)
+
class CellRendererBuddy(CellRendererIcon):
__gtype_name__ = 'JournalCellRendererBuddy'
diff --git a/src/jarabe/journal/objectchooser.py b/src/jarabe/journal/objectchooser.py
index b70cf72..0e6de27 100644
--- a/src/jarabe/journal/objectchooser.py
+++ b/src/jarabe/journal/objectchooser.py
@@ -25,8 +25,8 @@ import wnck
from sugar.graphics import style
from sugar.graphics.toolbutton import ToolButton
-from jarabe.journal.listview import ListView
-from jarabe.journal.collapsedentry import BaseCollapsedEntry
+from jarabe.journal.listview import BaseListView
+from jarabe.journal.listmodel import ListModel
from jarabe.journal.journaltoolbox import SearchToolbar
from jarabe.journal.volumestoolbar import VolumesToolbar
@@ -107,8 +107,8 @@ class ObjectChooser(gtk.Window):
if window.get_xid() == parent.xid:
self.destroy()
- def __entry_activated_cb(self, list_view, entry):
- self._selected_object_id = entry.metadata['uid']
+ def __entry_activated_cb(self, list_view, uid):
+ self._selected_object_id = uid
self.emit('response', gtk.RESPONSE_ACCEPT)
def __delete_event_cb(self, chooser, event):
@@ -163,44 +163,23 @@ class TitleBox(VolumesToolbar):
self.insert(tool_item, -1)
tool_item.show()
-class ChooserCollapsedEntry(BaseCollapsedEntry):
- __gtype_name__ = 'ChooserCollapsedEntry'
+class ChooserListView(BaseListView):
+ __gtype_name__ = 'ChooserListView'
__gsignals__ = {
'entry-activated': (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE,
- ([]))
+ ([str])),
}
def __init__(self):
- BaseCollapsedEntry.__init__(self)
-
- self.connect_after('button-release-event',
- self.__button_release_event_cb)
- self.connect('motion-notify-event', self.__motion_notify_event_cb)
+ BaseListView.__init__(self)
- def __button_release_event_cb(self, entry, event):
- self.emit('entry-activated')
- return True
+ self.cell_icon.props.show_palette = False
+ self.tree_view.props.hover_selection = True
- def __motion_notify_event_cb(self, entry, event):
- if event.detail == hippo.MOTION_DETAIL_ENTER:
- self.props.background_color = style.COLOR_PANEL_GREY.get_int()
- elif event.detail == hippo.MOTION_DETAIL_LEAVE:
- self.props.background_color = style.COLOR_WHITE.get_int()
- return False
-
-class ChooserListView(ListView):
- __gtype_name__ = 'ChooserListView'
-
- __gsignals__ = {
- 'entry-activated': (gobject.SIGNAL_RUN_FIRST,
- gobject.TYPE_NONE,
- ([object]))
- }
-
- def __init__(self):
- ListView.__init__(self)
+ self.tree_view.connect('button-release-event',
+ self.__button_release_event_cb)
def create_entry(self):
entry = ChooserCollapsedEntry()
@@ -210,3 +189,17 @@ class ChooserListView(ListView):
def __entry_activated_cb(self, entry):
self.emit('entry-activated', entry)
+ def __button_release_event_cb(self, tree_view, event):
+ if event.window != tree_view.get_bin_window():
+ return False
+
+ pos = tree_view.get_path_at_pos(event.x, event.y)
+ if pos is None:
+ return False
+
+ path, column_, x_, y_ = pos
+ uid = tree_view.get_model()[path][ListModel.COLUMN_UID]
+ self.emit('entry-activated', uid)
+
+ return False
+