Merge branch 'master' of git.qubes-os.org:/var/lib/qubes/git/aga/qubes-manager
This commit is contained in:
		
						commit
						e84b7a76aa
					
				| @ -55,7 +55,6 @@ class BackupVMsWindow(Ui_Backup, QWizard): | ||||
|     __pyqtSignals__ = ("backup_progress(int)",) | ||||
| 
 | ||||
|     excluded = [] | ||||
|     to_backup = [] | ||||
| 
 | ||||
|     def __init__(self, app, qvm_collection, blk_manager, parent=None): | ||||
|         super(BackupVMsWindow, self).__init__(parent) | ||||
| @ -109,8 +108,10 @@ class BackupVMsWindow(Ui_Backup, QWizard): | ||||
|                 self.excluded.append(vm.name) | ||||
|                 continue | ||||
| 
 | ||||
|             self.to_backup.append(vm.name) | ||||
|             self.select_vms_widget.available_list.addItem(vm.name) | ||||
|             if vm.include_in_backups == True: | ||||
|                 self.select_vms_widget.selected_list.addItem(vm.name) | ||||
|             else: | ||||
|                 self.select_vms_widget.available_list.addItem(vm.name) | ||||
| 
 | ||||
|   | ||||
|     def dev_combobox_activated(self, idx): | ||||
|  | ||||
| @ -88,7 +88,7 @@ class VmStatusIcon(QLabel): | ||||
|         elif vm.is_netvm(): | ||||
|             icon = QIcon (":/netvm.png") | ||||
|         else: | ||||
|             icon = QIcon() | ||||
|             icon = QIcon(vm.label.icon_path) | ||||
| 
 | ||||
|         icon_sz = QSize (VmManagerWindow.row_height * 0.8, VmManagerWindow.row_height * 0.8) | ||||
|         if vm.last_power_state: | ||||
|  | ||||
| @ -80,34 +80,35 @@ class VMSettingsWindow(Ui_SettingsDialog, QDialog): | ||||
| 
 | ||||
|         self.tabWidget.currentChanged.connect(self.current_tab_changed) | ||||
| 
 | ||||
|         self.tabWidget.setTabEnabled(self.tabs_indices["applications"], not vm.is_netvm()) | ||||
|         self.tabWidget.setTabEnabled(self.tabs_indices["firewall"], vm.is_networked() and not (vm.is_netvm() and not vm.is_proxyvm())) | ||||
| 
 | ||||
|         ###### basic tab | ||||
|         self.__init_basic_tab__() | ||||
| 
 | ||||
|         ###### firewall tab | ||||
|         if self.tabWidget.isTabEnabled(self.tabs_indices["firewall"]): | ||||
| 
 | ||||
|         model = QubesFirewallRulesModel() | ||||
|         model.set_vm(vm) | ||||
|         self.set_fw_model(model) | ||||
|             model = QubesFirewallRulesModel() | ||||
|             model.set_vm(vm) | ||||
|             self.set_fw_model(model) | ||||
| 
 | ||||
|          | ||||
|         self.newRuleButton.clicked.connect(self.new_rule_button_pressed) | ||||
|         self.editRuleButton.clicked.connect(self.edit_rule_button_pressed) | ||||
|         self.deleteRuleButton.clicked.connect(self.delete_rule_button_pressed) | ||||
|         self.policyAllowRadioButton.toggled.connect(self.policy_radio_toggled) | ||||
|         self.dnsCheckBox.toggled.connect(self.dns_checkbox_toggled) | ||||
|         self.icmpCheckBox.toggled.connect(self.icmp_checkbox_toggled) | ||||
|             self.newRuleButton.clicked.connect(self.new_rule_button_pressed) | ||||
|             self.editRuleButton.clicked.connect(self.edit_rule_button_pressed) | ||||
|             self.deleteRuleButton.clicked.connect(self.delete_rule_button_pressed) | ||||
|             self.policyAllowRadioButton.toggled.connect(self.policy_radio_toggled) | ||||
|             self.dnsCheckBox.toggled.connect(self.dns_checkbox_toggled) | ||||
|             self.icmpCheckBox.toggled.connect(self.icmp_checkbox_toggled) | ||||
| 
 | ||||
