Make the terminal context menu list available profiles and switch between them
This commit is contained in:
parent
2a56e328ac
commit
ee81bd4f76
|
@ -198,8 +198,10 @@ class Config(object):
|
||||||
|
|
||||||
def set_profile(self, profile):
|
def set_profile(self, profile):
|
||||||
"""Set our profile (which usually means change it)"""
|
"""Set our profile (which usually means change it)"""
|
||||||
|
dbg('Config::set_profile: Changing profile to %s' % profile)
|
||||||
self.profile = profile
|
self.profile = profile
|
||||||
if not self.base.profiles.has_key(profile):
|
if not self.base.profiles.has_key(profile):
|
||||||
|
dbg('Config::set_profile: %s does not exist, creating' % profile)
|
||||||
self.base.profiles[profile] = copy(DEFAULTS['profiles']['default'])
|
self.base.profiles[profile] = copy(DEFAULTS['profiles']['default'])
|
||||||
|
|
||||||
def del_profile(self, profile):
|
def del_profile(self, profile):
|
||||||
|
|
|
@ -135,6 +135,15 @@ class Terminal(gtk.VBox):
|
||||||
if self.config['http_proxy'] and self.config['http_proxy'] != '':
|
if self.config['http_proxy'] and self.config['http_proxy'] != '':
|
||||||
os.putenv('http_proxy', self.config['http_proxy'])
|
os.putenv('http_proxy', self.config['http_proxy'])
|
||||||
|
|
||||||
|
def set_profile(self, widget, profile):
|
||||||
|
"""Set our profile"""
|
||||||
|
self.config.set_profile(profile)
|
||||||
|
self.reconfigure()
|
||||||
|
|
||||||
|
def get_profile(self):
|
||||||
|
"""Return our profile name"""
|
||||||
|
return(self.config.profile)
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
"""Close ourselves"""
|
"""Close ourselves"""
|
||||||
dbg('Terminal::close: emitting close-term')
|
dbg('Terminal::close: emitting close-term')
|
||||||
|
|
|
@ -10,6 +10,7 @@ from version import APP_NAME
|
||||||
from translation import _
|
from translation import _
|
||||||
from encoding import TerminatorEncoding
|
from encoding import TerminatorEncoding
|
||||||
from util import err
|
from util import err
|
||||||
|
from config import Config
|
||||||
import plugin
|
import plugin
|
||||||
|
|
||||||
class TerminalPopupMenu(object):
|
class TerminalPopupMenu(object):
|
||||||
|
@ -130,10 +131,29 @@ class TerminalPopupMenu(object):
|
||||||
item.set_sensitive(False)
|
item.set_sensitive(False)
|
||||||
menu.append(item)
|
menu.append(item)
|
||||||
|
|
||||||
|
item = gtk.MenuItem(_('Profiles'))
|
||||||
|
submenu = gtk.Menu()
|
||||||
|
item.set_submenu(submenu)
|
||||||
|
menu.append(item)
|
||||||
|
|
||||||
|
config = Config()
|
||||||
|
current = terminal.get_profile()
|
||||||
|
|
||||||
|
group = None
|
||||||
|
|
||||||
|
for profile in config.list_profiles():
|
||||||
|
item = gtk.RadioMenuItem(group, profile.capitalize())
|
||||||
|
item.connect('activate', terminal.set_profile, profile)
|
||||||
|
if profile == current:
|
||||||
|
item.set_active(True)
|
||||||
|
submenu.append(item)
|
||||||
|
|
||||||
|
submenu.append(gtk.MenuItem())
|
||||||
|
|
||||||
item = gtk.MenuItem(_('Ed_it profile'))
|
item = gtk.MenuItem(_('Ed_it profile'))
|
||||||
item.connect('activate', lambda x:
|
item.connect('activate', lambda x:
|
||||||
terminal.terminator.edit_profile(terminal))
|
terminal.terminator.edit_profile(terminal))
|
||||||
menu.append(item)
|
submenu.append(item)
|
||||||
|
|
||||||
self.add_encoding_items(menu)
|
self.add_encoding_items(menu)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue