Skip to content

Commit 195dcc1

Browse files
authored
Merge pull request #3148 from thocevar/webview
[FIX] WebView fixes
2 parents 97f5a0c + 169a95b commit 195dcc1

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

Orange/widgets/report/report.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ def report_plot(self, name=None, plot=None):
184184
elif isinstance(plot, WebviewWidget):
185185
try:
186186
svg = plot.svg()
187-
except IndexError:
187+
except (IndexError, ValueError):
188188
svg = plot.html()
189189
self.report_html += svg
190190

Orange/widgets/utils/webview.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -475,23 +475,23 @@ class IdStore:
475475
def __init__(self):
476476
self.id = 0
477477
self.lock = threading.Lock()
478-
self.ids = set()
478+
self.ids = dict()
479479

480480
def create(self):
481481
with self.lock:
482482
self.id += 1
483483
return self.id
484484

485-
def store(self, id):
485+
def store(self, id, value):
486486
with self.lock:
487-
self.ids.add(id)
487+
self.ids[id] = value
488488

489489
def __contains__(self, id):
490490
return id in self.ids
491491

492-
def remove(self, id):
492+
def pop(self, id):
493493
with self.lock:
494-
self.ids.remove(id)
494+
return self.ids.pop(id, None)
495495

496496

497497
class _JSObjectChannel(QObject):
@@ -554,11 +554,11 @@ def __init__(self, parent=None, bridge=None, *, debug=False, **kwargs):
554554
def _evalJS(self, code):
555555
wait(until=self._jsobject_channel.is_all_exposed)
556556
if sip.isdeleted(self):
557-
return
557+
return None
558558
result = self._results.create()
559-
self.runJavaScript(code, lambda x: self._results.store(result))
559+
self.runJavaScript(code, lambda x: self._results.store(result, x))
560560
wait(until=lambda: result in self._results)
561-
self._results.remove(result)
561+
return self._results.pop(result)
562562

563563
def onloadJS(self, code):
564564
self._onloadJS(code, injection_point=QWebEngineScript.Deferred)

0 commit comments

Comments
 (0)