Merge pull request #7994 from keymanapp/feat/linux/4828_Back-button

feat(linux): Add Back button to "Download Keyman Keyboards" dialog
This commit is contained in:
Eberhard Beilharz 2023-01-10 14:21:38 +01:00 committed by GitHub
commit fd1dc65663
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -30,13 +30,26 @@ class DownloadKmpWindow(Gtk.Dialog):
s = Gtk.ScrolledWindow()
self.webview = WebKit2.WebView()
self.webview.connect("decide-policy", self._keyman_policy)
self.webview.connect("load-changed", self._update_back_button)
url = KeymanComUrl + "/go/linux/" + __releaseversion__ + "/download-keyboards"
self.webview.load_uri(url)
s.add(self.webview)
self.get_content_area().pack_start(s, True, True, 0)
self.add_button(_("_Close"), Gtk.ResponseType.CLOSE)
hbox = Gtk.Box(spacing=6)
self.get_content_area().pack_start(hbox, False, False, 0)
self.back_button = Gtk.Button.new_with_mnemonic(_("_Back"))
self.back_button.set_tooltip_text(_("Back to search"))
self.back_button.connect("clicked", self._on_back_clicked)
self.back_button.set_sensitive(False)
hbox.pack_start(self.back_button, False, False, 0)
close_button = Gtk.Button.new_with_mnemonic(_("_Close"))
close_button.set_tooltip_text(_("Close dialog"))
close_button.connect("clicked", self._on_close_clicked)
hbox.pack_end(close_button, False, False, 0)
if self.parentWindow is not None:
self.getinfo = GetInfo(self.parentWindow.incomplete_kmp)
@ -44,6 +57,15 @@ class DownloadKmpWindow(Gtk.Dialog):
self.resize(800, 450)
self.show_all()
def _update_back_button(self, webview, load_event):
self.back_button.set_sensitive(webview.can_go_back())
def _on_back_clicked(self, button):
self.webview.go_back()
def _on_close_clicked(self, button):
self.response(Gtk.ResponseType.CLOSE)
def _process_kmp(self, url, downloadfile: str):
logging.info("Downloading kmp file to %s", downloadfile)
if download_kmp_file(url, downloadfile):