mirror of
https://github.com/DYefremov/DemonEditor.git
synced 2026-05-09 10:25:36 +02:00
Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8155643098 | ||
|
|
87a1cde859 | ||
|
|
a591d31d01 | ||
|
|
e863c41117 | ||
|
|
811539ae19 | ||
|
|
bc7327a6d5 | ||
|
|
0c114964f2 | ||
|
|
b8a3e5e4c1 | ||
|
|
1d16e9e220 | ||
|
|
c96b464cbc | ||
|
|
43821e6f50 | ||
|
|
e0e642db5a | ||
|
|
2266fd4d3d | ||
|
|
6b8145c674 | ||
|
|
fa89ab8608 | ||
|
|
da70b0fb18 |
@@ -64,7 +64,7 @@ Terrestrial = namedtuple("Terrestrial", ["name", "flags", "countrycode", "transp
|
||||
Cable = namedtuple("Cable", ["name", "flags", "satfeed", "countrycode", "transponders"])
|
||||
|
||||
Transponder = namedtuple("Transponder", ["frequency", "symbol_rate", "polarization", "fec_inner", "system",
|
||||
"modulation", "pls_mode", "pls_code", "is_id", "t2mi_plp_id"])
|
||||
"modulation", "pls_mode", "pls_code", "is_id", "t2mi_plp_id", "t2mi_pid"])
|
||||
TerTransponder = namedtuple("TerTransponder", ["centre_frequency", "system", "bandwidth", "constellation",
|
||||
"code_rate_hp", "code_rate_lp", "guard_interval", "transmission_mode",
|
||||
"hierarchy_information", "inversion", "plp_id"])
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# The MIT License (MIT)
|
||||
#
|
||||
# Copyright (c) 2018-2023 Dmitriy Yefremov
|
||||
# Copyright (c) 2018-2025 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
|
||||
@@ -88,7 +88,8 @@ def get_sat_transponders(elem):
|
||||
e.get("pls_mode", None),
|
||||
e.get("pls_code", None),
|
||||
e.get("is_id", None),
|
||||
e.get("t2mi_plp_id", None)) for e in elem.iter("transponder")]
|
||||
e.get("t2mi_plp_id", None),
|
||||
e.get("t2mi_pid", None)) for e in elem.iter("transponder")]
|
||||
|
||||
|
||||
def get_terrestrial(path):
|
||||
|
||||
@@ -338,7 +338,7 @@ class SatellitesParser(HTMLParser):
|
||||
self.FEC.get(fec, None),
|
||||
self.SYSTEM.get(sys, None),
|
||||
self.MODULATION.get(mod, None),
|
||||
pls_mode, pls_code, None, None)
|
||||
pls_mode, pls_code, None, None, None)
|
||||
if is_transponder_valid(tr):
|
||||
trs.append(tr)
|
||||
|
||||
@@ -379,7 +379,7 @@ class SatellitesParser(HTMLParser):
|
||||
self.FEC.get(fec, None),
|
||||
self.SYSTEM.get(sys, None),
|
||||
self.MODULATION.get(mod, None),
|
||||
pls_mode, pls_code, is_id, None)
|
||||
pls_mode, pls_code, is_id, None, None)
|
||||
if is_transponder_valid(tr):
|
||||
trs.append(tr)
|
||||
|
||||
@@ -421,7 +421,7 @@ class SatellitesParser(HTMLParser):
|
||||
self.FEC.get(fec, None),
|
||||
self.SYSTEM.get(sys, None),
|
||||
self.MODULATION.get(mod, None),
|
||||
pls_id, pls_code, is_id, None)
|
||||
pls_id, pls_code, is_id, None, None)
|
||||
if is_transponder_valid(tr):
|
||||
trs.append(tr)
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2018-2024 Dmitriy Yefremov
|
||||
Copyright (c) 2018-2026 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
|
||||
@@ -31,7 +31,7 @@ Author: Dmitriy Yefremov
|
||||
<!-- interface-license-type mit -->
|
||||
<!-- interface-name DemonEditor -->
|
||||
<!-- interface-description Enigma2 channel and satellites list editor. -->
|
||||
<!-- interface-copyright 2018-2025 Dmitriy Yefremov -->
|
||||
<!-- interface-copyright 2018-2026 Dmitriy Yefremov -->
|
||||
<!-- interface-authors Dmitriy Yefremov -->
|
||||
<object class="GtkAboutDialog" id="about_dialog">
|
||||
<property name="can_focus">False</property>
|
||||
@@ -40,8 +40,8 @@ Author: Dmitriy Yefremov
|
||||
<property name="icon_name">system-help</property>
|
||||
<property name="type_hint">normal</property>
|
||||
<property name="program_name">DemonEditor</property>
|
||||
<property name="version">3.14.0 Beta</property>
|
||||
<property name="copyright">2018-2025 Dmitriy Yefremov
|
||||
<property name="version">3.14.2 Beta</property>
|
||||
<property name="copyright">2018-2026 Dmitriy Yefremov
|
||||
</property>
|
||||
<property name="comments" translatable="yes">Enigma2 channel and satellite list editor.</property>
|
||||
<property name="website">https://dyefremov.github.io/DemonEditor/</property>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# The MIT License (MIT)
|
||||
#
|
||||
# Copyright (c) 2023-2024 Dmitriy Yefremov
|
||||
# Copyright (c) 2023-2026 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
|
||||
@@ -35,7 +35,7 @@ import requests
|
||||
from gi.repository import Gtk, Gdk, GLib, Pango, GObject
|
||||
|
||||
from app.commons import log, run_task, run_idle
|
||||
from app.ui.dialogs import translate
|
||||
from app.ui.dialogs import translate, show_dialog, DialogType
|
||||
from app.ui.uicommons import HeaderBar
|
||||
|
||||
EXT_URL = "https://api.github.com/repos/DYefremov/demoneditor-extensions/contents/extensions/"
|
||||
@@ -48,7 +48,7 @@ HEADERS = {"User-Agent": "Mozilla/5.0 (X11; Linux i686; rv:112.0) Gecko/20100101
|
||||
|
||||
|
||||
class ExtensionManager(Gtk.Window):
|
||||
ICON_INFO = "emblem-important-symbolic"
|
||||
ICON_INFO = "emblem-synchronizing-symbolic"
|
||||
ICON_UPDATE = "network-receive-symbolic"
|
||||
|
||||
class Column(IntEnum):
|
||||
@@ -193,6 +193,22 @@ class ExtensionManager(Gtk.Window):
|
||||
|
||||
self.connect("delete-event", lambda w, e: self._app.app_settings.add(ws_property, w.get_size()))
|
||||
self.connect("realize", self.init)
|
||||
self.connect("show", self.on_show)
|
||||
|
||||
def on_show(self, window):
|
||||
enabled = self._app.app_settings.extensions_support
|
||||
self.set_sensitive(enabled)
|
||||
if not enabled:
|
||||
msg = f"\n{translate('Extension support is disabled!')}\n\n\t{translate('Do you want to enable it?')}"
|
||||
if show_dialog(DialogType.QUESTION, self, msg) != Gtk.ResponseType.OK:
|
||||
self.close()
|
||||
return True
|
||||
|
||||
self._app.app_settings.extensions_support = True
|
||||
self._app.show_info_message(translate('Restart the program to apply all changes.'), Gtk.MessageType.WARNING)
|
||||
self.close()
|
||||
|
||||
return False
|
||||
|
||||
def init(self, widget):
|
||||
self._load_spinner.start()
|
||||
@@ -281,6 +297,7 @@ class ExtensionManager(Gtk.Window):
|
||||
ext_ver = ext[0].VERSION
|
||||
path = ext[1]
|
||||
if ext_ver < ver:
|
||||
desc = f"[ Update -> ver. {ver} ] {desc}"
|
||||
ver = ext_ver
|
||||
info = self.ICON_INFO
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
app/ui/lang/sk/LC_MESSAGES/demon-editor.mo
Normal file
BIN
app/ui/lang/sk/LC_MESSAGES/demon-editor.mo
Normal file
Binary file not shown.
Binary file not shown.
@@ -1852,7 +1852,7 @@ Author: Dmitriy Yefremov
|
||||
<object class="GtkLabel" id="app_ver_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label">3.14.0 Beta</property>
|
||||
<property name="label">3.14.2 Beta</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="bold"/>
|
||||
</attributes>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# The MIT License (MIT)
|
||||
#
|
||||
# Copyright (c) 2018-2025 Dmitriy Yefremov
|
||||
# Copyright (c) 2018-2026 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
|
||||
@@ -79,7 +79,7 @@ from .xml.edit import SatellitesTool
|
||||
|
||||
class Application(Gtk.Application):
|
||||
""" Main application class. """
|
||||
VERSION = "3.14.0"
|
||||
VERSION = "3.14.2"
|
||||
|
||||
SERVICE_MODEL = "services_list_store"
|
||||
FAV_MODEL = "fav_list_store"
|
||||
@@ -88,12 +88,13 @@ class Application(Gtk.Application):
|
||||
IPTV_MODEL = "iptv_list_store"
|
||||
DRAG_SEP = "::::"
|
||||
|
||||
MARKER_TYPES = {BqServiceType.MARKER.name, BqServiceType.SPACE.name, BqServiceType.ALT.name}
|
||||
MARKER_TYPES = {BqServiceType.MARKER.name, BqServiceType.SPACE.name}
|
||||
NON_REF_TYPES = {BqServiceType.MARKER.name, BqServiceType.SPACE.name, BqServiceType.ALT.name}
|
||||
|
||||
DEL_FACTOR = 100 # Batch size to delete in one pass.
|
||||
FAV_FACTOR = DEL_FACTOR * 5
|
||||
|
||||
_TV_TYPES = ("TV", "TV (HD)", "TV (UHD)", "TV (H264)")
|
||||
_TV_TYPES = {"TV", "TV (HD)", "TV (UHD)", "TV (H264)"}
|
||||
|
||||
BG_TASK_LIMIT = 5
|
||||
|
||||
@@ -721,18 +722,21 @@ class Application(Gtk.Application):
|
||||
self.on_iptv_list_configuration, self.on_remove_all_unavailable):
|
||||
iptv_elem.bind_property("sensitive", self.set_action(h.__name__, h, False), "enabled")
|
||||
|
||||
if self._settings.extensions_support:
|
||||
self.init_extensions(builder)
|
||||
self.init_extensions(builder)
|
||||
|
||||
def init_extensions(self, builder):
|
||||
import pkgutil
|
||||
from importlib.util import module_from_spec
|
||||
from app.ui.extensions.management import ExtensionManager
|
||||
# Extensions (Plugins) section.
|
||||
ext_section = builder.get_object(f"{'mac_' if IS_DARWIN else ''}extension_section")
|
||||
self.set_action("on_extension_manager", lambda a, v: ExtensionManager(self).show())
|
||||
ext_section.append_item(Gio.MenuItem.new(translate("Extension Manager"), "app.on_extension_manager"))
|
||||
|
||||
if not self._settings.extensions_support:
|
||||
return
|
||||
|
||||
import pkgutil
|
||||
from importlib.util import module_from_spec
|
||||
|
||||
ext_path = f"{self._settings.default_data_path}tools{os.sep}extensions"
|
||||
ext_paths = [f"{os.path.dirname(__file__)}{os.sep}extensions", ext_path, "extensions"]
|
||||
extensions = {}
|
||||
@@ -1288,7 +1292,7 @@ class Application(Gtk.Application):
|
||||
def fav_service_data_func(self, column, renderer, model, itr, data):
|
||||
if self._display_epg and self._s_type is SettingsType.ENIGMA_2:
|
||||
srv_name = model.get_value(itr, Column.FAV_SERVICE)
|
||||
if model.get_value(itr, Column.FAV_TYPE) in self.MARKER_TYPES:
|
||||
if model.get_value(itr, Column.FAV_TYPE) in self.NON_REF_TYPES:
|
||||
return True
|
||||
|
||||
event = self._epg_cache.get_current_event(srv_name)
|
||||
@@ -2272,6 +2276,7 @@ class Application(Gtk.Application):
|
||||
response = show_dialog(DialogType.CHOOSER, self._main_window, settings=self._settings, title="Open folder")
|
||||
if response in (Gtk.ResponseType.CANCEL, Gtk.ResponseType.DELETE_EVENT):
|
||||
return
|
||||
|
||||
self.open_data(response)
|
||||
|
||||
def on_data_extract(self, app, page):
|
||||
@@ -2347,6 +2352,7 @@ class Application(Gtk.Application):
|
||||
self._alt_revealer.set_visible(False)
|
||||
self._filter_services_button.set_active(False)
|
||||
self._wait_dialog.show()
|
||||
self._services_progress_bar.show()
|
||||
|
||||
yield from self.clear_current_data()
|
||||
# Reset of sorting
|
||||
@@ -2405,6 +2411,7 @@ class Application(Gtk.Application):
|
||||
finally:
|
||||
self._profile_combo_box.set_sensitive(True)
|
||||
self._wait_dialog.hide()
|
||||
self._services_progress_bar.hide()
|
||||
self.emit("data-load-done", self._settings.current_profile)
|
||||
|
||||
def append_data(self, bouquets, services):
|
||||
@@ -2536,7 +2543,6 @@ class Application(Gtk.Application):
|
||||
break
|
||||
|
||||
def append_services(self, services):
|
||||
self._services_progress_bar.show()
|
||||
to_add = []
|
||||
for srv in services:
|
||||
if srv.fav_id not in self._services:
|
||||
@@ -2557,7 +2563,6 @@ class Application(Gtk.Application):
|
||||
self._services_progress_bar.set_fraction(index / size)
|
||||
yield True
|
||||
|
||||
self._services_progress_bar.hide()
|
||||
yield True
|
||||
|
||||
def append_iptv_data(self, services=None):
|
||||
@@ -2779,7 +2784,7 @@ class Application(Gtk.Application):
|
||||
self._alt_revealer.set_visible(False)
|
||||
self.on_info_bar_close()
|
||||
|
||||
if self._page is Page.EPG and srv.service_type not in self.MARKER_TYPES:
|
||||
if self._page is Page.EPG and srv.service_type not in self.NON_REF_TYPES:
|
||||
self.emit("fav-changed", srv)
|
||||
|
||||
def on_services_selection(self, model, path, column):
|
||||
@@ -3676,7 +3681,7 @@ class Application(Gtk.Application):
|
||||
row = self._fav_model[path][:]
|
||||
srv_type, fav_id = row[Column.FAV_TYPE], row[Column.FAV_ID]
|
||||
|
||||
if srv_type in self.MARKER_TYPES and show_error:
|
||||
if srv_type in self.NON_REF_TYPES and show_error:
|
||||
self.show_error_message("Not allowed in this context!")
|
||||
return
|
||||
|
||||
@@ -4036,7 +4041,7 @@ class Application(Gtk.Application):
|
||||
if srv_type == BqServiceType.ALT.name:
|
||||
return self.show_error_message("Operation not allowed in this context!")
|
||||
|
||||
if srv_type in self.MARKER_TYPES:
|
||||
if srv_type in self.NON_REF_TYPES:
|
||||
return self.on_rename(view)
|
||||
elif srv_type == BqServiceType.IPTV.name:
|
||||
return self.on_iptv_service_edit(model[paths][Column.FAV_ID], view)
|
||||
@@ -4166,7 +4171,7 @@ class Application(Gtk.Application):
|
||||
""" Marks services with duplicate [names] in the fav list. """
|
||||
from collections import Counter
|
||||
|
||||
dup = Counter(r[Column.FAV_SERVICE] for r in self._fav_model if r[Column.FAV_TYPE] not in self.MARKER_TYPES)
|
||||
dup = Counter(r[Column.FAV_SERVICE] for r in self._fav_model if r[Column.FAV_TYPE] not in self.NON_REF_TYPES)
|
||||
dup = {k for k, v in dup.items() if v > 1}
|
||||
|
||||
for r in self._fav_model:
|
||||
|
||||
@@ -2418,6 +2418,7 @@ Author: Dmitriy Yefremov
|
||||
<item id="nl_NL">Nederlands</item>
|
||||
<item id="pl_PL">Polski</item>
|
||||
<item id="pt_PT">Português</item>
|
||||
<item id="sk_SK">Slovák</item>
|
||||
<item id="tr_TR">Türkçe</item>
|
||||
<item id="be_BY">Беларуская</item>
|
||||
<item id="ru_RU">Русский</item>
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2
|
||||
<!-- Generated with glade 3.40.0
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2018-2024 Dmitriy Yefremov
|
||||
Copyright (c) 2018-2025 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
|
||||
@@ -31,7 +31,7 @@ Author: Dmitriy Yefremov
|
||||
<!-- interface-css-provider-path style.css -->
|
||||
<!-- interface-license-type mit -->
|
||||
<!-- interface-name DemonEditor -->
|
||||
<!-- interface-copyright 2018-2024 Dmitriy Yefremov -->
|
||||
<!-- interface-copyright 2018-2025 Dmitriy Yefremov -->
|
||||
<!-- interface-authors Dmitriy Yefremov -->
|
||||
<!-- n-columns=2 n-rows=4 -->
|
||||
<object class="GtkGrid" id="cable_tr_box">
|
||||
@@ -879,7 +879,7 @@ Author: Dmitriy Yefremov
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<!-- n-columns=2 n-rows=4 -->
|
||||
<!-- n-columns=2 n-rows=5 -->
|
||||
<object class="GtkGrid" id="tr_dialog_grid2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
@@ -911,7 +911,7 @@ Author: Dmitriy Yefremov
|
||||
<property name="max-width-chars">12</property>
|
||||
<property name="primary-icon-name">document-edit-symbolic</property>
|
||||
<property name="primary-icon-activatable">False</property>
|
||||
<property name="placeholder-text" translatable="yes">0 - 262142</property>
|
||||
<property name="placeholder-text">0 - 262142</property>
|
||||
<property name="input-purpose">digits</property>
|
||||
<signal name="changed" handler="on_entry_changed" swapped="no"/>
|
||||
</object>
|
||||
@@ -928,7 +928,7 @@ Author: Dmitriy Yefremov
|
||||
<property name="max-width-chars">12</property>
|
||||
<property name="primary-icon-name">document-edit-symbolic</property>
|
||||
<property name="primary-icon-activatable">False</property>
|
||||
<property name="placeholder-text" translatable="yes">0 - 255</property>
|
||||
<property name="placeholder-text">0 - 255</property>
|
||||
<property name="input-purpose">digits</property>
|
||||
<signal name="changed" handler="on_entry_changed" swapped="no"/>
|
||||
</object>
|
||||
@@ -945,7 +945,7 @@ Author: Dmitriy Yefremov
|
||||
<property name="max-width-chars">12</property>
|
||||
<property name="primary-icon-name">document-edit-symbolic</property>
|
||||
<property name="primary-icon-activatable">False</property>
|
||||
<property name="placeholder-text" translatable="yes">0 - 255</property>
|
||||
<property name="placeholder-text">0 - 255</property>
|
||||
<property name="input-purpose">digits</property>
|
||||
<signal name="changed" handler="on_entry_changed" swapped="no"/>
|
||||
</object>
|
||||
@@ -1095,6 +1095,58 @@ Author: Dmitriy Yefremov
|
||||
<property name="top-attach">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="tr_t2mi_pid_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="label" translatable="yes">T2-MI PID</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label">:</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">0</property>
|
||||
<property name="top-attach">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="t2mi_pid_entry">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="width-chars">5</property>
|
||||
<property name="max-width-chars">12</property>
|
||||
<property name="primary-icon-name">document-edit-symbolic</property>
|
||||
<property name="primary-icon-activatable">False</property>
|
||||
<property name="placeholder-text">0 - 8191</property>
|
||||
<property name="input-purpose">digits</property>
|
||||
<signal name="changed" handler="on_entry_changed" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">1</property>
|
||||
<property name="top-attach">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# The MIT License (MIT)
|
||||
#
|
||||
# Copyright (c) 2018-2024 Dmitriy Yefremov
|
||||
# Copyright (c) 2018-2025 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
|
||||
@@ -207,6 +207,7 @@ class SatTransponderDialog(TransponderDialog):
|
||||
self._pls_code_entry = builder.get_object("pls_code_entry")
|
||||
self._is_id_entry = builder.get_object("is_id_entry")
|
||||
self._t2mi_plp_id_entry = builder.get_object("t2mi_plp_id_entry")
|
||||
self._t2mi_pid_entry = builder.get_object("t2mi_pid_entry")
|
||||
|
||||
self.set_style_provider(self._freq_entry)
|
||||
self.set_style_provider(self._rate_entry)
|
||||
@@ -230,6 +231,7 @@ class SatTransponderDialog(TransponderDialog):
|
||||
self._is_id_entry.set_text(transponder.is_id if transponder.is_id else "")
|
||||
self._pls_code_entry.set_text(transponder.pls_code if transponder.pls_code else "")
|
||||
self._t2mi_plp_id_entry.set_text(transponder.t2mi_plp_id if transponder.t2mi_plp_id else "")
|
||||
self._t2mi_pid_entry.set_text(transponder.t2mi_pid if transponder.t2mi_pid else "")
|
||||
|
||||
def to_transponder(self):
|
||||
return Transponder(frequency=self._freq_entry.get_text(),
|
||||
@@ -241,7 +243,8 @@ class SatTransponderDialog(TransponderDialog):
|
||||
pls_mode=get_key_by_value(PLS_MODE, self._pls_mode_box.get_active_id()),
|
||||
pls_code=self._pls_code_entry.get_text(),
|
||||
is_id=self._is_id_entry.get_text(),
|
||||
t2mi_plp_id=self._t2mi_plp_id_entry.get_text())
|
||||
t2mi_plp_id=self._t2mi_plp_id_entry.get_text(),
|
||||
t2mi_pid=self._t2mi_pid_entry.get_text())
|
||||
|
||||
def is_accept(self):
|
||||
tr = self.to_transponder()
|
||||
@@ -255,6 +258,8 @@ class SatTransponderDialog(TransponderDialog):
|
||||
return False
|
||||
elif self.digit_pattern.search(tr.t2mi_plp_id):
|
||||
return False
|
||||
elif self.digit_pattern.search(tr.t2mi_pid):
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
|
||||
@@ -128,6 +128,8 @@ Author: Dmitriy Yefremov
|
||||
<column type="gchararray"/>
|
||||
<!-- column-name t2mi_plp_id -->
|
||||
<column type="gchararray"/>
|
||||
<!-- column-name t2mi_pid -->
|
||||
<column type="gchararray"/>
|
||||
</columns>
|
||||
<signal name="row-deleted" handler="on_sat_tr_model_changed" swapped="no"/>
|
||||
<signal name="row-inserted" handler="on_sat_tr_model_changed" swapped="no"/>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
VER="3.14.0_Beta"
|
||||
VER="3.14.2_Beta"
|
||||
B_PATH="dist/DemonEditor"
|
||||
DEB_PATH="$B_PATH/usr/share/demoneditor"
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Package: demon-editor
|
||||
Version: 3.14.0-Beta
|
||||
Version: 3.14.2-Beta
|
||||
Section: utils
|
||||
Priority: optional
|
||||
Architecture: all
|
||||
|
||||
@@ -5,7 +5,7 @@ Source: https://github.com/DYefremov/DemonEditor
|
||||
Files: *
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2018-2025 Dmitriy Yefremov
|
||||
Copyright (c) 2018-2026 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
|
||||
|
||||
@@ -37,8 +37,8 @@ a = Analysis([EXE_NAME],
|
||||
runtime_hooks=[],
|
||||
hooksconfig={
|
||||
"gi": {
|
||||
"languages": ["en", "be", "es", "it", "nl",
|
||||
"pl", "pt", "ru", "tr", "zh_CN"],
|
||||
"languages": ["en", "be", "es", "it", "nl", "pl",
|
||||
"pt", "ru", "sk", "tr", "zh_CN"],
|
||||
"module-versions": {
|
||||
"Gtk": "3.0"
|
||||
},
|
||||
@@ -81,7 +81,7 @@ app = BUNDLE(coll,
|
||||
'CFBundleGetInfoString': "Enigma2 channel and satellite editor",
|
||||
'LSApplicationCategoryType': 'public.app-category.utilities',
|
||||
'LSMinimumSystemVersion': '10.13',
|
||||
'CFBundleShortVersionString': f"3.14.0.{BUILD_DATE} Beta",
|
||||
'CFBundleShortVersionString': f"3.14.2.{BUILD_DATE} Beta",
|
||||
'NSHumanReadableCopyright': u"Copyright © 2018-2025, Dmitriy Yefremov",
|
||||
'NSRequiresAquaSystemAppearance': 'false',
|
||||
'NSHighResolutionCapable': 'true'
|
||||
|
||||
@@ -35,8 +35,8 @@ a = Analysis([EXE_NAME],
|
||||
runtime_hooks=[],
|
||||
hooksconfig={
|
||||
"gi": {
|
||||
"languages": ["en", "be", "es", "it", "nl",
|
||||
"pl", "pt", "ru", "tr", "zh_CN"],
|
||||
"languages": ["en", "be", "es", "it", "nl", "pl",
|
||||
"pt", "ru", "sk", "tr", "zh_CN"],
|
||||
"module-versions": {
|
||||
"Gtk": "3.0",
|
||||
"GtkSource": "3",
|
||||
|
||||
@@ -10,6 +10,7 @@ GenericName[nl]=Enigma2 boeket editor
|
||||
GenericName[pl]=Edytor bukietów Enigma2
|
||||
GenericName[pt]=Editor de buquês Enigma2
|
||||
GenericName[ru]=Редактор букетов Enigma2
|
||||
GenericName[sk]=Enigma2 editor balíčkov
|
||||
GenericName[tr]=Enigma2 buket düzenleyici
|
||||
GenericName[zh_CN]=Enigma2频道编辑器
|
||||
Comment=Channel and satellite list editor for Enigma2
|
||||
@@ -21,6 +22,7 @@ Comment[nl]=Kanaal- en satellietlijsteditor voor Enigma2
|
||||
Comment[pl]=Edytor list kanałów i satelitów dla Enigma2
|
||||
Comment[pt]=Editor de lista de canais e satélites para Enigma2
|
||||
Comment[ru]=Редактор списка каналов и спутников для Enigma2
|
||||
Comment[sk]=Editor zoznamu kanálov a satelitov pre Enigma2
|
||||
Comment[tr]=Enigma2 için Kanal ve uydu listesi düzenleyici
|
||||
Comment[zh_CN]=Enigma2频道和卫星列表编辑器
|
||||
Icon=demon-editor
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright (C) 2018-2025 Dmitriy Yefremov
|
||||
# Copyright (C) 2018-2026 Dmitriy Yefremov
|
||||
# This file is distributed under the MIT license.
|
||||
#
|
||||
#
|
||||
@@ -1596,3 +1596,9 @@ msgstr "Захаваць бягучыя змены"
|
||||
|
||||
msgid "Create a new service"
|
||||
msgstr "Стварыць новы сэрвіс"
|
||||
|
||||
msgid "Extension support is disabled!"
|
||||
msgstr "Падтрымка пашырэнняў адключана!"
|
||||
|
||||
msgid "Do you want to enable it?"
|
||||
msgstr "Жадаеце ўключыць?"
|
||||
|
||||
@@ -1610,3 +1610,9 @@ msgstr "Aktuelle Änderungen speichern"
|
||||
|
||||
msgid "Create a new service"
|
||||
msgstr "Erstellen eines neuen Service"
|
||||
|
||||
msgid "Extension support is disabled!"
|
||||
msgstr "Die Unterstützung für Erweiterungen ist deaktiviert!"
|
||||
|
||||
msgid "Do you want to enable it?"
|
||||
msgstr "Möchtest du aktivieren?"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright (C) 2018-2025 Dmitriy Yefremov
|
||||
# Copyright (C) 2018-2026 Dmitriy Yefremov
|
||||
# This file is distributed under the MIT license.
|
||||
#
|
||||
#
|
||||
@@ -1593,3 +1593,9 @@ msgstr "Сохранить текущие изменения"
|
||||
|
||||
msgid "Create a new service"
|
||||
msgstr "Создать новый сервис"
|
||||
|
||||
msgid "Extension support is disabled!"
|
||||
msgstr "Поддержка расширений отключена!"
|
||||
|
||||
msgid "Do you want to enable it?"
|
||||
msgstr "Желаете включить?"
|
||||
|
||||
1603
po/sk/demon-editor.po
Normal file
1603
po/sk/demon-editor.po
Normal file
File diff suppressed because it is too large
Load Diff
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: DemonEditor\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-04-16 15:59+0300\n"
|
||||
"PO-Revision-Date: 2025-08-24 12:50+0300\n"
|
||||
"PO-Revision-Date: 2026-01-25 17:07+0300\n"
|
||||
"Last-Translator: audi06_19 <info@dreamosat-forum.com>\n"
|
||||
"Language-Team: audi06_19 <info@dreamosat-forum.com>\n"
|
||||
"Language: tr\n"
|
||||
@@ -11,7 +11,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Poedit 3.7\n"
|
||||
"X-Generator: Poedit 3.8\n"
|
||||
|
||||
msgid "translator-credits"
|
||||
msgstr "audi06_19 <info@dreamosat-forum.com>"
|
||||
@@ -1627,3 +1627,9 @@ msgstr "Mevcut değişiklikleri kaydet"
|
||||
|
||||
msgid "Create a new service"
|
||||
msgstr "Yeni bir hizmet oluşturun"
|
||||
|
||||
msgid "Extension support is disabled!"
|
||||
msgstr "Uzantı desteği devre dışı bırakıldı!"
|
||||
|
||||
msgid "Do you want to enable it?"
|
||||
msgstr "Etkinleştirmek ister misiniz?"
|
||||
|
||||
Reference in New Issue
Block a user