Skip to content

Commit e19f1a1

Browse files
committed
fix: get_text was not defined on all the widgets
* Use `get_text` when available * Use `get_font` when Gtk.FontButton * Raise TypeError exception otherwise
1 parent 8d27125 commit e19f1a1

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

src/diffuse/preferences.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,8 @@ def runDialog(self, parent: Gtk.Widget) -> None:
277277
for k in self.int_prefs:
278278
self.int_prefs[k] = widgets[k].get_value_as_int()
279279
for k in self.string_prefs:
280-
self.string_prefs[k] = utils.null_to_empty(widgets[k].get_text())
280+
text = self._getWidgetText(widgets[k])
281+
self.string_prefs[k] = utils.null_to_empty(text)
281282
try:
282283
ss = []
283284
for k, bool_value in self.bool_prefs.items():
@@ -375,6 +376,20 @@ def _buildPrefsDialog(self, parent, widgets, template):
375376
table.show()
376377
return table
377378

379+
def _getWidgetText(self, widget):
380+
text = ""
381+
if (
382+
isinstance(widget, Gtk.Entry) or
383+
isinstance(widget, utils.EncodingMenu) or
384+
isinstance(widget, _FileEntry)
385+
):
386+
text = widget.get_text()
387+
elif isinstance(widget, Gtk.FontButton):
388+
text = widget.get_font()
389+
else:
390+
raise TypeError(f"Don't know how to get text from type: {type(widget)}")
391+
return text
392+
378393
# get/set methods to manipulate the preference values
379394
def getBool(self, name: str) -> bool:
380395
return self.bool_prefs[name]

0 commit comments

Comments
 (0)