diff --git a/app/ui/service_details_dialog.glade b/app/ui/service_details_dialog.glade index f4274b2c..1a288a96 100644 --- a/app/ui/service_details_dialog.glade +++ b/app/ui/service_details_dialog.glade @@ -197,16 +197,6 @@ - - - - - - - - - - False Service details @@ -888,6 +878,7 @@ True False + 5 True @@ -902,23 +893,30 @@ - - gtk-edit + True True - False - 5 - True - 0 - True - True - + Edit + + + + True + True + 1 + + + + + True + False + 10 + gtk-edit False True end - 1 + 2 + + + True + True + 0 + + + + + True + False + + + False + True + 2 + 1 + + + + + 120 + True + True + in + + + True + False + transponder_services_liststore + False + + + + + + autosize + Service + True + 0.5 + + + + 0 + + + + + + + autosize + Package + True + 0.5 + + + + 1 + + + + + + + autosize + Ssid + True + 0.5 + + + + 2 + + + + + + + + + True + True + 2 + + + + + True + False + + + True + True + 2 + 3 + + + + + False + True + 1 + + + + + + tr_services_no_button + tr_services_ok_button + + diff --git a/app/ui/service_details_dialog.py b/app/ui/service_details_dialog.py index f69fac10..33b71064 100644 --- a/app/ui/service_details_dialog.py +++ b/app/ui/service_details_dialog.py @@ -96,8 +96,6 @@ class ServiceDetailsDialog: self._rolloff_combo_box = builder.get_object("rolloff_combo_box") self._pilot_combo_box = builder.get_object("pilot_combo_box") self._pls_mode_combo_box = builder.get_object("pls_mode_combo_box") - self._infor_box = builder.get_object("infor_box") - self._tr_services_liststore = builder.get_object("transponder_services_liststore") self._DVB_S2_ELEMENTS = (self._mod_combo_box, self._rolloff_combo_box, self._pilot_combo_box, self._pls_mode_combo_box, self._pls_code_entry, self._stream_id_entry) @@ -377,19 +375,37 @@ class ServiceDetailsDialog: return get_key_by_value(dc, cb_id) @run_idle - def on_tr_edit_toggled(self, button: Gtk.CheckButton): - active = button.get_active() - self._infor_box.set_visible(active) - + def on_tr_edit_toggled(self, switch: Gtk.Switch, active): if active: - transponder = self._old_service.transponder - for row in get_base_model(self._services_view.get_model()): - if row[-1] == transponder: - self._tr_services_liststore.append((row[3], row[6], row[10])) + response = TransponderServicesDialog(self._dialog, self._services_view, + self._old_service.transponder).show() + if response == Gtk.ResponseType.CANCEL or response == -4: + switch.set_active(False) + return - if not active: - for elem in self._TRANSPONDER_ELEMENTS: - elem.set_sensitive(False) + for elem in self._TRANSPONDER_ELEMENTS: + elem.set_sensitive(active) + + +class TransponderServicesDialog: + def __init__(self, transient, view, transponder): + builder = Gtk.Builder() + builder.add_objects_from_file(UI_RESOURCES_PATH + "service_details_dialog.glade", + ("tr_services_dialog", "transponder_services_liststore")) + self._dialog = builder.get_object("tr_services_dialog") + self._dialog.set_transient_for(transient) + self._srv_model = builder.get_object("transponder_services_liststore") + self.append_services(view, transponder) + + def append_services(self, view, transponder): + for row in view.get_model(): + if row[-1] == transponder: + self._srv_model.append((row[3], row[6], row[10])) + + def show(self): + response = self._dialog.run() + self._dialog.destroy() + return response if __name__ == "__main__":