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)",) |     __pyqtSignals__ = ("backup_progress(int)",) | ||||||
| 
 | 
 | ||||||
|     excluded = [] |     excluded = [] | ||||||
|     to_backup = [] |  | ||||||
| 
 | 
 | ||||||
|     def __init__(self, app, qvm_collection, blk_manager, parent=None): |     def __init__(self, app, qvm_collection, blk_manager, parent=None): | ||||||
|         super(BackupVMsWindow, self).__init__(parent) |         super(BackupVMsWindow, self).__init__(parent) | ||||||
| @ -109,8 +108,10 @@ class BackupVMsWindow(Ui_Backup, QWizard): | |||||||
|                 self.excluded.append(vm.name) |                 self.excluded.append(vm.name) | ||||||
|                 continue |                 continue | ||||||
| 
 | 
 | ||||||
|             self.to_backup.append(vm.name) |             if vm.include_in_backups == True: | ||||||
|             self.select_vms_widget.available_list.addItem(vm.name) |                 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): |     def dev_combobox_activated(self, idx): | ||||||
|  | |||||||
| @ -88,7 +88,7 @@ class VmStatusIcon(QLabel): | |||||||
|         elif vm.is_netvm(): |         elif vm.is_netvm(): | ||||||
|             icon = QIcon (":/netvm.png") |             icon = QIcon (":/netvm.png") | ||||||
|         else: |         else: | ||||||
|             icon = QIcon() |             icon = QIcon(vm.label.icon_path) | ||||||
| 
 | 
 | ||||||
|         icon_sz = QSize (VmManagerWindow.row_height * 0.8, VmManagerWindow.row_height * 0.8) |         icon_sz = QSize (VmManagerWindow.row_height * 0.8, VmManagerWindow.row_height * 0.8) | ||||||
|         if vm.last_power_state: |         if vm.last_power_state: | ||||||
|  | |||||||
| @ -80,34 +80,35 @@ class VMSettingsWindow(Ui_SettingsDialog, QDialog): | |||||||
| 
 | 
 | ||||||
|         self.tabWidget.currentChanged.connect(self.current_tab_changed) |         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 |         ###### basic tab | ||||||
|         self.__init_basic_tab__() |         self.__init_basic_tab__() | ||||||
| 
 | 
 | ||||||
|         ###### firewall tab |         ###### firewall tab | ||||||
|  |         if self.tabWidget.isTabEnabled(self.tabs_indices["firewall"]): | ||||||
| 
 | 
 | ||||||
|         model = QubesFirewallRulesModel() |             model = QubesFirewallRulesModel() | ||||||
|         model.set_vm(vm) |             model.set_vm(vm) | ||||||
|         self.set_fw_model(model) |             self.set_fw_model(model) | ||||||
| 
 | 
 | ||||||
|          |             self.newRuleButton.clicked.connect(self.new_rule_button_pressed) | ||||||
|         self.newRuleButton.clicked.connect(self.new_rule_button_pressed) |             self.editRuleButton.clicked.connect(self.edit_rule_button_pressed) | ||||||
|         self.editRuleButton.clicked.connect(self.edit_rule_button_pressed) |             self.deleteRuleButton.clicked.connect(self.delete_rule_button_pressed) | ||||||
|         self.deleteRuleButton.clicked.connect(self.delete_rule_button_pressed) |             self.policyAllowRadioButton.toggled.connect(self.policy_radio_toggled) | ||||||
|         self.policyAllowRadioButton.toggled.connect(self.policy_radio_toggled) |             self.dnsCheckBox.toggled.connect(self.dns_checkbox_toggled) | ||||||
|         self.dnsCheckBox.toggled.connect(self.dns_checkbox_toggled) |             self.icmpCheckBox.toggled.connect(self.icmp_checkbox_toggled) | ||||||
|         self.icmpCheckBox.toggled.connect(self.icmp_checkbox_toggled) |  | ||||||
| 
 | 
 | ||||||
|         ####### devices tab |         ####### devices tab | ||||||
|         self.dev_list = MultiSelectWidget(self) |         self.dev_list = MultiSelectWidget(self) | ||||||
|         self.devices_layout.addWidget(self.dev_list) |         self.devices_layout.addWidget(self.dev_list) | ||||||
|   |   | ||||||
|         ####### apps tab |         ####### apps tab | ||||||
|         if not vm.is_netvm(): |         if self.tabWidget.isTabEnabled(self.tabs_indices["applications"]): | ||||||
|             self.app_list = MultiSelectWidget(self) |             self.app_list = MultiSelectWidget(self) | ||||||
|             self.apps_layout.addWidget(self.app_list) |             self.apps_layout.addWidget(self.app_list) | ||||||
|             self.AppListManager = AppmenuSelectManager(self.vm, self.app_list) |             self.AppListManager = AppmenuSelectManager(self.vm, self.app_list) | ||||||
|         else: |  | ||||||
|             self.tabWidget.setTabEnabled(self.tabs_indices["applications"], False) |  | ||||||
| 
 | 
 | ||||||
|     def reject(self): |     def reject(self): | ||||||
|         self.done(0) |         self.done(0) | ||||||
| @ -140,8 +141,10 @@ class VMSettingsWindow(Ui_SettingsDialog, QDialog): | |||||||
| 
 | 
 | ||||||
