Anki/qt/aqt/widgetgallery.py
2022-12-29 00:19:53 +01:00

51 lines
1.5 KiB
Python

# Copyright: Ankitects Pty Ltd and contributors
# License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
import aqt
import aqt.main
from aqt.qt import QDialog, qconnect
from aqt.theme import AnkiStyles
from aqt.utils import is_mac, restoreGeom, saveGeom
class WidgetGallery(QDialog):
silentlyClose = True
def __init__(self, mw: aqt.main.AnkiQt) -> None:
super().__init__(mw)
self.mw = mw.weakref()
self.form = aqt.forms.widgets.Ui_Dialog()
self.form.setupUi(self)
restoreGeom(self, "WidgetGallery")
qconnect(
self.form.disableCheckBox.stateChanged,
lambda: self.form.testGrid.setEnabled(
not self.form.disableCheckBox.isChecked()
),
)
self.form.styleComboBox.addItems(
[member.name.lower().capitalize() for member in AnkiStyles]
)
self.form.styleComboBox.setCurrentIndex(
1
if self.mw.pm.force_fusion_styles()
else 2
if self.mw.pm.force_native_styles() or is_mac
else 0
)
self.form.forceCheckBox.setChecked(self.mw.pm.has_forced_style())
qconnect(
self.form.styleComboBox.currentIndexChanged,
self.mw.pm.set_forced_style,
)
def reject(self) -> None:
super().reject()
if not self.form.forceCheckBox.isChecked():
self.mw.pm.unset_forced_styles()
saveGeom(self, "WidgetGallery")