hook up the terminal enumeration menu items
This commit is contained in:
parent
2a65918209
commit
bb073887fc
|
@ -68,4 +68,29 @@ class Terminator(Borg):
|
|||
for group in todestroy:
|
||||
self.groups.remove(group)
|
||||
|
||||
def do_enumerate(self, widget, pad):
|
||||
"""Insert the number of each terminal in a group, into that terminal"""
|
||||
if pad:
|
||||
numstr='%0'+str(len(str(len(self.terminals))))+'d'
|
||||
else:
|
||||
numstr='%d'
|
||||
|
||||
for term in self.get_target_terms(widget):
|
||||
idx = self.terminals.index(term)
|
||||
term.feed(numstr % (idx + 1))
|
||||
|
||||
def get_target_terms(self, widget):
|
||||
"""Get the terminals we should currently be broadcasting to"""
|
||||
if self.groupsend == self.groupsend_type['all']:
|
||||
return(self.terminals)
|
||||
elif self.groupsend == self.groupsend_type['group']:
|
||||
set = []
|
||||
for term in self.terminals:
|
||||
if term == widget or (term.group != None and term.group ==
|
||||
widget.group):
|
||||
set.append(term)
|
||||
return(set)
|
||||
else:
|
||||
return([widget])
|
||||
|
||||
# vim: set expandtab ts=4 sw=4:
|
||||
|
|
|
@ -33,6 +33,8 @@ class Terminal(gtk.VBox):
|
|||
'close-term': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, ()),
|
||||
'title-change': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE,
|
||||
(gobject.TYPE_STRING,)),
|
||||
'enumerate': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE,
|
||||
(gobject.TYPE_INT,)),
|
||||
}
|
||||
|
||||
TARGET_TYPE_VTE = 8
|
||||
|
@ -60,6 +62,8 @@ class Terminal(gtk.VBox):
|
|||
self.__gobject_init__()
|
||||
|
||||
self.terminator = Terminator()
|
||||
self.connect('enumerate', self.terminator.do_enumerate)
|
||||
|
||||
self.matches = {}
|
||||
|
||||
self.config = Config()
|
||||
|
@ -318,11 +322,11 @@ class Terminal(gtk.VBox):
|
|||
menu.append(gtk.MenuItem())
|
||||
|
||||
item = gtk.MenuItem(_('Insert terminal number'))
|
||||
item.connect('activate', lambda menu_item: self.do_enumerate())
|
||||
item.connect('activate', lambda menu_item: self.emit('enumerate', False))
|
||||
menu.append(item)
|
||||
|
||||
item = gtk.MenuItem(_('Insert padded terminal number'))
|
||||
item.connect('activate', lambda menu_item: self.do_enumerate(pad=True))
|
||||
item.connect('activate', lambda menu_item: self.emit('enumerate', True))
|
||||
menu.append(item)
|
||||
|
||||
return(menu)
|
||||
|
@ -581,12 +585,16 @@ class Terminal(gtk.VBox):
|
|||
|
||||
def paste_clipboard(self, primary=False):
|
||||
"""Paste one of the two clipboards"""
|
||||
# FIXME: Make this work across a group
|
||||
for term in self.terminator.get_target_terms():
|
||||
if primary:
|
||||
self.vte.paste_primary()
|
||||
term.vte.paste_primary()
|
||||
else:
|
||||
self.vte.paste_clipboard()
|
||||
term.vte.paste_clipboard()
|
||||
self.vte.grab_focus()
|
||||
|
||||
def feed(self, text):
|
||||
"""Feed the supplied text to VTE"""
|
||||
self.vte.feed_child(text)
|
||||
|
||||
gobject.type_register(Terminal)
|
||||
# vim: set expandtab ts=4 sw=4:
|
||||
|
|
Loading…
Reference in New Issue