* src/GrampsCfg.py: update for selectable colors

* src/PeopleModel.py: update for selectable colors
	* data/gramps.schemas.in: update for selectable colors


svn: r6629
This commit is contained in:
Don Allingham 2006-05-12 18:20:18 +00:00
parent 683a291155
commit 556eb3aa75
4 changed files with 58 additions and 5 deletions

View File

@ -1,6 +1,9 @@
2006-05-12 Don Allingham <don@gramps-project.org>
* src/GrampsWidgets.py: fix MonitoredDataType initialization
* plugins/BookReport.py: append "file://" properly
* src/GrampsCfg.py: update for selectable colors
* src/PeopleModel.py: update for selectable colors
* data/gramps.schemas.in: update for selectable colors
2006-05-12 Alex Roitman <shura@gramps-project.org>
* src/Filters/Makefile.am (pkgdata_PYTHON): Add new files.

View File

@ -32,7 +32,7 @@
<applyto>/apps/gramps/preferences/todo-color</applyto>
<owner>gramps</owner>
<type>string</type>
<default>#FF0000</default>
<default>#00FF00</default>
<locale name="C">
<short>Color used to highlight TODO items in a list</short>
<long>Color used to highlight TODO items in a list</long>
@ -44,7 +44,7 @@
<applyto>/apps/gramps/preferences/custom-marker-color</applyto>
<owner>gramps</owner>
<type>string</type>
<default>#00FF00</default>
<default>#0000FF</default>
<locale name="C">
<short>Color used to highlight custom marker items in a list</short>
<long>Color used to highlight custom marker items in a list</long>

View File

@ -112,6 +112,8 @@ class GrampsPreferences(ManagedWindow.ManagedWindow):
MarkupLabel("<b>%s</b>" % _('Warnings')))
panel.append_page(self.add_researcher_panel(),
MarkupLabel("<b>%s</b>" % _('Researcher')))
panel.append_page(self.add_color_panel(),
MarkupLabel("<b>%s</b>" % _('Marker Colors')))
self.window.show_all()
self.show()
@ -164,6 +166,17 @@ class GrampsPreferences(ManagedWindow.ManagedWindow):
return table
def add_color_panel(self):
table = gtk.Table(3,8)
table.set_border_width(12)
table.set_col_spacings(6)
table.set_row_spacings(6)
self.add_color(table, _("Complete"), 0, Config.COMPLETE_COLOR)
self.add_color(table, _("ToDo"), 1, Config.TODO_COLOR)
self.add_color(table, _("Custom"), 2, Config.CUSTOM_MARKER_COLOR)
return table
def add_formats_panel(self):
table = gtk.Table(3,8)
table.set_border_width(12)
@ -250,9 +263,25 @@ class GrampsPreferences(ManagedWindow.ManagedWindow):
table.attach(lwidget, 0, 1, index, index+1, yoptions=0)
table.attach(entry, 1, 3, index, index+1, yoptions=0)
def add_color(self, table, label, index, constant):
lwidget = BasicLabel("%s: " % label)
hexval = Config.get(constant)
color = gtk.gdk.color_parse(hexval)
entry = gtk.ColorButton(color=color)
entry.connect('color-set', self.update_color, constant)
table.attach(lwidget, 0, 1, index, index+1, yoptions=0)
table.attach(entry, 1, 3, index, index+1, yoptions=0)
def update_entry(self, obj, constant):
Config.set(constant, unicode(obj.get_text()))
def update_color(self, obj, constant):
color = obj.get_color()
hexval = "#%02x%02x%02x" % (color.red/256,
color.green/256,
color.blue/256)
Config.set(constant, hexval)
def update_checkbox(self, obj, constant):
Config.set(constant, obj.get_active())

View File

@ -37,6 +37,7 @@ import time
import cgi
import sys
import locale
import Config
try:
set()
@ -139,6 +140,17 @@ class PeopleModel(gtk.GenericTreeModel):
self.db = db
Config.client.notify_add("/apps/gramps/preferences/todo-color",
self.update_todo)
Config.client.notify_add("/apps/gramps/preferences/custom-marker-color",
self.update_custom)
Config.client.notify_add("/apps/gramps/preferences/complete-color",
self.update_complete)
self.complete_color = Config.get(Config.COMPLETE_COLOR)
self.todo_color = Config.get(Config.TODO_COLOR)
self.custom_color = Config.get(Config.CUSTOM_MARKER_COLOR)
self.sortnames = {}
self.marker_color_column = 11
self.tooltip_column = 12
@ -159,6 +171,15 @@ class PeopleModel(gtk.GenericTreeModel):
self._build_data = self._build_filter_sub
self.rebuild_data(data_filter, skip)
def update_todo(self,client,cnxn_id,entry,data):
self.todo_color = Config.get(Config.TODO_COLOR)
def update_custom(self,client,cnxn_id,entry,data):
self.custom_color = Config.get(Config.CUSTOM_MARKER_COLOR)
def update_complete(self,client,cnxn_id,entry,data):
self.complete_color = Config.get(Config.COMPLETE_COLOR)
def rebuild_data(self, data_filter=None, skip=[]):
"""
Convience function that calculates the new data and assigns it.
@ -512,11 +533,11 @@ class PeopleModel(gtk.GenericTreeModel):
try:
if data[_MARKER_COL]:
if data[_MARKER_COL][0] == MarkerType.COMPLETE:
return u"#46a046" # green
return self.complete_color
if data[_MARKER_COL][0] == MarkerType.TODO:
return u"#df421e" # red
return self.todo_color
if data[_MARKER_COL][0] == MarkerType.CUSTOM:
return u"#eed680" # ligh brown
return self.custom_color
except IndexError:
pass
return None