display info messages refactoring

This commit is contained in:
DYefremov
2024-01-20 19:04:20 +03:00
parent f3d133b7a3
commit 4154f4d2f5
8 changed files with 47 additions and 51 deletions

View File

@@ -2,7 +2,7 @@
#
# The MIT License (MIT)
#
# Copyright (c) 2018-2023 Dmitriy Yefremov
# Copyright (c) 2018-2024 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
@@ -38,7 +38,7 @@ from pathlib import Path
from app.commons import run_idle, get_size_from_bytes
from app.settings import SettingsType, SEP
from app.ui.dialogs import show_dialog, DialogType, get_builder
from app.ui.main_helper import append_text_to_tview
from app.ui.main_helper import append_text_to_tview, show_info_bar_message
from .uicommons import Gtk, Gdk, UI_RESOURCES_PATH, KeyboardKey, MOD_MASK, HeaderBar
@@ -153,9 +153,7 @@ class BackupDialog:
@run_idle
def show_info_message(self, text, message_type):
self._info_bar.set_visible(True)
self._info_bar.set_message_type(message_type)
self._message_label.set_text(text)
show_info_bar_message(self._info_bar, self._message_label, text, message_type)
def on_info_bar_close(self, bar=None, resp=None):
self._info_bar.set_visible(False)

View File

@@ -50,7 +50,8 @@ from app.tools.epg import EPG, ChannelsParser, EpgEvent, XmlTvReader
from app.ui.dialogs import translate, show_dialog, DialogType, get_builder, get_chooser_dialog
from app.ui.tasks import BGTaskWidget
from app.ui.timers import TimerTool
from ..main_helper import on_popup_menu, update_entry_data, scroll_to, update_toggle_model, update_filter_sat_positions
from ..main_helper import on_popup_menu, update_entry_data, scroll_to, update_toggle_model, update_filter_sat_positions, \
show_info_bar_message
from ..uicommons import Gtk, Gdk, UI_RESOURCES_PATH, Column, EPG_ICON, KeyboardKey, Page, HeaderBar
@@ -1175,9 +1176,7 @@ class EpgDialog:
@run_idle
def show_info_message(self, text, message_type):
self._info_bar.set_visible(True)
self._info_bar.set_message_type(message_type)
self._message_label.set_text(text)
show_info_bar_message(self._info_bar, self._message_label, text, message_type)
@run_idle
def update_source_info(self, info):

View File

@@ -2,7 +2,7 @@
#
# The MIT License (MIT)
#
# Copyright (c) 2018-2023 Dmitriy Yefremov
# Copyright (c) 2018-2024 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
@@ -36,7 +36,7 @@ from app.eparser.ecommons import BqType, BqServiceType, Bouquet
from app.eparser.neutrino.bouquets import parse_webtv, parse_bouquets as get_neutrino_bouquets
from app.settings import SettingsType, IS_DARWIN, SEP
from app.ui.dialogs import show_dialog, DialogType, get_chooser_dialog, translate, get_builder
from app.ui.main_helper import on_popup_menu, get_iptv_data
from app.ui.main_helper import on_popup_menu, get_iptv_data, show_info_bar_message
from .uicommons import Gtk, Gdk, UI_RESOURCES_PATH, KeyboardKey, Column, Page, HeaderBar
@@ -373,9 +373,7 @@ class ImportDialog:
@run_idle
def show_info_message(self, text, message_type):
self._info_bar.set_visible(True)
self._info_bar.set_message_type(message_type)
self._message_label.set_text(text)
show_info_bar_message(self._info_bar, self._message_label, text, message_type)
@run_idle
def on_info_bar_close(self, bar=None, resp=None):

View File

