Skip to content

Commit 7f0c898

Browse files
committed
remove js prefixed methods and use run_javascript
1 parent c1e416a commit 7f0c898

File tree

2 files changed

+22
-40
lines changed

2 files changed

+22
-40
lines changed

devdocs_desktop.py

Lines changed: 18 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,10 @@ def read_settings_json(self, filename):
213213

214214
return json.loads(str(data))
215215

216+
def run_javascript(self, method, *args):
217+
script = """desktop.run('%s', %s)""" % (method, list(args))
218+
self.webview.run_javascript(script)
219+
216220
def set_window_accel_groups(self):
217221
group = Gtk.AccelGroup()
218222
ctrl = Gdk.ModifierType.CONTROL_MASK
@@ -231,8 +235,8 @@ def set_window_accel_groups(self):
231235
self.window.add_accel_group(group)
232236

233237
def sync_header_search(self):
234-
self.js_element_value('searchTag', 'update_header_filter')
235-
self.js_element_value('searchInput', 'update_header_search')
238+
self.run_javascript('getValue', 'searchTag', 'update_header_filter')
239+
self.run_javascript('getValue', 'searchInput', 'update_header_search')
236240

237241
def update_header_filter(self, text):
238242
if text != self.filter:
@@ -285,7 +289,7 @@ def on_window_main_key_press_event(self, _widget, event):
285289
search = self.header_sbox.get_visible()
286290

287291
if kname == 'Tab' and bool(self.search) and search:
288-
self.js_keyboard_event('search', 9)
292+
self.run_javascript('sendKey', 'search', 9)
289293
self.sync_header_search()
290294

291295
return True
@@ -331,22 +335,22 @@ def on_header_search_entry_key_press_event(self, _widget, event):
331335
kname = Gdk.keyval_name(event.keyval)
332336

333337
if kname == 'BackSpace' and not bool(self.search):
334-
self.js_keyboard_event('search', 8)
338+
self.run_javascript('sendKey', 'search', 8)
335339
self.sync_header_search()
336340

337341
def on_header_search_entry_key_release_event(self, _widget, event):
338342
kname = Gdk.keyval_name(event.keyval)
339343

340344
if kname == 'Return':
341-
self.js_keyboard_event('document', 13)
345+
self.run_javascript('sendKey', 'document', 13)
342346
self.webview.grab_focus()
343347

344348
if kname == 'Down':
345-
self.js_keyboard_event('document', 40)
349+
self.run_javascript('sendKey', 'document', 40)
346350
self.webview.grab_focus()
347351

348352
if kname == 'Up':
349-
self.js_keyboard_event('document', 38)
353+
self.run_javascript('sendKey', 'document', 38)
350354
self.webview.grab_focus()
351355

352356
def on_finder_search_entry_key_release_event(self, _widget, event):
@@ -366,23 +370,25 @@ def on_header_button_reload_clicked(self, _widget):
366370

367371
def on_header_search_entry_search_changed(self, widget):
368372
self.search = widget.get_text().strip()
369-
self.js_form_input(self.search)
373+
self.run_javascript('search', self.search)
370374

371375
def on_menu_main_link_clicked(self, widget):
372376
link = Gtk.Buildable.get_name(widget).split('_')[-1]
373-
self.js_open_link(link.replace('home', ''))
377+
link = link.replace('home', '')
378+
379+
self.run_javascript('navigate', link)
374380

375381
def on_header_button_save_clicked(self, _widget):
376382
self.toggle_save_button(False)
377-
self.js_element_visible('saveButton', 'on_apply_button_visibility')
383+
self.run_javascript('isVisible', 'saveButton', 'on_apply_button_visibility')
378384

379385
def on_apply_button_visibility(self, visible):
380386
if visible:
381387
self.header_title.set_label('Downloading...')
382-
self.js_click_element('saveButton')
388+
self.run_javascript('click', 'saveButton')
383389
else:
384390
self.header_title.set_label('Saving...')
385-
self.js_open_link('')
391+
self.run_javascript('navigate', '')
386392

387393
def on_finder_search_entry_map(self, _widget):
388394
self.finder_search.grab_focus()
@@ -463,28 +469,6 @@ def on_webview_context_menu(self, _widget, menu, _coords, _keyboard):
463469
if action == actions.OPEN_LINK:
464470
item.get_action().connect('activate', self.on_webview_open_link)
465471

466-
def run_javascript(self, method, *args):
467-
script = """desktop.run('%s', %s)""" % (method, list(args))
468-
self.webview.run_javascript(script)
469-
470-
def js_form_input(self, text):
471-
self.run_javascript('search', text)
472-
473-
def js_keyboard_event(self, selector, keycode, type='keydown'):
474-
self.run_javascript('sendKey', selector, type, keycode)
475-
476-
def js_click_element(self, selector):
477-
self.run_javascript('click', selector)
478-
479-
def js_open_link(self, link):
480-
self.run_javascript('navigate', self.app_url, link)
481-
482-
def js_element_value(self, selector, callback):
483-
self.run_javascript('getValue', selector, callback)
484-
485-
def js_element_visible(self, selector, callback):
486-
self.run_javascript('isVisible', selector, callback)
487-
488472

489473
class DevdocsDesktopService(dbus.service.Object):
490474

scripts/webview.js

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,9 @@ class DevDocsDesktop {
6363
})
6464
}
6565

66-
sendKey(ref, type, code) {
66+
sendKey(ref, code, type) {
6767
this.onElement(ref, (element) => {
68-
const event = new KeyboardEvent(type, { which: code })
68+
const event = new KeyboardEvent(type || 'keydown', { which: code })
6969
element.dispatchEvent(event)
7070
})
7171
}
@@ -81,10 +81,8 @@ class DevDocsDesktop {
8181
this.dispatchEvent('search', 'input')
8282
}
8383

84-
navigate(appUrl, url) {
85-
const absPath = url.replace(appUrl, '')
86-
const element = this.query(`a[href="/${absPath}"]`)
87-
84+
navigate(path) {
85+
const element = this.query(`a[href="/${path}"]`)
8886
element && element.click()
8987
}
9088
}

0 commit comments

Comments
 (0)