X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=src%2Fgui%2Fprojects_list%2Fproject_list_view.py;fp=src%2Fgui%2Fprojects_list%2Fproject_list_view.py;h=1288d10c65af61a8347b45ce661237528bcfa1c4;hb=826cc2e9923c858d3c6a86c04f371cfb326e1728;hp=0000000000000000000000000000000000000000;hpb=44f7fa2ef41d54548aa800b2bb71a886261c5046;p=matthijs%2Fupstream%2Fmobilegtd.git diff --git a/src/gui/projects_list/project_list_view.py b/src/gui/projects_list/project_list_view.py new file mode 100644 index 0000000..1288d10 --- /dev/null +++ b/src/gui/projects_list/project_list_view.py @@ -0,0 +1,76 @@ +from model import model +from config import config +from gui.gui import EditableListView +import appuifw,thread,re +from model import * +from config.config import gtd_directory,read_sms +from config.defaultconfig import default_projects_menu +from log.logging import logger +from e32 import Ao_lock, in_emulator +from key_codes import * +import key_codes +from new_project_widget import NewProjectWidget +from new_action_widget import NewActionWidget +from project_widget import ProjectWidget +from logic import review_visitor + +#from gui import * + + +PROJECT_LIST_KEYS_AND_MENU = config.Configuration(gtd_directory+"projects.cfg",default_projects_menu) +sms_regexp = re.compile('([^\w ]*)',re.U) + +class ProjectListView(EditableListView): + def __init__(self,projects): + self.projects = projects + self.projects.observers.append(self) + super(ProjectListView, self).__init__(u'Projects', [lambda:projects],PROJECT_LIST_KEYS_AND_MENU) + #appuifw.note(u'Before starting thread') +# thread.start_new_thread(projects.process,()) + #appuifw.note(u'After starting thread %s'%repr(projects.observers)) + def exit(self): + self.exit_flag = True + self.lock.signal() + if not in_emulator(): + appuifw.app.set_exit() + + def edit_menu(self): + show_config(PROJECT_LIST_KEYS_AND_MENU) + PROJECT_LIST_KEYS_AND_MENU.write() + def edit_config(self): + show_config(COMMON_CONFIG) + COMMON_CONFIG.write() + def add_project(self,project): + self.projects.add_project(project) + self.refresh() + def all_widget_entries(self): + return [entry.name_and_details() for entry in self.widgets] + def new_project(self): + NewProjectWidget(self.projects).change() + def new_action(self): + NewActionWidget().change() + def generate_widgets(self): + widgets = [] + widgets.append(NewProjectWidget(self.projects)) + widgets.append(NewActionWidget()) + self.filtered_list() + widgets.extend([ProjectWidget(self.projects,project) for project in self.projects.sorted_by_status()]) + if read_sms: + from sms_widget import create_sms_widgets + try: + widgets.extend(create_sms_widgets()) + except Exception,e: + logger.log(u'No permission to access SMS inbox') + logger.log(unicode(repr(e.args))) + return widgets + + def process_all(self): + review_visitor.reviewer.review(self.projects) + self.redisplay_widgets() + def reread_projects(self): + self.projects.reread() + self.refresh() + + + +