@@ -44,7 +44,7 @@ from app.eparser.iptv import (NEUTRINO_FAV_ID_FORMAT, StreamType, ENIGMA2_FAV_ID
from app.settings import SettingsType
from app.tools.yt import YouTubeException, YouTube
from app.ui.dialogs import Action, show_dialog, DialogType, translate, get_builder
from app.ui.main_helper import get_iptv_url, on_popup_menu, get_picon_pixbuf
from app.ui.main_helper import get_iptv_url, on_popup_menu, get_picon_pixbuf, show_info_bar_message
from app.ui.uicommons import (Gtk, Gdk, UI_RESOURCES_PATH, IPTV_ICON, Column, KeyboardKey, get_yt_icon, HeaderBar)
_DIGIT_ENTRY_NAME = "digit-entry"
@@ -163,14 +163,14 @@ class IptvDialog:
self.on_url_changed(self._url_entry)
if not is_data_correct(self._digit_elems) or self._url_entry.get_name() == _DIGIT_ENTRY_NAME:
self.show_info_message(translate("Error. Verify the data!"), Gtk.MessageType.ERROR)
self.show_info_message("Error. Verify the data!", Gtk.MessageType.ERROR)
return
url = self._url_entry.get_text()
if all((self._url_prefix_box.get_visible(),
self._url_prefix_combobox.get_active_id(),
url.count("http") > 1 or urlparse(url).scheme.upper() in _URL_PREFIXES)):
self.show_info_message(translate("Invalid prefix for the given URL!"), Gtk.MessageType.ERROR)
self.show_info_message("Invalid prefix for the given URL!", Gtk.MessageType.ERROR)
return
if show_dialog(DialogType.QUESTION, self._dialog) in (Gtk.ResponseType.CANCEL, Gtk.ResponseType.DELETE_EVENT):
@@ -390,9 +390,7 @@ class IptvDialog:
@run_idle
def show_info_message(self, text, message_type):
self._info_bar.set_visible(True)
self._info_bar.set_message_type(message_type)
self._message_label.set_text(text)
show_info_bar_message(self._info_bar, self._message_label, text, message_type)
class SearchUnavailableDialog:
@@ -509,6 +507,7 @@ class IptvListDialog:
self._data_box = builder.get_object("iptv_list_data_box")
self._start_values_grid = builder.get_object("start_values_grid")
self._info_bar = builder.get_object("list_configuration_info_bar")
self._message_label = builder.get_object("list_configuration_message_label")
self._reference_label = builder.get_object("reference_label")
self._stream_type_check_button = builder.get_object("stream_type_default_check_button")
self._id_default_check_button = builder.get_object("id_default_check_button")
@@ -590,6 +589,10 @@ class IptvListDialog:
for el in self._default_elems:
el.set_active(True)
@run_idle
def show_info_message(self, text, message_type=Gtk.MessageType.INFO):
show_info_bar_message(self._info_bar, self._message_label, text, message_type)
def on_info_bar_close(self, bar=None, resp=None):
self._info_bar.set_visible(False)
@@ -630,7 +633,7 @@ class IptvListConfigurationDialog(IptvListDialog):
@run_idle
def on_apply(self, item):
if not is_data_correct(self._digit_elems):
show_dialog(DialogType.ERROR, self._dialog, "Error. Verify the data!")
self.show_info_message("Error. Verify the data!", Gtk.MessageType.ERROR)
return
if self._s_type is SettingsType.ENIGMA_2:
@@ -677,7 +680,7 @@ class IptvListConfigurationDialog(IptvListDialog):
self._bouquet.clear()
list(map(lambda r: self._bouquet.append(r[Column.FAV_ID]), self._fav_model))
self._info_bar.set_visible(True)
self.show_info_message("Done!", Gtk.MessageType.INFO)
self._ok_button.set_visible(True)
@@ -728,8 +731,12 @@ class M3uImportDialog(IptvListDialog):
GLib.idle_add(self._spinner.set_property, "active", False)
def on_apply(self, item):
if not self._app.current_bouquet:
self.show_info_message("Error. No bouquet is selected!", Gtk.MessageType.ERROR)
return
if not is_data_correct(self._digit_elems):
show_dialog(DialogType.ERROR, self._dialog, "Error. Verify the data!")
self.show_info_message("Error. Verify the data!", Gtk.MessageType.ERROR)
return
picons = {}
@@ -761,8 +768,8 @@ class M3uImportDialog(IptvListDialog):
if self._picon_switch.get_active():
if self.is_default_values():
show_dialog(DialogType.ERROR, self._dialog,
"Set values for TID, NID and Namespace for correct naming of the picons!")
msg = "Set values for TID, NID and Namespace for correct naming of the picons!"
self.show_info_message(msg, Gtk.MessageType.ERROR)
return
self.download_picons(picons)
@@ -856,7 +863,7 @@ class M3uImportDialog(IptvListDialog):
@run_idle
def on_apply_done(self):
self._info_bar.set_visible(True)
self.show_info_message("Done!", Gtk.MessageType.INFO)
self._ok_button.set_visible(True)
self._picon_box.set_sensitive(False)
@@ -1060,7 +1067,7 @@ class YtListImportDialog:
srvs.append(srv)
self.appender(srvs)
self.show_info_message(translate("Done!"), Gtk.MessageType.INFO)
self.show_info_message("Done!", Gtk.MessageType.INFO)
@run_idle
def update_active_elements(self, sensitive):
@@ -1091,9 +1098,7 @@ class YtListImportDialog:
@run_idle
def show_info_message(self, text, message_type):
self._info_bar.set_visible(True)
self._info_bar.set_message_type(message_type)
self._message_label.set_text(text)
show_info_bar_message(self._info_bar, self._message_label, text, message_type)
def on_selected_toggled(self, toggle, path):
self._model.set_value(self._model.get_iter(path), 2, not toggle.get_active())

View File

@@ -3215,8 +3215,7 @@ class Application(Gtk.Application):
self.show_error_message("No m3u file is selected!")
return
if self._bq_selected:
M3uImportDialog(self._main_window, self._s_type, response, self).show()
M3uImportDialog(self._main_window, self._s_type, response, self).show()
def append_imported_services(self, services):
bq_services = self._bouquets.get(self._bq_selected)
@@ -4438,10 +4437,7 @@ class Application(Gtk.Application):
@run_idle
def show_info_message(self, text, message_type=Gtk.MessageType.INFO):
self._info_bar.set_visible(False)
self._info_label.set_text(translate(text))
self._info_bar.set_message_type(message_type)
self._info_bar.set_visible(True)
show_info_bar_message(self._info_bar, self._info_label, text, message_type)
def on_info_bar_close(self, bar=None, resp=None):
self._info_bar.set_visible(False)

View File

@@ -2,7 +2,7 @@
#
# The MIT License (MIT)
#
# Copyright (c) 2018-2023 Dmitriy Yefremov
# Copyright (c) 2018-2024 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
@@ -33,7 +33,8 @@ __all__ = ("insert_marker", "move_items", "rename", "ViewTarget", "set_flags", "
"is_only_one_item_selected", "gen_bouquets", "BqGenType", "get_selection", "get_service_reference",
"get_model_data", "remove_all_unused_picons", "get_picon_pixbuf", "get_base_itrs", "get_iptv_url",
"get_iptv_data", "update_entry_data", "append_text_to_tview", "on_popup_menu", "get_picon_file_name",
"update_toggle_model", "update_popup_filter_model", "update_filter_sat_positions", "get_pos_num")
"update_toggle_model", "update_popup_filter_model", "update_filter_sat_positions", "get_pos_num",
"show_info_bar_message")
import os
import re
@@ -846,5 +847,13 @@ def on_popup_menu(menu, event):
menu.popup(None, None, None, None, event.button, event.time)
def show_info_bar_message(bar, label, text, message_type=Gtk.MessageType.INFO):
""" Shows a message for info bars. """
bar.set_visible(False)
label.set_text(translate(text))
bar.set_message_type(message_type)
bar.set_visible(True)
if __name__ == "__main__":
pass

