Skip to content

Commit 1087bbf

Browse files
committed
Add pictures and id support
1 parent 91ce2fd commit 1087bbf

2 files changed

Lines changed: 18 additions & 11 deletions

File tree

in.aryank.openforms.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
"sdk" : "org.gnome.Sdk",
66
"command" : "open_forms",
77
"finish-args" : [
8+
"--filesystem=xdg-pictures:ro",
89
"--share=ipc",
910
"--socket=fallback-x11",
1011
"--device=dri",

src/form_page.py

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,10 @@ def _build_form(self):
5555
label = field["label"]
5656
row, widget = self._create_field(label, field)
5757
if widget:
58-
self.fields[label] = widget
58+
self.fields[field.get("id")] = {
59+
"widget": widget,
60+
"config": field
61+
}
5962
self.form_container.append(row)
6063
elif row:
6164
self.form_container.append(row)
@@ -111,11 +114,11 @@ def _create_field(self, label_text: str, field: dict):
111114
elif field_type == "label":
112115
return row, None
113116
elif field_type == "picture":
114-
widget = Gtk.Picture.new_for_resource(field.get("uri"))
117+
file = Gio.File.new_for_uri(field.get("uri"))
118+
widget = Gtk.Picture()
119+
widget.set_file(file)
115120
widget.set_halign(3)
116121
widget.set_valign(3)
117-
widget.set_hexpand(True)
118-
widget.set_vexpand(True)
119122
widget.can_shrink = True
120123
width = field.get("width")
121124
height = field.get("height")
@@ -124,6 +127,7 @@ def _create_field(self, label_text: str, field: dict):
124127
widget.set_margin_top(10)
125128
widget.set_margin_bottom(10)
126129
row.append(widget)
130+
return row, None
127131
else:
128132
return None, None
129133

@@ -147,25 +151,26 @@ def on_submit_clicked(self, *_):
147151
def _collect_data(self) -> dict:
148152
data = {}
149153

150-
for label, widget in self.fields.items():
154+
for field_id, field_dict in self.fields.items():
155+
widget = field_dict["widget"]
151156
if isinstance(widget, Gtk.Entry):
152-
data[label] = widget.get_text()
157+
data[field_id] = widget.get_text()
153158
elif isinstance(widget, Gtk.TextView):
154159
text_buffer = widget.get_buffer()
155160
start_iter = text_buffer.get_start_iter()
156161
end_iter = text_buffer.get_end_iter()
157-
data[label] = text_buffer.get_text(start_iter, end_iter, True)
162+
data[field_id] = text_buffer.get_text(start_iter, end_iter, True)
158163
elif isinstance(widget, list):
159164
for indv_widget in widget:
160165
active = indv_widget.get_active()
161166
if active:
162-
data[label] = indv_widget.get_label()
167+
data[field_id] = indv_widget.get_label()
163168
elif isinstance(widget, Gtk.CheckButton):
164169
active = widget.get_active()
165-
data[label] = True if active else False
170+
data[field_id] = True if active else False
166171

167172
elif isinstance(widget, Gtk.SpinButton):
168-
data[label] = widget.get_value_as_int()
173+
data[field_id] = widget.get_value_as_int()
169174

170175
return data
171176

@@ -187,7 +192,8 @@ def _append_to_csv(self, data: dict):
187192
writer.writerow(data)
188193

189194
def _reset_form(self):
190-
for widget in self.fields.values():
195+
for fields_dict in self.fields.values():
196+
widget = fields_dict["widget"]
191197
if isinstance(widget, Gtk.Entry):
192198
widget.set_text("")
193199
elif isinstance(widget, Gtk.TextView):

0 commit comments

Comments
 (0)