Added handling for supported services to VM settings
Slight change to layout of services tab, made it hopefully less confusing. Dropdown will now list services supported by this VM and its template, not just an assortment of hardcoded services.
This commit is contained in:
parent
250cfd4966
commit
5f86660305
@ -209,8 +209,6 @@ class VMSettingsWindow(ui_settingsdlg.Ui_SettingsDialog, QtWidgets.QDialog):
|
|||||||
|
|
||||||
####### services tab
|
####### services tab
|
||||||
self.__init_services_tab__()
|
self.__init_services_tab__()
|
||||||
self.service_line_edit.lineEdit().returnPressed.connect(
|
|
||||||
self.__add_service__)
|
|
||||||
self.add_srv_button.clicked.connect(self.__add_service__)
|
self.add_srv_button.clicked.connect(self.__add_service__)
|
||||||
self.remove_srv_button.clicked.connect(self.__remove_service__)
|
self.remove_srv_button.clicked.connect(self.__remove_service__)
|
||||||
|
|
||||||
@ -1074,35 +1072,49 @@ class VMSettingsWindow(ui_settingsdlg.Ui_SettingsDialog, QtWidgets.QDialog):
|
|||||||
self.services_list.addItem(item)
|
self.services_list.addItem(item)
|
||||||
self.new_srv_dict[service] = self.vm.features[feature]
|
self.new_srv_dict[service] = self.vm.features[feature]
|
||||||
|
|
||||||
# add suggested services
|
self.service_line_edit.addItem("")
|
||||||
self.service_line_edit.addItem('clocksync')
|
|
||||||
self.service_line_edit.addItem('crond')
|
supported_services = []
|
||||||
self.service_line_edit.addItem('cups')
|
service_prefix = "supported-service."
|
||||||
self.service_line_edit.addItem('disable-default-route')
|
|
||||||
self.service_line_edit.addItem('disable-dns-server')
|
for feature in self.vm.features:
|
||||||
self.service_line_edit.addItem('network-manager')
|
if feature.startswith(service_prefix):
|
||||||
self.service_line_edit.addItem('qubes-firewall')
|
supported_services.append(feature[len(service_prefix):])
|
||||||
self.service_line_edit.addItem('qubes-network')
|
if getattr(self.vm, "template", None):
|
||||||
self.service_line_edit.addItem('qubes-update-check')
|
for feature in self.vm.template.features:
|
||||||
self.service_line_edit.addItem('qubes-updates-proxy')
|
if feature.startswith(service_prefix):
|
||||||
self.service_line_edit.addItem('qubes-yum-proxy')
|
supported_services.add(feature[len(service_prefix):])
|
||||||
self.service_line_edit.addItem('updates-proxy-setup')
|
|
||||||
self.service_line_edit.addItem('yum-proxy-setup')
|
for service in sorted(supported_services):
|
||||||
|
self.service_line_edit.addItem(service)
|
||||||
|
|
||||||
|
self.service_line_edit.addItem(self.tr('(custom...)'))
|
||||||
self.service_line_edit.setEditText("")
|
self.service_line_edit.setEditText("")
|
||||||
|
|
||||||
def __add_service__(self):
|
def __add_service__(self):
|
||||||
srv = str(self.service_line_edit.currentText()).strip()
|
srv = str(self.service_line_edit.currentText()).strip()
|
||||||
|
|
||||||
if srv != "":
|
if srv != "":
|
||||||
|
if self.service_line_edit.currentIndex() == \
|
||||||
|
len(self.service_line_edit) - 1:
|
||||||
|
(custom_name, ok) = QtWidgets.QInputDialog.getText(
|
||||||
|
self, self.tr("Custom service name"),
|
||||||
|
self.tr(
|
||||||
|
"Name of the service:"))
|
||||||
|
if ok:
|
||||||
|
srv = custom_name.strip()
|
||||||
|
else:
|
||||||
|
return
|
||||||
if srv in self.new_srv_dict:
|
if srv in self.new_srv_dict:
|
||||||
QtWidgets.QMessageBox.information(
|
QtWidgets.QMessageBox.information(
|
||||||
self,
|
self,
|
||||||
'',
|
'',
|
||||||
self.tr('Service already on the list!'))
|
self.tr('Service already on the list!'))
|
||||||
else:
|
return
|
||||||
item = QtWidgets.QListWidgetItem(srv)
|
item = QtWidgets.QListWidgetItem(srv)
|
||||||
item.setCheckState(ui_settingsdlg.QtCore.Qt.Checked)
|
item.setCheckState(ui_settingsdlg.QtCore.Qt.Checked)
|
||||||
self.services_list.addItem(item)
|
self.services_list.addItem(item)
|
||||||
self.new_srv_dict[srv] = True
|
self.new_srv_dict[srv] = True
|
||||||
|
|
||||||
def __remove_service__(self):
|
def __remove_service__(self):
|
||||||
item = self.services_list.currentItem()
|
item = self.services_list.currentItem()
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
<locale language="English" country="UnitedStates"/>
|
<locale language="English" country="UnitedStates"/>
|
||||||
</property>
|
</property>
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>1</number>
|
<number>5</number>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="basic_tab">
|
<widget class="QWidget" name="basic_tab">
|
||||||
<property name="locale">
|
<property name="locale">
|
||||||
@ -1433,47 +1433,85 @@ The qube must be running to disable seamless mode; this setting is not persisten
|
|||||||
<string>Services</string>
|
<string>Services</string>
|
||||||
</attribute>
|
</attribute>
|
||||||
<layout class="QGridLayout" name="gridLayout_5">
|
<layout class="QGridLayout" name="gridLayout_5">
|
||||||
<item row="6" column="1">
|
<item row="8" column="0" rowspan="2">
|
||||||
<spacer name="verticalSpacer_5">
|
<widget class="QListWidget" name="services_list">
|
||||||
<property name="orientation">
|
<property name="sizePolicy">
|
||||||
<enum>Qt::Vertical</enum>
|
<sizepolicy hsizetype="Expanding" vsizetype="Minimum">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeHint" stdset="0">
|
</widget>
|
||||||
<size>
|
|
||||||
<width>20</width>
|
|
||||||
<height>40</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="0" rowspan="2">
|
<item row="11" column="0" colspan="2">
|
||||||
<widget class="QListWidget" name="services_list"/>
|
|
||||||
</item>
|
|
||||||
<item row="7" column="0" colspan="2">
|
|
||||||
<widget class="QLabel" name="label_7">
|
<widget class="QLabel" name="label_7">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Checked services will be turned on.</string>
|
<string>Checked services will be turned on.</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="8" column="0" colspan="2">
|
<item row="13" column="0" colspan="2">
|
||||||
<widget class="QLabel" name="label_8">
|
|
||||||
<property name="text">
|
|
||||||
<string>Unchecked services will be turned off.</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="9" column="0" colspan="2">
|
|
||||||
<widget class="QLabel" name="label_9">
|
<widget class="QLabel" name="label_9">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Unlisted services will follow default settings.</string>
|
<string>Unlisted services will follow default settings.</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="1">
|
<item row="12" column="0" colspan="2">
|
||||||
|
<widget class="QLabel" name="label_8">
|
||||||
|
<property name="text">
|
||||||
|
<string>Unchecked services will be turned off.</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_7">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_6">
|
||||||
|
<property name="text">
|
||||||
|
<string>Select a service:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QComboBox" name="service_line_edit">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Services listed here are explicitly supported by the qube. Additional services may be added with the '+' button on the right.</string>
|
||||||
|
</property>
|
||||||
|
<property name="currentText">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="add_srv_button">
|
||||||
|
<property name="text">
|
||||||
|
<string>Add</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../resources.qrc">
|
||||||
|
<normaloff>:/add.png</normaloff>:/add.png</iconset>
|
||||||
|
</property>
|
||||||
|
<property name="iconSize">
|
||||||
|
<size>
|
||||||
|
<width>24</width>
|
||||||
|
<height>24</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item row="10" column="0">
|
||||||
<widget class="QPushButton" name="remove_srv_button">
|
<widget class="QPushButton" name="remove_srv_button">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string/>
|
<string>Remove service</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="icon">
|
<property name="icon">
|
||||||
<iconset resource="../resources.qrc">
|
<iconset resource="../resources.qrc">
|
||||||
@ -1487,32 +1525,18 @@ The qube must be running to disable seamless mode; this setting is not persisten
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="0">
|
<item row="9" column="1">
|
||||||
<widget class="QComboBox" name="service_line_edit">
|
<spacer name="verticalSpacer_5">
|
||||||
<property name="toolTip">
|
<property name="orientation">
|
||||||
<string>Services listed here are only base Qubes services - other services may be installed and implemented.</string>
|
<enum>Qt::Vertical</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="editable">
|
<property name="sizeHint" stdset="0">
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="1">
|
|
||||||
<widget class="QPushButton" name="add_srv_button">
|
|
||||||
<property name="text">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
<property name="icon">
|
|
||||||
<iconset resource="../resources.qrc">
|
|
||||||
<normaloff>:/add.png</normaloff>:/add.png</iconset>
|
|
||||||
</property>
|
|
||||||
<property name="iconSize">
|
|
||||||
<size>
|
<size>
|
||||||
<width>24</width>
|
<width>20</width>
|
||||||
<height>24</height>
|
<height>40</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
@ -1568,10 +1592,7 @@ The qube must be running to disable seamless mode; this setting is not persisten
|
|||||||
<tabstop>temp_full_access_time</tabstop>
|
<tabstop>temp_full_access_time</tabstop>
|
||||||
<tabstop>no_strict_reset_button</tabstop>
|
<tabstop>no_strict_reset_button</tabstop>
|
||||||
<tabstop>refresh_apps_button</tabstop>
|
<tabstop>refresh_apps_button</tabstop>
|
||||||
<tabstop>service_line_edit</tabstop>
|
|
||||||
<tabstop>add_srv_button</tabstop>
|
|
||||||
<tabstop>services_list</tabstop>
|
<tabstop>services_list</tabstop>
|
||||||
<tabstop>remove_srv_button</tabstop>
|
|
||||||
</tabstops>
|
</tabstops>
|
||||||
<resources>
|
<resources>
|
||||||
<include location="../resources.qrc"/>
|
<include location="../resources.qrc"/>
|
||||||
|
Loading…
Reference in New Issue
Block a user