|         ####### devices tab | ||||
|         self.dev_list = MultiSelectWidget(self) | ||||
|         self.devices_layout.addWidget(self.dev_list) | ||||
|   | ||||
|         ####### apps tab | ||||
|         if not vm.is_netvm(): | ||||
|         if self.tabWidget.isTabEnabled(self.tabs_indices["applications"]): | ||||
|             self.app_list = MultiSelectWidget(self) | ||||
|             self.apps_layout.addWidget(self.app_list) | ||||
|             self.AppListManager = AppmenuSelectManager(self.vm, self.app_list) | ||||
|         else: | ||||
|             self.tabWidget.setTabEnabled(self.tabs_indices["applications"], False) | ||||
| 
 | ||||
|     def reject(self): | ||||
|         self.done(0) | ||||
| @ -140,8 +141,10 @@ class VMSettingsWindow(Ui_SettingsDialog, QDialog): | ||||
| 
 | ||||
|     def __save_changes__(self, thread_monitor): | ||||
| 
 | ||||
|         self.fw_model.apply_rules() | ||||
|         self.AppListManager.save_appmenu_select_changes() | ||||
|         if self.tabWidget.isTabEnabled(self.tabs_indices["firewall"]): | ||||
|             self.fw_model.apply_rules() | ||||
|         if self.tabWidget.isTabEnabled(self.tabs_indices["applications"]): | ||||
|             self.AppListManager.save_appmenu_select_changes() | ||||
| 
 | ||||
|         ret = self.__apply_basic_tab__() | ||||
|         if len(ret) > 0 : | ||||
| @ -191,21 +194,41 @@ class VMSettingsWindow(Ui_SettingsDialog, QDialog): | ||||
|         else: | ||||
|             self.template_name.setEnabled(False) | ||||
| 
 | ||||
|         if not self.vm.is_netvm(): | ||||
| 
 | ||||
|         if (not self.vm.is_netvm() or self.vm.is_proxyvm()): | ||||
|             netvm_list = [vm for vm in self.qvm_collection.values() if not vm.internal and vm.is_netvm()] | ||||
|             self.netvm_idx = 0 | ||||
|             self.netvm_idx = -1 | ||||
|             for (i, vm) in enumerate(netvm_list): | ||||
|                 text = vm.name | ||||
|                 if vm is self.qvm_collection.get_default_netvm(): | ||||
|                     text += " (default)" | ||||
|                 if vm.qid == self.vm.netvm.qid: | ||||
|                 if self.vm.netvm is not None and vm.qid == self.vm.netvm.qid: | ||||
|                     self.netvm_idx = i | ||||
|                     text += " (current)" | ||||
|                 self.netVM.insertItem(i, text) | ||||
|             none_text = "none" | ||||
|             if self.vm.netvm is None: | ||||
|                 none_text += " (current)" | ||||
|                 self.netvm_idx = len(netvm_list) | ||||
|             self.netVM.insertItem(len(netvm_list), none_text) | ||||
|             self.netVM.setCurrentIndex(self.netvm_idx) | ||||
|         else: | ||||
|             self.netVM.setEnabled(False) | ||||
| 
 | ||||
|         self.include_in_backups.setChecked(self.vm.include_in_backups) | ||||
| 
 | ||||
|         #type | ||||
|         self.type_label.setText(self.vm.type) | ||||
| 
 | ||||
|         #installed by rpm | ||||
|         text = "Yes" if self.vm.installed_by_rpm == True else "No" | ||||
|         self.rpm_label.setText(text) | ||||
| 
 | ||||
|         #maxmem | ||||
|         self.priv_size.setValue(int(self.vm.maxmem)/1024) | ||||
|         self.priv_size.setMinimum(0) | ||||
|         self.priv_size.setMaximum(QubesHost().memory_total/1024/1024) | ||||
| 
 | ||||
|         #self.vmname.selectAll() | ||||
|         #self.vmname.setFocus() | ||||
| 
 | ||||
| @ -245,9 +268,44 @@ class VMSettingsWindow(Ui_SettingsDialog, QDialog): | ||||
|                 self.qvm_collection.save() | ||||
|                 self.qvm_collection.unlock_db() | ||||
| 
 | ||||
