From 6a4bd4e5da57499f8e0618a34bfa47bb2fdf02ed Mon Sep 17 00:00:00 2001 From: DYefremov Date: Sun, 2 Jul 2023 22:16:07 +0300 Subject: [PATCH] satellites tab redesign --- app/ui/xml/dialogs.glade | 951 +++++++++-------- app/ui/xml/dialogs.py | 31 +- app/ui/xml/editor.glade | 2087 +++++++++++++++++++------------------- 3 files changed, 1534 insertions(+), 1535 deletions(-) diff --git a/app/ui/xml/dialogs.glade b/app/ui/xml/dialogs.glade index 27362daa..1bb345b6 100644 --- a/app/ui/xml/dialogs.glade +++ b/app/ui/xml/dialogs.glade @@ -1,5 +1,5 @@ - + True - False - 5 - 5 - 5 - 5 + False + 10 + 10 + 5 + 10 + 5 True - False + False Freq - 0 - 0 + 0 + 0 True - False + False Rate - 1 - 0 + 1 + 0 True - True - 12 - 14 - document-edit-symbolic - 6900000 - digits + True + 12 + 14 + document-edit-symbolic + 6900000 + digits - 1 - 1 + 1 + 1 True - False + False FEC - 2 - 0 + 2 + 0 True - False + False Mod - 3 - 0 + 3 + 0 True - True - 12 - 14 - document-edit-symbolic - False - False - False - 120000 - digits + True + 12 + 14 + document-edit-symbolic + False + False + False + 120000 + digits - 0 - 1 + 0 + 1 - 75 + 75 True - False + False - 2 - 1 + 2 + 1 - 100 + 100 True - False + False - 3 - 1 + 3 + 1 @@ -245,8 +247,8 @@ Author: Dmitriy Yefremov 180 - 0.10000000000000001 - 10 + 0.10 + 10 @@ -262,75 +264,77 @@ Author: Dmitriy Yefremov + True - False - 5 - 5 - 5 - 5 + False + 10 + 10 + 5 + 10 + 5 True - False + False Name - 0 - 0 + 0 + 0 True - False + False Position - 1 - 0 + 1 + 0 True - True - document-edit-symbolic - False - False - False - satellite name - name + True + document-edit-symbolic + False + False + False + satellite name + name - 0 - 1 + 0 + 1 True - True - 5 - False - False - number + True + 5 + False + False + number pos_adjustment 1 True - 1 - 1 + 1 + 1 True - False + False side_store 0 - 0 + 0 @@ -339,8 +343,8 @@ Author: Dmitriy Yefremov - 2 - 1 + 2 + 1 @@ -363,124 +367,126 @@ Author: Dmitriy Yefremov True - False - 5 - 5 - 5 + False + 10 + 10 + 5 + 10 vertical - 2 + 10 + True - False - 5 + False + 5 True - False + False Freq - 0 - 0 + 0 + 0 True - False + False Rate - 1 - 0 + 1 + 0 True - False + False Pol - 2 - 0 + 2 + 0 True - False + False FEC - 3 - 0 + 3 + 0 True - False + False System - 4 - 0 + 4 + 0 True - False + False Mod - 5 - 0 + 5 + 0 True - True - 12 - 14 - document-edit-symbolic - False - False - False - 11700000 - digits + True + 12 + 14 + document-edit-symbolic + False + False + False + 11700000 + digits - 0 - 1 + 0 + 1 True - True - 12 - 14 - document-edit-symbolic - 27500000 - digits + True + 12 + 14 + document-edit-symbolic + 27500000 + digits - 1 - 1 + 1 + 1 True - False + False pol_store - 0 + 0 @@ -489,16 +495,16 @@ Author: Dmitriy Yefremov - 2 - 1 + 2 + 1 True - False + False fec_store - 0 + 0 @@ -507,16 +513,16 @@ Author: Dmitriy Yefremov - 3 - 1 + 3 + 1 True - False + False system_store - 0 + 0 @@ -525,16 +531,16 @@ Author: Dmitriy Yefremov - 4 - 1 + 4 + 1 True - False + False mod_store - 0 + 0 @@ -543,308 +549,8 @@ Author: Dmitriy Yefremov - 5 - 1 - - - - - False - True - 2 - - - - - True - True - True - - - True - False - 5 - - - True - False - Pls mode - - - 0 - 0 - - - - - True - False - Pls code - - - 1 - 0 - - - - - True - False - Is ID - - - 2 - 0 - - - - - True - False - pls_mode_store - 0 - - - - 0 - - - - - 0 - 1 - - - - - True - True - 5 - 12 - document-edit-symbolic - False - 0 - 262142 - digits - - - - 1 - 1 - - - - - True - True - 5 - 12 - document-edit-symbolic - False - 0 - 255 - digits - - - - 2 - 1 - - - - - True - False - T2-MI PLP ID - - - 3 - 0 - - - - - True - True - 5 - 12 - document-edit-symbolic - False - 0 - 255 - digits - - - - 3 - 1 - - - - - - - True - False - Extra: - - - - - False - True - 4 - - - - - True - False - 5 - 5 - 5 - vertical - 5 - - - True - False - 5 - - - True - False - Freq - - - 0 - 0 - - - - - True - True - 12 - 14 - document-edit-symbolic - False - False - False - 170000000 - digits - - - - 0 - 1 - - - - - True - False - System - - - 1 - 0 - - - - - 100 - True - False - - - 1 - 1 - - - - - 110 - True - False - - - 2 - 1 - - - - - True - False - Bandwidth - - - 2 - 0 - - - - - True - False - Constellation - - - 3 - 0 - - - - - True - False - SR (HP) - - - 4 - 0 - - - - - True - False - SR (LP) - - - 5 - 0 - - - - - 75 - True - False - - - 4 - 1 - - - - - 75 - True - False - - - 5 - 1 - - - - - 100 - True - False - - - 3 - 1 + 5 + 1 @@ -855,122 +561,413 @@ Author: Dmitriy Yefremov + + + True + False + center + 5 + + + True + False + Pls mode + + + 0 + 0 + + + + + True + False + Pls code + + + 1 + 0 + + + + + True + False + Is ID + + + 2 + 0 + + + + + True + False + pls_mode_store + 0 + + + + 0 + + + + + 0 + 1 + + + + + True + True + 5 + 12 + document-edit-symbolic + False + 0 - 262142 + digits + + + + 1 + 1 + + + + + True + True + 5 + 12 + document-edit-symbolic + False + 0 - 255 + digits + + + + 2 + 1 + + + + + True + False + T2-MI PLP ID + + + 3 + 0 + + + + + True + True + 5 + 12 + document-edit-symbolic + False + 0 - 255 + digits + + + + 3 + 1 + + + + + False + True + 1 + + + + + True + False + 10 + 10 + 5 + 10 + vertical + 5 + + + + True + False + 5 + + + True + False + Freq + + + 0 + 0 + + + + + True + True + 12 + 14 + document-edit-symbolic + False + False + False + 170000000 + digits + + + + 0 + 1 + + + + + True + False + System + + + 1 + 0 + + + + + 100 + True + False + + + 1 + 1 + + + + + 110 + True + False + + + 2 + 1 + + + + + True + False + Bandwidth + + + 2 + 0 + + + + + True + False + Constellation + + + 3 + 0 + + + + + True + False + SR (HP) + + + 4 + 0 + + + + + True + False + SR (LP) + + + 5 + 0 + + + + + 75 + True + False + + + 4 + 1 + + + + + 75 + True + False + + + 5 + 1 + + + + + 100 + True + False + + + 3 + 1 + + + + + False + True + 0 + + + + True - False + False center - 5 - 5 - True + 5 + 5 + True True - False + False Guard - 0 - 0 + 0 + 0 True - False + False Transmission - 1 - 0 + 1 + 0 True - False + False Hierarchy - 2 - 0 + 2 + 0 True - False + False Inversion - 3 - 0 + 3 + 0 True - False + False - 0 - 1 + 0 + 1 True - False + False - 1 - 1 + 1 + 1 True - False + False - 2 - 1 + 2 + 1 True - False + False - 3 - 1 + 3 + 1 True - True - 8 - 8 - document-edit-symbolic - 0-255 - digits + True + 8 + 8 + document-edit-symbolic + 0-255 + digits - 4 - 1 + 4 + 1 True - False + False PLP ID - 4 - 0 + 4 + 0 diff --git a/app/ui/xml/dialogs.py b/app/ui/xml/dialogs.py index 03b6584c..a2a6e61b 100644 --- a/app/ui/xml/dialogs.py +++ b/app/ui/xml/dialogs.py @@ -70,8 +70,13 @@ class DVBDialog(Gtk.Dialog): buttons=(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_OK, Gtk.ResponseType.OK), *args, **kwargs) - self.frame = Gtk.Frame(margin=5, label_xalign=0.02) - self.get_content_area().pack_start(self.frame, True, True, 0) + self._viewport = Gtk.Viewport(margin_top=2) + self._viewport.get_style_context().add_class("view") + self._frame = Gtk.Frame(margin=10, label_xalign=0.02, shadow_type=Gtk.ShadowType.NONE) + self._label = Gtk.Label(margin_bottom=2, use_markup=True) + self._frame.set_label_widget(self._label) + self._frame.add(self._viewport) + self.get_content_area().pack_start(self._frame, True, True, 0) self._data = data @@ -79,13 +84,19 @@ class DVBDialog(Gtk.Dialog): def data(self): return self._data + def set_content(self, widget): + self._viewport.add(widget) + + def set_label_text(self, text): + self._label.set_markup(f"{text}") + class TransponderDialog(DVBDialog): """ Base transponder dialog class. """ def __init__(self, parent, title, data=None, *args, **kwargs): super().__init__(parent, title, data, *args, **kwargs) - self.frame.set_label(translate("Transponder properties:")) + self.set_label_text(translate("Transponder properties:")) # Pattern for digits entries. self.digit_pattern = re.compile(r"\D") # Style @@ -124,8 +135,8 @@ class TCDialog(DVBDialog): super().__init__(parent, title, data, *args, **kwargs) self._entry = Gtk.Entry(margin=5) - self.frame.add(self._entry) - self.frame.set_label(translate("Name:")) + self.set_content(self._entry) + self.set_label_text(translate("Name:")) self.show_all() if data: @@ -140,8 +151,8 @@ class SatelliteDialog(DVBDialog): builder = get_builder(_DIALOGS_UI_PATH, use_str=True, objects=("sat_dialog_box", "side_store", "pos_adjustment")) - self.frame.add(builder.get_object("sat_dialog_box")) - self.frame.set_label(translate("Satellite properties:")) + self.set_content(builder.get_object("sat_dialog_box")) + self.set_label_text(translate("Satellite properties:")) self._sat_name = builder.get_object("sat_name_entry") self._sat_position = builder.get_object("sat_position_button") self._side = builder.get_object("side_box") @@ -196,7 +207,7 @@ class SatTransponderDialog(TransponderDialog): objects = ("sat_tr_box", "pol_store", "fec_store", "mod_store", "system_store", "pls_mode_store") builder = get_builder(_DIALOGS_UI_PATH, handlers, use_str=True, objects=objects) - self.frame.add(builder.get_object("sat_tr_box")) + self.set_content(builder.get_object("sat_tr_box")) self._freq_entry = builder.get_object("freq_entry") self._rate_entry = builder.get_object("rate_entry") self._pol_box = builder.get_object("pol_box") @@ -268,7 +279,7 @@ class TerTransponderDialog(TransponderDialog): handlers = {"on_entry_changed": self.on_entry_changed} builder = get_builder(_DIALOGS_UI_PATH, handlers, use_str=True, objects=("ter_tr_box",)) - self.frame.add(builder.get_object("ter_tr_box")) + self.set_content(builder.get_object("ter_tr_box")) self._freq_entry = builder.get_object("ter_freq_entry") self._sys_box = builder.get_object("ter_sys_box") self._bandwidth_box = builder.get_object("ter_bandwidth_box") @@ -346,7 +357,7 @@ class CableTransponderDialog(TransponderDialog): handlers = {"on_entry_changed": self.on_entry_changed} builder = get_builder(_DIALOGS_UI_PATH, handlers, use_str=True, objects=("cable_tr_box",)) - self.frame.add(builder.get_object("cable_tr_box")) + self.set_content(builder.get_object("cable_tr_box")) self._freq_entry = builder.get_object("cable_freq_entry") self._rate_entry = builder.get_object("cable_rate_entry") diff --git a/app/ui/xml/editor.glade b/app/ui/xml/editor.glade index 6b5c63f4..4d93af0f 100644 --- a/app/ui/xml/editor.glade +++ b/app/ui/xml/editor.glade @@ -63,21 +63,14 @@ Author: Dmitriy Yefremov - - True - False - gtk-add - True False - - Add + True False - popup_menu_add_image - False + Add @@ -89,12 +82,10 @@ Author: Dmitriy Yefremov - - gtk-edit + True False - True - True + Edit @@ -106,71 +97,15 @@ Author: Dmitriy Yefremov - - gtk-remove + True False - True - True + Remove - - True - False - gtk-add - - - True - False - - - Add - True - False - popup_menu_add_image_2 - False - - - - - - - True - False - - - - - gtk-edit - True - False - True - True - - - - - - - True - False - - - - - gtk-remove - True - False - True - True - - - - - @@ -263,51 +198,82 @@ Author: Dmitriy Yefremov True False 0.49000000953674316 - in + none - + True False - 5 - 5 - 5 - vertical - 5 - + True False - 5 - 5 - 2 - 5 + 10 + 10 + 10 + vertical 5 - - - header-stack-switcher - True - False - sat_stack - - - False - True - 2 - - - + True False - True - Add - - - + 5 + 5 + 5 + 5 + + + header-stack-switcher True False - document-new-symbolic + sat_stack + + False + True + 2 + + + + + True + False + True + Add + + + + True + False + document-new-symbolic + + + + + False + True + 0 + + + + + True + False + True + Update + + + + True + False + emblem-synchronizing-symbolic + + + + + False + True + 1 + @@ -317,365 +283,340 @@ Author: Dmitriy Yefremov - + True False - True - Update - + - + True False - emblem-synchronizing-symbolic + Satellites + vertical + + + True + True + in + + + True + True + satellite_model + True + True + + + + + + + + + + Satellite + True + 0.49000000953674316 + + + end + + + 0 + + + + + + + 85 + Pos + 0.49000000953674316 + + + 0.49000000953674316 + + + 2 + + + + + + + + + True + True + 0 + + + + + 26 + True + False + 5 + 5 + 5 + + + True + False + document-properties + + + False + True + 0 + + + + + True + False + 0 + 4 + 0 + + + False + True + 1 + + + + + False + True + 1 + + + + satellites + S/S2 + + + + + True + False + Terrestrial + vertical + + + True + True + in + + + True + True + terrestrial_model + 0 + True + True + + + + + + + + + + Region + True + 0.49000000953674316 + + + end + + + 0 + + + + + + + + + True + True + 0 + + + + + 26 + True + False + 5 + 5 + 5 + + + True + False + document-properties + + + False + True + 0 + + + + + True + False + 0 + 4 + 0 + + + False + True + 1 + + + + + False + True + 1 + + + + + terrestrial + T/T2 + 1 + + + + + True + False + Cable + vertical + + + True + True + in + + + True + True + cable_model + 0 + True + True + + + + + + + + + + Provider + True + 0.49000000953674316 + + + end + + + 0 + + + + + + + + + True + True + 0 + + + + + 26 + True + False + 5 + 5 + 5 + + + True + False + document-properties + + + False + True + 0 + + + + + True + False + 0 + 4 + 0 + + + False + True + 1 + + + + + False + True + 1 + + + + + cable + C + 2 + - False + True True 1 - - False - True - 0 - - - - - True - False - - - - True - False - Satellites - vertical - - - True - True - in - - - True - True - satellite_model - True - True - - - - - - - multiple - - - - - Satellite - True - 0.49000000953674316 - - - end - - - 0 - - - - - - - 85 - Pos - 0.49000000953674316 - - - 0.49000000953674316 - - - 2 - - - - - - - - - True - True - 0 - - - - - 26 - True - False - 5 - 5 - 5 - - - True - False - document-properties - - - False - True - 0 - - - - - True - False - 0 - 4 - 0 - - - False - True - 1 - - - - - False - True - 1 - - - - - satellites - S/S2 - - - - - True - False - Terrestrial - vertical - - - True - True - in - - - True - True - terrestrial_model - 0 - True - True - - - - - - - multiple - - - - - Region - True - 0.49000000953674316 - - - end - - - 0 - - - - - - - - - True - True - 0 - - - - - 26 - True - False - 5 - 5 - 5 - - - True - False - document-properties - - - False - True - 0 - - - - - True - False - 0 - 4 - 0 - - - False - True - 1 - - - - - False - True - 1 - - - - - terrestrial - T/T2 - 1 - - - - - True - False - Cable - vertical - - - True - True - in - - - True - True - cable_model - 0 - True - True - - - - - - - multiple - - - - - Provider - True - 0.49000000953674316 - - - end - - - 0 - - - - - - - - - True - True - 0 - - - - - 26 - True - False - 5 - 5 - 5 - - - True - False - document-properties - - - False - True - 0 - - - - - True - False - 0 - 4 - 0 - - - False - True - 1 - - - - - False - True - 1 - - - - - cable - C - 2 - - - - - True - True - 1 - + True False + 2 DVB + + + @@ -689,38 +630,51 @@ Author: Dmitriy Yefremov True False 0.49000000953674316 - in + none - + True False - 5 - 5 - 5 - vertical - 5 - + True False - 15 - 15 - 2 - 5 + 10 + 10 + 10 + vertical 5 - + True False - True - Add - + 5 + 15 + 5 + 5 - + True False - document-new-symbolic + True + Add + + + + True + False + document-new-symbolic + + + + False + True + 0 + + + + @@ -730,236 +684,231 @@ Author: Dmitriy Yefremov - - - - - False - True - 0 - - - - - True - False - - + True False - vertical - - True - True - in - - - True - True - sat_tr_view_model - 0 - True - both - - - - - multiple - - - - - True - 20 - Freq - True - 0.5 - - - 0.49000000953674316 - - - 0 - - - - - - - True - 20 - Rate - True - 0.5 - - - 0.49000000953674316 - - - 1 - - - - - - - True - 20 - Pol - True - 0.5 - - - 0.49000000953674316 - - - 2 - - - - - - - True - 20 - FEC - True - 0.5 - - - 0.49000000953674316 - - - 3 - - - - - - - True - 20 - System - True - 0.5 - - - 0.49000000953674316 - - - 4 - - - - - - - True - 20 - Mod - True - 0.5 - - - 0.49000000953674316 - - - 5 - - - - - - - False - True - Pls mode - True - - - - 6 - - - - - - - False - True - Pls code - True - - - - 7 - - - - - - - False - True - Is ID - True - - - - 8 - - - - - - - False - T2-MI PLP ID - - - - 9 - - - - - - - - - True - True - 0 - - - - - 26 + True False - 5 - 5 - 5 + vertical - + True - False - document-properties + True + in + + + True + True + sat_tr_view_model + 0 + True + both + + + + + + + + True + 20 + Freq + True + 0.5 + + + 0.49000000953674316 + + + 0 + + + + + + + True + 20 + Rate + True + 0.5 + + + 0.49000000953674316 + + + 1 + + + + + + + True + 20 + Pol + True + 0.5 + + + 0.49000000953674316 + + + 2 + + + + + + + True + 20 + FEC + True + 0.5 + + + 0.49000000953674316 + + + 3 + + + + + + + True + 20 + System + True + 0.5 + + + 0.49000000953674316 + + + 4 + + + + + + + True + 20 + Mod + True + 0.5 + + + 0.49000000953674316 + + + 5 + + + + + + + False + True + Pls mode + True + + + + 6 + + + + + + + False + True + Pls code + True + + + + 7 + + + + + + + False + True + Is ID + True + + + + 8 + + + + + + + False + T2-MI PLP ID + + + + 9 + + + + + + - False + True True 0 - + + 26 True False - 0 - 4 - 0 + 5 + 5 + 5 + + + True + False + document-properties + + + False + True + 0 + + + + + True + False + 0 + 4 + 0 + + + False + True + 1 + + False @@ -969,239 +918,237 @@ Author: Dmitriy Yefremov - False - True - 1 - - - - - satellites - Satellites - - - - - True - False - vertical - - - True - True - in - - - True - True - ter_tr_view_model - 0 - True - both - - - - - multiple - - - - - True - 20 - Freq - True - 0.5 - - - 0.49000000953674316 - - - 0 - - - - - - - True - 20 - System - True - 0.5 - - - 0.49000000953674316 - - - 1 - - - - - - - True - 20 - Bandwidth - True - 0.5 - - - 0.49000000953674316 - - - 2 - - - - - - - True - 20 - Constellation - True - 0.5 - - - 0.49000000953674316 - - - 3 - - - - - - - True - 20 - SR (HP) - True - 0.5 - - - 0.49000000953674316 - - - 1 - 4 - - - - - - - SR (LP) - - - 0.49000000953674316 - - - 5 - - - - - - - True - 20 - Guard - True - 0.5 - - - 0.49000000953674316 - - - 6 - - - - - - - True - Transmission - True - - - 0.49000000953674316 - - - 7 - - - - - - - True - Hierarchy - True - - - 0.49000000953674316 - - - 8 - - - - - - - True - Inversion - True - - - 0.49000000953674316 - - - 9 - - - - - - - - - True - True - 0 + satellites + Satellites - - 26 + True False - 5 - 5 - 5 + vertical - + True - False - document-properties + True + in + + + True + True + ter_tr_view_model + 0 + True + both + + + + + + + + True + 20 + Freq + True + 0.5 + + + 0.49000000953674316 + + + 0 + + + + + + + True + 20 + System + True + 0.5 + + + 0.49000000953674316 + + + 1 + + + + + + + True + 20 + Bandwidth + True + 0.5 + + + 0.49000000953674316 + + + 2 + + + + + + + True + 20 + Constellation + True + 0.5 + + + 0.49000000953674316 + + + 3 + + + + + + + True + 20 + SR (HP) + True + 0.5 + + + 0.49000000953674316 + + + 1 + 4 + + + + + + + SR (LP) + + + 0.49000000953674316 + + + 5 + + + + + + + True + 20 + Guard + True + 0.5 + + + 0.49000000953674316 + + + 6 + + + + + + + True + Transmission + True + + + 0.49000000953674316 + + + 7 + + + + + + + True + Hierarchy + True + + + 0.49000000953674316 + + + 8 + + + + + + + True + Inversion + True + + + 0.49000000953674316 + + + 9 + + + + + + - False + True True 0 - + + 26 True False - 0 - 4 - 0 + 5 + 5 + 5 + + + True + False + document-properties + + + False + True + 0 + + + + + True + False + 0 + 4 + 0 + + + False + True + 1 + + False @@ -1211,182 +1158,182 @@ Author: Dmitriy Yefremov - False - True + terrestrial + Terrestrial 1 + + + True + False + vertical + + + True + True + in + + + True + True + cable_tr_view_model + 0 + True + both + + + + + + + + True + 20 + Freq + True + 0.5 + + + 0.49000000953674316 + + + 0 + + + + + + + True + 20 + Rate + True + 0.5 + + + 0.49000000953674316 + + + 1 + + + + + + + True + 20 + FEC + True + 0.5 + + + 0.49000000953674316 + + + 2 + + + + + + + True + 20 + Mod + True + 0.5 + + + 0.49000000953674316 + + + 3 + + + + + + + + + True + True + 0 + + + + + 26 + True + False + 5 + 5 + 5 + + + True + False + document-properties + + + False + True + 0 + + + + + True + False + 0 + 4 + 0 + + + False + True + 1 + + + + + False + True + 1 + + + + + cable + Cable + 2 + + - terrestrial - Terrestrial + True + True 1 - - - True - False - vertical - - - True - True - in - - - True - True - cable_tr_view_model - 0 - True - both - - - - - multiple - - - - - True - 20 - Freq - True - 0.5 - - - 0.49000000953674316 - - - 0 - - - - - - - True - 20 - Rate - True - 0.5 - - - 0.49000000953674316 - - - 1 - - - - - - - True - 20 - FEC - True - 0.5 - - - 0.49000000953674316 - - - 2 - - - - - - - True - 20 - Mod - True - 0.5 - - - 0.49000000953674316 - - - 3 - - - - - - - - - True - True - 0 - - - - - 26 - True - False - 5 - 5 - 5 - - - True - False - document-properties - - - False - True - 0 - - - - - True - False - 0 - 4 - 0 - - - False - True - 1 - - - - - False - True - 1 - - - - - cable - Cable - 2 - - - - True - True - 1 - + True False + 2 Transponder + + + @@ -1396,4 +1343,48 @@ Author: Dmitriy Yefremov + + True + False + + + True + False + Add + + + + + + + True + False + + + + + Edit + True + False + False + + + + + + + True + False + + + + + True + False + Remove + + + + +