#!/usr/bin/python3
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, Gio

STATS_TRACKER_ENABLED_KEY = "cinnamon-stats-tracker-enabled"
STATS_TRACKER_INTERVAL_KEY = "cinnamon-stats-tracker-interval"
STATS_TRACKER_MEASURES_KEY = "cinnamon-stats-tracker-measures"

class Settings():

    def __init__(self):

        builder = Gtk.Builder()
        builder.add_from_file("/usr/share/mint-dev-tools/mint-dev-settings.ui")

        self.window = builder.get_object("main_window")
        self.window.connect("destroy", Gtk.main_quit)
        self.window.set_title("Mint Development Settings")

        self.settings = Gio.Settings("com.linuxmint.dev")

        toggle = builder.get_object("cinnamon_stats_tracker_toggle")
        toggle.set_active(self.settings.get_boolean(STATS_TRACKER_ENABLED_KEY))
        toggle.connect("state-set", self.on_toggle, STATS_TRACKER_ENABLED_KEY)

        adjustment = Gtk.Adjustment.new (0.0, 0.0, 3600.0, 60.0, 600.0, 0.0);
        spin = builder.get_object("spin_interval")
        spin.set_adjustment(adjustment)
        spin.set_value(self.settings.get_int(STATS_TRACKER_INTERVAL_KEY))
        spin.connect("value-changed", self.on_spin, STATS_TRACKER_INTERVAL_KEY)

        adjustment = Gtk.Adjustment.new (0.0, 0.0, 100.0, 1.0, 5.0, 0.0);
        spin = builder.get_object("spin_measures")
        spin.set_adjustment(adjustment)
        spin.set_value(self.settings.get_int(STATS_TRACKER_MEASURES_KEY))
        spin.connect("value-changed", self.on_spin, STATS_TRACKER_MEASURES_KEY)

        self.window.show_all()

        Gtk.main()

    def on_toggle(self, toggle, state, key):
        self.settings.set_boolean(key, state)

    def on_spin(self, spin, key):
        self.settings.set_int(key, spin.get_value_as_int())

if __name__ == '__main__':
    Settings()