provider: add on enabled switch and global about
This commit is contained in:
parent
73a391fd9e
commit
9c1ae1f105
|
@ -8,6 +8,11 @@ import json
|
|||
class BavarderProvider:
|
||||
name = None
|
||||
slug = None
|
||||
version = "0.1.0"
|
||||
developer_name = "0xMRTT"
|
||||
developers = ["0xMRTT https://github.com/0xMRTT"]
|
||||
license_type = Gtk.License.GPL_3_0
|
||||
copyright = "© 2023 0xMRTT"
|
||||
|
||||
def __init__(self, win, app, *args, **kwargs):
|
||||
self.win = win
|
||||
|
@ -24,8 +29,8 @@ class BavarderProvider:
|
|||
def require_api_key(self):
|
||||
raise NotImplementedError()
|
||||
|
||||
def preferences(self):
|
||||
raise NotImplementedError()
|
||||
def preferences(self, win):
|
||||
return self.no_preferences(win)
|
||||
|
||||
def no_api_key(self, title=None):
|
||||
if title:
|
||||
|
@ -46,8 +51,17 @@ class BavarderProvider:
|
|||
def hide_banner(self):
|
||||
self.win.banner.set_revealed(False)
|
||||
|
||||
def about(self, *args):
|
||||
raise NotImplementedError()
|
||||
def about(self, *args, **kwargs):
|
||||
about = Adw.AboutWindow(
|
||||
transient_for=self.pref_win,
|
||||
application_name=self.name,
|
||||
developer_name=self.developer_name,
|
||||
developers=self.developers,
|
||||
license_type=self.license_type,
|
||||
version=self.version,
|
||||
copyright=self.copyright,
|
||||
)
|
||||
about.present()
|
||||
|
||||
def no_preferences(self, win):
|
||||
self.pref_win = win
|
||||
|
@ -61,6 +75,13 @@ class BavarderProvider:
|
|||
about_button.set_valign(Gtk.Align.CENTER)
|
||||
self.expander.add_action(about_button) # TODO: in Adw 1.4, use add_suffix
|
||||
|
||||
enabled = Gtk.Switch()
|
||||
enabled.set_active(self.slug in self.app.enabled_providers)
|
||||
enabled.connect("notify::active", self.on_enabled)
|
||||
enabled.set_valign(Gtk.Align.CENTER)
|
||||
|
||||
self.expander.add_action(enabled)
|
||||
|
||||
self.no_pref_row = Adw.ActionRow()
|
||||
self.no_pref_row.props.title = "No preferences available"
|
||||
self.expander.add_row(self.no_pref_row)
|
||||
|
@ -78,3 +99,10 @@ class BavarderProvider:
|
|||
print("Chuncking prompt")
|
||||
prompt = [(prompt[i : i + n]) for i in range(0, len(prompt), n)]
|
||||
return prompt
|
||||
|
||||
def on_enabled(self, widget, *args):
|
||||
if widget.get_active():
|
||||
self.app.enabled_providers.append(self.slug)
|
||||
else:
|
||||
self.app.enabled_providers.remove(self.slug)
|
||||
self.app.load_dropdown()
|
Loading…
Reference in New Issue
Block a user