# window.py # # Copyright 2022 mirkobrombin # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundationat version 3 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . from gi.repository import Gtk, Gio, Adw from ubuntu_smoother.models.preset import Preset from ubuntu_smoother.models.config import Config from ubuntu_smoother.utils.configurator import Configurator @Gtk.Template(resource_path='/pm/mirko/UbuntuSmoother/gtk/window.ui') class UbuntuSmootherWindow(Adw.ApplicationWindow): __gtype_name__ = 'UbuntuSmootherWindow' carousel = Gtk.Template.Child() btn_start = Gtk.Template.Child() btn_save = Gtk.Template.Child() switch_snap = Gtk.Template.Child() switch_flatpak = Gtk.Template.Child() switch_apport = Gtk.Template.Child() def __init__(self, **kwargs): super().__init__(**kwargs) self.__config = Config( snap=Preset.snap, flatpak=Preset.flatpak, apport=Preset.apport ) self.__buiild_ui() self.__connect_signals() def __buiild_ui(self): self.switch_snap.set_active(Preset.snap) self.switch_flatpak.set_active(Preset.flatpak) self.switch_apport.set_active(Preset.apport) def __connect_signals(self): self.btn_start.connect('clicked', self.__on_btn_start_clicked) self.btn_save.connect('clicked', self.on_btn_save_clicked) self.switch_snap.connect('state-set', self.__on_switch_snap_state_set) self.switch_flatpak.connect( 'state-set', self.__on_switch_flatpak_state_set) self.switch_apport.connect( 'state-set', self.__on_switch_apport_state_set) def __on_btn_start_clicked(self, widget): index = int(self.carousel.get_position()) next_page = self.carousel.get_nth_page(index + 1) self.carousel.scroll_to(next_page, True) def __on_switch_snap_state_set(self, widget, state): self.__config.snap = state def __on_switch_flatpak_state_set(self, widget, state): self.__config.flatpak = state def __on_switch_apport_state_set(self, widget, state): self.__config.apport = state def on_btn_save_clicked(self, widget): Configurator(self.__config, fake=True).apply()