[Nym3-commit] r148 - trunk/nym3/Client
laurent at komite.net
laurent at komite.net
Wed Dec 29 01:44:58 CET 2004
Author: laurent
Date: 2004-12-29 01:44:57 +0100 (Wed, 29 Dec 2004)
New Revision: 148
Modified:
trunk/nym3/Client/testcurses.py
Log:
Add support for message tagging.
Modified: trunk/nym3/Client/testcurses.py
===================================================================
--- trunk/nym3/Client/testcurses.py 2004-12-28 23:39:32 UTC (rev 147)
+++ trunk/nym3/Client/testcurses.py 2004-12-29 00:44:57 UTC (rev 148)
@@ -66,17 +66,19 @@
def __init__(self):
self.synlist = [syn1, syn2] # TODO: testing only
- def view(self, i):
+ def view(self):
"""Display the requested synopsis"""
# TODO : this needs a PAGER view.
- self.synlist[i]['read_status'] = 'read'
+ self.synlist[self.ctx.index]['read_status'] = 'read'
pass
- def mark_unread(self, i):
- self.synlist[i]['read_status'] = 'unread'
+ def mark_unread(self):
+ for i in self.ctx.get_targets():
+ self.synlist[i]['read_status'] = 'unread'
- def mark_read(self, i):
- self.synlist[i]['read_status'] = 'read'
+ def mark_read(self):
+ for i in self.ctx.get_targets():
+ self.synlist[i]['read_status'] = 'read'
def size(self):
return len(self.synlist)
@@ -123,14 +125,14 @@
else: ret.append('')
return tuple(ret)
- def fetch(self, l):
+ def fetch(self):
"""Schedule every entry listed in l for retrieval"""
- for i in l:
+ for i in self.ctx.get_targets():
self.synlist[i]['fetch_status'] = 'fetch'
- def delete(self, l):
+ def delete(self):
"""Schedule every entry listed in l for deletion"""
- for i in l:
+ for i in self.ctx.get_targets():
self.synlist[i]['fetch_status'] = 'delete'
def process_pending(self):
@@ -161,6 +163,7 @@
#the table, in fact a class with a method size() and line(i), and
#other action based on the lines
self.tab = tab
+ tab.ctx = self
(self.maxline, self.maxcol) = screen.getmaxyx()
self.index = 0 #index of the active line
self.fstindex = 0 #index of the lowest line displayed
@@ -169,11 +172,18 @@
self.listrange = max (0, self.maxline - 3)
self.action = {
ord('q') : self.quit,
+ ord('t') : self.tag,
+ ord(';') : self.settagprefix,
+ #TODO: make this cleaner.
+ ord('f') : tab.fetch,
+ ord('d') : tab.delete,
curses.KEY_DOWN : self.on_K_down,
curses.KEY_UP : self.on_K_up,
curses.KEY_RESIZE : self.on_resize
}
+ self.tagprefix = None
self.draw_picture()
+ self.tagged = {}
def message(self):
return "q:Quitter"
@@ -260,6 +270,20 @@
self.listrange = max (0, self.maxline - 3)
if self.listrange != 0:
self.fstindex = (self.index / self.listrange) * self.listrange
+
+ def tag(self):
+ """Toggle tag-status of current message"""
+ if self.tagged.has_key(self.index):
+ del(self.tagged[self.index])
+ else:
+ self.tagged[self.index] = True
+
+ def settagprefix(self):
+ self.tagprefix = True
+
+ def get_targets(self):
+ if self.tagprefix and self.tagged: return self.tagged.keys()
+ else: return [self.index]
def func(stdscr):
curses.curs_set(0)
More information about the Nym3-commit
mailing list