diff --git a/app/ui/iptv.glade b/app/ui/iptv.glade
index 6719222f..9a04a043 100644
--- a/app/ui/iptv.glade
+++ b/app/ui/iptv.glade
@@ -1082,6 +1082,7 @@ Author: Dmitriy Yefremov
document-edit-symbolic
Link to YouTube resource.
+
True
diff --git a/app/ui/iptv.py b/app/ui/iptv.py
index be3635d5..932e8265 100644
--- a/app/ui/iptv.py
+++ b/app/ui/iptv.py
@@ -81,6 +81,7 @@ def __init__(self, app, view, bouquet=None, service=None, action=Action.ADD):
handlers = {"on_response": self.on_response,
"on_entry_changed": self.on_entry_changed,
"on_url_changed": self.on_url_changed,
+ "on_url_paste": self.on_url_paste,
"on_save": self.on_save,
"on_stream_type_changed": self.on_stream_type_changed,
"on_yt_quality_changed": self.on_yt_quality_changed,
@@ -93,6 +94,7 @@ def __init__(self, app, view, bouquet=None, service=None, action=Action.ADD):
self._bouquet = bouquet
self._yt_links = None
self._yt_dl = None
+ self._inserted_url = False
builder = get_builder(_UI_PATH, handlers, use_str=True,
objects=("iptv_dialog", "stream_type_liststore", "yt_quality_liststore"))
@@ -117,7 +119,7 @@ def __init__(self, app, view, bouquet=None, service=None, action=Action.ADD):
self._message_label = builder.get_object("info_bar_message_label")
self._yt_quality_box = builder.get_object("yt_iptv_quality_combobox")
self._model, self._paths = view.get_selection().get_selected_rows()
- # style
+ # Style.
self._style_provider = Gtk.CssProvider()
self._style_provider.load_from_path(UI_RESOURCES_PATH + "style.css")
self._digit_elems = (self._srv_id_entry, self._srv_type_entry, self._sid_entry, self._tr_id_entry,
@@ -194,7 +196,7 @@ def init_enigma2_data(self, fav_id):
elif stream_type is StreamType.E_SERVICE_HLS:
self._stream_type_combobox.set_active(5)
except ValueError:
- self.show_info_message("Unknown stream type {}".format(s_type), Gtk.MessageType.ERROR)
+ self.show_info_message(f"Unknown stream type {s_type}", Gtk.MessageType.ERROR)
self._srv_id_entry.set_text(data[1])
self._srv_type_entry.set_text(str(int(data[2], 16)))
@@ -212,7 +214,6 @@ def init_neutrino_data(self, fav_id):
def update_reference_entry(self):
if self._s_type is SettingsType.ENIGMA_2 and is_data_correct(self._digit_elems):
- self.on_url_changed(self._url_entry)
self._reference_entry.set_text(_ENIGMA2_REFERENCE.format(self.get_type(),
self._srv_id_entry.get_text(),
int(self._srv_type_entry.get_text()),
@@ -242,16 +243,20 @@ def on_url_changed(self, entry):
if yt_id:
entry.set_icon_from_pixbuf(Gtk.EntryIconPosition.SECONDARY, get_yt_icon("youtube", 32))
text = "Found a link to the YouTube resource!\nTry to get a direct link to the video?"
- if show_dialog(DialogType.QUESTION, self._dialog, text=text) == Gtk.ResponseType.OK:
+ if self._inserted_url and show_dialog(DialogType.QUESTION, self._dialog, text=text) == Gtk.ResponseType.OK:
entry.set_sensitive(False)
gen = self.set_yt_url(entry, yt_id)
GLib.idle_add(lambda: next(gen, False), priority=GLib.PRIORITY_LOW)
+ self._inserted_url = False
elif YouTube.is_yt_video_link(url_str):
entry.set_icon_from_pixbuf(Gtk.EntryIconPosition.SECONDARY, get_yt_icon("youtube", 32))
else:
entry.set_icon_from_stock(Gtk.EntryIconPosition.SECONDARY, None)
self._yt_quality_box.set_visible(False)
+ def on_url_paste(self, entry):
+ self._inserted_url = True
+
def set_yt_url(self, entry, video_id):
try:
if not self._yt_dl: