Fix some typos and flesh out the group menu

This commit is contained in:
Chris Jones 2009-09-04 22:12:13 +01:00
parent 28e7ee6116
commit 2a65918209
1 changed files with 93 additions and 3 deletions

View File

@ -14,6 +14,7 @@ import gobject
from util import dbg, err, gerr from util import dbg, err, gerr
from config import Config from config import Config
from cwd import get_default_cwd from cwd import get_default_cwd
from newterminator import Terminator
from titlebar import Titlebar from titlebar import Titlebar
from searchbar import Searchbar from searchbar import Searchbar
from translation import _ from translation import _
@ -36,11 +37,13 @@ class Terminal(gtk.VBox):
TARGET_TYPE_VTE = 8 TARGET_TYPE_VTE = 8
terminator = None
vte = None vte = None
terminalbox = None terminalbox = None
titlebar = None titlebar = None
searchbar = None searchbar = None
group = None
cwd = None cwd = None
command = None command = None
clipboard = None clipboard = None
@ -56,6 +59,7 @@ class Terminal(gtk.VBox):
gtk.VBox.__init__(self) gtk.VBox.__init__(self)
self.__gobject_init__() self.__gobject_init__()
self.terminator = Terminator()
self.matches = {} self.matches = {}
self.config = Config() self.config = Config()
@ -248,7 +252,78 @@ class Terminal(gtk.VBox):
item.connect('activate', self.create_group) item.connect('activate', self.create_group)
menu.append(item) menu.append(item)
#FIXME: Add the rest of the menu if len(self.terminator.groups) > 0:
groupitem = gtk.RadioMenuItem(groupitem, _('None'))
groupitem.set_active(self.group == None)
groupitem.connect('activate', self.set_group, None)
menu.append(groupitem)
for group in self.terminator.groups:
item = gtk.RadioMenuItem(groupitem, group, False)
item.set_active(self.group == group)
item.connect('toggled', self.set_group, group)
menu.append(item)
groupitem = item
if self.group != None or len(self.terminator.groups) > 0:
menu.append(gtk.MenuItem())
if self.group != None:
item = gtk.MenuItem(_('Remove group %s') % self.group)
item.connect('activate', self.ungroup, self.group)
menu.append(item)
# FIXME: Functions to group/ungroup all terms in current tab
if len(self.terminator.groups) > 0:
item = gtk.MenuItem(_('Remove all groups'))
item.connect('activate', self.ungroup_all) # FIXME: ungroup_all should be in Terminator() ?
menu.append(item)
if self.group != None:
menu.append(gtk.MenuItem())
item = gtk.MenuItem(_('Close group %s') % self.group)
item.connect('activate', lambda menu_item:
self.terminator.closegroupedterms(self))
menu.append(item)
menu.append(gtk.MenuItem())
groupitem = None
for key,value in {_('Broadcast off'):'off',
_('Broadcast group'):'group',
_('Broadcast all'):'all'}.items():
groupitem = gtk.RadioMenuItem(groupitem, key)
groupitem.set_active(self.terminator.groupsend ==
self.terminator.groupsend_type[value])
groupitem.connect('activate', self.set_groupsend,
self.terminator.groupsend_type[value])
menu.append(groupitem)
menu.append(gtk.MenuItem())
item = gtk.CheckMenuItem(_('Split to this group'))
item.set_active(self.terminator.splittogroup)
item.connect('toggled', lambda menu_item: self.do_splittogroup_toggle())
menu.append(item)
item = gtk.CheckMenuItem(_('Autoclean groups'))
item.set_active(self.terminator.autocleangroups)
item.connect('toggled', lambda menu_item:
self.do_autocleangroups_toggle())
menu.append(item)
menu.append(gtk.MenuItem())
item = gtk.MenuItem(_('Insert terminal number'))
item.connect('activate', lambda menu_item: self.do_enumerate())
menu.append(item)
item = gtk.MenuItem(_('Insert padded terminal number'))
item.connect('activate', lambda menu_item: self.do_enumerate(pad=True))
menu.append(item)
return(menu) return(menu)
@ -274,6 +349,21 @@ class Terminal(gtk.VBox):
"""Create a new group""" """Create a new group"""
pass pass
def set_groupsend(self, widget, value):
"""Set the groupsend mode"""
# FIXME: Can we think of a smarter way of doing this than poking?
self.terminator.groupsend = value
def do_splittogroup_toggle(self):
"""Toggle the splittogroup mode"""
# FIXME: Can we think of a smarter way of doing this than poking?
self.terminator.splittogroup = not self.terminator.splittogroup
def do_autocleangroups_toggle(self):
"""Toggle the autocleangroups mode"""
# FIXME: Can we think of a smarter way of doing this than poking?
self.terminator.autocleangroups = not self.terminator.autocleangroups
def reconfigure(self, widget=None): def reconfigure(self, widget=None):
"""Reconfigure our settings""" """Reconfigure our settings"""
pass pass
@ -467,7 +557,7 @@ class Terminal(gtk.VBox):
url = 'ftp://' + url url = 'ftp://' + url
elif match == self.matches['addr_only']: elif match == self.matches['addr_only']:
url = 'http://' + url url = 'http://' + url
elif match == self.matches['launchpad'] elif match == self.matches['launchpad']:
for item in re.findall(r'[0-9]+', url): for item in re.findall(r'[0-9]+', url):
url = 'https://bugs.launchpad.net/bugs/%s' % item url = 'https://bugs.launchpad.net/bugs/%s' % item
return(url) return(url)