|     def __save_changes__(self, thread_monitor): |     def __save_changes__(self, thread_monitor): | ||||||
| 
 | 
 | ||||||
|         self.fw_model.apply_rules() |         if self.tabWidget.isTabEnabled(self.tabs_indices["firewall"]): | ||||||
|         self.AppListManager.save_appmenu_select_changes() |             self.fw_model.apply_rules() | ||||||
|  |         if self.tabWidget.isTabEnabled(self.tabs_indices["applications"]): | ||||||
|  |             self.AppListManager.save_appmenu_select_changes() | ||||||
| 
 | 
 | ||||||
|         ret = self.__apply_basic_tab__() |         ret = self.__apply_basic_tab__() | ||||||
|         if len(ret) > 0 : |         if len(ret) > 0 : | ||||||
| @ -191,21 +194,41 @@ class VMSettingsWindow(Ui_SettingsDialog, QDialog): | |||||||
|         else: |         else: | ||||||
|             self.template_name.setEnabled(False) |             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()] |             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): |             for (i, vm) in enumerate(netvm_list): | ||||||
|                 text = vm.name |                 text = vm.name | ||||||
|                 if vm is self.qvm_collection.get_default_netvm(): |                 if vm is self.qvm_collection.get_default_netvm(): | ||||||
|                     text += " (default)" |                     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 |                     self.netvm_idx = i | ||||||
|                     text += " (current)" |                     text += " (current)" | ||||||
|                 self.netVM.insertItem(i, text) |                 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) |             self.netVM.setCurrentIndex(self.netvm_idx) | ||||||
|         else: |         else: | ||||||
|             self.netVM.setEnabled(False) |             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.selectAll() | ||||||
|         #self.vmname.setFocus() |         #self.vmname.setFocus() | ||||||
| 
 | 
 | ||||||
| @ -245,9 +268,44 @@ class VMSettingsWindow(Ui_SettingsDialog, QDialog): | |||||||
|                 self.qvm_collection.save() |                 self.qvm_collection.save() | ||||||
|                 self.qvm_collection.unlock_db() |                 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() |        # allow_networking = dialog.allow_networking.isChecked() | ||||||
| 
 | 
 | ||||||
|     ######### firewall tab related |     ######### firewall tab related | ||||||
|  | |||||||
| @ -29,7 +29,7 @@ | |||||||
|         <locale language="English" country="UnitedStates"/> |         <locale language="English" country="UnitedStates"/> | ||||||
|        </property> |        </property> | ||||||
|        <property name="currentIndex"> |        <property name="currentIndex"> | ||||||
|         <number>2</number> |         <number>0</number> | ||||||
|        </property> |        </property> | ||||||
|        <widget class="QWidget" name="basic_tab"> |        <widget class="QWidget" name="basic_tab"> | ||||||
|         <property name="locale"> |         <property name="locale"> | ||||||
| @ -87,9 +87,9 @@ | |||||||
|              <widget class="QComboBox" name="netVM"/> |              <widget class="QComboBox" name="netVM"/> | ||||||
|             </item> |             </item> | ||||||
|             <item row="3" column="0" colspan="2"> |             <item row="3" column="0" colspan="2"> | ||||||
|              <widget class="QCheckBox" name="checkBox"> |              <widget class="QCheckBox" name="include_in_backups"> | ||||||
|               <property name="enabled"> |               <property name="enabled"> | ||||||
|                <bool>false</bool> |                <bool>true</bool> | ||||||
|               </property> |               </property> | ||||||
|               <property name="text"> |               <property name="text"> | ||||||
|                <string>Include in backups by default</string> |                <string>Include in backups by default</string> | ||||||
| @ -105,7 +105,7 @@ | |||||||
|          <item> |          <item> | ||||||
|           <widget class="QGroupBox" name="groupBox_4"> |           <widget class="QGroupBox" name="groupBox_4"> | ||||||
|            <property name="enabled"> |            <property name="enabled"> | ||||||
|             <bool>false</bool> |             <bool>true</bool> | ||||||
|            </property> |            </property> | ||||||
|            <property name="title"> |            <property name="title"> | ||||||
|             <string>Info</string> |             <string>Info</string> | ||||||
| @ -160,7 +160,7 @@ | |||||||
|          <item> |          <item> | ||||||
|           <widget class="QGroupBox" name="groupBox"> |           <widget class="QGroupBox" name="groupBox"> | ||||||
|            <property name="enabled"> |            <property name="enabled"> | ||||||
|             <bool>false</bool> |             <bool>true</bool> | ||||||
|            </property> |            </property> | ||||||
|            <property name="title"> |            <property name="title"> | ||||||
|             <string>Disk storage</string> |             <string>Disk storage</string> | ||||||
| @ -169,7 +169,7 @@ | |||||||
|             <item row="0" column="1"> |             <item row="0" column="1"> | ||||||
|              <widget class="QSpinBox" name="priv_size"> |              <widget class="QSpinBox" name="priv_size"> | ||||||
|               <property name="enabled"> |               <property name="enabled"> | ||||||
|                <bool>false</bool> |                <bool>true</bool> | ||||||
|               </property> |               </property> | ||||||
|               <property name="alignment"> |               <property name="alignment"> | ||||||
|                <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> |                <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Joanna Rutkowska
						Joanna Rutkowska