From: Chen Hanxiao <chenhanxiao@xxxxxxxxxxxxxx> Signed-off-by: Chen Hanxiao <chenhanxiao@xxxxxxxxxxxxxx> --- ui/details.ui | 114 +++++++++++++++++++++++++++++++++++++++++++++++-- virtManager/details.py | 28 +++++++++++- virtManager/domain.py | 3 ++ 3 files changed, 140 insertions(+), 5 deletions(-) diff --git a/ui/details.ui b/ui/details.ui index 2dc014a..7d7c9b3 100644 --- a/ui/details.ui +++ b/ui/details.ui @@ -1,5 +1,4 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.16.0 on Wed Dec 4 18:33:33 2013 --> <interface> <!-- interface-requires gtk+ 3.0 --> <object class="GtkAccelGroup" id="accelgroup1"/> @@ -1385,8 +1384,8 @@ <property name="use_underline">True</property> <property name="xalign">0.5</property> <property name="draw_indicator">True</property> - <signal name="activate" handler="on_security_type_changed" swapped="no"/> <signal name="toggled" handler="on_security_type_changed" swapped="no"/> + <signal name="activate" handler="on_security_type_changed" swapped="no"/> </object> <packing> <property name="x_options"/> @@ -2167,7 +2166,6 @@ <property name="can_focus">True</property> <property name="receives_default">True</property> <property name="valign">start</property> - <property name="vexpand">False</property> <signal name="clicked" handler="on_cpu_copy_host_clicked" swapped="no"/> </object> <packing> @@ -6945,6 +6943,116 @@ <property name="tab_fill">False</property> </packing> </child> + <child> + <object class="GtkFrame" id="frame17"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment5"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="left_padding">12</property> + <child> + <object class="GtkAlignment" id="alignment10"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="top_padding">3</property> + <property name="left_padding">8</property> + <child> + <object class="GtkGrid" id="table_panic"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="row_spacing">4</property> + <property name="column_spacing">8</property> + <child> + <object class="GtkLabel" id="label95"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="xalign">0</property> + <property name="ypad">3</property> + <property name="label" translatable="yes">Address T_ype:</property> + <property name="use_underline">True</property> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">0</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label96"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">_IO Base:</property> + <property name="use_underline">True</property> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">1</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="panic-type"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">panic-address-type</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">0</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="panic-iobase"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">panic-iobase</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">1</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + </object> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label94"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes"><b>Panic Notifier</b></property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="position">20</property> + </packing> + </child> + <child type="tab"> + <object class="GtkLabel" id="label93"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">panic</property> + </object> + <packing> + <property name="position">20</property> + <property name="tab_fill">False</property> + </packing> + </child> </object> <packing> <property name="expand">True</property> diff --git a/virtManager/details.py b/virtManager/details.py index 258bdb0..66cb074 100644 --- a/virtManager/details.py +++ b/virtManager/details.py @@ -126,7 +126,8 @@ EDIT_TPM_TYPE, HW_LIST_TYPE_SMARTCARD, HW_LIST_TYPE_REDIRDEV, HW_LIST_TYPE_TPM, - HW_LIST_TYPE_RNG) = range(20) + HW_LIST_TYPE_RNG, + HW_LIST_TYPE_PANIC) = range(21) remove_pages = [HW_LIST_TYPE_NIC, HW_LIST_TYPE_INPUT, HW_LIST_TYPE_GRAPHICS, HW_LIST_TYPE_SOUND, HW_LIST_TYPE_CHAR, @@ -134,7 +135,7 @@ remove_pages = [HW_LIST_TYPE_NIC, HW_LIST_TYPE_INPUT, HW_LIST_TYPE_WATCHDOG, HW_LIST_TYPE_CONTROLLER, HW_LIST_TYPE_FILESYSTEM, HW_LIST_TYPE_SMARTCARD, HW_LIST_TYPE_REDIRDEV, HW_LIST_TYPE_TPM, - HW_LIST_TYPE_RNG] + HW_LIST_TYPE_RNG, HW_LIST_TYPE_PANIC] # Boot device columns (BOOT_DEV_TYPE, @@ -1214,6 +1215,8 @@ class vmmDetails(vmmGObjectUI): self.refresh_tpm_page() elif pagetype == HW_LIST_TYPE_RNG: self.refresh_rng_page() + elif pagetype == HW_LIST_TYPE_PANIC: + self.refresh_panic_page() else: pagetype = -1 except Exception, e: @@ -3096,6 +3099,22 @@ class vmmDetails(vmmGObjectUI): # Device type specific properties, only show if apply to the cur dev show_ui("device_path") + def refresh_panic_page(self): + dev = self.get_hw_selection(HW_LIST_COL_DEVICE) + if not dev: + return + + def show_ui(param, val=None): + widgetname = "panic-" + param.replace("_", "-") + if not val: + val = getattr(dev, param) + + uihelpers.set_grid_row_visible(self.widget(widgetname), True) + self.widget(widgetname).set_text(val or "-") + + show_ui("type") + show_ui("iobase") + def refresh_rng_page(self): dev = self.get_hw_selection(HW_LIST_COL_DEVICE) values = { @@ -3620,6 +3639,11 @@ class vmmDetails(vmmGObjectUI): update_hwlist(HW_LIST_TYPE_RNG, rng, _("RNG"), "system-run") + # Populate list of Panic devices + for rng in self.vm.get_panic_devices(): + update_hwlist(HW_LIST_TYPE_PANIC, rng, + _("Panic Notifier"), "system-run") + devs = range(len(hw_list_model)) devs.reverse() for i in devs: diff --git a/virtManager/domain.py b/virtManager/domain.py index b0acd93..e7035b2 100644 --- a/virtManager/domain.py +++ b/virtManager/domain.py @@ -60,6 +60,7 @@ def compare_device(origdev, newdev, idx): "redirdev" : ["bus" , "type", "vmmindex"], "tpm" : ["type" , "vmmindex"], "rng" : ["type" , "vmmindex"], + "panic" : ["type" , "vmmindex"], } if id(origdev) == id(newdev): @@ -1130,6 +1131,8 @@ class vmmDomain(vmmLibvirtObject): return self._build_device_list("tpm") def get_rng_devices(self): return self._build_device_list("rng") + def get_panic_devices(self): + return self._build_device_list("panic") def get_disk_devices(self, refresh_if_nec=True, inactive=False): devs = self._build_device_list("disk", refresh_if_nec, inactive) -- 1.8.2.1 _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list