def __init__(self, app, default):
self.app = app
search_button = mywid.FixedButton('Search')
cancel_button = mywid.FixedButton('Cancel')
urwid.connect_signal(search_button, 'click',
lambda button:self._emit('search'))
urwid.connect_signal(cancel_button, 'click',
lambda button:self._emit('cancel'))
super(SearchDialog, self).__init__("Search",
"Enter a change number or search string.",
entry_prompt="Search: ",
entry_text=default,
buttons=[search_button,
cancel_button],
ring=app.ring)
python类connect_signal()的实例源码
def quit(self):
dialog = mywid.YesNoDialog(u'Quit',
u'Are you sure you want to quit?')
urwid.connect_signal(dialog, 'no', self.backScreen)
urwid.connect_signal(dialog, 'yes', self._quit)
self.popup(dialog)
def welcome(self):
text = WELCOME_TEXT
dialog = mywid.MessageDialog('Welcome', text)
lines = text.split('\n')
urwid.connect_signal(dialog, 'close',
lambda button: self.backScreen())
self.popup(dialog, min_width=76, min_height=len(lines)+4)
#storyboard
def searchDialog(self, default):
dialog = SearchDialog(self, default)
urwid.connect_signal(dialog, 'cancel',
lambda button: self.backScreen())
urwid.connect_signal(dialog, 'search',
lambda button: self._searchDialog(dialog))
self.popup(dialog, min_width=76, min_height=8)
def newStory(self):
if hasattr(self.frame.body, 'project_key'):
project_key = self.frame.body.project_key
else:
project_key = None
dialog = view_story.NewStoryDialog(self, project_key)
urwid.connect_signal(dialog, 'save',
lambda button: self.saveNewStory(dialog))
urwid.connect_signal(dialog, 'cancel',
lambda button: self.cancelNewStory(dialog))
self.popup(dialog,
relative_width=50, relative_height=25,
min_width=60, min_height=8)
def __init__(self, app, title, message, entry_prompt=None,
entry_text='', ring=None):
self.app = app
save_button = FixedButton('Save')
cancel_button = FixedButton('Cancel')
urwid.connect_signal(save_button, 'click',
lambda button:self._emit('save'))
urwid.connect_signal(cancel_button, 'click',
lambda button:self._emit('cancel'))
super(LineEditDialog, self).__init__(title, message, entry_prompt,
entry_text,
buttons=[save_button,
cancel_button],
ring=ring)
def __init__(self, title, message):
ok_button = FixedButton('OK')
urwid.connect_signal(ok_button, 'click',
lambda button:self._emit('close'))
super(MessageDialog, self).__init__(title, message, buttons=[ok_button])
def __init__(self, title, message):
yes_button = FixedButton('Yes')
no_button = FixedButton('No')
urwid.connect_signal(yes_button, 'click',
lambda button:self._emit('yes'))
urwid.connect_signal(no_button, 'click',
lambda button:self._emit('no'))
super(YesNoDialog, self).__init__(title, message, buttons=[yes_button,
no_button])
def __init__(self, app, title, key, value, values):
self.app = app
self.title = title
self.values = values
urwid.connect_signal(self, 'click',
lambda button:self.onClick())
super(SearchSelectButton, self).__init__(u'')
self.update(key, value)
def onClick(self):
dialog = SearchSelectDialog(self.app, self.title, self.key, self.values)
urwid.connect_signal(dialog, 'save',
lambda d:self.onChanged(d))
self.app.popup(dialog,
relative_width=30, relative_height=75,
min_width=30, min_height=20)
def replace(self, app, data):
link = mywid.Link(self.text.format(**data), 'link', 'focused-link')
urwid.connect_signal(link, 'selected',
lambda link:self.activate(app, self.url.format(**data)))
return link
def replace(self, app, data):
link = mywid.Link(self.text.format(**data), 'link', 'focused-link')
urwid.connect_signal(link, 'selected',
lambda link:app.doSearch(self.query.format(**data)))
return link
def __init__(self, app, project_key):
self.app = app
save_button = mywid.FixedButton(u'Save')
cancel_button = mywid.FixedButton(u'Cancel')
urwid.connect_signal(save_button, 'click',
lambda button:self._emit('save'))
urwid.connect_signal(cancel_button, 'click',
lambda button:self._emit('cancel'))
rows = []
buttons = [('pack', save_button),
('pack', cancel_button)]
buttons = urwid.Columns(buttons, dividechars=2)
if project_key:
with self.app.db.getSession() as session:
project = session.getProject(project_key)
project_name = project.name
else:
project_name = None
self.project_button = ProjectButton(self.app, project_key, project_name)
self.title_field = mywid.MyEdit(u'', edit_text=u'', ring=app.ring)
self.description_field = mywid.MyEdit(u'', edit_text='',
multiline=True, ring=app.ring)
for (label, w) in [
(u'Title:', self.title_field),
(u'Description:', self.description_field),
(u'Project:', ('pack', self.project_button)),
]:
row = urwid.Columns([(12, urwid.Text(label)), w])
rows.append(row)
rows.append(urwid.Divider())
rows.append(buttons)
pile = urwid.Pile(rows)
fill = urwid.Filler(pile, valign='top')
super(NewStoryDialog, self).__init__(urwid.LineBox(fill, 'New Story'))
def __init__(self, app):
self.app = app
save_button = mywid.FixedButton(u'Save')
cancel_button = mywid.FixedButton(u'Cancel')
urwid.connect_signal(save_button, 'click',
lambda button:self._emit('save'))
urwid.connect_signal(cancel_button, 'click',
lambda button:self._emit('cancel'))
rows = []
buttons = [('pack', save_button),
('pack', cancel_button)]
buttons = urwid.Columns(buttons, dividechars=2)
self.project_button = ProjectButton(self.app)
self.status_button = StatusButton(self.app)
self.assignee_button = AssigneeButton(self.app)
self.title_field = mywid.MyEdit(u'', edit_text=u'', ring=app.ring)
for (label, w) in [
(u'Project:', ('pack', self.project_button)),
(u'Title:', self.title_field),
(u'Status:', ('pack', self.status_button)),
(u'Assignee:', ('pack', self.assignee_button)),
]:
row = urwid.Columns([(12, urwid.Text(label)), w])
rows.append(row)
rows.append(urwid.Divider())
rows.append(buttons)
pile = urwid.Pile(rows)
fill = urwid.Filler(pile, valign='top')
super(NewTaskDialog, self).__init__(urwid.LineBox(fill, 'New Task'))
def editNote(self, note_button):
dialog = mywid.LineEditDialog(self.app, 'Edit Task Note', '',
'Note: ', self._note,
ring=self.app.ring)
urwid.connect_signal(dialog, 'save',
lambda button: self.updateNote(dialog, True))
urwid.connect_signal(dialog, 'cancel',
lambda button: self.updateNote(dialog, False))
self.app.popup(dialog)
def delete(self):
dialog = mywid.YesNoDialog(u'Delete Task',
u'Are you sure you want to delete this task?')
urwid.connect_signal(dialog, 'no', lambda d: self.app.backScreen())
urwid.connect_signal(dialog, 'yes', self.finishDelete)
self.app.popup(dialog)
def __init__(self, story_view, story_key, text):
super(StoryButton, self).__init__('')
self.set_label(text)
self.story_view = story_view
self.story_key = story_key
urwid.connect_signal(self, 'click',
lambda button: self.openStory())
def editDescription(self):
with self.app.db.getSession() as session:
story = session.getStory(self.story_key)
dialog = mywid.TextEditDialog(self.app, u'Edit Description',
u'Description:',
u'Save', story.description)
urwid.connect_signal(dialog, 'cancel', self.app.backScreen)
urwid.connect_signal(dialog, 'save', lambda button:
self.doEditDescription(dialog))
self.app.popup(dialog,
relative_width=50, relative_height=75,
min_width=60, min_height=20)
def newTask(self):
dialog = NewTaskDialog(self.app)
urwid.connect_signal(dialog, 'save',
lambda button: self.saveNewTask(dialog))
urwid.connect_signal(dialog, 'cancel',
lambda button: self.cancelNewTask(dialog))
self.app.popup(dialog,
relative_width=50, relative_height=25,
min_width=60, min_height=8)
def editTitle(self):
dialog = mywid.LineEditDialog(self.app, 'Edit Story Title', '',
'Title: ', self.story_title,
ring=self.app.ring)
urwid.connect_signal(dialog, 'save',
lambda button: self.updateTitle(dialog, True))
urwid.connect_signal(dialog, 'cancel',
lambda button: self.updateTitle(dialog, False))
self.app.popup(dialog)