[kupfer] browser, data: Experiment with soft reset
- From: Ulrik Sverdrup <usverdrup src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [kupfer] browser, data: Experiment with soft reset
- Date: Thu, 10 Sep 2009 04:14:14 +0000 (UTC)
commit 541c37a2b75a78b64e73da34e5a02f922afe8ec0
Author: Ulrik Sverdrup <ulrik sverdrup gmail com>
Date: Mon Sep 7 22:12:23 2009 +0200
browser, data: Experiment with soft reset
kupfer/browser.py | 18 +++++++++++++-----
kupfer/data.py | 15 +++++++++++++--
2 files changed, 26 insertions(+), 7 deletions(-)
---
diff --git a/kupfer/browser.py b/kupfer/browser.py
index e39975c..c10bfb2 100644
--- a/kupfer/browser.py
+++ b/kupfer/browser.py
@@ -656,7 +656,8 @@ class LeafSearch (Search):
if empty and self.source:
return _("%s is empty") % self.source, get_pbuf(self.source)
elif self.source:
- return _("No matches in %s") % self.source, get_pbuf(self.source)
+ return (_('No matches in %s for "%s"') % (self.source, self.text),
+ get_pbuf(self.source))
else:
return unicode(self.dummy), self.dummy.get_pixbuf(self.icon_size)
def setup_empty(self):
@@ -723,6 +724,7 @@ class Interface (gobject.GObject):
self._key_press_interval = 0.8
self._key_pressed = None
self._theme_colors = {}
+ self._reset_to_toplevel = False
self.entry.set_size_request(0, 0)
window.connect("map-event", self._map_window)
@@ -884,6 +886,7 @@ class Interface (gobject.GObject):
if keyv not in self.keys_sensible:
# exit if not handled
return False
+ self._reset_to_toplevel = False
if keyv == key_book["Escape"]:
self._escape_key_press()
@@ -954,6 +957,7 @@ class Interface (gobject.GObject):
if self.current.get_table_visible():
self.current.hide_table()
self._relax_search_terms()
+ self._reset_to_toplevel = True
def _back_key_press(self):
"""Handle leftarrow and backspace
@@ -963,14 +967,17 @@ class Interface (gobject.GObject):
self.reset()
self.reset_current()
self._relax_search_terms()
+ self._reset_to_toplevel = True
else:
if self._browse_up():
pass
else:
self.reset()
self.reset_current()
+ self._reset_to_toplevel = True
def _relax_search_terms(self):
+ print "relax"
if self.get_in_text_mode():
return
self.reset_text()
@@ -1043,6 +1050,7 @@ class Interface (gobject.GObject):
def put_away(self):
"""Called when the interface is hidden"""
self._show_third_pane(False)
+ self._reset_to_toplevel = True
def _pane_reset(self, controller, pane, item):
wid = self._widget_for_pane(pane)
@@ -1187,10 +1195,10 @@ class Interface (gobject.GObject):
return
pane = self._pane_for_widget(self.current)
- if not self.current.get_is_browsing():
- print "Not browsing"
- #self.data_controller.reset_pane(pane)
-
+ if not self.get_in_text_mode() and self._reset_to_toplevel:
+ print "reset to toplevel"
+ self.data_controller.soft_reset(pane)
+ self._reset_to_toplevel = False
self.data_controller.search(pane, key=text, context=text,
text_mode=self.get_in_text_mode())
diff --git a/kupfer/data.py b/kupfer/data.py
index 2bb814f..9a47160 100644
--- a/kupfer/data.py
+++ b/kupfer/data.py
@@ -554,6 +554,11 @@ class LeafPane (Pane, pretty.OutputMixin):
pass
self.refresh_data()
+ def soft_reset(self):
+ Pane.reset(self)
+ while self.pop_source():
+ pass
+
def search(self, key=u"", context=None, text_mode=False):
"""
filter for action @item
@@ -608,11 +613,11 @@ class SecondaryObjectPane (LeafPane):
LeafPane.__init__(self)
self.current_item = None
self.current_action = None
+
def reset(self):
- self.source = None
- self.source_stack = None
LeafPane.reset(self)
self.searcher = Searcher()
+
def set_item_and_action(self, item, act):
self.current_item = item
self.current_action = act
@@ -840,6 +845,12 @@ class DataController (gobject.GObject, pretty.OutputMixin):
self.source_pane.reset()
self.action_pane.reset()
+ def soft_reset(self, pane):
+ if pane is ActionPane:
+ return
+ panectl = self._panectl_table[pane]
+ panectl.soft_reset()
+
def cancel_search(self, pane=None):
"""Cancel any outstanding search, or the search for @pane"""
panes = (pane, ) if pane else iter(self._panectl_table)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]