View File

@@ -2,7 +2,7 @@
#
# The MIT License (MIT)
#
# Copyright (c) 2018-2023 Dmitriy Yefremov
# Copyright (c) 2018-2024 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
@@ -34,7 +34,7 @@ from app.commons import run_task, run_idle, log
from app.connections import test_telnet, test_ftp, TestException, test_http, HttpApiException
from app.settings import SettingsType, Settings, PlayStreamsMode, PlaybackMode, IS_LINUX, SEP, IS_WIN
from app.ui.dialogs import show_dialog, DialogType, translate, get_chooser_dialog, get_builder
from .main_helper import update_entry_data, scroll_to, get_picon_pixbuf
from .main_helper import update_entry_data, scroll_to, get_picon_pixbuf, show_info_bar_message
from .uicommons import Gtk, Gdk, UI_RESOURCES_PATH, DEFAULT_ICON, APP_FONT, HeaderBar
@@ -476,10 +476,7 @@ class SettingsDialog:
@run_idle
def show_info_message(self, text, message_type):
self._info_bar.set_visible(False)
self._info_bar.set_message_type(message_type)
self._message_label.set_text(translate(text))
self._info_bar.set_visible(True)
show_info_bar_message(self._info_bar, self._message_label, text, message_type)
@run_idle
def show_spinner(self, show):

View File

@@ -2,7 +2,7 @@
#
# The MIT License (MIT)
#
# Copyright (c) 2018-2023 Dmitriy Yefremov
# Copyright (c) 2018-2024 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
@@ -593,12 +593,6 @@ class UpdateDialog:
def update_receive_button_state(self, model):
self._receive_button.set_sensitive((any(r[4] for r in model)))
@run_idle
def show_info_message(self, text, message_type):
self._sat_update_info_bar.set_visible(True)
self._sat_update_info_bar.set_message_type(message_type)
self._info_bar_message_label.set_text(text)
def on_info_bar_close(self, bar=None, resp=None):
self._sat_update_info_bar.set_visible(False)