mirror of
https://github.com/DYefremov/DemonEditor.git
synced 2025-12-21 16:09:41 +01:00
new gui for main window
This commit is contained in:
@@ -39,7 +39,7 @@ Author: Dmitriy Yefremov
|
|||||||
<property name="icon_name">system-help</property>
|
<property name="icon_name">system-help</property>
|
||||||
<property name="type_hint">normal</property>
|
<property name="type_hint">normal</property>
|
||||||
<property name="program_name">DemonEditor</property>
|
<property name="program_name">DemonEditor</property>
|
||||||
<property name="version">0.3.2 Pre-alpha</property>
|
<property name="version">0.4.0 Pre-alpha</property>
|
||||||
<property name="copyright">2018 Dmitriy Yefremov
|
<property name="copyright">2018 Dmitriy Yefremov
|
||||||
</property>
|
</property>
|
||||||
<property name="comments" translatable="yes">Enigma2 channel and satellites list editor for GNU/Linux</property>
|
<property name="comments" translatable="yes">Enigma2 channel and satellites list editor for GNU/Linux</property>
|
||||||
|
|||||||
@@ -36,41 +36,36 @@ class MainAppWindow:
|
|||||||
_BOUQUETS_LIST_NAME = "bouquets_tree_store"
|
_BOUQUETS_LIST_NAME = "bouquets_tree_store"
|
||||||
|
|
||||||
# dynamically active elements depending on the selected view
|
# dynamically active elements depending on the selected view
|
||||||
_SERVICE_ELEMENTS = ("copy_tool_button", "to_fav_tool_button", "copy_menu_item", "services_to_fav_move_popup_item",
|
_SERVICE_ELEMENTS = ("services_to_fav_move_popup_item", "services_edit_popup_item", "services_copy_popup_item",
|
||||||
"services_edit_popup_item", "services_copy_popup_item", "services_picon_popup_item",
|
"services_picon_popup_item", "services_create_bouquet_popup_item")
|
||||||
"services_create_bouquet_popup_item")
|
|
||||||
|
|
||||||
_BOUQUET_ELEMENTS = ("edit_tool_button", "new_tool_button",
|
_BOUQUET_ELEMENTS = ("edit_tool_button", "new_tool_button", "bouquets_new_popup_item", "bouquets_edit_popup_item")
|
||||||
"bouquets_new_popup_item", "bouquets_edit_popup_item")
|
|
||||||
|
|
||||||
_COMMONS_ELEMENTS = ("edit_tool_button", "remove_tool_button", "delete_menu_item", "services_remove_popup_item",
|
_COMMONS_ELEMENTS = ("edit_tool_button", "services_remove_popup_item", "bouquets_remove_popup_item",
|
||||||
"bouquets_remove_popup_item", "fav_remove_popup_item", "up_tool_button", "down_tool_button")
|
"fav_remove_popup_item")
|
||||||
|
|
||||||
_FAV_ELEMENTS = ("cut_tool_button", "paste_tool_button", "cut_menu_item",
|
_FAV_ELEMENTS = ("fav_cut_popup_item", "fav_paste_popup_item", "fav_import_m3u_popup_item", "fav_locate_popup_item",
|
||||||
"paste_menu_item", "fav_cut_popup_item", "fav_paste_popup_item", "import_m3u_tool_button",
|
"fav_insert_marker_popup_item", "fav_edit_popup_item", "fav_picon_popup_item",
|
||||||
"fav_import_m3u_popup_item", "fav_insert_marker_popup_item", "fav_edit_popup_item",
|
"fav_add_iptv_popup_item")
|
||||||
"fav_locate_popup_item", "fav_picon_popup_item", "fav_add_iptv_popup_item")
|
|
||||||
|
|
||||||
_FAV_ENIGMA_ELEMENTS = ("fav_insert_marker_popup_item",)
|
_FAV_ENIGMA_ELEMENTS = ("fav_insert_marker_popup_item",)
|
||||||
|
|
||||||
_FAV_M3U_ELEMENTS = ("import_m3u_tool_button", "fav_import_m3u_popup_item", "fav_add_iptv_popup_item")
|
_FAV_M3U_ELEMENTS = ("fav_import_m3u_popup_item", "fav_add_iptv_popup_item")
|
||||||
|
|
||||||
_LOCK_HIDE_ELEMENTS = ("locked_tool_button", "hide_tool_button")
|
_LOCK_HIDE_ELEMENTS = ("locked_tool_button", "hide_tool_button")
|
||||||
|
|
||||||
_DYNAMIC_ELEMENTS = ("up_tool_button", "down_tool_button", "cut_tool_button", "services_create_bouquet_popup_item",
|
_DYNAMIC_ELEMENTS = ("services_create_bouquet_popup_item", "new_tool_button",
|
||||||
"paste_tool_button", "to_fav_tool_button", "new_tool_button", "remove_tool_button",
|
"edit_tool_button", "services_to_fav_move_popup_item", "services_edit_popup_item",
|
||||||
"cut_menu_item", "copy_menu_item", "paste_menu_item", "delete_menu_item", "edit_tool_button",
|
"locked_tool_button", "services_remove_popup_item", "fav_cut_popup_item",
|
||||||
"services_to_fav_move_popup_item", "services_edit_popup_item", "locked_tool_button",
|
"fav_paste_popup_item", "bouquets_new_popup_item", "bouquets_edit_popup_item",
|
||||||
"services_remove_popup_item", "fav_cut_popup_item", "fav_paste_popup_item",
|
"services_remove_popup_item", "bouquets_remove_popup_item", "fav_remove_popup_item",
|
||||||
"bouquets_new_popup_item", "bouquets_edit_popup_item", "services_remove_popup_item",
|
"hide_tool_button", "fav_import_m3u_popup_item", "fav_insert_marker_popup_item",
|
||||||
"bouquets_remove_popup_item", "fav_remove_popup_item", "hide_tool_button",
|
|
||||||
"import_m3u_tool_button", "fav_import_m3u_popup_item", "fav_insert_marker_popup_item",
|
|
||||||
"fav_edit_popup_item", "fav_locate_popup_item", "services_copy_popup_item",
|
"fav_edit_popup_item", "fav_locate_popup_item", "services_copy_popup_item",
|
||||||
"services_picon_popup_item", "fav_picon_popup_item", "services_add_new_popup_item",
|
"services_picon_popup_item", "fav_picon_popup_item", "services_add_new_popup_item",
|
||||||
"fav_add_iptv_popup_item", "copy_tool_button")
|
"fav_add_iptv_popup_item")
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
handlers = {"on_close_main_window": self.on_quit,
|
handlers = {"on_close_app": self.on_close_app,
|
||||||
"on_resize": self.on_resize,
|
"on_resize": self.on_resize,
|
||||||
"on_about_app": self.on_about_app,
|
"on_about_app": self.on_about_app,
|
||||||
"on_preferences": self.on_preferences,
|
"on_preferences": self.on_preferences,
|
||||||
@@ -177,7 +172,6 @@ class MainAppWindow:
|
|||||||
self.update_profile_label()
|
self.update_profile_label()
|
||||||
# dynamically active elements depending on the selected view
|
# dynamically active elements depending on the selected view
|
||||||
self._tool_elements = {k: builder.get_object(k) for k in self._DYNAMIC_ELEMENTS}
|
self._tool_elements = {k: builder.get_object(k) for k in self._DYNAMIC_ELEMENTS}
|
||||||
self._picons_download_tool_button = builder.get_object("picons_download_tool_button")
|
|
||||||
self._cas_label = builder.get_object("cas_label")
|
self._cas_label = builder.get_object("cas_label")
|
||||||
self._fav_count_label = builder.get_object("fav_count_label")
|
self._fav_count_label = builder.get_object("fav_count_label")
|
||||||
self._bouquets_count_label = builder.get_object("bouquets_count_label")
|
self._bouquets_count_label = builder.get_object("bouquets_count_label")
|
||||||
@@ -196,9 +190,9 @@ class MainAppWindow:
|
|||||||
self._services_model_filter = builder.get_object("services_model_filter")
|
self._services_model_filter = builder.get_object("services_model_filter")
|
||||||
self._services_model_filter.set_visible_func(self.services_filter_function)
|
self._services_model_filter.set_visible_func(self.services_filter_function)
|
||||||
self._filter_entry = builder.get_object("filter_entry")
|
self._filter_entry = builder.get_object("filter_entry")
|
||||||
self._filter_info_bar = builder.get_object("filter_info_bar")
|
self._filter_bar = builder.get_object("filter_bar")
|
||||||
# Search
|
# Search
|
||||||
self._search_info_bar = builder.get_object("search_info_bar")
|
self._search_bar = builder.get_object("search_bar")
|
||||||
self._search_provider = SearchProvider((self._services_view, self._fav_view, self._bouquets_view),
|
self._search_provider = SearchProvider((self._services_view, self._fav_view, self._bouquets_view),
|
||||||
builder.get_object("search_down_button"),
|
builder.get_object("search_down_button"),
|
||||||
builder.get_object("search_up_button"))
|
builder.get_object("search_up_button"))
|
||||||
@@ -223,7 +217,7 @@ class MainAppWindow:
|
|||||||
event.state |= Gdk.ModifierType.CONTROL_MASK
|
event.state |= Gdk.ModifierType.CONTROL_MASK
|
||||||
|
|
||||||
@run_idle
|
@run_idle
|
||||||
def on_quit(self, *args):
|
def on_close_app(self, *args):
|
||||||
""" Called before app quit """
|
""" Called before app quit """
|
||||||
write_config(self._options) # storing current config
|
write_config(self._options) # storing current config
|
||||||
if self._player:
|
if self._player:
|
||||||
@@ -828,7 +822,7 @@ class MainAppWindow:
|
|||||||
bq_selected = BqType(bq_type) is BqType.WEBTV
|
bq_selected = BqType(bq_type) is BqType.WEBTV
|
||||||
|
|
||||||
for elem in self._FAV_ELEMENTS:
|
for elem in self._FAV_ELEMENTS:
|
||||||
if elem in ("paste_tool_button", "paste_menu_item", "fav_paste_popup_item"):
|
if elem in ("paste_tool_button", "fav_paste_popup_item"):
|
||||||
self._tool_elements[elem].set_sensitive(not is_service and self._rows_buffer)
|
self._tool_elements[elem].set_sensitive(not is_service and self._rows_buffer)
|
||||||
elif elem in self._FAV_ENIGMA_ELEMENTS:
|
elif elem in self._FAV_ENIGMA_ELEMENTS:
|
||||||
if profile is Profile.ENIGMA_2:
|
if profile is Profile.ENIGMA_2:
|
||||||
@@ -858,17 +852,18 @@ class MainAppWindow:
|
|||||||
def set_service_flags(self, flag):
|
def set_service_flags(self, flag):
|
||||||
profile = Profile(self._profile)
|
profile = Profile(self._profile)
|
||||||
bq_selected = self.get_selected_bouquet()
|
bq_selected = self.get_selected_bouquet()
|
||||||
|
if not bq_selected:
|
||||||
|
return
|
||||||
|
|
||||||
if profile is Profile.ENIGMA_2:
|
if profile is Profile.ENIGMA_2:
|
||||||
if set_flags(flag, self._services_view, self._fav_view, self._services, self._blacklist):
|
if set_flags(flag, self._services_view, self._fav_view, self._services, self._blacklist):
|
||||||
if bq_selected:
|
self._fav_model.clear()
|
||||||
self._fav_model.clear()
|
self.update_bouquet_services(self._fav_model, None, bq_selected)
|
||||||
self.update_bouquet_services(self._fav_model, None, bq_selected)
|
|
||||||
elif profile is Profile.NEUTRINO_MP:
|
elif profile is Profile.NEUTRINO_MP:
|
||||||
if bq_selected:
|
model, path = self._bouquets_view.get_selection().get_selected()
|
||||||
model, path = self._bouquets_view.get_selection().get_selected()
|
value = model.get_value(path, 1 if flag is Flag.LOCK else 2)
|
||||||
value = model.get_value(path, 1 if flag is Flag.LOCK else 2)
|
value = None if value else LOCKED_ICON if flag is Flag.LOCK else HIDE_ICON
|
||||||
value = None if value else LOCKED_ICON if flag is Flag.LOCK else HIDE_ICON
|
model.set_value(path, 1 if flag is Flag.LOCK else 2, value)
|
||||||
model.set_value(path, 1 if flag is Flag.LOCK else 2, value)
|
|
||||||
|
|
||||||
@run_idle
|
@run_idle
|
||||||
def on_model_changed(self, model, path, itr=None):
|
def on_model_changed(self, model, path, itr=None):
|
||||||
@@ -1043,7 +1038,9 @@ class MainAppWindow:
|
|||||||
|
|
||||||
@run_idle
|
@run_idle
|
||||||
def on_filter_toggled(self, toggle_button: Gtk.ToggleToolButton):
|
def on_filter_toggled(self, toggle_button: Gtk.ToggleToolButton):
|
||||||
self._filter_info_bar.set_visible(toggle_button.get_active())
|
active = toggle_button.get_active()
|
||||||
|
self._filter_bar.set_search_mode(active)
|
||||||
|
self._filter_bar.set_visible(active)
|
||||||
|
|
||||||
@run_idle
|
@run_idle
|
||||||
def on_filter_changed(self, entry):
|
def on_filter_changed(self, entry):
|
||||||
@@ -1056,7 +1053,7 @@ class MainAppWindow:
|
|||||||
return self._filter_entry.get_text() in str(model.get(iter, 3, 6, 7, 10, 11, 12, 13, 14, 15, 16))
|
return self._filter_entry.get_text() in str(model.get(iter, 3, 6, 7, 10, 11, 12, 13, 14, 15, 16))
|
||||||
|
|
||||||
def on_search_toggled(self, toggle_button: Gtk.ToggleToolButton):
|
def on_search_toggled(self, toggle_button: Gtk.ToggleToolButton):
|
||||||
self._search_info_bar.set_visible(toggle_button.get_active())
|
self._search_bar.set_search_mode(toggle_button.get_active())
|
||||||
|
|
||||||
def on_search_down(self, item):
|
def on_search_down(self, item):
|
||||||
self._search_provider.on_search_down()
|
self._search_provider.on_search_down()
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -20,7 +20,7 @@ theme = Gtk.IconTheme.get_default()
|
|||||||
_IMAGE_MISSING = theme.load_icon("image-missing", 16, 0) if theme.lookup_icon("image-missing", 16, 0) else None
|
_IMAGE_MISSING = theme.load_icon("image-missing", 16, 0) if theme.lookup_icon("image-missing", 16, 0) else None
|
||||||
CODED_ICON = theme.load_icon("emblem-readonly", 16, 0) if theme.lookup_icon(
|
CODED_ICON = theme.load_icon("emblem-readonly", 16, 0) if theme.lookup_icon(
|
||||||
"emblem-readonly", 16, 0) else _IMAGE_MISSING
|
"emblem-readonly", 16, 0) else _IMAGE_MISSING
|
||||||
LOCKED_ICON = theme.load_icon("system-lock-screen", 16, 0) if theme.lookup_icon(
|
LOCKED_ICON = theme.load_icon("dialog-password-symbolic", 16, 0) if theme.lookup_icon(
|
||||||
"system-lock-screen", 16, 0) else _IMAGE_MISSING
|
"system-lock-screen", 16, 0) else _IMAGE_MISSING
|
||||||
HIDE_ICON = theme.load_icon("go-jump", 16, 0) if theme.lookup_icon("go-jump", 16, 0) else _IMAGE_MISSING
|
HIDE_ICON = theme.load_icon("go-jump", 16, 0) if theme.lookup_icon("go-jump", 16, 0) else _IMAGE_MISSING
|
||||||
TV_ICON = theme.load_icon("tv-symbolic", 16, 0) if theme.lookup_icon("tv-symbolic", 16, 0) else _IMAGE_MISSING
|
TV_ICON = theme.load_icon("tv-symbolic", 16, 0) if theme.lookup_icon("tv-symbolic", 16, 0) else _IMAGE_MISSING
|
||||||
|
|||||||
Reference in New Issue
Block a user