projects
/
matthijs
/
upstream
/
mobilegtd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Extract some common view stuff into a View class.
[matthijs/upstream/mobilegtd.git]
/
src
/
gui
/
gui.py
diff --git
a/src/gui/gui.py
b/src/gui/gui.py
index 0247175fc22ee76eb165184427b36aa257f67cd0..a8f217164e1d3b399dc6e63a683be89e814d2e0e 100644
(file)
--- a/
src/gui/gui.py
+++ b/
src/gui/gui.py
@@
-93,7
+93,6
@@
def save_gui(object):
object.old_menu = appuifw.app.menu
object.old_exit_key_handler = appuifw.app.exit_key_handler
object.old_title=appuifw.app.title
object.old_menu = appuifw.app.menu
object.old_exit_key_handler = appuifw.app.exit_key_handler
object.old_title=appuifw.app.title
- object.lock = Ao_lock()
def restore_gui(object):
appuifw.app.body = object.old_gui
def restore_gui(object):
appuifw.app.body = object.old_gui
@@
-101,21
+100,28
@@
def restore_gui(object):
appuifw.app.exit_key_handler = object.old_exit_key_handler
appuifw.app.title = object.old_title
appuifw.app.exit_key_handler = object.old_exit_key_handler
appuifw.app.title = object.old_title
-
-class ListView(object):
+class View(object):
def __init__(self):
def __init__(self):
- self.view = appuifw.Listbox(self.items(),self.change_entry)
+ self.title = None
+ self.view = None
+ self.lock = Ao_lock()
+ self.exit_flag = False
+ super(View, self).__init__()
def set_title(self, title):
self.title = title
def set_title(self, title):
self.title = title
-
- def change_entry(self):
- pass
-
+
+ def set_view(self, view):
+ """
+ Sets the main view to be displayed (e.g., an appuifw.Listbox
+ instance).
+ """
+ self.view = view
+
def run(self):
self.adjustment = None
def run(self):
self.adjustment = None
- appuifw.app.screen=COMMON_CONFIG['screen'].encode('utf-8')
save_gui(self)
save_gui(self)
+ appuifw.app.screen=COMMON_CONFIG['screen'].encode('utf-8')
appuifw.app.title=self.title
appuifw.app.body=self.view
appuifw.app.exit_key_handler=self.exit
appuifw.app.title=self.title
appuifw.app.body=self.view
appuifw.app.exit_key_handler=self.exit
@@
-127,10
+133,27
@@
class ListView(object):
except:
pass
restore_gui(self)
except:
pass
restore_gui(self)
+
def exit(self):
self.exit_flag = True
self.lock.signal()
def exit(self):
self.exit_flag = True
self.lock.signal()
+ super(View, self).exit()
+
+ def refresh(self):
+ """
+ Update the gui after a change in model or some user interaction.
+ Should be filled by subclasses.
+ """
+ super(View, self).refresh()
+class ListView(View):
+ def __init__(self):
+ super(ListView, self).__init__()
+ self.set_view(appuifw.Listbox(self.items(),self.change_entry))
+
+ def change_entry(self):
+ pass
+
def update(self,subject=None):
#logger.log(u'Updated %s'%repr(self))
if self.lock:
def update(self,subject=None):
#logger.log(u'Updated %s'%repr(self))
if self.lock:
@@
-166,7
+189,6
@@
class WidgetBasedListView(ListView):
def __init__(self):
self.widgets = self.generate_widgets()
super(WidgetBasedListView,self).__init__()
def __init__(self):
self.widgets = self.generate_widgets()
super(WidgetBasedListView,self).__init__()
- self.exit_flag = False
def run(self):
self.refresh()
def run(self):
self.refresh()
@@
-196,6
+218,7
@@
class KeyBindingView(object):
def __init__(self):
self.binding_map = {}
def __init__(self):
self.binding_map = {}
+ super(KeyBindingView,self).__init__()
def set_keybindings(self, binding_map):
"""
def set_keybindings(self, binding_map):
"""
@@
-272,7
+295,6
@@
class SearchableListView(WidgetBasedListView):
class EditableListView(SearchableListView,KeyBindingView):
def __init__(self):
class EditableListView(SearchableListView,KeyBindingView):
def __init__(self):
- KeyBindingView.__init__(self)
super(EditableListView, self).__init__()
def key_and_menu_bindings(self,selected_index):
super(EditableListView, self).__init__()
def key_and_menu_bindings(self,selected_index):