diff --git a/app/ui/service_details_dialog.py b/app/ui/service_details_dialog.py index 23ec397a..9d660599 100644 --- a/app/ui/service_details_dialog.py +++ b/app/ui/service_details_dialog.py @@ -86,6 +86,7 @@ class ServiceDetailsDialog: self._hide_check_button = builder.get_object("hide_check_button") self._use_pids_check_button = builder.get_object("use_pids_check_button") self._new_check_button = builder.get_object("new_check_button") + self._pids_grid = builder.get_object("pids_grid") # Transponder elements self._sat_pos_combo_box = builder.get_object("sat_pos_combo_box") self._pol_combo_box = builder.get_object("pol_combo_box") @@ -107,6 +108,14 @@ class ServiceDetailsDialog: self.update_data_elements() + def show(self): + response = self._dialog.run() + if response == Gtk.ResponseType.OK: + pass + self._dialog.destroy() + + return response + @run_idle def update_data_elements(self): model, paths = self._services_view.get_selection().get_selected_rows() @@ -128,11 +137,17 @@ class ServiceDetailsDialog: self._rate_entry.set_text(srv.rate) self.select_active_text(self._pol_combo_box, srv.pol) self.select_active_text(self._fec_combo_box, srv.fec) + self.select_active_text(self._sys_combo_box, srv.system) self.set_sat_positions(srv.pos) if self._profile is Profile.ENIGMA_2: self.init_enigma2_service_data(srv) self.init_enigma2_transponder_data(srv) + elif self._profile is Profile.NEUTRINO_MP: + self.init_neutrino_data(srv) + self.init_enigma_ui_elements() + + # ***************** Init Enigma2 data *********************# @run_idle def init_enigma2_service_data(self, srv): @@ -207,15 +222,28 @@ class ServiceDetailsDialog: self._network_id_entry.set_text(str(int(data[3], 16))) self.select_active_text(self._invertion_combo_box, Inversion(tr_data[5]).name) - def select_active_text(self, box: Gtk.ComboBox, text): - model = box.get_model() - for index, row in enumerate(model): - if row[0] == text: - box.set_active(index) - break + # ***************** Init Neutrino data *********************# + + def init_neutrino_data(self, srv): + srv_data = srv.data_id.split(":") + tr_data = srv.transponder.split(":") + self._reference_entry.set_text(srv.picon_id.rstrip(".png")) + self._transponder_id_entry.set_text(str(int(tr_data[0], 16))) + self._network_id_entry.set_text(str(int(tr_data[1], 16))) + + def init_enigma_ui_elements(self): + self._pids_grid.set_sensitive(False) + self._cas_entry.set_sensitive(False) + self._keep_check_button.set_sensitive(False) + self._hide_check_button.set_sensitive(False) + self._use_pids_check_button.set_sensitive(False) + self._new_check_button.set_sensitive(False) + + # ***************** Init Sat positions *********************# @run_idle def set_sat_positions(self, sat_pos): + """ Sat positions initialisation """ model = self._sat_pos_combo_box.get_model() positions = self.get_sat_positions(self._satellites_xml_path) for pos in positions: @@ -241,13 +269,7 @@ class ServiceDetailsDialog: self._pls_code_entry.set_name("GtkEntry") self._stream_id_entry.set_name("GtkEntry") - def show(self): - response = self._dialog.run() - if response == Gtk.ResponseType.OK: - pass - self._dialog.destroy() - - return response + # ***************** Save data *********************# def on_save(self, item): if show_dialog(DialogType.QUESTION, self._dialog) == Gtk.ResponseType.CANCEL: @@ -412,6 +434,15 @@ class ServiceDetailsDialog: elif self._profile is Profile.NEUTRINO_MP: return self._old_service.transponder + # ***************** Others *********************# + + def select_active_text(self, box: Gtk.ComboBox, text): + model = box.get_model() + for index, row in enumerate(model): + if row[0] == text: + box.set_active(index) + break + def on_digit_entry_changed(self, entry): entry.set_name("digit-entry" if self._pattern.search(entry.get_text()) else "GtkEntry")