|         return msg | ||||
|         #vm template changed | ||||
|         if self.template_name.currentIndex() != self.template_idx: | ||||
|             new_template_name = self.template_name.currentText() | ||||
|             new_template_name = new_template_name.split(' ')[0] | ||||
| 
 | ||||
|        # template_vm = template_vm_list[dialog.template_name.currentIndex()] | ||||
|             template_vm = self.qvm_collection.get_vm_by_name(new_template_name) | ||||
|             assert (template_vm is not None and template_vm.qid in self.qvm_collection) | ||||
|             assert template_vm.is_template() | ||||
| 
 | ||||
|             self.qvm_collection.lock_db_for_writing() | ||||
|             self.vm.template_vm = template_vm | ||||
|             self.qvm_collection.save() | ||||
|             self.qvm_collection.unlock_db() | ||||
| 
 | ||||
| 
 | ||||
|         #vm netvm changed | ||||
|         if self.netVM.currentIndex() != self.netvm_idx: | ||||
|             new_netvm_name = self.netVM.currentText() | ||||
|             new_netvm_name = new_netvm_name.split(' ')[0] | ||||
| 
 | ||||
|             cmd = ["qvm-prefs", "-s", self.vm.name, "netvm", new_netvm_name] | ||||
|             res = subprocess.check_call(cmd, stderr=subprocess.PIPE) | ||||
| 
 | ||||
|             if res != 0: | ||||
|                 msg.append("Error while setting netVM!") | ||||
| 
 | ||||
|         #include in backups | ||||
|         self.vm.include_in_backups = self.include_in_backups.isChecked() | ||||
| 
 | ||||
|         #maxmem | ||||
|         maxmem = self.priv_size.value()*1024 | ||||
|         if maxmem == 0: | ||||
|             maxmem = 256 | ||||
|         self.vm.maxmem = maxmem | ||||
| 
 | ||||
|         return msg | ||||
|              | ||||
|         # template_vm = template_vm_list[dialog.template_name.currentIndex()] | ||||
|        # allow_networking = dialog.allow_networking.isChecked() | ||||
| 
 | ||||
|     ######### firewall tab related | ||||
|  | ||||
| @ -29,7 +29,7 @@ | ||||
|         <locale language="English" country="UnitedStates"/> | ||||
|        </property> | ||||
|        <property name="currentIndex"> | ||||
|         <number>2</number> | ||||
|         <number>0</number> | ||||
|        </property> | ||||
|        <widget class="QWidget" name="basic_tab"> | ||||
|         <property name="locale"> | ||||
| @ -87,9 +87,9 @@ | ||||
|              <widget class="QComboBox" name="netVM"/> | ||||
|             </item> | ||||
|             <item row="3" column="0" colspan="2"> | ||||
|              <widget class="QCheckBox" name="checkBox"> | ||||
|              <widget class="QCheckBox" name="include_in_backups"> | ||||
|               <property name="enabled"> | ||||
|                <bool>false</bool> | ||||
|                <bool>true</bool> | ||||
|               </property> | ||||
|               <property name="text"> | ||||
|                <string>Include in backups by default</string> | ||||
| @ -105,7 +105,7 @@ | ||||
|          <item> | ||||
|           <widget class="QGroupBox" name="groupBox_4"> | ||||
|            <property name="enabled"> | ||||
|             <bool>false</bool> | ||||
|             <bool>true</bool> | ||||
|            </property> | ||||
|            <property name="title"> | ||||
|             <string>Info</string> | ||||
| @ -160,7 +160,7 @@ | ||||
|          <item> | ||||
|           <widget class="QGroupBox" name="groupBox"> | ||||
|            <property name="enabled"> | ||||
|             <bool>false</bool> | ||||
|             <bool>true</bool> | ||||
|            </property> | ||||
|            <property name="title"> | ||||
|             <string>Disk storage</string> | ||||
| @ -169,7 +169,7 @@ | ||||
|             <item row="0" column="1"> | ||||
|              <widget class="QSpinBox" name="priv_size"> | ||||
|               <property name="enabled"> | ||||
|                <bool>false</bool> | ||||
|                <bool>true</bool> | ||||
|               </property> | ||||
|               <property name="alignment"> | ||||
|                <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Joanna Rutkowska
						Joanna Rutkowska