Thanks to some #pygtk folks we now have a way out of the ridiculous 16bit colour values that Gtk+ gives us from the ColorPicker widget. Now we get the 8bit values that everyone is used to

This commit is contained in:
Chris Jones 2010-04-13 23:17:52 +01:00
parent 5ac45778d5
commit 4f6235bc5e
3 changed files with 48 additions and 47 deletions

View File

@ -400,7 +400,7 @@ Default value: \fBclose\fR
.B palette .B palette
Terminals have a 16-colour palette that applications inside the terminal can use. This is that palette, in the form of a colon-separated list of colour names. Colour names should be in hex format e.g. "#FF00FF". Terminals have a 16-colour palette that applications inside the terminal can use. This is that palette, in the form of a colon-separated list of colour names. Colour names should be in hex format e.g. "#FF00FF".
.NA .NA
Default value: \fB'#2E2E34343636:#CCCC00000000:#4E4E9A9A0606:#C4C4A0A00000:#34346565A4A4:#757550507B7B:#060698209A9A:#D3D3D7D7CFCF:#555557575353:#EFEF29292929:#8A8AE2E23434:#FCFCE9E94F4F:#72729F9FCFCF:#ADAD7F7FA8A8:#3434E2E2E2E2:#EEEEEEEEECEC'\fR Default value: \fB'#2E3436:#CC0000:#4E9A06:#C4A000:#3465A4:#75507B:#06989A:#D3D7CF:#555753:#EF2929:#8AE234:#FCE94F:#729FCF:#AD7FA8:#34E2E2:#EEEEEC'\fR
.AD .AD
.TP .TP
.B word_chars .B word_chars

View File

