diff --git a/qubesmanager/settings.py b/qubesmanager/settings.py index cafa25c1..4279f5c3 100644 --- a/qubesmanager/settings.py +++ b/qubesmanager/settings.py @@ -274,6 +274,15 @@ def save_changes(self): def apply(self): self.save_changes() + # these signals must be disconnected to avoid unintended behavior + # on refreshing the drop-downs + self.netVM.currentIndexChanged.disconnect() + self.kernel.currentIndexChanged.disconnect() + self.default_dispvm.currentIndexChanged.disconnect() + + self.__init_basic_tab__() + self.__init_advanced_tab__() + def save_and_apply(self): self.save_changes() self.done(0) diff --git a/qubesmanager/utils.py b/qubesmanager/utils.py index 6b69acec..67af4325 100644 --- a/qubesmanager/utils.py +++ b/qubesmanager/utils.py @@ -37,6 +37,11 @@ def prepare_choice(widget, holder, propname, choice, default, # for newly created vms, set propname to None + # clear the widget, so that prepare_choice functions can be used + # to refresh widget values + while widget.count() > 0: + widget.removeItem(0) + debug( 'prepare_choice(widget={widget!r}, ' 'holder={holder!r}, '