ping review (this patch and the 2 others required in python-virtinst) On Fri, Sep 23, 2011 at 5:14 PM, Marc-André Lureau <[email protected]> wrote: > --- > src/virtManager/details.py | 47 ++++++++++++++++++++++++++++++++++++++++++- > src/virtManager/domain.py | 20 ++++++++++++++++++ > src/vmm-details.glade | 26 ++++++++++++++++++++++- > 3 files changed, 89 insertions(+), 4 deletions(-) > > diff --git a/src/virtManager/details.py b/src/virtManager/details.py > index 9b53901..a7d5941 100644 > --- a/src/virtManager/details.py > +++ b/src/virtManager/details.py > @@ -38,7 +38,7 @@ from virtManager import util as util > import virtinst > > # Parameters that can be editted in the details window > -EDIT_TOTAL = 34 > +EDIT_TOTAL = 35 > (EDIT_NAME, > EDIT_ACPI, > EDIT_APIC, > @@ -83,6 +83,8 @@ EDIT_VIDEO_MODEL, > > EDIT_WATCHDOG_MODEL, > EDIT_WATCHDOG_ACTION, > + > +EDIT_CONTROLLER_MODEL > ) = range(EDIT_TOTAL) > > > @@ -474,6 +476,8 @@ class vmmDetails(vmmGObjectUI): > "on_console_pages_switch_page": self.console.page_changed, > "on_console_auth_password_activate": self.console.auth_login, > "on_console_auth_login_clicked": self.console.auth_login, > + "on_controller_model_combo_changed": (self.enable_apply, > + EDIT_CONTROLLER_MODEL), > }) > > # Deliberately keep all this after signal connection > @@ -937,6 +941,16 @@ class vmmDetails(vmmGObjectUI): > combo = self.widget("redir-type-combo") > uihelpers.build_redir_type_combo(self.vm, combo) > > + # Controller model > + combo = self.widget("controller-model-combo") > + model = gtk.ListStore(str, str) > + combo.set_model(model) > + text = gtk.CellRendererText() > + combo.pack_start(text, True) > + combo.add_attribute(text, 'text', 1) > + combo.set_active(-1) > + > + > # Helper function to handle the combo/label pattern used for > # video model, sound model, network model, etc. > def set_combo_label(self, prefix, value, model_idx=0, label="", > @@ -1871,6 +1885,8 @@ class vmmDetails(vmmGObjectUI): > ret = self.config_watchdog_apply(key) > elif pagetype is HW_LIST_TYPE_SMARTCARD: > ret = self.config_smartcard_apply(key) > + elif pagetype is HW_LIST_TYPE_CONTROLLER: > + ret = self.config_controller_apply(key) > else: > ret = False > except Exception, e: > @@ -2258,6 +2274,18 @@ class vmmDetails(vmmGObjectUI): > > return self._change_config_helper(df, da, hf, ha) > > + # Controller options > + def config_controller_apply(self, dev_id_info): > + df, da, add_define, hf, ha, add_hotplug = self.make_apply_data() > + ignore = add_hotplug > + > + if self.editted(EDIT_CONTROLLER_MODEL): > + model = self.get_combo_label_value("controller-model") > + if model: > + add_define(self.vm.define_controller_model, dev_id_info, > model) > + > + return self._change_config_helper(df, da, hf, ha) > + > # Watchdog options > def config_watchdog_apply(self, dev_id_info): > df, da, add_define, hf, ha, add_hotplug = self.make_apply_data() > @@ -3079,7 +3107,18 @@ class vmmDetails(vmmGObjectUI): > model_label = _("Default") > > self.widget("controller-type").set_text(type_label) > - self.widget("controller-model").set_text(model_label) > + > + combo = self.widget("controller-model-combo") > + model = combo.get_model() > + model.clear() > + if dev.type == virtinst.VirtualController.CONTROLLER_TYPE_USB: > + model.append(["Default", "Default"]) > + model.append(["ich9-ehci1", "USB 2"]) > + self.widget("config-remove").set_sensitive(False) > + else: > + self.widget("config-remove").set_sensitive(True) > + > + self.set_combo_label("controller-model", model_label) > > def refresh_filesystem_page(self): > dev = self.get_hw_selection(HW_LIST_COL_DEVICE) > @@ -3324,6 +3363,10 @@ class vmmDetails(vmmGObjectUI): > > # Populate controller devices > for cont in self.vm.get_controller_devices(): > + # skip USB2 ICH9 companion controllers > + if cont.model in [ "ich9-uhci1", "ich9-uhci2", "ich9-uhci3" ]: > + continue > + > pretty_type = virtinst.VirtualController.pretty_type(cont.type) > update_hwlist(HW_LIST_TYPE_CONTROLLER, cont, > _("Controller %s") % pretty_type, > diff --git a/src/virtManager/domain.py b/src/virtManager/domain.py > index 6921dac..8483468 100644 > --- a/src/virtManager/domain.py > +++ b/src/virtManager/domain.py > @@ -683,6 +683,26 @@ class vmmDomain(vmmLibvirtObject): > editdev.mode = newmodel > return self._redefine_device(change, devobj) > > + # Controller define methods > + > + def define_controller_model(self, devobj, newmodel): > + def change(editdev): > + guest = self._get_guest_to_define() > + ctrls = guest.get_devices("controller") > + ctrls = filter(lambda x: > + (x.type == > + > virtinst.VirtualController.CONTROLLER_TYPE_USB), > + ctrls) > + for dev in ctrls: > + guest.remove_device(dev) > + > + if newmodel == "ich9-ehci1": > + print guest > + guest.add_usb_ich9_controllers() > + > + return self._redefine_device(change, devobj) > + > + > > #################### > # Hotplug routines # > diff --git a/src/vmm-details.glade b/src/vmm-details.glade > index de46cc3..852db1f 100644 > --- a/src/vmm-details.glade > +++ b/src/vmm-details.glade > @@ -5570,6 +5570,7 @@ I/O:</property> > <widget class="GtkLabel" > id="controller-type"> > <property > name="visible">True</property> > <property > name="label">foo</property> > + <property > name="xalign">0</property> > </widget> > <packing> > <property > name="left_attach">1</property> > @@ -5593,9 +5594,30 @@ I/O:</property> > </packing> > </child> > <child> > - <widget class="GtkLabel" > id="controller-model"> > + > + <widget class="GtkHBox" > id="controller-model-box"> > <property > name="visible">True</property> > - <property > name="label">foo</property> > + <child> > + <widget class="GtkComboBox" > id="controller-model-combo"> > + <property > name="visible">True</property> > + <signal name="changed" > handler="on_controller_model_combo_changed"/> > + </widget> > + <packing> > + <property > name="expand">False</property> > + <property > name="position">0</property> > + </packing> > + </child> > + <child> > + <widget class="GtkLabel" > id="controller-model-label"> > + <property > name="visible">True</property> > + <property > name="xalign">0</property> > + <property > name="label">label</property> > + </widget> > + <packing> > + <property > name="expand">False</property> > + <property > name="position">1</property> > + </packing> > + </child> > </widget> > <packing> > <property > name="left_attach">1</property> > -- > 1.7.6.2 > >
-- Marc-André Lureau _______________________________________________ virt-tools-list mailing list [email protected] https://www.redhat.com/mailman/listinfo/virt-tools-list
