diff --git a/qubesmanager/settings.py b/qubesmanager/settings.py
index c441bc6..45b3473 100755
--- a/qubesmanager/settings.py
+++ b/qubesmanager/settings.py
@@ -76,10 +76,12 @@ class VMSettingsWindow(ui_settingsdlg.Ui_SettingsDialog, QtGui.QDialog):
assert idx in range(self.tabWidget.count())
self.tabWidget.setCurrentIndex(idx)
- self.connect(self.buttonBox,
- QtCore.SIGNAL("accepted()"),
- self.save_and_apply)
- self.connect(self.buttonBox, QtCore.SIGNAL("rejected()"), self.reject)
+ self.buttonBox.button(QtGui.QDialogButtonBox.Ok).clicked.connect(
+ self.save_and_apply)
+ self.buttonBox.button(QtGui.QDialogButtonBox.Cancel).clicked.connect(
+ self.reject)
+ self.buttonBox.button(QtGui.QDialogButtonBox.Apply).clicked.connect(
+ self.apply)
self.tabWidget.currentChanged.connect(self.current_tab_changed)
@@ -152,7 +154,7 @@ class VMSettingsWindow(ui_settingsdlg.Ui_SettingsDialog, QtGui.QDialog):
def accept(self):
pass
- def save_and_apply(self):
+ def save_changes(self):
t_monitor = thread_monitor.ThreadMonitor()
thread = threading.Thread(target=self.__save_changes__,
args=(t_monitor,))
@@ -179,6 +181,11 @@ class VMSettingsWindow(ui_settingsdlg.Ui_SettingsDialog, QtGui.QDialog):
).format(self.vm.name),
self.tr("ERROR: {0}").format(t_monitor.error_msg))
+ def apply(self):
+ self.save_changes()
+
+ def save_and_apply(self):
+ self.save_changes()
self.done(0)
def __save_changes__(self, t_monitor):
diff --git a/ui/settingsdlg.ui b/ui/settingsdlg.ui
index 48de866..61cfa0f 100644
--- a/ui/settingsdlg.ui
+++ b/ui/settingsdlg.ui
@@ -1359,7 +1359,7 @@ border-width: 1px;
Qt::Horizontal
- QDialogButtonBox::Cancel|QDialogButtonBox::Ok
+ QDialogButtonBox::Apply|QDialogButtonBox::Cancel|QDialogButtonBox::Ok