26
26
PLUGIN_NAME = 'Urgency Color'
29
'color_green': '#cfff84',
30
'color_yellow': '#ffed84',
31
'color_red': '#ff9784'}
29
'color_low': '#cfff84',
30
'color_normal': '#ffed84',
31
'color_high': '#ff9784',
32
'color_overdue': '#b8b8b8'}
33
34
def __init__(self):
34
35
self._plugin_api = None
43
44
# Set color function
45
self._refresh_task_color()
47
def _refresh_task_color(self):
44
48
self._plugin_api.set_bgcolor_func(self.bgcolor)
46
50
def _get_color(self, colindex):
48
return self._pref_data['color_green']
52
return self._pref_data['color_low']
49
53
elif colindex == 1:
50
return self._pref_data['color_yellow']
54
return self._pref_data['color_normal']
51
55
elif colindex == 2:
52
return self._pref_data['color_red']
56
return self._pref_data['color_high']
58
return self._pref_data['color_overdue']
107
115
self.spinbutton_reddays = self.builder.get_object('spinbutton_reddays')
110
self.colorbutton_red = self.builder.get_object('colorbutton_red')
112
# Colorbutton - YELLOW
113
self.colorbutton_yellow = self.builder.get_object('colorbutton_yellow')
115
# Colorbutton - GREEN
116
self.colorbutton_green = self.builder.get_object('colorbutton_green')
117
# Colorbutton - OVERDUE
118
self.colorbutton_overdue = self.builder.get_object('colorbutton_overdue')
121
self.colorbutton_high = self.builder.get_object('colorbutton_high')
123
# Colorbutton - NORMAL
124
self.colorbutton_normal = self.builder.get_object('colorbutton_normal')
127
self.colorbutton_low = self.builder.get_object('colorbutton_low')
119
130
self.button_apply = self.builder.get_object('button_apply')
132
143
self.on_prefs_reset,
133
144
'on_prefs_spinbutton_reddays_changed':
134
145
self.on_prefs_spinbutton_reddays_changed,
135
'on_prefs_colorbutton_red_changed':
136
self.on_prefs_colorbutton_red_changed,
137
'on_prefs_colorbutton_yellow_changed':
138
self.on_prefs_colorbutton_yellow_changed,
139
'on_prefs_colorbutton_green_changed':
140
self.on_prefs_colorbutton_green_changed}
146
'on_prefs_colorbutton_overdue_changed':
147
self.on_prefs_colorbutton_overdue_changed,
148
'on_prefs_colorbutton_high_changed':
149
self.on_prefs_colorbutton_high_changed,
150
'on_prefs_colorbutton_normal_changed':
151
self.on_prefs_colorbutton_normal_changed,
152
'on_prefs_colorbutton_low_changed':
153
self.on_prefs_colorbutton_low_changed}
141
154
self.builder.connect_signals(SIGNAL_CONNECTIONS_DIC)
143
156
def prefs_update_widgets(self):
144
157
""" Synchronizes the widgets with the data in _pref_data """
146
159
self.spinbutton_reddays.set_value(self._pref_data['reddays'])
148
self.colorbutton_red.set_color( \
149
gtk.gdk.color_parse(self._pref_data['color_red']))
150
# Colorbutton - YELLOW
151
self.colorbutton_yellow.set_color( \
152
gtk.gdk.color_parse(self._pref_data['color_yellow']))
153
# Colorbutton - GREEN
154
self.colorbutton_green.set_color( \
155
gtk.gdk.color_parse(self._pref_data['color_green']))
160
# Colorbutton - OVERDUE
161
self.colorbutton_overdue.set_color( \
162
gtk.gdk.color_parse(self._pref_data['color_overdue']))
164
self.colorbutton_high.set_color( \
165
gtk.gdk.color_parse(self._pref_data['color_high']))
166
# Colorbutton - NORMAL
167
self.colorbutton_normal.set_color( \
168
gtk.gdk.color_parse(self._pref_data['color_normal']))
170
self.colorbutton_low.set_color( \
171
gtk.gdk.color_parse(self._pref_data['color_low']))
157
173
def on_prefs_cancel(self, widget=None, data=None):
158
174
self.prefs_update_widgets()
162
178
def on_prefs_apply(self, widget=None, data=None):
163
179
self._pref_data = self._pref_data_potential
164
180
self.prefs_store()
181
self._refresh_task_color()
165
182
self.prefs_window.hide()
167
184
def on_prefs_reset(self, widget=None, data=None):
176
193
if not data or not isinstance(data, dict):
177
194
self._pref_data = dict(self.DEFAULT_PREFS)
179
self._pref_data = data
196
# CORRECT NAMES FROM OLD PREFERENCES
197
# This is a dirty fix and thus should be removed in a
198
# distant future, when nobody has "red", "yellow" or "green"
200
namepairs = {'red':'high','yellow':'normal','green':'low'}
201
for key,val in data.iteritems():
202
for oldname,newname in namepairs.iteritems():
203
if key == "color_"+oldname:
204
data['color_'+newname] = data.pop(key)
205
# Add new preferences where not present
206
for setting in self.DEFAULT_PREFS.iterkeys():
207
if setting not in data:
208
data[setting] = self.DEFAULT_PREFS[setting]
209
self._pref_data = dict(data)
181
212
def prefs_store(self):
182
213
self._plugin_api.save_configuration_object( \
188
219
self._pref_data_potential['reddays'] = \
189
220
self.spinbutton_reddays.get_value()
191
def on_prefs_colorbutton_red_changed(self, widget=None, data=None):
192
self._pref_data_potential['color_red'] = \
193
self.colorbutton_red.get_color().to_string()
195
def on_prefs_colorbutton_yellow_changed(self, widget=None, data=None):
196
self._pref_data_potential['color_yellow'] = \
197
self.colorbutton_yellow.get_color().to_string()
199
def on_prefs_colorbutton_green_changed(self, widget=None, data=None):
200
self._pref_data_potential['color_green'] = \
201
self.colorbutton_green.get_color().to_string()
222
def on_prefs_colorbutton_overdue_changed(self, widget=None, data=None):
223
self._pref_data_potential['color_overdue'] = \
224
self.colorbutton_overdue.get_color().to_string()
226
def on_prefs_colorbutton_high_changed(self, widget=None, data=None):
227
self._pref_data_potential['color_high'] = \
228
self.colorbutton_high.get_color().to_string()
230
def on_prefs_colorbutton_normal_changed(self, widget=None, data=None):
231
self._pref_data_potential['color_normal'] = \
232
self.colorbutton_normal.get_color().to_string()
234
def on_prefs_colorbutton_low_changed(self, widget=None, data=None):
235
self._pref_data_potential['color_low'] = \
236
self.colorbutton_low.get_color().to_string()