mirror of
https://github.com/DYefremov/DemonEditor.git
synced 2025-12-22 00:19:40 +01:00
checking frequency and rate in transponder dialog
This commit is contained in:
@@ -388,13 +388,12 @@ class MainAppWindow:
|
||||
""" Shows satellites editor dialog """
|
||||
show_satellites_dialog(self.__main_window, self.__options)
|
||||
|
||||
@run_idle
|
||||
def on_data_open(self, model):
|
||||
if show_dialog("path_chooser_dialog", self.__main_window, options=self.__options) == Gtk.ResponseType.CANCEL:
|
||||
return
|
||||
|
||||
self.open_data()
|
||||
|
||||
@run_idle
|
||||
def open_data(self):
|
||||
""" Opening data and fill views. """
|
||||
self.__bouquets_model.clear()
|
||||
|
||||
@@ -180,8 +180,7 @@
|
||||
<property name="can_focus">False</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="use_stock">True</property>
|
||||
<signal name="activate" handler="on_data_open" object="bouquets_tree_store" swapped="no"/>
|
||||
<signal name="activate" handler="on_data_open" object="services_list_store" swapped="no"/>
|
||||
<signal name="activate" handler="on_data_open" swapped="no"/>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
|
||||
@@ -417,16 +417,40 @@
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkToolButton" id="add_tool_button">
|
||||
<object class="GtkMenuToolButton" id="add_tool_button">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">Add</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="stock_id">gtk-add</property>
|
||||
<child type="menu">
|
||||
<object class="GtkMenu" id="menu4">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="add_sat_menui_tem">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">Satellite</property>
|
||||
<property name="use_underline">True</property>
|
||||
<signal name="activate" handler="on_satellite_add" swapped="no"/>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="add_tr_menui_tem">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">Transponder</property>
|
||||
<property name="use_underline">True</property>
|
||||
<signal name="activate" handler="on_transponder_add" swapped="no"/>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="homogeneous">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
@@ -1053,6 +1077,7 @@
|
||||
<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>
|
||||
@@ -1068,6 +1093,7 @@
|
||||
<property name="primary_icon_stock">gtk-edit</property>
|
||||
<property name="placeholder_text" translatable="yes">27500000</property>
|
||||
<property name="input_purpose">digits</property>
|
||||
<signal name="changed" handler="on_entry_changed" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import re
|
||||
from math import fabs
|
||||
|
||||
from app.commons import run_idle
|
||||
@@ -106,6 +107,7 @@ class SatellitesDialog:
|
||||
elif key == Gdk.KEY_space:
|
||||
pass
|
||||
|
||||
@run_idle
|
||||
def on_satellites_list_load(self, model):
|
||||
""" Load satellites data into model """
|
||||
try:
|
||||
@@ -167,7 +169,12 @@ class SatellitesDialog:
|
||||
|
||||
def on_transponder(self, transponder=None, edited_itr=None):
|
||||
""" Create or edit transponder """
|
||||
if not self.check_selection(self._sat_view, "Please, select only one satellite!"):
|
||||
|
||||
paths = self.check_selection(self._sat_view, "Please, select only one satellite!")
|
||||
if paths is None:
|
||||
return
|
||||
elif len(paths) == 0:
|
||||
show_dialog("error_dialog", self._dialog, "No satellite is selected!")
|
||||
return
|
||||
|
||||
dialog = TransponderDialog(self._dialog, transponder)
|
||||
@@ -280,12 +287,16 @@ class TransponderDialog:
|
||||
""" Shows dialog for adding or edit transponder """
|
||||
|
||||
def __init__(self, transient, transponder: Transponder = None):
|
||||
|
||||
handlers = {"on_entry_changed": self.on_entry_changed}
|
||||
|
||||
builder = Gtk.Builder()
|
||||
builder.add_objects_from_file("app/ui/satellites_dialog.glade",
|
||||
("transponder_dialog",
|
||||
"pol_store", "fec_store",
|
||||
"mod_store", "system_store",
|
||||
"pls_mode_store"))
|
||||
builder.connect_signals(handlers)
|
||||
|
||||
self._dialog = builder.get_object("transponder_dialog")
|
||||
self._dialog.set_transient_for(transient)
|
||||
@@ -298,7 +309,15 @@ class TransponderDialog:
|
||||
self._pls_mode_box = builder.get_object("pls_mode_box")
|
||||
self._pls_code_entry = builder.get_object("pls_code_entry")
|
||||
self._is_id_entry = builder.get_object("is_id_entry")
|
||||
|
||||
# pattern for frequency and rate entries (only digits)
|
||||
self._pattern = re.compile("\D")
|
||||
# style
|
||||
self._style_provider = Gtk.CssProvider()
|
||||
self._style_provider.load_from_path("app/ui/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)
|
||||
if transponder:
|
||||
self.init_transponder(transponder)
|
||||
|
||||
@@ -333,6 +352,9 @@ class TransponderDialog:
|
||||
pls_code=self._pls_code_entry.get_text(),
|
||||
is_id=self._is_id_entry.get_text())
|
||||
|
||||
def on_entry_changed(self, entry):
|
||||
entry.set_name("digit-entry" if self._pattern.search(entry.get_text()) else "GtkEntry")
|
||||
|
||||
|
||||
class SatelliteDialog:
|
||||
""" Shows dialog for adding or edit satellite """
|
||||
|
||||
3
app/ui/style.css
Normal file
3
app/ui/style.css
Normal file
@@ -0,0 +1,3 @@
|
||||
#digit-entry {
|
||||
border-color: Red;
|
||||
}
|
||||
Reference in New Issue
Block a user