comparison cagou/core/share_widget.py @ 491:203755bbe0fe

massive refactoring from camelCase -> snake_case. See backend commit log for more details
author Goffi <goffi@goffi.org>
date Sat, 08 Apr 2023 13:44:32 +0200
parents 3c9ba4a694ef
children
comparison
equal deleted inserted replaced
490:962d17c4078c 491:203755bbe0fe
50 """Widget previewing shared image""" 50 """Widget previewing shared image"""
51 path = StringProperty() 51 path = StringProperty()
52 reduce_layout = ObjectProperty() 52 reduce_layout = ObjectProperty()
53 reduce_checkbox = ObjectProperty() 53 reduce_checkbox = ObjectProperty()
54 54
55 def _checkImageCb(self, report_raw): 55 def _check_image_cb(self, report_raw):
56 self.report = data_format.deserialise(report_raw) 56 self.report = data_format.deserialise(report_raw)
57 if self.report['too_large']: 57 if self.report['too_large']:
58 self.reduce_layout.opacity = 1 58 self.reduce_layout.opacity = 1
59 self.reduce_layout.height = self.reduce_layout.minimum_height + dp(10) 59 self.reduce_layout.height = self.reduce_layout.minimum_height + dp(10)
60 self.reduce_layout.padding = [0, dp(5)] 60 self.reduce_layout.padding = [0, dp(5)]
61 61
62 def _checkImageEb(self, failure_): 62 def _check_image_eb(self, failure_):
63 log.error(f"Can't check image: {failure_}") 63 log.error(f"Can't check image: {failure_}")
64 64
65 def on_path(self, wid, path): 65 def on_path(self, wid, path):
66 G.host.bridge.imageCheck( 66 G.host.bridge.image_check(
67 path, callback=self._checkImageCb, errback=self._checkImageEb) 67 path, callback=self._check_image_cb, errback=self._check_image_eb)
68 68
69 def resizeImage(self, data, callback, errback): 69 def resize_image(self, data, callback, errback):
70 70
71 def imageResizeCb(new_path): 71 def image_resize_cb(new_path):
72 new_path = Path(new_path) 72 new_path = Path(new_path)
73 log.debug(f"image {data['path']} resized at {new_path}") 73 log.debug(f"image {data['path']} resized at {new_path}")
74 data['path'] = new_path 74 data['path'] = new_path
75 data['cleaning_cb'] = lambda: new_path.unlink() 75 data['cleaning_cb'] = lambda: new_path.unlink()
76 callback(data) 76 callback(data)
77 77
78 path = data['path'] 78 path = data['path']
79 width, height = self.report['recommended_size'] 79 width, height = self.report['recommended_size']
80 G.host.bridge.imageResize( 80 G.host.bridge.image_resize(
81 path, width, height, 81 path, width, height,
82 callback=imageResizeCb, 82 callback=image_resize_cb,
83 errback=errback 83 errback=errback
84 ) 84 )
85 85
86 def getFilter(self): 86 def get_filter(self):
87 if self.report['too_large'] and self.reduce_checkbox.active: 87 if self.report['too_large'] and self.reduce_checkbox.active:
88 return self.resizeImage 88 return self.resize_image
89 else: 89 else:
90 return lambda data, callback, errback: callback(data) 90 return lambda data, callback, errback: callback(data)
91 91
92 92
93 class GenericPreview(BoxLayout): 93 class GenericPreview(BoxLayout):
108 self.preview_box.add_widget(ImagePreview(path=self.data['path'])) 108 self.preview_box.add_widget(ImagePreview(path=self.data['path']))
109 else: 109 else:
110 self.preview_box.add_widget(GenericPreview(path=self.data['path'])) 110 self.preview_box.add_widget(GenericPreview(path=self.data['path']))
111 111
112 def close(self): 112 def close(self):
113 G.host.closeUI() 113 G.host.close_ui()
114 114
115 def getFilteredData(self, callback, errback): 115 def get_filtered_data(self, callback, errback):
116 """Apply filter if suitable, and call callback with with modified data""" 116 """Apply filter if suitable, and call callback with with modified data"""
117 try: 117 try:
118 getFilter = self.preview_box.children[0].getFilter 118 get_filter = self.preview_box.children[0].get_filter
119 except AttributeError: 119 except AttributeError:
120 callback(self.data) 120 callback(self.data)
121 else: 121 else:
122 filter_ = getFilter() 122 filter_ = get_filter()
123 filter_(self.data, callback=callback, errback=errback) 123 filter_(self.data, callback=callback, errback=errback)
124 124
125 def filterDataCb(self, data, contact_jid, profile): 125 def filter_data_cb(self, data, contact_jid, profile):
126 chat_wid = G.host.doAction('chat', contact_jid, [profile]) 126 chat_wid = G.host.do_action('chat', contact_jid, [profile])
127 127
128 if self.type == 'text' and 'text' in self.data: 128 if self.type == 'text' and 'text' in self.data:
129 text = self.data['text'] 129 text = self.data['text']
130 chat_wid.message_input.text += text 130 chat_wid.message_input.text += text
131 else: 131 else:
132 path = self.data['path'] 132 path = self.data['path']
133 chat_wid.transferFile(path, cleaning_cb=data.get('cleaning_cb')) 133 chat_wid.transfer_file(path, cleaning_cb=data.get('cleaning_cb'))
134 self.close() 134 self.close()
135 135
136 def filterDataEb(self, failure_): 136 def filter_data_eb(self, failure_):
137 G.host.addNote( 137 G.host.add_note(
138 _("file filter error"), 138 _("file filter error"),
139 _("Can't apply filter to file: {msg}").format(msg=failure_), 139 _("Can't apply filter to file: {msg}").format(msg=failure_),
140 level=C.XMLUI_DATA_LVL_ERROR) 140 level=C.XMLUI_DATA_LVL_ERROR)
141 141
142 def on_select(self, contact_button): 142 def on_select(self, contact_button):
143 contact_jid = jid.JID(contact_button.jid) 143 contact_jid = jid.JID(contact_button.jid)
144 self.getFilteredData( 144 self.get_filtered_data(
145 partial( 145 partial(
146 self.filterDataCb, 146 self.filter_data_cb,
147 contact_jid=contact_jid, 147 contact_jid=contact_jid,
148 profile=contact_button.profile), 148 profile=contact_button.profile),
149 self.filterDataEb 149 self.filter_data_eb
150 ) 150 )
151 151
152 def key_input(self, window, key, scancode, codepoint, modifier): 152 def key_input(self, window, key, scancode, codepoint, modifier):
153 if key == 27: 153 if key == 27:
154 return G.local_platform.on_key_back_share(self) 154 return G.local_platform.on_key_back_share(self)