diff --git a/app/ui/dialogs.py b/app/ui/dialogs.py index 8601ca8a..42068e91 100644 --- a/app/ui/dialogs.py +++ b/app/ui/dialogs.py @@ -81,10 +81,11 @@ def show_dialog(dialog_type: DialogType, transient, text=None, settings=None, ac return get_about_dialog(transient) -def get_chooser_dialog(transient, settings, pattern, name): +def get_chooser_dialog(transient, settings, name, patterns): file_filter = Gtk.FileFilter() - file_filter.add_pattern(pattern) file_filter.set_name(name) + for p in patterns: + file_filter.add_pattern(p) return show_dialog(dialog_type=DialogType.CHOOSER, transient=transient, diff --git a/app/ui/imports.py b/app/ui/imports.py index 8c203759..97ed8255 100644 --- a/app/ui/imports.py +++ b/app/ui/imports.py @@ -30,7 +30,7 @@ def import_bouquet(transient, model, path, settings, services, appender): elif bq_type is BqType.WEBTV: f_pattern = "webtv.xml" - file_path = get_chooser_dialog(transient, settings, f_pattern, "bouquet files") + file_path = get_chooser_dialog(transient, settings, "bouquet files", (f_pattern,)) if file_path == Gtk.ResponseType.CANCEL: return diff --git a/app/ui/main_app_window.py b/app/ui/main_app_window.py index bcc645a7..b6669dca 100644 --- a/app/ui/main_app_window.py +++ b/app/ui/main_app_window.py @@ -1681,11 +1681,11 @@ class Application(Gtk.Application): def on_import_m3u(self, action, value=None): """ Imports iptv from m3u files. """ - response = get_chooser_dialog(self._main_window, self._settings, "*.m3u", "m3u files") + response = get_chooser_dialog(self._main_window, self._settings, "*.m3u* files", ("*.m3u", "*.m3u8")) if response == Gtk.ResponseType.CANCEL: return - if not str(response).endswith("m3u"): + if not str(response).endswith(("m3u", "m3u8")): self.show_error_dialog("No m3u file is selected!") return diff --git a/app/ui/main_helper.py b/app/ui/main_helper.py index 529f5083..468b86cd 100644 --- a/app/ui/main_helper.py +++ b/app/ui/main_helper.py @@ -367,7 +367,7 @@ def assign_picon(target, srv_view, fav_view, transient, picons, settings, servic model, paths = view.get_selection().get_selected_rows() if not p_path: - p_path = get_chooser_dialog(transient, settings, "*.png", "png files") + p_path = get_chooser_dialog(transient, settings, "*.png files", ("*.png",)) if p_path == Gtk.ResponseType.CANCEL: return diff --git a/app/ui/satellites_dialog.py b/app/ui/satellites_dialog.py index 1a69dda9..5c9fa190 100644 --- a/app/ui/satellites_dialog.py +++ b/app/ui/satellites_dialog.py @@ -9,10 +9,10 @@ from app.commons import run_idle, run_task from app.eparser import get_satellites, write_satellites, Satellite, Transponder from app.eparser.ecommons import PLS_MODE, get_key_by_value from app.tools.satellites import SatellitesParser, SatelliteSource -from .search import SearchProvider -from .uicommons import Gtk, Gdk, UI_RESOURCES_PATH, TEXT_DOMAIN, MOVE_KEYS, KeyboardKey, IS_GNOME_SESSION, MOD_MASK from .dialogs import show_dialog, DialogType, get_dialogs_string, get_chooser_dialog from .main_helper import move_items, scroll_to, append_text_to_tview, get_base_model, on_popup_menu +from .search import SearchProvider +from .uicommons import Gtk, Gdk, UI_RESOURCES_PATH, TEXT_DOMAIN, MOVE_KEYS, KeyboardKey, IS_GNOME_SESSION, MOD_MASK _UI_PATH = UI_RESOURCES_PATH + "satellites_dialog.glade" @@ -84,7 +84,7 @@ class SatellitesDialog: @run_idle def on_open(self, model): - response = get_chooser_dialog(self._window, self._settings, "*.xml", "satellites.xml") + response = get_chooser_dialog(self._window, self._settings, "satellites.xml", ("*.xml",)) if response in (Gtk.ResponseType.CANCEL, Gtk.ResponseType.DELETE_EVENT): return diff --git a/app/ui/settings_dialog.py b/app/ui/settings_dialog.py index 43fca07c..e10f0e1d 100644 --- a/app/ui/settings_dialog.py +++ b/app/ui/settings_dialog.py @@ -689,7 +689,7 @@ class SettingsDialog: @run_idle def add_theme(self, path, button): - response = get_chooser_dialog(self._dialog, self._settings, "*.tar.*", "") + response = get_chooser_dialog(self._dialog, self._settings, "Themes Archive [*.xz, *.zip]", ("*.xz", "*.zip")) if response in (Gtk.ResponseType.CANCEL, Gtk.ResponseType.DELETE_EVENT): return self._appearance_box.set_sensitive(False)