mirror of
https://github.com/DYefremov/DemonEditor.git
synced 2025-12-22 08:29:41 +01:00
terrestrial and cable dialogs skeleton
This commit is contained in:
@@ -33,6 +33,115 @@ Author: Dmitriy Yefremov
|
|||||||
<!-- interface-name DemonEditor -->
|
<!-- interface-name DemonEditor -->
|
||||||
<!-- interface-copyright 2018-2022 Dmitriy Yefremov -->
|
<!-- interface-copyright 2018-2022 Dmitriy Yefremov -->
|
||||||
<!-- interface-authors Dmitriy Yefremov -->
|
<!-- interface-authors Dmitriy Yefremov -->
|
||||||
|
<object class="GtkGrid" id="cable_tr_box">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="margin_left">5</property>
|
||||||
|
<property name="margin_right">5</property>
|
||||||
|
<property name="margin_bottom">5</property>
|
||||||
|
<property name="column_spacing">5</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel" id="cable_freq_label">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label" translatable="yes">Freq</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="left_attach">0</property>
|
||||||
|
<property name="top_attach">0</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel" id="cable_rate_label">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label" translatable="yes">Rate</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="left_attach">1</property>
|
||||||
|
<property name="top_attach">0</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkEntry" id="cable_rate_entry">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="width_chars">12</property>
|
||||||
|
<property name="max_width_chars">14</property>
|
||||||
|
<property name="primary_icon_name">document-edit-symbolic</property>
|
||||||
|
<property name="placeholder_text" translatable="yes">6900000</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">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel" id="cable_fec_label">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label" translatable="yes">FEC</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="left_attach">2</property>
|
||||||
|
<property name="top_attach">0</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel" id="cable_mod_label">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label" translatable="yes">Mod</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="left_attach">3</property>
|
||||||
|
<property name="top_attach">0</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkEntry" id="cable_freq_entry">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="width_chars">12</property>
|
||||||
|
<property name="max_width_chars">14</property>
|
||||||
|
<property name="primary_icon_name">document-edit-symbolic</property>
|
||||||
|
<property name="primary_icon_activatable">False</property>
|
||||||
|
<property name="secondary_icon_activatable">False</property>
|
||||||
|
<property name="secondary_icon_sensitive">False</property>
|
||||||
|
<property name="placeholder_text" translatable="yes">120000</property>
|
||||||
|
<property name="input_purpose">digits</property>
|
||||||
|
<signal name="changed" handler="on_entry_changed" swapped="no"/>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="left_attach">0</property>
|
||||||
|
<property name="top_attach">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkComboBoxText" id="cable_fec_box">
|
||||||
|
<property name="width_request">75</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="left_attach">2</property>
|
||||||
|
<property name="top_attach">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkComboBoxText" id="cable_mod_box">
|
||||||
|
<property name="width_request">100</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="left_attach">3</property>
|
||||||
|
<property name="top_attach">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
<object class="GtkListStore" id="fec_store">
|
<object class="GtkListStore" id="fec_store">
|
||||||
<columns>
|
<columns>
|
||||||
<!-- column-name fec -->
|
<!-- column-name fec -->
|
||||||
@@ -585,4 +694,264 @@ Author: Dmitriy Yefremov
|
|||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="GtkBox" id="ter_tr_box">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="margin_left">5</property>
|
||||||
|
<property name="margin_right">5</property>
|
||||||
|
<property name="margin_bottom">5</property>
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
<property name="spacing">5</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkGrid" id="ter_tr_grid">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="column_spacing">5</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel" id="ter_freq_label">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label" translatable="yes">Freq</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="left_attach">0</property>
|
||||||
|
<property name="top_attach">0</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkEntry" id="ter_freq_entry">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="width_chars">12</property>
|
||||||
|
<property name="max_width_chars">14</property>
|
||||||
|
<property name="primary_icon_name">document-edit-symbolic</property>
|
||||||
|
<property name="primary_icon_activatable">False</property>
|
||||||
|
<property name="secondary_icon_activatable">False</property>
|
||||||
|
<property name="secondary_icon_sensitive">False</property>
|
||||||
|
<property name="placeholder_text" translatable="yes">11700000</property>
|
||||||
|
<property name="input_purpose">digits</property>
|
||||||
|
<signal name="changed" handler="on_entry_changed" swapped="no"/>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="left_attach">0</property>
|
||||||
|
<property name="top_attach">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel" id="ter_sys_label">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label" translatable="yes">System</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="left_attach">1</property>
|
||||||
|
<property name="top_attach">0</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkComboBoxText" id="ter_sys_box">
|
||||||
|
<property name="width_request">100</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="left_attach">1</property>
|
||||||
|
<property name="top_attach">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkComboBoxText" id="ter_bandwidth_box">
|
||||||
|
<property name="width_request">110</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="left_attach">2</property>
|
||||||
|
<property name="top_attach">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel" id="ter_bandwidth_label">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label" translatable="yes">Bandwidth</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="left_attach">2</property>
|
||||||
|
<property name="top_attach">0</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel" id="ter_constellation_label">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label" translatable="yes">Constellation</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="left_attach">3</property>
|
||||||
|
<property name="top_attach">0</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel" id="ter_sr_hp_label">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label" translatable="yes">SR (HP)</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="left_attach">4</property>
|
||||||
|
<property name="top_attach">0</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel" id="ter_sr_lp_label">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label" translatable="yes">SR (LP)</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="left_attach">5</property>
|
||||||
|
<property name="top_attach">0</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkComboBoxText" id="ter_sr_hp_box">
|
||||||
|
<property name="width_request">75</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="left_attach">4</property>
|
||||||
|
<property name="top_attach">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkComboBoxText" id="ter_sr_lp_box">
|
||||||
|
<property name="width_request">75</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="left_attach">5</property>
|
||||||
|
<property name="top_attach">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkComboBoxText" id="ter_constellation_box">
|
||||||
|
<property name="width_request">100</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="left_attach">3</property>
|
||||||
|
<property name="top_attach">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
|
<property name="position">0</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkGrid" id="ter_tr_ext_grid">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="halign">center</property>
|
||||||
|
<property name="margin_bottom">5</property>
|
||||||
|
<property name="column_spacing">5</property>
|
||||||
|
<property name="column_homogeneous">True</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel" id="ter_guard_label">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label" translatable="yes">Guard</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="left_attach">0</property>
|
||||||
|
<property name="top_attach">0</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel" id="ter_transmission_label">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label" translatable="yes">Transmission</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="left_attach">1</property>
|
||||||
|
<property name="top_attach">0</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel" id="ter_hierarchy_label">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label" translatable="yes">Hierarchy</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="left_attach">2</property>
|
||||||
|
<property name="top_attach">0</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel" id="ter_inversion_label">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label" translatable="yes">Inversion</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="left_attach">3</property>
|
||||||
|
<property name="top_attach">0</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkComboBoxText" id="ter_guard_box">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="left_attach">0</property>
|
||||||
|
<property name="top_attach">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkComboBoxText" id="ter_transmission_box">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="left_attach">1</property>
|
||||||
|
<property name="top_attach">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkComboBoxText" id="ter_hierarchy_box">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="left_attach">2</property>
|
||||||
|
<property name="top_attach">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkComboBoxText" id="ter_inversion_box">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="left_attach">3</property>
|
||||||
|
<property name="top_attach">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
|
<property name="position">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
</interface>
|
</interface>
|
||||||
|
|||||||
@@ -36,7 +36,9 @@ from gi.repository import GLib
|
|||||||
|
|
||||||
from app.commons import run_idle, run_task, log
|
from app.commons import run_idle, run_task, log
|
||||||
from app.eparser import Satellite, Transponder
|
from app.eparser import Satellite, Transponder
|
||||||
from app.eparser.ecommons import PLS_MODE, get_key_by_value, POLARIZATION, FEC, SYSTEM, MODULATION, Terrestrial, Cable
|
from app.eparser.ecommons import (PLS_MODE, get_key_by_value, POLARIZATION, FEC, SYSTEM, MODULATION, Terrestrial, Cable,
|
||||||
|
T_SYSTEM, BANDWIDTH, CONSTELLATION, T_FEC, GUARD_INTERVAL, TRANSMISSION_MODE,
|
||||||
|
HIERARCHY, Inversion, C_MODULATION, FEC_DEFAULT)
|
||||||
from app.tools.satellites import SatellitesParser, SatelliteSource, ServicesParser
|
from app.tools.satellites import SatellitesParser, SatelliteSource, ServicesParser
|
||||||
from ..dialogs import show_dialog, DialogType, get_message, get_builder
|
from ..dialogs import show_dialog, DialogType, get_message, get_builder
|
||||||
from ..main_helper import append_text_to_tview, get_base_model, on_popup_menu
|
from ..main_helper import append_text_to_tview, get_base_model, on_popup_menu
|
||||||
@@ -73,6 +75,41 @@ class DVBDialog(Gtk.Dialog):
|
|||||||
return self._data
|
return self._data
|
||||||
|
|
||||||
|
|
||||||
|
class TransponderDialog(DVBDialog):
|
||||||
|
""" Base transponder dialog class. """
|
||||||
|
|
||||||
|
def __init__(self, parent, title, data=None, *args, **kwargs):
|
||||||
|
super().__init__(parent, title, data, *args, **kwargs)
|
||||||
|
# Pattern for digits entries.
|
||||||
|
self.digit_pattern = re.compile(r"\D")
|
||||||
|
# Style
|
||||||
|
self.style_provider = Gtk.CssProvider()
|
||||||
|
self.style_provider.load_from_path(UI_RESOURCES_PATH + "style.css")
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
resp = super().run()
|
||||||
|
while resp == Gtk.ResponseType.OK:
|
||||||
|
if self.is_accept():
|
||||||
|
return resp
|
||||||
|
show_dialog(DialogType.ERROR, self, "Please check your parameters and try again.")
|
||||||
|
resp = super().run()
|
||||||
|
return resp
|
||||||
|
|
||||||
|
def is_accept(self):
|
||||||
|
return True
|
||||||
|
|
||||||
|
def init_transponder_data(self, data):
|
||||||
|
self._data = data
|
||||||
|
|
||||||
|
def on_entry_changed(self, entry):
|
||||||
|
""" Digit entries handler. """
|
||||||
|
entry.set_name("digit-entry" if self.digit_pattern.search(entry.get_text()) else "GtkEntry")
|
||||||
|
|
||||||
|
def set_style_provider(self, widget):
|
||||||
|
context = widget.get_style_context()
|
||||||
|
context.add_provider_for_screen(Gdk.Screen.get_default(), self.style_provider, Gtk.STYLE_PROVIDER_PRIORITY_USER)
|
||||||
|
|
||||||
|
|
||||||
class TCDialog(DVBDialog):
|
class TCDialog(DVBDialog):
|
||||||
def __init__(self, parent, title=None, data=None, *args, **kwargs):
|
def __init__(self, parent, title=None, data=None, *args, **kwargs):
|
||||||
super().__init__(parent, title, data, *args, **kwargs)
|
super().__init__(parent, title, data, *args, **kwargs)
|
||||||
@@ -139,7 +176,7 @@ class CableDialog(TCDialog):
|
|||||||
return self._data._replace(name=name) if self._data else Cable(name, "true", "9", None, [])
|
return self._data._replace(name=name) if self._data else Cable(name, "true", "9", None, [])
|
||||||
|
|
||||||
|
|
||||||
class SatTransponderDialog(DVBDialog):
|
class SatTransponderDialog(TransponderDialog):
|
||||||
""" Dialog for adding or edit satellite transponder. """
|
""" Dialog for adding or edit satellite transponder. """
|
||||||
|
|
||||||
def __init__(self, transient, title, data=None, *args, **kwargs):
|
def __init__(self, transient, title, data=None, *args, **kwargs):
|
||||||
@@ -160,33 +197,19 @@ class SatTransponderDialog(DVBDialog):
|
|||||||
self._pls_code_entry = builder.get_object("pls_code_entry")
|
self._pls_code_entry = builder.get_object("pls_code_entry")
|
||||||
self._is_id_entry = builder.get_object("is_id_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_plp_id_entry = builder.get_object("t2mi_plp_id_entry")
|
||||||
# pattern for frequency and rate entries (only digits)
|
|
||||||
self._pattern = re.compile(r"\D")
|
|
||||||
# style
|
|
||||||
self._style_provider = Gtk.CssProvider()
|
|
||||||
self._style_provider.load_from_path(UI_RESOURCES_PATH + "style.css")
|
|
||||||
self._freq_entry.get_style_context().add_provider_for_screen(Gdk.Screen.get_default(), self._style_provider,
|
|
||||||
Gtk.STYLE_PROVIDER_PRIORITY_USER)
|
|
||||||
self._rate_entry.get_style_context().add_provider_for_screen(Gdk.Screen.get_default(), self._style_provider,
|
|
||||||
Gtk.STYLE_PROVIDER_PRIORITY_USER)
|
|
||||||
self.show_all()
|
|
||||||
if data:
|
|
||||||
self.init_transponder(data)
|
|
||||||
|
|
||||||
def run(self):
|
self.set_style_provider(self._freq_entry)
|
||||||
resp = super().run()
|
self.set_style_provider(self._rate_entry)
|
||||||
while resp == Gtk.ResponseType.OK:
|
self.show_all()
|
||||||
if self.is_accept():
|
|
||||||
return resp
|
self.init_transponder_data(data)
|
||||||
show_dialog(DialogType.ERROR, self, "Please check your parameters and try again.")
|
|
||||||
resp = super().run()
|
|
||||||
return resp
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def data(self):
|
def data(self):
|
||||||
return self.to_transponder()
|
return self.to_transponder()
|
||||||
|
|
||||||
def init_transponder(self, transponder):
|
def init_transponder_data(self, transponder):
|
||||||
|
if transponder:
|
||||||
self._freq_entry.set_text(transponder.frequency)
|
self._freq_entry.set_text(transponder.frequency)
|
||||||
self._rate_entry.set_text(transponder.symbol_rate)
|
self._rate_entry.set_text(transponder.symbol_rate)
|
||||||
self._pol_box.set_active_id(POLARIZATION.get(transponder.polarization, None))
|
self._pol_box.set_active_id(POLARIZATION.get(transponder.polarization, None))
|
||||||
@@ -210,25 +233,113 @@ class SatTransponderDialog(DVBDialog):
|
|||||||
is_id=self._is_id_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())
|
||||||
|
|
||||||
def on_entry_changed(self, entry):
|
|
||||||
entry.set_name("digit-entry" if self._pattern.search(entry.get_text()) else "GtkEntry")
|
|
||||||
|
|
||||||
def is_accept(self):
|
def is_accept(self):
|
||||||
tr = self.to_transponder()
|
tr = self.to_transponder()
|
||||||
if self._pattern.search(tr.frequency) or not tr.frequency:
|
if self.digit_pattern.search(tr.frequency) or not tr.frequency:
|
||||||
return False
|
return False
|
||||||
elif self._pattern.search(tr.symbol_rate) or not tr.symbol_rate:
|
elif self.digit_pattern.search(tr.symbol_rate) or not tr.symbol_rate:
|
||||||
return False
|
return False
|
||||||
elif None in (tr.polarization, tr.fec_inner, tr.system, tr.modulation):
|
elif None in (tr.polarization, tr.fec_inner, tr.system, tr.modulation):
|
||||||
return False
|
return False
|
||||||
elif self._pattern.search(tr.pls_code) or self._pattern.search(tr.is_id):
|
elif self.digit_pattern.search(tr.pls_code) or self.digit_pattern.search(tr.is_id):
|
||||||
return False
|
return False
|
||||||
elif self._pattern.search(tr.t2mi_plp_id):
|
elif self.digit_pattern.search(tr.t2mi_plp_id):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
class TerTransponderDialog(TransponderDialog):
|
||||||
|
""" Dialog for adding or edit terrestrial transponder. """
|
||||||
|
|
||||||
|
def __init__(self, transient, title, data=None, *args, **kwargs):
|
||||||
|
super().__init__(transient, title, data, *args, **kwargs)
|
||||||
|
|
||||||
|
handlers = {"on_entry_changed": self.on_entry_changed}
|
||||||
|
builder = get_builder(_DIALOGS_UI_PATH, handlers, use_str=True, objects=("ter_tr_box",))
|
||||||
|
|
||||||
|
self.frame.add(builder.get_object("ter_tr_box"))
|
||||||
|
self._freq_entry = builder.get_object("ter_freq_entry")
|
||||||
|
self._sys_box = builder.get_object("ter_sys_box")
|
||||||
|
self._bandwidth_box = builder.get_object("ter_bandwidth_box")
|
||||||
|
self._constellation_box = builder.get_object("ter_constellation_box")
|
||||||
|
self._sr_hp_box = builder.get_object("ter_sr_hp_box")
|
||||||
|
self._sr_lp_box = builder.get_object("ter_sr_lp_box")
|
||||||
|
self._guard_box = builder.get_object("ter_guard_box")
|
||||||
|
self._transmission_box = builder.get_object("ter_transmission_box")
|
||||||
|
self._hierarchy_box = builder.get_object("ter_hierarchy_box")
|
||||||
|
self._inversion_box = builder.get_object("ter_inversion_box")
|
||||||
|
|
||||||
|
self.set_style_provider(self._freq_entry)
|
||||||
|
self.show_all()
|
||||||
|
|
||||||
|
self.init_transponder_data(data)
|
||||||
|
|
||||||
|
def init_transponder_data(self, transponder):
|
||||||
|
if transponder:
|
||||||
|
self._freq_entry.set_text(transponder.centre_frequency)
|
||||||
|
[self._sys_box.append(k, v) for k, v in T_SYSTEM.items()]
|
||||||
|
self._sys_box.set_active_id(transponder.system)
|
||||||
|
[self._bandwidth_box.append(k, v) for k, v in BANDWIDTH.items()]
|
||||||
|
self._bandwidth_box.set_active_id(transponder.bandwidth)
|
||||||
|
[self._constellation_box.append(k, v) for k, v in CONSTELLATION.items()]
|
||||||
|
self._constellation_box.set_active_id(transponder.constellation)
|
||||||
|
[self._sr_hp_box.append(k, v) for k, v in T_FEC.items()]
|
||||||
|
self._sr_hp_box.set_active_id(transponder.code_rate_hp)
|
||||||
|
[self._sr_lp_box.append(k, v) for k, v in T_FEC.items()]
|
||||||
|
self._sr_lp_box.set_active_id(transponder.code_rate_lp)
|
||||||
|
[self._guard_box.append(k, v) for k, v in GUARD_INTERVAL.items()]
|
||||||
|
self._guard_box.set_active_id(transponder.guard_interval)
|
||||||
|
[self._transmission_box.append(k, v) for k, v in TRANSMISSION_MODE.items()]
|
||||||
|
self._transmission_box.set_active_id(transponder.transmission_mode)
|
||||||
|
[self._hierarchy_box.append(k, v) for k, v in HIERARCHY.items()]
|
||||||
|
self._hierarchy_box.set_active_id(transponder.hierarchy_information)
|
||||||
|
[self._inversion_box.append(k.value, k.name) for k in Inversion]
|
||||||
|
self._inversion_box.set_active_id(transponder.inversion)
|
||||||
|
|
||||||
|
def is_accept(self):
|
||||||
|
return not self.digit_pattern.search(self._freq_entry.get_text())
|
||||||
|
|
||||||
|
|
||||||
|
class CableTransponderDialog(TransponderDialog):
|
||||||
|
""" Dialog for adding or edit cable transponder. """
|
||||||
|
|
||||||
|
def __init__(self, transient, title, data=None, *args, **kwargs):
|
||||||
|
super().__init__(transient, title, data, *args, **kwargs)
|
||||||
|
|
||||||
|
handlers = {"on_entry_changed": self.on_entry_changed}
|
||||||
|
builder = get_builder(_DIALOGS_UI_PATH, handlers, use_str=True, objects=("cable_tr_box",))
|
||||||
|
|
||||||
|
self.frame.add(builder.get_object("cable_tr_box"))
|
||||||
|
|
||||||
|
self._freq_entry = builder.get_object("cable_freq_entry")
|
||||||
|
self._rate_entry = builder.get_object("cable_rate_entry")
|
||||||
|
self._fec_box = builder.get_object("cable_fec_box")
|
||||||
|
self._mod_box = builder.get_object("cable_mod_box")
|
||||||
|
|
||||||
|
self.set_style_provider(self._freq_entry)
|
||||||
|
self.set_style_provider(self._rate_entry)
|
||||||
|
self.show_all()
|
||||||
|
|
||||||
|
self.init_transponder_data(data)
|
||||||
|
|
||||||
|
def init_transponder_data(self, transponder):
|
||||||
|
if transponder:
|
||||||
|
self._freq_entry.set_text(transponder.frequency)
|
||||||
|
self._rate_entry.set_text(transponder.symbol_rate)
|
||||||
|
[self._fec_box.append(k, v) for k, v in FEC_DEFAULT.items()]
|
||||||
|
self._fec_box.set_active_id(transponder.fec_inner)
|
||||||
|
[self._mod_box.append(k, v) for k, v in C_MODULATION.items()]
|
||||||
|
self._mod_box.set_active_id(transponder.modulation)
|
||||||
|
|
||||||
|
def is_accept(self):
|
||||||
|
if self.digit_pattern.search(self._freq_entry.get_text()):
|
||||||
|
return False
|
||||||
|
elif self.digit_pattern.search(self._rate_entry.get_text()):
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
# ********************** Update dialogs ************************ #
|
# ********************** Update dialogs ************************ #
|
||||||
|
|
||||||
class UpdateDialog:
|
class UpdateDialog:
|
||||||
|
|||||||
@@ -36,9 +36,10 @@ from app.connections import DownloadType
|
|||||||
from app.eparser import get_satellites, write_satellites, Satellite, Transponder
|
from app.eparser import get_satellites, write_satellites, Satellite, Transponder
|
||||||
from app.eparser.ecommons import (POLARIZATION, FEC, SYSTEM, MODULATION, T_SYSTEM, BANDWIDTH, CONSTELLATION, T_FEC,
|
from app.eparser.ecommons import (POLARIZATION, FEC, SYSTEM, MODULATION, T_SYSTEM, BANDWIDTH, CONSTELLATION, T_FEC,
|
||||||
GUARD_INTERVAL, TRANSMISSION_MODE, HIERARCHY, Inversion, FEC_DEFAULT, C_MODULATION,
|
GUARD_INTERVAL, TRANSMISSION_MODE, HIERARCHY, Inversion, FEC_DEFAULT, C_MODULATION,
|
||||||
Terrestrial, Cable)
|
Terrestrial, Cable, CableTransponder, TerTransponder)
|
||||||
from app.eparser.satxml import get_terrestrial, get_cable, write_terrestrial, write_cable
|
from app.eparser.satxml import get_terrestrial, get_cable, write_terrestrial, write_cable
|
||||||
from .dialogs import SatelliteDialog, SatellitesUpdateDialog, TerrestrialDialog, CableDialog, SatTransponderDialog
|
from .dialogs import SatelliteDialog, SatellitesUpdateDialog, TerrestrialDialog, CableDialog, SatTransponderDialog, \
|
||||||
|
CableTransponderDialog, TerTransponderDialog
|
||||||
from ..dialogs import show_dialog, DialogType, get_chooser_dialog, get_message, get_builder
|
from ..dialogs import show_dialog, DialogType, get_chooser_dialog, get_message, get_builder
|
||||||
from ..main_helper import move_items, on_popup_menu
|
from ..main_helper import move_items, on_popup_menu
|
||||||
from ..uicommons import Gtk, Gdk, UI_RESOURCES_PATH, MOVE_KEYS, KeyboardKey, MOD_MASK, Page
|
from ..uicommons import Gtk, Gdk, UI_RESOURCES_PATH, MOVE_KEYS, KeyboardKey, MOD_MASK, Page
|
||||||
@@ -357,7 +358,7 @@ class SatellitesTool(Gtk.Box):
|
|||||||
|
|
||||||
def on_transponder_add(self, item):
|
def on_transponder_add(self, item):
|
||||||
if self._dvb_type is self.DVB.SAT:
|
if self._dvb_type is self.DVB.SAT:
|
||||||
self.on_transponder()
|
self.on_edit(force=True)
|
||||||
else:
|
else:
|
||||||
self._app.show_error_message("Not implemented yet!")
|
self._app.show_error_message("Not implemented yet!")
|
||||||
|
|
||||||
@@ -384,6 +385,12 @@ class SatellitesTool(Gtk.Box):
|
|||||||
elif view is self._sat_tr_view:
|
elif view is self._sat_tr_view:
|
||||||
data = None if force else Transponder(*row)
|
data = None if force else Transponder(*row)
|
||||||
self.on_transponder_data_edit(SatTransponderDialog, "Transponder", view, self._satellite_view, data, itr)
|
self.on_transponder_data_edit(SatTransponderDialog, "Transponder", view, self._satellite_view, data, itr)
|
||||||
|
elif view is self._ter_tr_view:
|
||||||
|
data = None if force else TerTransponder(*row)
|
||||||
|
self.on_transponder_data_edit(TerTransponderDialog, "Transponder", view, self._terrestrial_view, data, itr)
|
||||||
|
elif view is self._cable_tr_view:
|
||||||
|
data = None if force else CableTransponder(*row)
|
||||||
|
self.on_transponder_data_edit(CableTransponderDialog, "Transponder", view, self._cable_view, data, itr)
|
||||||
else:
|
else:
|
||||||
self._app.show_error_message("Not implemented yet!")
|
self._app.show_error_message("Not implemented yet!")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user