From 0126491a4d4936fd6bfe61d5de9c954b3a82b320 Mon Sep 17 00:00:00 2001
From: Aleksey Lim <alsroot@member.fsf.org>
Date: Sun, 6 Sep 2009 11:53:48 +0000
Subject: Process non-ds object in the right way in Journal #1262
---
src/jarabe/journal/expandedentry.py | 41 +++++++++++++++++++++++-----------
src/jarabe/journal/listview.py | 8 ++++++
src/jarabe/journal/model.py | 9 ++++++-
3 files changed, 43 insertions(+), 15 deletions(-)
diff --git a/src/jarabe/journal/expandedentry.py b/src/jarabe/journal/expandedentry.py
index 9c0f922..ff830bf 100644
a
|
b
|
class ExpandedEntry(hippo.CanvasBox): |
159 | 159 | return icon |
160 | 160 | |
161 | 161 | def _create_title(self): |
162 | | title = CanvasEntry() |
163 | | title.set_background(style.COLOR_WHITE.get_html()) |
164 | | title.props.text = self._metadata.get('title', _('Untitled')) |
165 | | title.props.widget.connect('focus-out-event', |
166 | | self._title_focus_out_event_cb) |
167 | | return title |
| 162 | entry = gtk.Entry() |
| 163 | entry.props.text = self._metadata.get('title', _('Untitled')) |
| 164 | |
| 165 | bg_color = style.COLOR_WHITE.get_gdk_color() |
| 166 | entry.modify_bg(gtk.STATE_INSENSITIVE, bg_color) |
| 167 | entry.modify_base(gtk.STATE_INSENSITIVE, bg_color) |
| 168 | |
| 169 | entry.props.editable = model.is_editable(self._metadata) |
| 170 | if entry.props.editable: |
| 171 | entry.connect('focus-out-event', self._title_focus_out_event_cb) |
| 172 | |
| 173 | return hippo.CanvasWidget(widget=entry) |
168 | 174 | |
169 | 175 | def _create_date(self): |
170 | 176 | date = hippo.CanvasText(xalign=hippo.ALIGNMENT_START, |
… |
… |
class ExpandedEntry(hippo.CanvasBox): |
297 | 303 | vbox.append(text_view, hippo.PACK_EXPAND) |
298 | 304 | |
299 | 305 | text_view.text_view_widget.props.accepts_tab = False |
300 | | text_view.text_view_widget.connect('focus-out-event', |
301 | | self._description_focus_out_event_cb) |
| 306 | editable = model.is_editable(self._metadata) |
| 307 | if editable: |
| 308 | text_view.text_view_widget.connect('focus-out-event', |
| 309 | self._description_focus_out_event_cb) |
| 310 | text_view.text_view_widget.props.editable = editable |
302 | 311 | |
303 | 312 | return vbox, text_view |
304 | 313 | |
… |
… |
class ExpandedEntry(hippo.CanvasBox): |
322 | 331 | vbox.append(text_view, hippo.PACK_EXPAND) |
323 | 332 | |
324 | 333 | text_view.text_view_widget.props.accepts_tab = False |
325 | | text_view.text_view_widget.connect('focus-out-event', |
326 | | self._tags_focus_out_event_cb) |
| 334 | editable = model.is_editable(self._metadata) |
| 335 | if editable: |
| 336 | text_view.text_view_widget.connect('focus-out-event', |
| 337 | self._tags_focus_out_event_cb) |
| 338 | text_view.text_view_widget.props.editable = editable |
327 | 339 | |
328 | 340 | return vbox, text_view |
329 | 341 | |
… |
… |
class ExpandedEntry(hippo.CanvasBox): |
345 | 357 | needs_update = False |
346 | 358 | |
347 | 359 | old_title = self._metadata.get('title', None) |
348 | | if old_title != self._title.props.text: |
349 | | self._icon.palette.props.primary_text = self._title.props.text |
350 | | self._metadata['title'] = self._title.props.text |
| 360 | new_title = self._title.props.widget.props.text |
| 361 | if old_title != new_title: |
| 362 | self._icon.palette.props.primary_text = new_title |
| 363 | self._metadata['title'] = new_title |
351 | 364 | self._metadata['title_set_by_user'] = '1' |
352 | 365 | needs_update = True |
353 | 366 | |
… |
… |
class ExpandedEntry(hippo.CanvasBox): |
373 | 386 | return int(self._metadata.get('keep', 0)) == 1 |
374 | 387 | |
375 | 388 | def _keep_icon_activated_cb(self, keep_icon): |
| 389 | if not model.is_editable(self._metadata): |
| 390 | return |
376 | 391 | if self.get_keep(): |
377 | 392 | self._metadata['keep'] = 0 |
378 | 393 | else: |
diff --git a/src/jarabe/journal/listview.py b/src/jarabe/journal/listview.py
index 82e76b0..26f309d 100644
a
|
b
|
class BaseListView(gtk.Bin): |
261 | 261 | def __favorite_clicked_cb(self, cell, path): |
262 | 262 | row = self._model[path] |
263 | 263 | metadata = model.get(row[ListModel.COLUMN_UID]) |
| 264 | if not model.is_editable(metadata): |
| 265 | return |
264 | 266 | if metadata.get('keep', 0) == '1': |
265 | 267 | metadata['keep'] = '0' |
266 | 268 | else: |
… |
… |
class BaseListView(gtk.Bin): |
310 | 312 | else: |
311 | 313 | self._clear_message() |
312 | 314 | |
| 315 | is_editable = False |
| 316 | mountpoints = self._query.get('mountpoints') |
| 317 | if mountpoints is not None and len(mountpoints): |
| 318 | is_editable = mountpoints[0] == '/' |
| 319 | self.cell_title.props.editable = is_editable |
| 320 | |
313 | 321 | def _is_query_empty(self): |
314 | 322 | # FIXME: This is a hack, we shouldn't have to update this every time |
315 | 323 | # a new search term is added. |
diff --git a/src/jarabe/journal/model.py b/src/jarabe/journal/model.py
index 8ae78d8..f452a7f 100644
a
|
b
|
def _datastore_updated_cb(object_id): |
371 | 371 | def _datastore_deleted_cb(object_id): |
372 | 372 | deleted.send(None, object_id=object_id) |
373 | 373 | |
374 | | def find(query, page_size): |
| 374 | def find(query_, page_size): |
375 | 375 | """Returns a ResultSet |
376 | 376 | """ |
| 377 | query = query_.copy() |
| 378 | |
377 | 379 | if 'order_by' not in query: |
378 | 380 | query['order_by'] = ['-mtime'] |
379 | 381 | |
… |
… |
def _get_unique_file_name(mount_point, file_name): |
529 | 531 | |
530 | 532 | return file_name |
531 | 533 | |
| 534 | def is_editable(metadata): |
| 535 | mountpoint = metadata.get('mountpoint', '/') |
| 536 | return mountpoint == '/' |
| 537 | |
532 | 538 | created = dispatch.Signal() |
533 | 539 | updated = dispatch.Signal() |
534 | 540 | deleted = dispatch.Signal() |
535 | | |