From 81f354207ddb8dfa1268cde6e8778f5697c8595a Mon Sep 17 00:00:00 2001 From: DYefremov Date: Fri, 23 Feb 2018 23:56:19 +0300 Subject: [PATCH] ServicesListDialog skeleton --- app/ui/service_details_dialog.glade | 219 +++++++++++++++++++++++++++- app/ui/service_details_dialog.py | 47 +++++- 2 files changed, 258 insertions(+), 8 deletions(-) diff --git a/app/ui/service_details_dialog.glade b/app/ui/service_details_dialog.glade index 73eb594c..cc8015a6 100644 --- a/app/ui/service_details_dialog.glade +++ b/app/ui/service_details_dialog.glade @@ -160,6 +160,186 @@ + + + + + + + + + + + + False + False + True + center-on-parent + True + dialog + True + True + center + + + False + vertical + 2 + + + False + end + + + gtk-cancel + True + True + True + True + + + True + True + 0 + + + + + gtk-ok + True + True + True + True + + + True + True + 1 + + + + + False + False + 0 + + + + + True + True + Changes will be applied to all services of this transponder! +Are you sure? + True + center + 2 + + + + False + True + 0 + + + + + True + False + vertical + + + 120 + True + True + in + + + True + False + srv_list_dialog_liststore + False + + + + + + autosize + Services: + True + 0.5 + + + + 0 + + + + + + + autosize + Package + True + 0.5 + + + + 1 + + + + + + + autosize + Ssid + True + 0.5 + + + + 2 + + + + + + + + + True + True + 0 + + + + + True + False + + + True + True + 2 + 1 + + + + + True + True + 1 + + + + + + srv_list_cancel_button + srv_list_ok_button + + @@ -202,9 +382,11 @@ Service details False True + center-on-parent True document-properties-symbolic dialog + center False @@ -873,11 +1055,42 @@ vertical 2 - + True False - Transponder data: - 0.0099999997764825821 + + + True + False + Transponder data: + 0.0099999997764825821 + + + False + True + 0 + + + + + gtk-edit + True + True + False + 5 + True + 0 + True + True + + + + False + True + end + 1 + + diff --git a/app/ui/service_details_dialog.py b/app/ui/service_details_dialog.py index 1dce1f28..1defd4e0 100644 --- a/app/ui/service_details_dialog.py +++ b/app/ui/service_details_dialog.py @@ -32,7 +32,8 @@ class ServiceDetailsDialog: handlers = {"on_system_changed": self.on_system_changed, "on_save": self.on_save, "on_create_new": self.on_create_new, - "on_digit_entry_changed": self.on_digit_entry_changed} + "on_digit_entry_changed": self.on_digit_entry_changed, + "on_tr_edit_toggled": self.on_tr_edit_toggled} builder = Gtk.Builder() builder.add_from_file(UI_RESOURCES_PATH + "service_details_dialog.glade") @@ -98,6 +99,10 @@ class ServiceDetailsDialog: 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) + self._TRANSPONDER_ELEMENTS = (self._sat_pos_combo_box, self._pol_combo_box, self._invertion_combo_box, + self._sys_combo_box, self._freq_entry, self._transponder_id_entry, + self._network_id_entry, self._namespace_entry, self._fec_combo_box, + self._rate_entry) self.update_data_elements() @@ -182,10 +187,9 @@ class ServiceDetailsDialog: tr_data = srv.transponder.split(":") if srv.system == "DVB-S2": - pass - # self.select_active_text(self._mod_combo_box, MODULATION.get(tr_data[8])) - # self.select_active_text(self._rolloff_combo_box, ROLL_OFF.get(tr_data[9])) - # self.select_active_text(self._pilot_combo_box, Pilot(tr_data[10]).name) + self.select_active_text(self._mod_combo_box, MODULATION.get(tr_data[8])) + self.select_active_text(self._rolloff_combo_box, ROLL_OFF.get(tr_data[9])) + self.select_active_text(self._pilot_combo_box, Pilot(tr_data[10]).name) self._namespace_entry.set_text(str(int(data[1], 16))) self._transponder_id_entry.set_text(str(int(data[2], 16))) @@ -370,6 +374,39 @@ class ServiceDetailsDialog: cb_id = box.get_active_id() return get_key_by_value(dc, cb_id) + @run_idle + def on_tr_edit_toggled(self, button: Gtk.CheckButton): + active = button.get_active() + if active: + response = ServicesListDialog(self._dialog, self._services_view, self._old_service.transponder).show() + if response == Gtk.ResponseType.CANCEL or response == -4: + button.set_active(False) + return + + for elem in self._TRANSPONDER_ELEMENTS: + elem.set_sensitive(active) + + +class ServicesListDialog: + def __init__(self, transient, view, transponder): + builder = Gtk.Builder() + builder.add_objects_from_file(UI_RESOURCES_PATH + "service_details_dialog.glade", + ("services_list_dialog", "srv_list_dialog_liststore")) + self._dialog = builder.get_object("services_list_dialog") + self._dialog.set_transient_for(transient) + self._srv_model = builder.get_object("srv_list_dialog_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__": pass