Bugfixes, Smaller UI for displays with reduced resolution
This commit is contained in:
147
cinnamon-dynamic-wallpaper@TobiZog/5.4/scripts/ui.py
Normal file
147
cinnamon-dynamic-wallpaper@TobiZog/5.4/scripts/ui.py
Normal file
@@ -0,0 +1,147 @@
|
||||
import gi
|
||||
gi.require_version("Gtk", "3.0")
|
||||
from gi.repository import Gtk
|
||||
|
||||
class UI:
|
||||
""" Class to handle UI components and actions
|
||||
"""
|
||||
def __init__(self, builder: Gtk.Builder) -> None:
|
||||
# Page 1
|
||||
self.tb_image_set: Gtk.ToggleButton = builder.get_object("tb_image_set")
|
||||
self.tb_heic_file: Gtk.ToggleButton = builder.get_object("tb_heic_file")
|
||||
self.tb_source_folder: Gtk.ToggleButton = builder.get_object("tb_source_folder")
|
||||
self.img_tb_image_set: Gtk.Image = builder.get_object("img_tb_image_set")
|
||||
self.img_tb_heic_file: Gtk.Image = builder.get_object("img_tb_heic_file")
|
||||
self.img_tb_source_folder: Gtk.Image = builder.get_object("img_tb_source_folder")
|
||||
|
||||
# Image set
|
||||
self.lbr_image_set: Gtk.ListBoxRow = builder.get_object("lbr_image_set")
|
||||
self.cb_image_set: Gtk.ComboBox = builder.get_object("cb_image_set")
|
||||
|
||||
# HEIC file
|
||||
self.lbr_heic_file: Gtk.ListBoxRow = builder.get_object("lbr_heic_file")
|
||||
|
||||
# Source folder
|
||||
self.lbr_source_folder: Gtk.ListBoxRow = builder.get_object("lbr_source_folder")
|
||||
self.btn_source_folder: Gtk.Button = builder.get_object("btn_source_folder")
|
||||
self.lbl_source_folder: Gtk.Label = builder.get_object("lbl_source_folder")
|
||||
|
||||
# Time bar chart
|
||||
self.img_bar_images: Gtk.Image = builder.get_object("img_bar_images")
|
||||
self.etr_periods: list[Gtk.Entry] = [
|
||||
builder.get_object("etr_period_1"), builder.get_object("etr_period_2"),
|
||||
builder.get_object("etr_period_3"), builder.get_object("etr_period_4"),
|
||||
builder.get_object("etr_period_5"), builder.get_object("etr_period_6"),
|
||||
builder.get_object("etr_period_7"), builder.get_object("etr_period_8"),
|
||||
builder.get_object("etr_period_9"), builder.get_object("etr_period_10"),
|
||||
]
|
||||
|
||||
self.img_periods: list[Gtk.Image] = [
|
||||
builder.get_object("img_period_0"), builder.get_object("img_period_1"),
|
||||
builder.get_object("img_period_2"), builder.get_object("img_period_3"),
|
||||
builder.get_object("img_period_4"), builder.get_object("img_period_5"),
|
||||
builder.get_object("img_period_6"), builder.get_object("img_period_7"),
|
||||
builder.get_object("img_period_8"), builder.get_object("img_period_9"),
|
||||
]
|
||||
|
||||
self.cb_periods: list[Gtk.ComboBox] = [
|
||||
builder.get_object("cb_period_0"), builder.get_object("cb_period_1"),
|
||||
builder.get_object("cb_period_2"), builder.get_object("cb_period_3"),
|
||||
builder.get_object("cb_period_4"), builder.get_object("cb_period_5"),
|
||||
builder.get_object("cb_period_6"), builder.get_object("cb_period_7"),
|
||||
builder.get_object("cb_period_8"), builder.get_object("cb_period_9"),
|
||||
]
|
||||
|
||||
|
||||
|
||||
#### Page 2: Location & Times
|
||||
self.tb_network_location: Gtk.ToggleButton = builder.get_object("tb_network_location")
|
||||
self.tb_custom_location: Gtk.ToggleButton = builder.get_object("tb_custom_location")
|
||||
self.tb_time_periods: Gtk.ToggleButton = builder.get_object("tb_time_periods")
|
||||
self.img_tb_network_location: Gtk.Image = builder.get_object("img_tb_network_location")
|
||||
self.img_tb_custom_location: Gtk.Image = builder.get_object("img_tb_custom_location")
|
||||
self.img_tb_time_periods: Gtk.Image = builder.get_object("img_tb_time_periods")
|
||||
|
||||
# Network Location
|
||||
self.lb_current_location: Gtk.Label = builder.get_object("lb_current_location")
|
||||
self.lbr_current_location: Gtk.ListBoxRow = builder.get_object("lbr_current_location")
|
||||
self.lbr_network_location: Gtk.ListBoxRow = builder.get_object("lbr_network_location")
|
||||
self.spb_network_location_refresh_time: Gtk.SpinButton = builder.get_object("spb_network_location_refresh_time")
|
||||
|
||||
# Custom location
|
||||
self.lbr_custom_location_longitude: Gtk.ListBoxRow = builder.get_object("lbr_custom_location_longitude")
|
||||
self.lbr_custom_location_latitude: Gtk.ListBoxRow = builder.get_object("lbr_custom_location_latitude")
|
||||
self.lbr_time_periods: Gtk.ListBoxRow = builder.get_object("lbr_time_periods")
|
||||
self.etr_longitude: Gtk.Entry = builder.get_object("etr_longitude")
|
||||
self.etr_latitude: Gtk.Entry = builder.get_object("etr_latitude")
|
||||
self.img_bar_times: Gtk.Image = builder.get_object("img_bar_times")
|
||||
self.spb_periods_hour: list[Gtk.SpinButton] = [
|
||||
builder.get_object("spb_period_1_hour"),
|
||||
builder.get_object("spb_period_2_hour"),
|
||||
builder.get_object("spb_period_3_hour"),
|
||||
builder.get_object("spb_period_4_hour"),
|
||||
builder.get_object("spb_period_5_hour"),
|
||||
builder.get_object("spb_period_6_hour"),
|
||||
builder.get_object("spb_period_7_hour"),
|
||||
builder.get_object("spb_period_8_hour"),
|
||||
builder.get_object("spb_period_9_hour"),
|
||||
]
|
||||
self.spb_periods_minute: list[Gtk.SpinButton] = [
|
||||
builder.get_object("spb_period_1_minute"),
|
||||
builder.get_object("spb_period_2_minute"),
|
||||
builder.get_object("spb_period_3_minute"),
|
||||
builder.get_object("spb_period_4_minute"),
|
||||
builder.get_object("spb_period_5_minute"),
|
||||
builder.get_object("spb_period_6_minute"),
|
||||
builder.get_object("spb_period_7_minute"),
|
||||
builder.get_object("spb_period_8_minute"),
|
||||
builder.get_object("spb_period_9_minute")
|
||||
]
|
||||
self.lb_period_end: list[Gtk.Label] = [
|
||||
builder.get_object("lb_period_0_end"), builder.get_object("lb_period_1_end"),
|
||||
builder.get_object("lb_period_2_end"), builder.get_object("lb_period_3_end"),
|
||||
builder.get_object("lb_period_4_end"), builder.get_object("lb_period_5_end"),
|
||||
builder.get_object("lb_period_6_end"), builder.get_object("lb_period_7_end"),
|
||||
builder.get_object("lb_period_8_end"), builder.get_object("lb_period_9_end"),
|
||||
]
|
||||
|
||||
|
||||
# Page 3: Behaviour
|
||||
self.cb_picture_aspect: Gtk.ComboBox = builder.get_object("cb_picture_aspect")
|
||||
self.sw_dynamic_background_color: Gtk.Switch = builder.get_object("sw_dynamic_background_color")
|
||||
|
||||
|
||||
def set_active_combobox_item(self, combobox: Gtk.ComboBoxText, active_item: str):
|
||||
""" Change active item in combobox by String value
|
||||
|
||||
Args:
|
||||
combobox (Gtk.ComboBoxText): ComboBox to set active
|
||||
active_item (str): String item to set active
|
||||
"""
|
||||
list_store = combobox.get_model()
|
||||
|
||||
for i in range(0, len(list_store)):
|
||||
row = list_store[i]
|
||||
if row[0] == active_item:
|
||||
combobox.set_active(i)
|
||||
|
||||
|
||||
def add_items_to_combo_box(self, combobox: Gtk.ComboBox, items: list):
|
||||
""" Add items to a combo box
|
||||
|
||||
Args:
|
||||
combobox (Gtk.ComboBox): ComboBox where to add the options
|
||||
items (list): Possible options
|
||||
"""
|
||||
model = combobox.get_model()
|
||||
store = Gtk.ListStore(str)
|
||||
|
||||
for image_set in items:
|
||||
store.append([image_set])
|
||||
|
||||
combobox.set_model(store)
|
||||
|
||||
if model == None:
|
||||
renderer_text = Gtk.CellRendererText()
|
||||
combobox.pack_start(renderer_text, True)
|
||||
combobox.add_attribute(renderer_text, "text", 0)
|
||||
Reference in New Issue
Block a user