@ -86,12 +86,12 @@ DEFAULTS = {
'hide_tabbar' : False, 'hide_tabbar' : False,
'scroll_tabbar' : False, 'scroll_tabbar' : False,
'try_posix_regexp' : platform.system() != 'Linux', 'try_posix_regexp' : platform.system() != 'Linux',
'title_transmit_fg_color' : '#ffffffffffff', 'title_transmit_fg_color' : '#ffffff',
'title_transmit_bg_color' : '#c8c800000303', 'title_transmit_bg_color' : '#c80003',
'title_receive_fg_color' : '#ffffffffffff', 'title_receive_fg_color' : '#ffffff',
'title_receive_bg_color' : '#00007676c9c9', 'title_receive_bg_color' : '#0076c9',
'title_inactive_fg_color' : '#000000000000', 'title_inactive_fg_color' : '#000000',
'title_inactive_bg_color' : '#c0c0bebebfbf', 'title_inactive_bg_color' : '#c0bebf',
'disabled_plugins' : ['TestPlugin', 'CustomCommandsMenu'], 'disabled_plugins' : ['TestPlugin', 'CustomCommandsMenu'],
}, },
'keybindings': { 'keybindings': {
@ -153,7 +153,7 @@ DEFAULTS = {
'visible_bell' : False, 'visible_bell' : False,
'urgent_bell' : False, 'urgent_bell' : False,
'icon_bell' : True, 'icon_bell' : True,
'background_color' : '#000000000000', 'background_color' : '#000000',
'background_darkness' : 0.5, 'background_darkness' : 0.5,
'background_type' : 'solid', 'background_type' : 'solid',
'background_image' : None, 'background_image' : None,
@ -162,10 +162,10 @@ DEFAULTS = {
'color_scheme' : 'grey_on_black', 'color_scheme' : 'grey_on_black',
'cursor_blink' : True, 'cursor_blink' : True,
'cursor_shape' : 'block', 'cursor_shape' : 'block',
'cursor_color' : '#aaaaaaaaaaaa', 'cursor_color' : '#aaaaaa',
'emulation' : 'xterm', 'emulation' : 'xterm',
'font' : 'Mono 10', 'font' : 'Mono 10',
'foreground_color' : '#aaaaaaaaaaaa', 'foreground_color' : '#aaaaaa',
'show_titlebar' : True, 'show_titlebar' : True,
'scrollbar_position' : "right", 'scrollbar_position' : "right",
'scroll_background' : True, 'scroll_background' : True,
@ -174,10 +174,9 @@ DEFAULTS = {
'scrollback_lines' : 500, 'scrollback_lines' : 500,
'scrollback_infinite' : False, 'scrollback_infinite' : False,
'exit_action' : 'close', 'exit_action' : 'close',
'palette' : '#2E2E34343636:#CCCC00000000:\ 'palette' : '#2e3436:#cc0000:#4e9a06:#c4a000:\
#4E4E9A9A0606:#C4C4A0A00000:#34346565A4A4:#757550507B7B:#060698209A9A:\ #3465a4:#75507b:#06989a:#d3d7cf:#555753:#ef2929:#8ae234:#fce94f:\
#D3D3D7D7CFCF:#555557575353:#EFEF29292929:#8A8AE2E23434:#FCFCE9E94F4F:\ #729fcf:#ad7fa8:#34e2e2:#eeeeec',
#72729F9FCFCF:#ADAD7F7FA8A8:#3434E2E2E2E2:#EEEEEEEEECEC',
'word_chars' : '-A-Za-z0-9,./?%&#:_', 'word_chars' : '-A-Za-z0-9,./?%&#:_',
'mouse_autohide' : True, 'mouse_autohide' : True,
'update_records' : True, 'update_records' : True,

View File

@ -16,6 +16,12 @@ from keybindings import Keybindings, KeymapError
from translation import _ from translation import _
from terminator import Terminator from terminator import Terminator
def color2hex(widget):
"""Pull the colour values out of a Gtk ColorPicker widget and return them
as 8bit hex values, sinces its default behaviour is to give 16bit values"""
widcol = widget.get_color()
return('#%02x%02x%02x' % (widcol.red>>8, widcol.green>>8, widcol.blue>>8))
# FIXME: We need to check that we have represented all of Config() below # FIXME: We need to check that we have represented all of Config() below
class PrefsEditor: class PrefsEditor:
"""Class implementing the various parts of the preferences editor""" """Class implementing the various parts of the preferences editor"""
@ -47,26 +53,21 @@ class PrefsEditor:
'rxvt': 3, 'rxvt': 3,
'ambience': 4, 'ambience': 4,
'custom': 5} 'custom': 5}
palettes = {'tango': '#000000000000:#CCCC00000000:#4E4E9A9A0606:\ palettes = {'tango': '#000000:#cc0000:#4e9a06:#c4a000:#3465a4:\
#C4C4A0A00000:#34346565A4A4:#757550507B7B:#060698209A9A:#D3D3D7D7CFCF:\ #75507b:#06989a:#d3d7cf:#555753:#ef2929:#8ae234:#fce94f:#729fcf:\
#555557575353:#EFEF29292929:#8A8AE2E23434:#FCFCE9E94F4F:#72729F9FCFCF:\ #ad7fa8:#34e2e2:#eeeeec',
#ADAD7F7FA8A8:#3434E2E2E2E2:#EEEEEEEEECEC', 'linux': '#000000:#aa0000:#00aa00:#aa5500:#0000aa:\
'linux': '#000000000000:#AAAA00000000:#0000AAAA0000:\ #aa00aa:#00aaaa:#aaaaaa:#555555:#ff5555:#55ff55:#ffff55:#5555ff:\
#AAAA55550000:#00000000AAAA:#AAAA0000AAAA:#0000AAAAAAAA:#AAAAAAAAAAAA:\ #ff55ff:#55ffff:#ffffff',
#555555555555:#FFFF55555555:#5555FFFF5555:#FFFFFFFF5555:#55555555FFFF:\ 'xterm': '#000000:#cd0000:#00cd00:#cdcd00:#1e90ff:\
#FFFF5555FFFF:#5555FFFFFFFF:#FFFFFFFFFFFF', #cd00cd:#00cdcd:#e5e5e5:#4c4c4c:#ff0000:#00ff00:#ffff00:#4682b4:\
'xterm': '#000000000000:#CDCB00000000:#0000CDCB0000:\ #ff00ff:#00ffff:#ffffff',
#CDCBCDCB0000:#1E1A908FFFFF:#CDCB0000CDCB:#0000CDCBCDCB:#E5E2E5E2E5E2:\ 'rxvt': '#000000:#cd0000:#00cd00:#cdcd00:#0000cd:\
#4CCC4CCC4CCC:#FFFF00000000:#0000FFFF0000:#FFFFFFFF0000:#46458281B4AE:\ #cd00cd:#00cdcd:#faebd7:#404040:#ff0000:#00ff00:#ffff00:#0000ff:\
#FFFF0000FFFF:#0000FFFFFFFF:#FFFFFFFFFFFF', #ff00ff:#00ffff:#ffffff',
'rxvt': '#000000000000:#CDCD00000000:#0000CDCD0000:\ 'ambience': '#2e3436:#cc0000:#4e9a06:#c4a000:\
#CDCDCDCD0000:#00000000CDCD:#CDCD0000CDCD:#0000CDCDCDCD:#FAFAEBEBD7D7:\ #3465a4:#75507b:#06989a:#d3d7cf:#555753:#ef2929:#8ae234:#fce94f:\
#404040404040:#FFFF00000000:#0000FFFF0000:#FFFFFFFF0000:#00000000FFFF:\ #729fcf:#ad7fa8:#34e2e2:#eeeeec'}
#FFFF0000FFFF:#0000FFFFFFFF:#FFFFFFFFFFFF',
'ambience': '#2E2E34343636:#CCCC00000000:#4E4E9A9A0606:\
#C4C4A0A00000:#34346565A4A4:#757550507B7B:#060698209A9A:#D3D3D7D7CFCF:\
#555557575353:#EFEF29292929:#8A8AE2E23434:#FCFCE9E94F4F:#72729F9FCFCF:\
#ADAD7F7FA8A8:#3434E2E2E2E2:#EEEEEEEEECEC'}
keybindingnames = { 'zoom_in' : 'Increase font size', keybindingnames = { 'zoom_in' : 'Increase font size',
'zoom_out' : 'Decrease font size', 'zoom_out' : 'Decrease font size',
'zoom_normal' : 'Restore original font size', 'zoom_normal' : 'Restore original font size',
@ -644,7 +645,7 @@ class PrefsEditor:
palettebits = [] palettebits = []
for num in xrange(1, 17): for num in xrange(1, 17):
picker = guiget('palette_colorpicker_%d' % num) picker = guiget('palette_colorpicker_%d' % num)
palettebits.append(picker.get_color().to_string()) palettebits.append(color2hex(picker))
palette = ':'.join(palettebits) palette = ':'.join(palettebits)
else: else:
err('Unknown palette value: %s' % value) err('Unknown palette value: %s' % value)
@ -655,12 +656,12 @@ class PrefsEditor:
def on_background_colorpicker_color_set(self, widget): def on_background_colorpicker_color_set(self, widget):
"""Background color changed""" """Background color changed"""
self.config['background_color'] = widget.get_color().to_string() self.config['background_color'] = color2hex(widget)
self.config.save() self.config.save()
def on_foreground_colorpicker_color_set(self, widget): def on_foreground_colorpicker_color_set(self, widget):
"""Foreground color changed""" """Foreground color changed"""
self.config['foreground_color'] = widget.get_color().to_string() self.config['foreground_color'] = color2hex(widget)
self.config.save() self.config.save()
def on_palette_colorpicker_color_set(self, widget): def on_palette_colorpicker_color_set(self, widget):
@ -672,7 +673,8 @@ class PrefsEditor:
# FIXME: We do this at least once elsewhere. refactor! # FIXME: We do this at least once elsewhere. refactor!
for num in xrange(1, 17): for num in xrange(1, 17):
picker = guiget('palette_colorpicker_%d' % num) picker = guiget('palette_colorpicker_%d' % num)
palettebits.append(picker.get_color().to_string()) value = color2hex(picker)
palettebits.append(value)
palette = ':'.join(palettebits) palette = ':'.join(palettebits)
self.config['palette'] = palette self.config['palette'] = palette
@ -697,7 +699,7 @@ class PrefsEditor:
def on_cursor_color_color_set(self, widget): def on_cursor_color_color_set(self, widget):
"""Cursor colour changed""" """Cursor colour changed"""
self.config['cursor_color'] = widget.get_color().to_string() self.config['cursor_color'] = color2hex(widget)
self.config.save() self.config.save()
def on_cursor_shape_combobox_changed(self, widget): def on_cursor_shape_combobox_changed(self, widget):
@ -724,32 +726,32 @@ class PrefsEditor:
def on_title_receive_bg_color_color_set(self, widget): def on_title_receive_bg_color_color_set(self, widget):
"""Title receive background colour changed""" """Title receive background colour changed"""
self.config['title_receive_bg_color'] = widget.get_color().to_string() self.config['title_receive_bg_color'] = color2hex(widget)
self.config.save() self.config.save()
def on_title_receive_fg_color_color_set(self, widget): def on_title_receive_fg_color_color_set(self, widget):
"""Title receive foreground colour changed""" """Title receive foreground colour changed"""
self.config['title_receive_fg_color'] = widget.get_color().to_string() self.config['title_receive_fg_color'] = color2hex(widget)
self.config.save() self.config.save()
def on_title_inactive_bg_color_color_set(self, widget): def on_title_inactive_bg_color_color_set(self, widget):
"""Title inactive background colour changed""" """Title inactive background colour changed"""
self.config['title_inactive_bg_color'] = widget.get_color().to_string() self.config['title_inactive_bg_color'] = color2hex(widget)
self.config.save() self.config.save()
def on_title_transmit_bg_color_color_set(self, widget): def on_title_transmit_bg_color_color_set(self, widget):
"""Title transmit backgruond colour changed""" """Title transmit backgruond colour changed"""
self.config['title_transmit_bg_color'] = widget.get_color().to_string() self.config['title_transmit_bg_color'] = color2hex(widget)
self.config.save() self.config.save()
def on_title_inactive_fg_color_color_set(self, widget): def on_title_inactive_fg_color_color_set(self, widget):
"""Title inactive foreground colour changed""" """Title inactive foreground colour changed"""
self.config['title_inactive_fg_color'] = widget.get_color().to_string() self.config['title_inactive_fg_color'] = color2hex(widget)
self.config.save() self.config.save()
def on_title_transmit_fg_color_color_set(self, widget): def on_title_transmit_fg_color_color_set(self, widget):
"""Title transmit foreground colour changed""" """Title transmit foreground colour changed"""
self.config['title_transmit_fg_color'] = widget.get_color().to_string() self.config['title_transmit_fg_color'] = color2hex(widget)
self.config.save() self.config.save()
def on_handlesize_change_value(self, widget, scroll, value): def on_handlesize_change_value(self, widget, scroll, value):
@ -1050,8 +1052,8 @@ class PrefsEditor:
forecol = self.colourschemes[value][0] forecol = self.colourschemes[value][0]
backcol = self.colourschemes[value][1] backcol = self.colourschemes[value][1]
elif value == 'custom': elif value == 'custom':
forecol = fore.get_color().to_string() forecol = color2hex(fore)
backcol = back.get_color().to_string() backcol = color2hex(back)
else: else:
err('Unknown colourscheme value: %s' % value) err('Unknown colourscheme value: %s' % value)
return return