diff --git a/qt/aqt/stats.py b/qt/aqt/stats.py index a919fb712..772331bde 100644 --- a/qt/aqt/stats.py +++ b/qt/aqt/stats.py @@ -91,8 +91,9 @@ class NewDeckStats(QDialog): extra = "#night" else: extra = "" + self.form.web.hide_while_preserving_layout() self.form.web.load(QUrl(f"{self.mw.serverURL()}_anki/graphs.html" + extra)) - + self.form.web.inject_dynamic_style_and_show() class DeckStats(QDialog): """Legacy deck stats, used by some add-ons.""" diff --git a/qt/aqt/webview.py b/qt/aqt/webview.py index 789991c7c..24ae80f04 100644 --- a/qt/aqt/webview.py +++ b/qt/aqt/webview.py @@ -587,3 +587,19 @@ body {{ zoom: {zoom}; background: {background}; direction: {lang_dir}; {font} }} aqt.reviewer.Reviewer or aqt.deckbrowser.DeckBrowser.""" self.onBridgeCmd = func self._bridge_context = context + + def hide_while_preserving_layout(self): + "Hide but keep existing size." + sp = self.sizePolicy() + sp.setRetainSizeWhenHidden(True) + self.setSizePolicy(sp) + self.hide() + + def inject_dynamic_style_and_show(self): + "Add dynamic styling, and reveal." + css = self.standard_css() + self.evalWithCallback(f""" +const style = document.createElement('style'); +style.innerHTML = `{css}`; +document.head.appendChild(style); +""", lambda arg: self.show())