diff --git a/app/ui/main_app_window.py b/app/ui/main_app_window.py
index 810541bf..2e6f900d 100644
--- a/app/ui/main_app_window.py
+++ b/app/ui/main_app_window.py
@@ -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()
diff --git a/app/ui/main_window.glade b/app/ui/main_window.glade
index 7dc233a2..378899a5 100644
--- a/app/ui/main_window.glade
+++ b/app/ui/main_window.glade
@@ -180,8 +180,7 @@
False
True
True
-
-
+
diff --git a/app/ui/satellites_dialog.glade b/app/ui/satellites_dialog.glade
index 0c29f5a9..cf74644a 100644
--- a/app/ui/satellites_dialog.glade
+++ b/app/ui/satellites_dialog.glade
@@ -417,16 +417,40 @@
-
@@ -1053,6 +1077,7 @@
False
11700000
digits
+
0
@@ -1068,6 +1093,7 @@
gtk-edit
27500000
digits
+
1
diff --git a/app/ui/satellites_dialog.py b/app/ui/satellites_dialog.py
index 4f346308..ee8fcabb 100644
--- a/app/ui/satellites_dialog.py
+++ b/app/ui/satellites_dialog.py
@@ -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 """
diff --git a/app/ui/style.css b/app/ui/style.css
new file mode 100644
index 00000000..f160699b
--- /dev/null
+++ b/app/ui/style.css
@@ -0,0 +1,3 @@
+#digit-entry {
+ border-color: Red;
+}
\ No newline at end of file