mirror of
https://github.com/DYefremov/DemonEditor.git
synced 2026-03-05 03:51:56 +01:00
added display picons option
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# The MIT License (MIT)
|
||||
#
|
||||
# Copyright (c) 2018-2021 Dmitriy Yefremov
|
||||
# Copyright (c) 2018-2022 Dmitriy Yefremov
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -676,6 +676,14 @@ class Settings:
|
||||
def dark_mode(self, value):
|
||||
self._settings["dark_mode"] = value
|
||||
|
||||
@property
|
||||
def display_picons(self):
|
||||
return self._settings.get("display_picons", True)
|
||||
|
||||
@display_picons.setter
|
||||
def display_picons(self, value):
|
||||
self._settings["display_picons"] = value
|
||||
|
||||
@property
|
||||
def alternate_layout(self):
|
||||
return self._settings.get("alternate_layout", IS_DARWIN)
|
||||
@@ -711,7 +719,7 @@ class Settings:
|
||||
@property
|
||||
@lru_cache(1)
|
||||
def themes_path(self):
|
||||
return "{}{}.themes{}".format(HOME_PATH, SEP, SEP)
|
||||
return f"{HOME_PATH}{SEP}.themes{SEP}"
|
||||
|
||||
@property
|
||||
def icon_theme(self):
|
||||
@@ -724,7 +732,7 @@ class Settings:
|
||||
@property
|
||||
@lru_cache(1)
|
||||
def icon_themes_path(self):
|
||||
return "{}{}.icons{}".format(HOME_PATH, SEP, SEP)
|
||||
return f"{HOME_PATH}{SEP}.icons{SEP}"
|
||||
|
||||
@property
|
||||
def is_darwin(self):
|
||||
|
||||
@@ -134,6 +134,10 @@
|
||||
</item>
|
||||
</section>
|
||||
<section>
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">Display picons</attribute>
|
||||
<attribute name="action">app.display_picons</attribute>
|
||||
</item>
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">Alternate layout</attribute>
|
||||
<attribute name="action">app.set_alternate_layout</attribute>
|
||||
@@ -330,6 +334,10 @@
|
||||
</item>
|
||||
</section>
|
||||
<section>
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">Display picons</attribute>
|
||||
<attribute name="action">app.display_picons</attribute>
|
||||
</item>
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">Alternate layout</attribute>
|
||||
<attribute name="action">app.set_alternate_layout</attribute>
|
||||
|
||||
@@ -436,9 +436,13 @@ class Application(Gtk.Application):
|
||||
self._player_box.bind_property("visible", toolbar_box, "visible", 4)
|
||||
# Picons.
|
||||
self._picon_renderer = builder.get_object("picon_renderer")
|
||||
builder.get_object("picon_column").set_cell_data_func(self._picon_renderer, self.picon_data_func)
|
||||
self._picon_column = builder.get_object("picon_column")
|
||||
self._picon_column.set_cell_data_func(self._picon_renderer, self.picon_data_func)
|
||||
self._fav_picon_renderer = builder.get_object("fav_picon_renderer")
|
||||
builder.get_object("fav_picon_column").set_cell_data_func(self._fav_picon_renderer, self.fav_picon_data_func)
|
||||
self._fav_picon_column = builder.get_object("fav_picon_column")
|
||||
self._fav_picon_column.set_cell_data_func(self._fav_picon_renderer, self.fav_picon_data_func)
|
||||
self._picon_column.set_visible(self._settings.display_picons)
|
||||
self._fav_picon_column.set_visible(self._settings.display_picons)
|
||||
# Setting the last size of the window if it was saved.
|
||||
main_window_size = self._settings.get("window_size")
|
||||
if main_window_size:
|
||||
@@ -544,6 +548,8 @@ class Application(Gtk.Application):
|
||||
sa = self.set_state_action("show_control", self.on_page_show, self._settings.get("show_control", True))
|
||||
sa.connect("change-state", lambda a, v: self._stack_control_box.set_visible(v))
|
||||
self.bind_property("is-enigma", sa, "enabled")
|
||||
# Display picons.
|
||||
self.set_state_action("display_picons", self.set_display_picons, self._settings.display_picons)
|
||||
# Alternate layout.
|
||||
sa = self.set_state_action("set_alternate_layout", self.set_use_alt_layout, self._settings.alternate_layout)
|
||||
sa.connect("change-state", self.on_layout_change)
|
||||
@@ -703,6 +709,8 @@ class Application(Gtk.Application):
|
||||
if self._picons_size != self._settings.list_picon_size:
|
||||
self._picons_size = self._settings.list_picon_size
|
||||
self._picons.clear()
|
||||
self.refresh_models()
|
||||
|
||||
self._picon_renderer.set_fixed_size(self._picons_size, self._picons_size * 0.65)
|
||||
self._fav_picon_renderer.set_fixed_size(self._picons_size, self._picons_size * 0.65)
|
||||
|
||||
@@ -3500,6 +3508,23 @@ class Application(Gtk.Application):
|
||||
|
||||
# ***************** Picons ********************* #
|
||||
|
||||
@run_idle
|
||||
def set_display_picons(self, action, value):
|
||||
action.set_state(value)
|
||||
set_display = bool(value)
|
||||
self._settings.display_picons = set_display
|
||||
self._picon_column.set_visible(set_display)
|
||||
self._fav_picon_column.set_visible(set_display)
|
||||
self.refresh_models()
|
||||
|
||||
@run_idle
|
||||
def refresh_models(self):
|
||||
model = self._services_view.get_model()
|
||||
self._services_view.set_model(None)
|
||||
self._services_view.set_model(model)
|
||||
self._fav_view.set_model(None)
|
||||
self._fav_view.set_model(self._fav_model)
|
||||
|
||||
def picon_data_func(self, column, renderer, model, itr, data):
|
||||
renderer.set_property("pixbuf", self._picons.get(model.get_value(itr, Column.SRV_PICON_ID)))
|
||||
|
||||
|
||||
@@ -1885,7 +1885,6 @@ Author: Dmitriy Yefremov
|
||||
<item id="72">72</item>
|
||||
<item id="96">96</item>
|
||||
</items>
|
||||
<signal name="changed" handler="on_picons_size_changed" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
|
||||
@@ -69,7 +69,6 @@ class SettingsDialog:
|
||||
"on_add_picon_path": self.on_add_picon_path,
|
||||
"on_remove_picon_path": self.on_remove_picon_path,
|
||||
"on_lang_changed": self.on_lang_changed,
|
||||
"on_picons_size_changed": self.on_picons_size_changed,
|
||||
"on_main_settings_visible": self.on_main_settings_visible,
|
||||
"on_http_use_ssl_toggled": self.on_http_use_ssl_toggled,
|
||||
"on_click_mode_togged": self.on_click_mode_togged,
|
||||
@@ -92,7 +91,6 @@ class SettingsDialog:
|
||||
self._profiles = self._settings.profiles
|
||||
self._s_type = self._settings.setting_type
|
||||
self._updated = False
|
||||
self._current_page = None
|
||||
|
||||
builder = get_builder(UI_RESOURCES_PATH + "settings_dialog.glade", handlers)
|
||||
|
||||
@@ -626,14 +624,10 @@ class SettingsDialog:
|
||||
if box.get_active_id() != self._settings.language:
|
||||
self.show_info_message("Save and restart the program to apply the settings.", Gtk.MessageType.WARNING)
|
||||
|
||||
def on_picons_size_changed(self, box):
|
||||
if self._current_page == "appearance" and box.get_active_id() != self._settings.list_picon_size:
|
||||
self.show_info_message("Save and restart the program to apply the settings.", Gtk.MessageType.WARNING)
|
||||
|
||||
def on_main_settings_visible(self, stack, param):
|
||||
self._current_page = stack.get_visible_child_name()
|
||||
self._apply_presets_button.set_visible(self._current_page == "streaming")
|
||||
self._reset_button.set_visible(self._current_page == "profiles")
|
||||
name = stack.get_visible_child_name()
|
||||
self._apply_presets_button.set_visible(name == "streaming")
|
||||
self._reset_button.set_visible(name == "profiles")
|
||||
|
||||
def on_http_use_ssl_toggled(self, button):
|
||||
active = button.get_active()
|
||||
|
||||
Reference in New Issue
Block a user