Default implementation for BaseEntry._set_enabled()
Andrew P.
9 years ago
53 | 53 | self._use = widgets['use'] |
54 | 54 | if self._use: |
55 | 55 | self._use.connect('notify::active', self._on_use_toggled) |
56 | self._widgets_to_disable = None | |
56 | 57 | |
57 | 58 | @property |
58 | 59 | def value(self): |
111 | 112 | raise NotImplementedError(self.__class__) |
112 | 113 | |
113 | 114 | def _set_enabled(self, value): |
114 | raise NotImplementedError(self.__class__) | |
115 | if self._widgets_to_disable: | |
116 | for widget in self._widgets_to_disable: | |
117 | widget.props.sensitive = value | |
115 | 118 | |
116 | 119 | def _on_use_toggled(self, toggle, *args): |
117 | 120 | self._set_enabled(self._use.props.active) |
127 | 130 | super().__init__(widgets) |
128 | 131 | self._value = widgets['value'] |
129 | 132 | self._value.connect('notify::active', self._emit_changed) |
133 | self._widgets_to_disable = [self._value] | |
130 | 134 | |
131 | 135 | def _get_value(self): |
132 | 136 | return bool2string(self._value.props.active) |
134 | 138 | def _set_value(self, value): |
135 | 139 | self._value.props.active = string2bool(value) |
136 | 140 | |
137 | def _set_enabled(self, value): | |
138 | self._value.props.sensitive = value | |
139 | ||
140 | 141 | |
141 | 142 | class InvertedBooleanEntry(BooleanEntry): |
142 | 143 | |
155 | 156 | def __init__(self, widgets): |
156 | 157 | super().__init__(widgets) |
157 | 158 | self._value = widgets['value'] |
159 | self._widgets_to_disable = [self._value] | |
158 | 160 | self._value.connect('changed', self._emit_changed) |
159 | ||
161 | ||
160 | 162 | def _get_value(self): |
161 | 163 | return self._value.props.text |
162 | 164 | |
163 | 165 | def _set_value(self, value): |
164 | 166 | self._value.props.text = value or '' |
165 | ||
166 | def _set_enabled(self, value): | |
167 | self._value.props.sensitive = value | |
168 | 167 | |
169 | 168 | |
170 | 169 | class StringPathEntry(BaseEntry): |
176 | 175 | |
177 | 176 | self._combo = widgets['combo'] |
178 | 177 | self._entry = widgets['entry'] |
178 | self._widgets_to_disable = [self._combo] | |
179 | 179 | |
180 | 180 | self._entry.connect('changed', self._emit_changed) |
181 | 181 | self._combo.connect('format-entry-text', self._on_combobox_format) |
187 | 187 | |
188 | 188 | def _set_value(self, value): |
189 | 189 | self._entry.props.text = value or '' |
190 | ||
191 | def _set_enabled(self, value): | |
192 | self._combo.props.sensitive = value | |
193 | 190 | |
194 | 191 | def _row_separator_callback(self, model, rowiter, data): |
195 | 192 | return model[rowiter][0] == '-' |
221 | 218 | super().__init__(widgets) |
222 | 219 | self._value = widgets['adjustment'] |
223 | 220 | self._view = widgets['view'] |
221 | self._widgets_to_disable = [self._view] | |
224 | 222 | self._value.connect('value-changed', self._emit_changed) |
225 | 223 | |
226 | 224 | def _get_value(self): |
232 | 230 | except ValueError: |
233 | 231 | self._value.props.value = 0 |
234 | 232 | |
235 | def _set_enabled(self, value): | |
236 | self._view.props.sensitive = value | |
237 | ||
238 | 233 | |
239 | 234 | class ChoiceEntry(BaseEntry): |
240 | 235 | |
241 | 236 | def __init__(self, widgets): |
242 | 237 | super().__init__(widgets) |
243 | 238 | self._value = widgets['value'] |
239 | self._widgets_to_disable = [self._value] | |
244 | 240 | self._value.connect('changed', self._emit_changed) |
245 | 241 | |
246 | 242 | def _get_value(self): |
248 | 244 | |
249 | 245 | def _set_value(self, value): |
250 | 246 | self._value.props.active_id = value or '' |
251 | ||
252 | def _set_enabled(self, value): | |
253 | self._value.props.sensitive = value | |
254 | 247 | |
255 | 248 | |
256 | 249 | class ClockFormatEntry(StringEntry): |
435 | 428 | self._up = widgets['up'] |
436 | 429 | self._down = widgets['down'] |
437 | 430 | self._model = widgets['model'] |
431 | self._widgets_to_disable = [self._treeview, self._toolbar] | |
438 | 432 | self._indicators_dialog = None |
439 | 433 | self._initial_items = OrderedDict((item.NAME, item) |
440 | 434 | for item in map(self.ROW, self._model)) |
476 | 470 | self._model.append(item) |
477 | 471 | |
478 | 472 | self._selection.select_path(0) |
479 | ||
480 | def _set_enabled(self, value): | |
481 | self._toolbar.props.sensitive = value | |
482 | self._treeview.props.sensitive = value | |
483 | 473 | |
484 | 474 | def _remove_selection(self): |
485 | 475 | model, rowiter = self._selection.get_selected() |