summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--virtManager/addhardware.py97
-rw-r--r--virtManager/autodrawer.py14
-rw-r--r--virtManager/choosecd.py14
-rw-r--r--virtManager/create.py45
-rw-r--r--virtManager/createinterface.py8
-rw-r--r--virtManager/createnet.py18
-rw-r--r--virtManager/createpool.py4
-rw-r--r--virtManager/createvol.py8
-rw-r--r--virtManager/delete.py6
-rw-r--r--virtManager/details.py51
-rw-r--r--virtManager/fsdetails.py14
-rw-r--r--virtManager/host.py14
-rw-r--r--virtManager/manager.py11
-rw-r--r--virtManager/preferences.py18
-rw-r--r--virtManager/sharedui.py (renamed from virtManager/uihelpers.py)120
-rw-r--r--virtManager/snapshots.py10
-rw-r--r--virtManager/storagebrowse.py10
-rw-r--r--virtManager/systray.py4
-rw-r--r--virtManager/uiutil.py117
19 files changed, 303 insertions, 280 deletions
diff --git a/virtManager/addhardware.py b/virtManager/addhardware.py
index 06f9596a..8719829a 100644
--- a/virtManager/addhardware.py
+++ b/virtManager/addhardware.py
@@ -34,7 +34,8 @@ from virtinst import (VirtualChannelDevice, VirtualParallelDevice,
VirtualTPMDevice, VirtualPanicDevice)
from virtinst import VirtualController
-from virtManager import uihelpers
+from virtManager import sharedui
+from virtManager import uiutil
from virtManager.fsdetails import vmmFSDetails
from virtManager.asyncjob import vmmAsyncJob
from virtManager.storagebrowse import vmmStorageBrowser
@@ -176,7 +177,7 @@ class vmmAddHardware(vmmGObjectUI):
# Virtual network list
net_list = self.widget("net-list")
bridge_box = self.widget("net-bridge-box")
- uihelpers.build_network_list(net_list, bridge_box)
+ sharedui.build_network_list(net_list, bridge_box)
# Network model list
netmodel_list = self.widget("net-model")
@@ -187,7 +188,7 @@ class vmmAddHardware(vmmGObjectUI):
# [bus, label]
model = Gtk.ListStore(str, str)
widget.set_model(model)
- uihelpers.set_combo_text_column(widget, 1)
+ uiutil.set_combo_text_column(widget, 1)
# Disk device type
target_list = self.widget("config-storage-devtype")
@@ -212,7 +213,7 @@ class vmmAddHardware(vmmGObjectUI):
# Sparse tooltip
sparse_info = self.widget("config-storage-nosparse-info")
- uihelpers.set_sparse_tooltip(sparse_info)
+ sharedui.set_sparse_tooltip(sparse_info)
# Input device type
input_list = self.widget("input-type")
@@ -275,7 +276,7 @@ class vmmAddHardware(vmmGObjectUI):
lst = self.widget("char-target-type")
model = Gtk.ListStore(str, str)
lst.set_model(model)
- uihelpers.set_combo_text_column(lst, 1)
+ uiutil.set_combo_text_column(lst, 1)
if self.conn.is_qemu():
model.append(["virtio", "virtio"])
else:
@@ -285,7 +286,7 @@ class vmmAddHardware(vmmGObjectUI):
lst = self.widget("char-target-name")
model = Gtk.ListStore(str)
lst.set_model(model)
- uihelpers.set_combo_text_column(lst, 0)
+ uiutil.set_combo_text_column(lst, 0)
for n in VirtualChannelDevice.CHANNEL_NAMES:
model.append([n])
@@ -293,7 +294,7 @@ class vmmAddHardware(vmmGObjectUI):
lst = self.widget("char-device-type")
model = Gtk.ListStore(str, str)
lst.set_model(model)
- uihelpers.set_combo_text_column(lst, 1)
+ uiutil.set_combo_text_column(lst, 1)
# Watchdog widgets
combo = self.widget("watchdog-model")
@@ -404,7 +405,7 @@ class vmmAddHardware(vmmGObjectUI):
# Storage init
label_widget = self.widget("phys-hd-label")
label_widget.set_markup("")
- uihelpers.update_host_space(self.conn, label_widget)
+ sharedui.update_host_space(self.conn, label_widget)
self.widget("config-storage-create").set_active(True)
self.widget("config-storage-size").set_value(8)
@@ -429,7 +430,7 @@ class vmmAddHardware(vmmGObjectUI):
net_list = self.widget("net-list")
net_warn = self.widget("net-list-warn")
- uihelpers.populate_network_list(net_list, self.conn)
+ sharedui.populate_network_list(net_list, self.conn)
error = self.conn.netdev_error
if error:
@@ -542,7 +543,7 @@ class vmmAddHardware(vmmGObjectUI):
def build_video_combo(vm, combo, no_default=None):
model = Gtk.ListStore(str, str)
combo.set_model(model)
- uihelpers.set_combo_text_column(combo, 1)
+ uiutil.set_combo_text_column(combo, 1)
combo.get_model().set_sort_column_id(1, Gtk.SortType.ASCENDING)
vmmAddHardware.populate_video_combo(vm, combo, no_default)
@@ -551,7 +552,7 @@ class vmmAddHardware(vmmGObjectUI):
def build_sound_combo(vm, combo, no_default=False):
model = Gtk.ListStore(str)
combo.set_model(model)
- uihelpers.set_combo_text_column(combo, 0)
+ uiutil.set_combo_text_column(combo, 0)
model.set_sort_column_id(0, Gtk.SortType.ASCENDING)
stable_defaults = vm.stable_defaults()
@@ -573,7 +574,7 @@ class vmmAddHardware(vmmGObjectUI):
ignore = vm
model = Gtk.ListStore(str)
combo.set_model(model)
- uihelpers.set_combo_text_column(combo, 0)
+ uiutil.set_combo_text_column(combo, 0)
model.set_sort_column_id(0, Gtk.SortType.ASCENDING)
for m in virtinst.VirtualWatchdog.MODELS:
@@ -588,7 +589,7 @@ class vmmAddHardware(vmmGObjectUI):
ignore = vm
model = Gtk.ListStore(str, str)
combo.set_model(model)
- uihelpers.set_combo_text_column(combo, 1)
+ uiutil.set_combo_text_column(combo, 1)
model.set_sort_column_id(0, Gtk.SortType.ASCENDING)
for m in virtinst.VirtualWatchdog.ACTIONS:
@@ -615,7 +616,7 @@ class vmmAddHardware(vmmGObjectUI):
def build_network_source_mode_combo(vm, combo):
model = Gtk.ListStore(str, str)
combo.set_model(model)
- uihelpers.set_combo_text_column(combo, 1)
+ uiutil.set_combo_text_column(combo, 1)
vmmAddHardware.populate_network_source_mode_combo(vm, combo)
combo.set_active(0)
@@ -645,7 +646,7 @@ class vmmAddHardware(vmmGObjectUI):
def build_network_model_combo(vm, combo):
model = Gtk.ListStore(str, str)
combo.set_model(model)
- uihelpers.set_combo_text_column(combo, 1)
+ uiutil.set_combo_text_column(combo, 1)
model.set_sort_column_id(0, Gtk.SortType.ASCENDING)
vmmAddHardware.populate_network_model_combo(vm, combo)
@@ -665,7 +666,7 @@ class vmmAddHardware(vmmGObjectUI):
def build_smartcard_mode_combo(vm, combo):
model = Gtk.ListStore(str, str)
combo.set_model(model)
- uihelpers.set_combo_text_column(combo, 1)
+ uiutil.set_combo_text_column(combo, 1)
model.set_sort_column_id(0, Gtk.SortType.ASCENDING)
vmmAddHardware.populate_smartcard_mode_combo(vm, combo)
@@ -693,7 +694,7 @@ class vmmAddHardware(vmmGObjectUI):
def build_redir_type_combo(vm, combo):
model = Gtk.ListStore(str, str, bool)
combo.set_model(model)
- uihelpers.set_combo_text_column(combo, 1)
+ uiutil.set_combo_text_column(combo, 1)
vmmAddHardware.populate_redir_type_combo(vm, combo)
combo.set_active(0)
@@ -712,7 +713,7 @@ class vmmAddHardware(vmmGObjectUI):
def build_tpm_type_combo(vm, combo):
model = Gtk.ListStore(str, str)
combo.set_model(model)
- uihelpers.set_combo_text_column(combo, 1)
+ uiutil.set_combo_text_column(combo, 1)
model.set_sort_column_id(0, Gtk.SortType.ASCENDING)
vmmAddHardware.populate_tpm_type_combo(vm, combo)
@@ -731,7 +732,7 @@ class vmmAddHardware(vmmGObjectUI):
ignore = vm
model = Gtk.ListStore(str, str)
combo.set_model(model)
- uihelpers.set_combo_text_column(combo, 1)
+ uiutil.set_combo_text_column(combo, 1)
if not no_default:
model.append([None, "default"])
@@ -750,7 +751,7 @@ class vmmAddHardware(vmmGObjectUI):
ignore = vm
model = Gtk.ListStore(str, str)
combo.set_model(model)
- uihelpers.set_combo_text_column(combo, 1)
+ uiutil.set_combo_text_column(combo, 1)
combo.set_active(-1)
for m in virtinst.VirtualDisk.cache_types:
@@ -764,7 +765,7 @@ class vmmAddHardware(vmmGObjectUI):
ignore = vm
model = Gtk.ListStore(str, str)
combo.set_model(model)
- uihelpers.set_combo_text_column(combo, 1)
+ uiutil.set_combo_text_column(combo, 1)
model.set_sort_column_id(0, Gtk.SortType.ASCENDING)
combo.set_active(-1)
@@ -780,7 +781,7 @@ class vmmAddHardware(vmmGObjectUI):
ignore = vm
model = Gtk.ListStore(str, str)
combo.set_model(model)
- uihelpers.set_combo_text_column(combo, 1)
+ uiutil.set_combo_text_column(combo, 1)
model.set_sort_column_id(1, Gtk.SortType.ASCENDING)
if not no_default:
@@ -791,7 +792,7 @@ class vmmAddHardware(vmmGObjectUI):
def populate_disk_format_combo(vm, combo, create):
model = Gtk.ListStore(str)
combo.set_model(model)
- uihelpers.set_combo_text_column(combo, 0)
+ uiutil.set_combo_text_column(combo, 0)
formats = ["raw", "qcow2", "qed"]
no_create_formats = []
@@ -901,7 +902,7 @@ class vmmAddHardware(vmmGObjectUI):
if len(model) == 0:
model.append([_("No Devices Available"), None, None, None])
- uihelpers.set_list_selection(devlist, 0)
+ uiutil.set_list_selection(devlist, 0)
def populate_disk_format_combo_wrapper(self, create):
format_list = self.widget("config-storage-format")
@@ -993,7 +994,7 @@ class vmmAddHardware(vmmGObjectUI):
sparse = not self.widget("config-storage-nosparse").get_active()
if self.is_default_storage():
- path = uihelpers.get_default_path(self.conn,
+ path = sharedui.get_default_path(self.conn,
self.vm.get_name(),
collidelist=collidelist)
logging.debug("Default storage path is: %s", path)
@@ -1006,7 +1007,7 @@ class vmmAddHardware(vmmGObjectUI):
# See if the ideal disk path (/default/pool/vmname.img)
# exists, and if unused, prompt the use for using it
conn = self.conn.get_backend()
- ideal = uihelpers.get_ideal_path(self.conn, self.vm.get_name())
+ ideal = sharedui.get_ideal_path(self.conn, self.vm.get_name())
if ideal in collidelist:
return diskpath
do_exist = False
@@ -1087,7 +1088,7 @@ class vmmAddHardware(vmmGObjectUI):
net_list = self.widget("net-list")
bridge_ent = self.widget("net-bridge")
- net_type, net_src = uihelpers.get_network_selection(net_list,
+ net_type, net_src = sharedui.get_network_selection(net_list,
bridge_ent)
return net_type, net_src
@@ -1124,7 +1125,7 @@ class vmmAddHardware(vmmGObjectUI):
return usb_info
def get_config_host_device_info(self):
- devrow = uihelpers.get_list_selection(self.widget("host-device"))
+ devrow = uiutil.get_list_selection(self.widget("host-device"))
if not devrow:
return []
return devrow
@@ -1229,10 +1230,10 @@ class vmmAddHardware(vmmGObjectUI):
################
def set_hw_selection(self, page):
- uihelpers.set_list_selection(self.widget("hw-list"), page)
+ uiutil.set_list_selection(self.widget("hw-list"), page)
def get_hw_selection(self):
- return uihelpers.get_list_selection(self.widget("hw-list"))
+ return uiutil.get_list_selection(self.widget("hw-list"))
def update_char_device_type_model(self):
stable_blacklist = ["pipe", "udp"]
@@ -1316,7 +1317,7 @@ class vmmAddHardware(vmmGObjectUI):
is_auto = self.widget("graphics-port-auto").get_active()
is_spice = (gtype == "spice")
- uihelpers.set_grid_row_visible(self.widget("graphics-port-box"),
+ uiutil.set_grid_row_visible(self.widget("graphics-port-box"),
not is_auto)
self.widget("graphics-port-box").set_visible(not is_auto)
self.widget("graphics-tlsport-box").set_visible(is_spice)
@@ -1404,7 +1405,7 @@ class vmmAddHardware(vmmGObjectUI):
for param_name, widget_name in tpm_widget_mappings.items():
make_visible = self._dev.supports_property(param_name)
- uihelpers.set_grid_row_visible(self.widget(widget_name + "-label"),
+ uiutil.set_grid_row_visible(self.widget(widget_name + "-label"),
make_visible)
def change_char_auto_socket(self, src):
@@ -1412,8 +1413,8 @@ class vmmAddHardware(vmmGObjectUI):
return
doshow = not src.get_active()
- uihelpers.set_grid_row_visible(self.widget("char-path-label"), doshow)
- uihelpers.set_grid_row_visible(self.widget("char-mode-label"), doshow)
+ uiutil.set_grid_row_visible(self.widget("char-path-label"), doshow)
+ uiutil.set_grid_row_visible(self.widget("char-mode-label"), doshow)
def change_char_target_name(self, src):
if not src.get_visible():
@@ -1426,7 +1427,7 @@ class vmmAddHardware(vmmGObjectUI):
elif (text == VirtualChannelDevice.CHANNEL_NAME_QEMUGA or
text == VirtualChannelDevice.CHANNEL_NAME_LIBGUESTFS):
settype = "unix"
- uihelpers.set_row_selection(self.widget("char-device-type"), settype)
+ uiutil.set_row_selection(self.widget("char-device-type"), settype)
def change_char_device_type(self, src):
idx = src.get_active()
@@ -1454,14 +1455,14 @@ class vmmAddHardware(vmmGObjectUI):
for param_name, widget_name in char_widget_mappings.items():
make_visible = self._dev.supports_property(param_name)
- uihelpers.set_grid_row_visible(self.widget(widget_name + "-label"),
+ uiutil.set_grid_row_visible(self.widget(widget_name + "-label"),
make_visible)
- uihelpers.set_grid_row_visible(
+ uiutil.set_grid_row_visible(
self.widget("char-target-name-label"), ischan)
- uihelpers.set_grid_row_visible(
+ uiutil.set_grid_row_visible(
self.widget("char-target-type-label"), iscon)
- uihelpers.set_grid_row_visible(
+ uiutil.set_grid_row_visible(
self.widget("char-auto-socket-label"), show_auto)
self.widget("char-auto-socket").emit("toggled")
@@ -1475,7 +1476,7 @@ class vmmAddHardware(vmmGObjectUI):
return
showhost = src.get_model()[src.get_active()][2]
- uihelpers.set_grid_row_visible(self.widget("usbredir-host-box"),
+ uiutil.set_grid_row_visible(self.widget("usbredir-host-box"),
showhost)
def change_rng(self, ignore1):
@@ -1484,8 +1485,8 @@ class vmmAddHardware(vmmGObjectUI):
return
is_egd = model == virtinst.VirtualRNGDevice.TYPE_EGD
- uihelpers.set_grid_row_visible(self.widget("rng-device"), not is_egd)
- uihelpers.set_grid_row_visible(self.widget("rng-backend-type"), is_egd)
+ uiutil.set_grid_row_visible(self.widget("rng-device"), not is_egd)
+ uiutil.set_grid_row_visible(self.widget("rng-backend-type"), is_egd)
backend_type = self.get_config_rng_backend_type()
backend_mode = self.get_config_rng_backend_mode()
@@ -1493,13 +1494,13 @@ class vmmAddHardware(vmmGObjectUI):
bind = backend_mode == virtinst.VirtualRNGDevice.BACKEND_MODE_BIND
v = is_egd and (udp or bind)
- uihelpers.set_grid_row_visible(self.widget("rng-bind-host-box"), v)
+ uiutil.set_grid_row_visible(self.widget("rng-bind-host-box"), v)
v = is_egd and (udp or not bind)
- uihelpers.set_grid_row_visible(self.widget("rng-connect-host-box"), v)
+ uiutil.set_grid_row_visible(self.widget("rng-connect-host-box"), v)
v = is_egd and not udp
- uihelpers.set_grid_row_visible(self.widget("rng-backend-mode"), v)
+ uiutil.set_grid_row_visible(self.widget("rng-backend-mode"), v)
######################
@@ -1659,7 +1660,7 @@ class vmmAddHardware(vmmGObjectUI):
# Make sure default pool is running
if self.is_default_storage():
- ret = uihelpers.check_default_pool_active(self.err, self.conn)
+ ret = sharedui.check_default_pool_active(self.err, self.conn)
if not ret:
return False
@@ -1721,7 +1722,7 @@ class vmmAddHardware(vmmGObjectUI):
if not res:
return False
- uihelpers.check_path_search_for_qemu(self.err, self.conn, disk.path)
+ sharedui.check_path_search_for_qemu(self.err, self.conn, disk.path)
# Add a SCSI controller with model virtio-scsi if needed
disk.vmm_controller = None
@@ -1765,7 +1766,7 @@ class vmmAddHardware(vmmGObjectUI):
return self.err.val_err(_("Invalid MAC address"),
_("A MAC address must be entered."))
- ret = uihelpers.validate_network(self.err, self.conn,
+ ret = sharedui.validate_network(self.err, self.conn,
nettype, devname, mac, model)
if ret is False:
return False
diff --git a/virtManager/autodrawer.py b/virtManager/autodrawer.py
index e50f1c3b..abf0397d 100644
--- a/virtManager/autodrawer.py
+++ b/virtManager/autodrawer.py
@@ -28,7 +28,7 @@ from gi.repository import GLib
from gi.repository import Gtk
# pylint: enable=E0611
-from virtManager import uihelpers
+from virtManager import uiutil
# pylint: disable=E1101
# pylint can't detect functions we inheirit from Gtk, ex:
@@ -92,10 +92,10 @@ class OverBox(Gtk.Box):
actual_min = self._get_actual_min()
if self.overWidget:
- expand = uihelpers.child_get_property(self, self.overWidget,
+ expand = uiutil.child_get_property(self, self.overWidget,
"expand")
- fill = uihelpers.child_get_property(self, self.overWidget, "fill")
- padding = uihelpers.child_get_property(self, self.overWidget,
+ fill = uiutil.child_get_property(self, self.overWidget, "fill")
+ padding = uiutil.child_get_property(self, self.overWidget,
"padding")
if expand and fill:
@@ -257,9 +257,9 @@ class OverBox(Gtk.Box):
self.overWidth = over.width
self.overHeight = over.height
- expand = uihelpers.child_get_property(self, self.overWidget, "expand")
- fill = uihelpers.child_get_property(self, self.overWidget, "fill")
- padding = uihelpers.child_get_property(self, self.overWidget, "padding")
+ expand = uiutil.child_get_property(self, self.overWidget, "expand")
+ fill = uiutil.child_get_property(self, self.overWidget, "fill")
+ padding = uiutil.child_get_property(self, self.overWidget, "padding")
if expand or fill:
wpad = 0
diff --git a/virtManager/choosecd.py b/virtManager/choosecd.py
index 735afee8..32ac204d 100644
--- a/virtManager/choosecd.py
+++ b/virtManager/choosecd.py
@@ -18,13 +18,13 @@
# MA 02110-1301 USA.
#
+import logging
+
# pylint: disable=E0611
from gi.repository import GObject
# pylint: enable=E0611
-import logging
-
-import virtManager.uihelpers as uihelpers
+from virtManager import sharedui
from virtManager.baseclass import vmmGObjectUI
from virtManager.mediadev import MEDIA_FLOPPY
from virtManager.storagebrowse import vmmStorageBrowser
@@ -103,7 +103,7 @@ class vmmChooseCD(vmmGObjectUI):
idx = cd.get_active()
model = cd.get_model()
if idx != -1:
- path = model[idx][uihelpers.OPTICAL_DEV_PATH]
+ path = model[idx][sharedui.OPTICAL_DEV_PATH]
if path == "" or path is None:
return self.err.val_err(_("Invalid Media Path"),
@@ -123,7 +123,7 @@ class vmmChooseCD(vmmGObjectUI):
if not res:
return False
- uihelpers.check_path_search_for_qemu(self.err, self.conn, path)
+ sharedui.check_path_search_for_qemu(self.err, self.conn, path)
self.emit("cdrom-chosen", self.disk, path)
self.close()
@@ -149,8 +149,8 @@ class vmmChooseCD(vmmGObjectUI):
warn = self.widget("cd-path-warn")
error = self.conn.mediadev_error
- uihelpers.build_mediadev_combo(widget)
- uihelpers.populate_mediadev_combo(self.conn, widget, self.media_type)
+ sharedui.build_mediadev_combo(widget)
+ sharedui.populate_mediadev_combo(self.conn, widget, self.media_type)
if error:
warn.show()
diff --git a/virtManager/create.py b/virtManager/create.py
index cdc30ae4..da4802b8 100644
--- a/virtManager/create.py
+++ b/virtManager/create.py
@@ -31,7 +31,8 @@ from gi.repository import Gdk
import virtinst
from virtinst import util
-from virtManager import uihelpers
+from virtManager import sharedui
+from virtManager import uiutil
from virtManager.mediadev import MEDIA_CDROM
from virtManager.baseclass import vmmGObjectUI
from virtManager.asyncjob import vmmAsyncJob
@@ -291,13 +292,13 @@ class vmmCreate(vmmGObjectUI):
# Physical CD-ROM model
cd_list = self.widget("install-local-cdrom-combo")
- uihelpers.build_mediadev_combo(cd_list)
+ sharedui.build_mediadev_combo(cd_list)
# Networking
# [ interface type, device name, label, sensitive ]
net_list = self.widget("config-netdev")
bridge_box = self.widget("config-netdev-bridge-box")
- uihelpers.build_network_list(net_list, bridge_box)
+ sharedui.build_network_list(net_list, bridge_box)
# Archtecture
# [value, label]
@@ -327,7 +328,7 @@ class vmmCreate(vmmGObjectUI):
# Sparse tooltip
sparse_info = self.widget("config-storage-nosparse-info")
- uihelpers.set_sparse_tooltip(sparse_info)
+ sharedui.set_sparse_tooltip(sparse_info)
def reset_state(self, urihint=None):
self.failed_guest = None
@@ -398,7 +399,7 @@ class vmmCreate(vmmGObjectUI):
# Storage
label_widget = self.widget("phys-hd-label")
label_widget.set_markup("")
- uihelpers.update_host_space(self.conn, label_widget)
+ sharedui.update_host_space(self.conn, label_widget)
self.widget("enable-storage").set_active(True)
self.widget("config-storage-create").set_active(True)
self.widget("config-storage-size").set_value(8)
@@ -502,7 +503,7 @@ class vmmCreate(vmmGObjectUI):
"microblaze" in self.capsguest.arch or
"ppc" in self.capsguest.arch)
self.widget("config-kernel-box").set_visible(show_kernel)
- uihelpers.set_grid_row_visible(self.widget("config-dtb"), show_dtb)
+ uiutil.set_grid_row_visible(self.widget("config-dtb"), show_dtb)
def set_conn_state(self):
# Update all state that has some dependency on the current connection
@@ -536,7 +537,7 @@ class vmmCreate(vmmGObjectUI):
show_arch = (self.widget("config-hv").get_visible() or
self.widget("config-arch").get_visible() or
self.widget("config-machine").get_visible())
- uihelpers.set_grid_row_visible(self.widget("arch-expander"), show_arch)
+ uiutil.set_grid_row_visible(self.widget("arch-expander"), show_arch)
if self.conn.is_xen():
if self.conn.caps.hw_virt_supported():
@@ -565,7 +566,7 @@ class vmmCreate(vmmGObjectUI):
cdrom_list = self.widget("install-local-cdrom-combo")
cdrom_warn = self.widget("install-local-cdrom-warn")
- sigs = uihelpers.populate_mediadev_combo(self.conn, cdrom_list,
+ sigs = sharedui.populate_mediadev_combo(self.conn, cdrom_list,
MEDIA_CDROM)
self.conn_signals.extend(sigs)
@@ -636,7 +637,7 @@ class vmmCreate(vmmGObjectUI):
net_warn_box.hide()
net_expander.set_expanded(False)
- do_warn = uihelpers.populate_network_list(net_list, self.conn, False)
+ do_warn = sharedui.populate_network_list(net_list, self.conn, False)
self.set_net_warn(self.conn.netdev_error or do_warn,
self.conn.netdev_error, True)
@@ -697,7 +698,7 @@ class vmmCreate(vmmGObjectUI):
model.append([label, gtype])
show = bool(guests)
- uihelpers.set_grid_row_visible(hv_list, show)
+ uiutil.set_grid_row_visible(hv_list, show)
if show:
hv_list.set_active(default)
@@ -740,7 +741,7 @@ class vmmCreate(vmmGObjectUI):
model.append([arch, pretty_arch(arch)])
show = not (len(archs) < 2)
- uihelpers.set_grid_row_visible(arch_list, show)
+ uiutil.set_grid_row_visible(arch_list, show)
arch_list.set_active(default)
def populate_machine(self):
@@ -778,7 +779,7 @@ class vmmCreate(vmmGObjectUI):
model.append([m])
show = (len(machines) > 1)
- uihelpers.set_grid_row_visible(lst, show)
+ uiutil.set_grid_row_visible(lst, show)
if show:
lst.set_active(default)
else:
@@ -1051,7 +1052,7 @@ class vmmCreate(vmmGObjectUI):
idx = cd.get_active()
model = cd.get_model()
if idx != -1:
- return model[idx][uihelpers.OPTICAL_DEV_PATH]
+ return model[idx][sharedui.OPTICAL_DEV_PATH]
return None
else:
ret = self.widget("install-local-box").get_child().get_text()
@@ -1100,7 +1101,7 @@ class vmmCreate(vmmGObjectUI):
if disks:
return disks[0].path
- return uihelpers.get_default_path(self.conn, name)
+ return sharedui.get_default_path(self.conn, name)
def is_default_storage(self):
usedef = self.widget("config-storage-create").get_active()
@@ -1109,7 +1110,7 @@ class vmmCreate(vmmGObjectUI):
def get_storage_info(self):
path = None
- size = uihelpers.spin_get_helper(self.widget("config-storage-size"))
+ size = uiutil.spin_get_helper(self.widget("config-storage-size"))
sparse = not self.widget("config-storage-nosparse").get_active()
if self.get_config_install_page() == INSTALL_PAGE_IMPORT:
@@ -1130,7 +1131,7 @@ class vmmCreate(vmmGObjectUI):
bridge_ent = self.widget("config-netdev-bridge")
macaddr = self.widget("config-macaddr").get_text()
- net_type, net_src = uihelpers.get_network_selection(net_list,
+ net_type, net_src = sharedui.get_network_selection(net_list,
bridge_ent)
return net_type, net_src, macaddr.strip()
@@ -1167,7 +1168,7 @@ class vmmCreate(vmmGObjectUI):
machine = self.get_config_machine()
show_dtb_virtio = (self.capsguest.arch == "armv7l" and
machine in ["vexpress-a9", "vexpress-15"])
- uihelpers.set_grid_row_visible(
+ uiutil.set_grid_row_visible(
self.widget("config-dtb-warn-virtio"), show_dtb_virtio)
def netdev_changed(self, ignore):
@@ -1734,7 +1735,7 @@ class vmmCreate(vmmGObjectUI):
path = None
if path:
- uihelpers.check_path_search_for_qemu(self.err, self.conn, path)
+ sharedui.check_path_search_for_qemu(self.err, self.conn, path)
# Validation passed, store the install path (if there is one) in
# gconf
@@ -1780,7 +1781,7 @@ class vmmCreate(vmmGObjectUI):
# Make sure default pool is running
if self.is_default_storage():
- ret = uihelpers.check_default_pool_active(self.err, self.conn)
+ ret = sharedui.check_default_pool_active(self.err, self.conn)
if not ret:
return False
@@ -1791,7 +1792,7 @@ class vmmCreate(vmmGObjectUI):
if self.is_default_storage():
# See if the ideal disk path (/default/pool/vmname.img)
# exists, and if unused, prompt the use for using it
- ideal = uihelpers.get_ideal_path(self.conn,
+ ideal = sharedui.get_ideal_path(self.conn,
self.guest.name)
do_exist = False
ret = True
@@ -1846,7 +1847,7 @@ class vmmCreate(vmmGObjectUI):
if not res:
return False
- uihelpers.check_path_search_for_qemu(self.err, self.conn, disk.path)
+ sharedui.check_path_search_for_qemu(self.err, self.conn, disk.path)
self.disk = disk
self.guest.add_device(self.disk)
@@ -1880,7 +1881,7 @@ class vmmCreate(vmmGObjectUI):
_("Network device required for %s install.") %
methname)
- nic = uihelpers.validate_network(self.err,
+ nic = sharedui.validate_network(self.err,
self.conn, nettype, devname, macaddr)
if nic is False:
return False
diff --git a/virtManager/createinterface.py b/virtManager/createinterface.py
index 809c7981..45c5abeb 100644
--- a/virtManager/createinterface.py
+++ b/virtManager/createinterface.py
@@ -27,7 +27,7 @@ import logging
from virtinst import Interface, InterfaceProtocol
-from virtManager import uihelpers
+from virtManager import uiutil
from virtManager.baseclass import vmmGObjectUI
from virtManager.asyncjob import vmmAsyncJob
@@ -181,7 +181,7 @@ class vmmCreateInterface(vmmGObjectUI):
def build_interface_startmode_combo(combo):
model = Gtk.ListStore(str)
combo.set_model(model)
- uihelpers.set_combo_text_column(combo, 0)
+ uiutil.set_combo_text_column(combo, 0)
model.append(["none"])
model.append(["onboot"])
@@ -590,7 +590,7 @@ class vmmCreateInterface(vmmGObjectUI):
iface = ifaces[0][INTERFACE_ROW_NAME]
if itype == Interface.INTERFACE_TYPE_VLAN:
- tag = uihelpers.spin_get_helper(self.widget("vlan-tag"))
+ tag = uiutil.spin_get_helper(self.widget("vlan-tag"))
name = "%s.%s" % (iface, int(tag))
elif itype == Interface.INTERFACE_TYPE_ETHERNET:
@@ -1079,7 +1079,7 @@ class vmmCreateInterface(vmmGObjectUI):
def validate_vlan(self, iobj, ifaces):
- idx = uihelpers.spin_get_helper(self.widget("vlan-tag"))
+ idx = uiutil.spin_get_helper(self.widget("vlan-tag"))
iobj.tag = int(idx)
return True
diff --git a/virtManager/createnet.py b/virtManager/createnet.py
index d092d9d1..2befb027 100644
--- a/virtManager/createnet.py
+++ b/virtManager/createnet.py
@@ -30,7 +30,7 @@ from gi.repository import Gdk
from virtinst import Network
-from virtManager import uihelpers
+from virtManager import uiutil
from virtManager.asyncjob import vmmAsyncJob
from virtManager.baseclass import vmmGObjectUI
@@ -506,27 +506,27 @@ class vmmCreateNetwork(vmmGObjectUI):
enabled = self.get_config_routev4_enable()
ntwk = self.widget("net-routev4-network")
gway = self.widget("net-routev4-gateway")
- uihelpers.set_grid_row_visible(ntwk, enabled)
- uihelpers.set_grid_row_visible(gway, enabled)
+ uiutil.set_grid_row_visible(ntwk, enabled)
+ uiutil.set_grid_row_visible(gway, enabled)
def change_routev6_enable(self, ignore):
enabled = self.get_config_routev6_enable()
ntwk = self.widget("net-routev6-network")
gway = self.widget("net-routev6-gateway")
- uihelpers.set_grid_row_visible(ntwk, enabled)
- uihelpers.set_grid_row_visible(gway, enabled)
+ uiutil.set_grid_row_visible(ntwk, enabled)
+ uiutil.set_grid_row_visible(gway, enabled)
def change_dhcpv4_enable(self, ignore):
enabled = self.get_config_dhcpv4_enable()
start = self.widget("net-dhcpv4-start")
end = self.widget("net-dhcpv4-end")
- uihelpers.set_grid_row_visible(start, enabled)
- uihelpers.set_grid_row_visible(end, enabled)
+ uiutil.set_grid_row_visible(start, enabled)
+ uiutil.set_grid_row_visible(end, enabled)
def change_dhcpv6_enable(self, ignore):
enabled = self.get_config_dhcpv6_enable()
start = self.widget("net-dhcpv6-start")
end = self.widget("net-dhcpv6-end")
- uihelpers.set_grid_row_visible(start, enabled)
- uihelpers.set_grid_row_visible(end, enabled)
+ uiutil.set_grid_row_visible(start, enabled)
+ uiutil.set_grid_row_visible(end, enabled)
def change_dhcpv4_start(self, src):
start = self.get_config_dhcpv4_start()
diff --git a/virtManager/createpool.py b/virtManager/createpool.py
index 67f50176..f4c7ed7c 100644
--- a/virtManager/createpool.py
+++ b/virtManager/createpool.py
@@ -27,7 +27,7 @@ import logging
from virtManager.baseclass import vmmGObjectUI
from virtManager.asyncjob import vmmAsyncJob
-from virtManager import uihelpers
+from virtManager import uiutil
from virtinst import StoragePool
@@ -255,7 +255,7 @@ class vmmCreatePool(vmmGObjectUI):
def show_options_by_pool(self):
def show_row(base, do_show):
widget = self.widget(base + "-label")
- uihelpers.set_grid_row_visible(widget, do_show)
+ uiutil.set_grid_row_visible(widget, do_show)
src = self._pool.supports_property("source_path")
src_b = src and not self.conn.is_remote()
diff --git a/virtManager/createvol.py b/virtManager/createvol.py
index ad8f98cc..b0559bd9 100644
--- a/virtManager/createvol.py
+++ b/virtManager/createvol.py
@@ -26,7 +26,7 @@ from gi.repository import Gtk
from gi.repository import Gdk
# pylint: enable=E0611
-from virtManager import uihelpers
+from virtManager import uiutil
from virtManager.baseclass import vmmGObjectUI
from virtManager.asyncjob import vmmAsyncJob
@@ -147,7 +147,7 @@ class vmmCreateVolume(vmmGObjectUI):
def _show_alloc(self, *args, **kwargs):
ignore = args
ignore = kwargs
- uihelpers.set_grid_row_visible(
+ uiutil.set_grid_row_visible(
self.widget("vol-allocation"), self._can_alloc())
def _can_backing(self):
@@ -157,7 +157,7 @@ class vmmCreateVolume(vmmGObjectUI):
return True
return False
def _show_backing(self):
- uihelpers.set_grid_row_visible(
+ uiutil.set_grid_row_visible(
self.widget("backing-expander"), self._can_backing())
def reset_state(self):
@@ -169,7 +169,7 @@ class vmmCreateVolume(vmmGObjectUI):
self.populate_vol_format()
hasformat = bool(len(self.vol.list_formats()))
- uihelpers.set_grid_row_visible(self.widget("vol-format"), hasformat)
+ uiutil.set_grid_row_visible(self.widget("vol-format"), hasformat)
if hasformat:
# Select the default storage format
self.widget("vol-format").set_active(0)
diff --git a/virtManager/delete.py b/virtManager/delete.py
index 5283a1e8..be33b453 100644
--- a/virtManager/delete.py
+++ b/virtManager/delete.py
@@ -33,7 +33,7 @@ from virtinst import util
from virtManager.asyncjob import vmmAsyncJob
from virtManager.baseclass import vmmGObjectUI
-from virtManager import uihelpers
+from virtManager import uiutil
STORAGE_ROW_CONFIRM = 0
STORAGE_ROW_CANT_DELETE = 1
@@ -97,7 +97,7 @@ class vmmDeleteDialog(vmmGObjectUI):
# Show warning message if VM is running
vm_active = self.vm.is_active()
- uihelpers.set_grid_row_visible(
+ uiutil.set_grid_row_visible(
self.widget("delete-warn-running-vm-box"), vm_active)
# Disable storage removal by default
@@ -109,7 +109,7 @@ class vmmDeleteDialog(vmmGObjectUI):
def toggle_remove_storage(self, src):
dodel = src.get_active()
- uihelpers.set_grid_row_visible(
+ uiutil.set_grid_row_visible(
self.widget("delete-storage-scroll"), dodel)
def get_config_format(self):
diff --git a/virtManager/details.py b/virtManager/details.py
index bcdfa380..312e1d47 100644
--- a/virtManager/details.py
+++ b/virtManager/details.py
@@ -29,7 +29,8 @@ from gi.repository import Gdk
import libvirt
-from virtManager import uihelpers
+from virtManager import sharedui
+from virtManager import uiutil
from virtManager.storagebrowse import vmmStorageBrowser
from virtManager.baseclass import vmmGObjectUI
from virtManager.addhardware import vmmAddHardware
@@ -641,14 +642,14 @@ class vmmDetails(vmmGObjectUI):
def init_menus(self):
# Virtual Machine menu
- menu = uihelpers.VMShutdownMenu(self, lambda: self.vm)
+ menu = sharedui.VMShutdownMenu(self, lambda: self.vm)
self.widget("control-shutdown").set_menu(menu)
self.widget("control-shutdown").set_icon_name("system-shutdown")
topmenu = self.widget("details-vm-menu")
submenu = topmenu.get_submenu()
- newmenu = uihelpers.VMActionMenu(self, lambda: self.vm,
- show_open=False)
+ newmenu = sharedui.VMActionMenu(self, lambda: self.vm,
+ show_open=False)
for child in submenu.get_children():
submenu.remove(child)
newmenu.add(child) # pylint: disable=E1101
@@ -759,7 +760,7 @@ class vmmDetails(vmmGObjectUI):
machtype_model.set_sort_column_id(0, Gtk.SortType.ASCENDING)
show_machine = (arch not in ["i686", "x86_64"])
- uihelpers.set_grid_row_visible(self.widget("machine-type"),
+ uiutil.set_grid_row_visible(self.widget("machine-type"),
show_machine)
if show_machine:
@@ -936,7 +937,7 @@ class vmmDetails(vmmGObjectUI):
net_bridge = self.widget("network-bridge-box")
source_mode_combo = self.widget("network-source-mode")
vport_expander = self.widget("vport-expander")
- uihelpers.build_network_list(net_source, net_bridge,
+ sharedui.build_network_list(net_source, net_bridge,
source_mode_combo, vport_expander)
# source mode
@@ -951,7 +952,7 @@ class vmmDetails(vmmGObjectUI):
gfx_type = self.widget("gfx-type")
model = Gtk.ListStore(str, str)
gfx_type.set_model(model)
- uihelpers.set_combo_text_column(gfx_type, 1)
+ uiutil.set_combo_text_column(gfx_type, 1)
model.append([virtinst.VirtualGraphics.TYPE_VNC, "VNC"])
model.append([virtinst.VirtualGraphics.TYPE_SPICE, "Spice"])
gfx_type.set_active(-1)
@@ -989,7 +990,7 @@ class vmmDetails(vmmGObjectUI):
combo = self.widget("controller-model")
model = Gtk.ListStore(str, str)
combo.set_model(model)
- uihelpers.set_combo_text_column(combo, 1)
+ uiutil.set_combo_text_column(combo, 1)
combo.set_active(-1)
@@ -1593,9 +1594,9 @@ class vmmDetails(vmmGObjectUI):
# Memory
def config_get_maxmem(self):
- return uihelpers.spin_get_helper(self.widget("config-maxmem"))
+ return uiutil.spin_get_helper(self.widget("config-maxmem"))
def config_get_memory(self):
- return uihelpers.spin_get_helper(self.widget("config-memory"))
+ return uiutil.spin_get_helper(self.widget("config-memory"))
def config_maxmem_changed(self, src_ignore):
self.enable_apply(EDIT_MEM)
@@ -1619,9 +1620,9 @@ class vmmDetails(vmmGObjectUI):
# VCPUS
def config_get_vcpus(self):
- return uihelpers.spin_get_helper(self.widget("config-vcpus"))
+ return uiutil.spin_get_helper(self.widget("config-vcpus"))
def config_get_maxvcpus(self):
- return uihelpers.spin_get_helper(self.widget("config-maxvcpus"))
+ return uiutil.spin_get_helper(self.widget("config-maxvcpus"))
def config_vcpupin_generate(self, ignore):
try:
@@ -2140,8 +2141,8 @@ class vmmDetails(vmmGObjectUI):
mode = None
net_list = self.widget("network-source")
net_bridge = self.widget("network-bridge")
- nettype, source = uihelpers.get_network_selection(net_list,
- net_bridge)
+ nettype, source = sharedui.get_network_selection(net_list,
+ net_bridge)
if nettype == "direct":
mode = self.get_combo_entry("network-source-mode")
@@ -2417,7 +2418,7 @@ class vmmDetails(vmmGObjectUI):
def refresh_inspection_page(self):
inspection_supported = self.config.support_inspection
- uihelpers.set_grid_row_visible(self.widget("details-overview-error"),
+ uiutil.set_grid_row_visible(self.widget("details-overview-error"),
self.vm.inspection.error)
if self.vm.inspection.error:
msg = _("Error while inspecting the guest configuration")
@@ -2650,7 +2651,7 @@ class vmmDetails(vmmGObjectUI):
self.widget("disk-readonly").set_sensitive(not is_cdrom)
self.widget("disk-shareable").set_active(share)
self.widget("disk-removable").set_active(removable)
- uihelpers.set_grid_row_visible(self.widget("disk-removable"),
+ uiutil.set_grid_row_visible(self.widget("disk-removable"),
can_set_removable)
self.widget("disk-size").set_text(size)
self.set_combo_entry("disk-cache", cache)
@@ -2704,10 +2705,10 @@ class vmmDetails(vmmGObjectUI):
if source and source in name_dict:
netobj = name_dict[source]
- desc = uihelpers.pretty_network_desc(nettype, source, netobj)
+ desc = sharedui.pretty_network_desc(nettype, source, netobj)
self.widget("network-mac-address").set_text(net.macaddr)
- uihelpers.populate_network_list(
+ sharedui.populate_network_list(
self.widget("network-source"),
self.conn)
self.widget("network-source").set_active(-1)
@@ -2731,7 +2732,7 @@ class vmmDetails(vmmGObjectUI):
comparefunc=compare_network)
is_direct = (nettype == "direct")
- uihelpers.set_grid_row_visible(self.widget("network-source-mode"),
+ uiutil.set_grid_row_visible(self.widget("network-source-mode"),
is_direct)
self.widget("vport-expander").set_visible(is_direct)
@@ -2793,7 +2794,7 @@ class vmmDetails(vmmGObjectUI):
table.foreach(lambda w, ignore: w.hide(), ())
def show_row(name):
- uihelpers.set_grid_row_visible(self.widget(name), True)
+ uiutil.set_grid_row_visible(self.widget(name), True)
def port_to_string(port):
if port is None:
@@ -2889,7 +2890,7 @@ class vmmDetails(vmmGObjectUI):
if not val and doshow:
val = getattr(tpmdev, param)
- uihelpers.set_grid_row_visible(self.widget(widgetname), doshow)
+ uiutil.set_grid_row_visible(self.widget(widgetname), doshow)
self.widget(widgetname).set_text(val or "-")
dev_type = tpmdev.type
@@ -2912,7 +2913,7 @@ class vmmDetails(vmmGObjectUI):
propername = param.upper() + "_DEFAULT"
val = getattr(virtinst.VirtualPanicDevice, propername, "-").upper()
- uihelpers.set_grid_row_visible(self.widget(widgetname), True)
+ uiutil.set_grid_row_visible(self.widget(widgetname), True)
self.widget(widgetname).set_text(val or "-")
ptyp = virtinst.VirtualPanicDevice.get_pretty_type(dev.type)
@@ -2940,7 +2941,7 @@ class vmmDetails(vmmGObjectUI):
}
def set_visible(widget, v):
- uihelpers.set_grid_row_visible(self.widget(widget), v)
+ uiutil.set_grid_row_visible(self.widget(widget), v)
is_egd = dev.type == VirtualRNGDevice.TYPE_EGD
udp = dev.backend_type == VirtualRNGDevice.BACKEND_TYPE_UDP
@@ -2989,7 +2990,7 @@ class vmmDetails(vmmGObjectUI):
if not val and doshow:
val = getattr(chardev, param)
- uihelpers.set_grid_row_visible(self.widget(widgetname), doshow)
+ uiutil.set_grid_row_visible(self.widget(widgetname), doshow)
self.widget(widgetname).set_text(val or "-")
def build_host_str(base):
@@ -3103,7 +3104,7 @@ class vmmDetails(vmmGObjectUI):
self.widget("controller-type").set_text(type_label)
combo = self.widget("controller-model")
- uihelpers.set_grid_row_visible(combo, True)
+ uiutil.set_grid_row_visible(combo, True)
model = combo.get_model()
model.clear()
diff --git a/virtManager/fsdetails.py b/virtManager/fsdetails.py
index 2c0f3b95..e3751afa 100644
--- a/virtManager/fsdetails.py
+++ b/virtManager/fsdetails.py
@@ -26,7 +26,7 @@ from gi.repository import GObject
from virtinst import VirtualFilesystem, StorageVolume
from virtinst import util
-from virtManager import uihelpers
+from virtManager import uiutil
from virtManager.baseclass import vmmGObjectUI
from virtManager.storagebrowse import vmmStorageBrowser
@@ -250,21 +250,21 @@ class vmmFSDetails(vmmGObjectUI):
show_mode = bool(ismount and
(fsdriver == VirtualFilesystem.DRIVER_PATH or
fsdriver == VirtualFilesystem.DRIVER_DEFAULT))
- uihelpers.set_grid_row_visible(self.widget("fs-mode-box"), show_mode)
+ uiutil.set_grid_row_visible(self.widget("fs-mode-box"), show_mode)
show_wrpol = bool(ismount and
fsdriver and (fsdriver == VirtualFilesystem.DRIVER_PATH or
fsdriver == VirtualFilesystem.DRIVER_HANDLE))
- uihelpers.set_grid_row_visible(self.widget("fs-wrpolicy-box"),
+ uiutil.set_grid_row_visible(self.widget("fs-wrpolicy-box"),
show_wrpol)
show_ram_source = fstype == VirtualFilesystem.TYPE_RAM
- uihelpers.set_grid_row_visible(self.widget("fs-ram-source-box"), show_ram_source)
- uihelpers.set_grid_row_visible(self.widget("fs-source-box"), not show_ram_source)
+ uiutil.set_grid_row_visible(self.widget("fs-ram-source-box"), show_ram_source)
+ uiutil.set_grid_row_visible(self.widget("fs-source-box"), not show_ram_source)
show_format = bool(
fsdriver == VirtualFilesystem.DRIVER_NBD)
- uihelpers.set_grid_row_visible(self.widget("fs-format-box"), show_format)
+ uiutil.set_grid_row_visible(self.widget("fs-format-box"), show_format)
self.show_pair_combo("fs-format", True)
show_mode_combo = False
@@ -292,7 +292,7 @@ class vmmFSDetails(vmmGObjectUI):
conn = self.conn.get_backend()
source = self.widget("fs-source").get_text()
target = self.widget("fs-target").get_text()
- usage = uihelpers.spin_get_helper(self.widget("fs-ram-source-spin"))
+ usage = uiutil.spin_get_helper(self.widget("fs-ram-source-spin"))
mode = self.get_config_fs_mode()
fstype = self.get_config_fs_type()
readonly = self.get_config_fs_readonly()
diff --git a/virtManager/host.py b/virtManager/host.py
index ea5b2372..eb3d000a 100644
--- a/virtManager/host.py
+++ b/virtManager/host.py
@@ -30,7 +30,7 @@ from virtinst import VirtualDisk
from virtinst import StoragePool
from virtinst import Interface
-from virtManager import uihelpers
+from virtManager import uiutil
from virtManager.asyncjob import vmmAsyncJob
from virtManager.connection import vmmConnection
from virtManager.createnet import vmmCreateNetwork
@@ -582,7 +582,7 @@ class vmmHost(vmmGObjectUI):
self.widget("net-ipv4-dhcp-range").set_text(dhcpstr)
self.widget("net-ipv4-network").set_text(netstr)
- uihelpers.set_grid_row_visible(
+ uiutil.set_grid_row_visible(
self.widget("net-ipv4-route"), bool(routevia))
if routevia:
routevia = routeaddr + ", gateway=" + routevia
@@ -613,7 +613,7 @@ class vmmHost(vmmGObjectUI):
self.widget("net-ipv6-dhcp-range").set_text(dhcpstr)
self.widget("net-ipv6-network").set_text(netstr or "")
- uihelpers.set_grid_row_visible(
+ uiutil.set_grid_row_visible(
self.widget("net-ipv6-route"), bool(routevia))
if routevia:
routevia = routeaddr + ", gateway=" + routevia
@@ -627,7 +627,7 @@ class vmmHost(vmmGObjectUI):
self.widget("net-name").set_editable(not active)
self.widget("net-device").set_text(net.get_bridge_device() or "")
self.widget("net-name-domain").set_text(net.get_name_domain() or "")
- uihelpers.set_grid_row_visible(self.widget("net-name-domain"),
+ uiutil.set_grid_row_visible(self.widget("net-name-domain"),
bool(net.get_name_domain()))
state = active and _("Active") or _("Inactive")
@@ -690,7 +690,7 @@ class vmmHost(vmmGObjectUI):
Gtk.IconSize.LARGE_TOOLBAR,
bool(net.is_active())])
- uihelpers.set_row_selection(net_list,
+ uiutil.set_row_selection(net_list,
curnet and curnet.get_uuid() or None)
@@ -1240,7 +1240,7 @@ class vmmHost(vmmGObjectUI):
Gtk.IconSize.LARGE_TOOLBAR,
bool(iface.is_active())])
- uihelpers.set_row_selection(iface_list,
+ uiutil.set_row_selection(iface_list,
curiface and curiface.get_name() or None)
def populate_interface_children(self):
@@ -1303,7 +1303,7 @@ def populate_storage_pools(pool_list, conn, curpool):
model.append([uuid, label, pool.is_active(), per])
pool_list.set_model(model)
- uihelpers.set_row_selection(pool_list,
+ uiutil.set_row_selection(pool_list,
curpool and curpool.get_uuid() or None)
diff --git a/virtManager/manager.py b/virtManager/manager.py
index 85e943c5..022c87f3 100644
--- a/virtManager/manager.py
+++ b/virtManager/manager.py
@@ -29,7 +29,8 @@ from gi.repository import GdkPixbuf
from virtinst import util
-from virtManager import uihelpers
+from virtManager import sharedui
+from virtManager import uiutil
from virtManager.connection import vmmConnection
from virtManager.baseclass import vmmGObjectUI
from virtManager.graphwidgets import CellRendererSparkline
@@ -125,7 +126,7 @@ class vmmManager(vmmGObjectUI):
self.topwin.set_default_size(w or 550, h or 550)
self.prev_position = None
- self.vmmenu = uihelpers.VMActionMenu(self, self.current_vm)
+ self.vmmenu = sharedui.VMActionMenu(self, self.current_vm)
self.connmenu = Gtk.Menu()
self.connmenu_items = {}
@@ -296,7 +297,7 @@ class vmmManager(vmmGObjectUI):
self.widget("vm-new").set_icon_name("vm_new")
self.widget("vm-open").set_icon_name("icon_console")
- menu = uihelpers.VMShutdownMenu(self, self.current_vm)
+ menu = sharedui.VMShutdownMenu(self, self.current_vm)
self.widget("vm-shutdown").set_icon_name("system-shutdown")
self.widget("vm-shutdown").set_menu(menu)
@@ -786,7 +787,7 @@ class vmmManager(vmmGObjectUI):
row[ROW_MARKUP] = self._build_vm_markup(name, status)
desc = vm.get_description()
- if not uihelpers.can_set_row_none:
+ if not uiutil.can_set_row_none:
desc = desc or ""
row[ROW_HINT] = util.xml_escape(desc)
except libvirt.libvirtError, e:
@@ -823,7 +824,7 @@ class vmmManager(vmmGObjectUI):
return
new_icon = _get_inspection_icon_pixbuf(vm, 16, 16)
- if not uihelpers.can_set_row_none:
+ if not uiutil.can_set_row_none:
new_icon = new_icon or ""
row[ROW_INSPECTION_OS_ICON] = new_icon
diff --git a/virtManager/preferences.py b/virtManager/preferences.py
index b28d523a..fe57b1de 100644
--- a/virtManager/preferences.py
+++ b/virtManager/preferences.py
@@ -25,7 +25,7 @@ from gi.repository import Gtk
from gi.repository import Gdk
# pylint: enable=E0611
-from virtManager import uihelpers
+from virtManager import uiutil
from virtManager.baseclass import vmmGObjectUI
@@ -102,7 +102,7 @@ class vmmPreferences(vmmGObjectUI):
[2, _("Always")]]:
model.append(row)
combo.set_model(model)
- uihelpers.set_combo_text_column(combo, 1)
+ uiutil.set_combo_text_column(combo, 1)
combo = self.widget("prefs-graphics-type")
# [gsettings value, string]
@@ -112,7 +112,7 @@ class vmmPreferences(vmmGObjectUI):
["vnc", "VNC"], ["spice", "Spice"]]:
model.append(row)
combo.set_model(model)
- uihelpers.set_combo_text_column(combo, 1)
+ uiutil.set_combo_text_column(combo, 1)
combo = self.widget("prefs-storage-format")
# [gsettings value, string]
@@ -123,7 +123,7 @@ class vmmPreferences(vmmGObjectUI):
["qcow2", "QCOW2"]]:
model.append(row)
combo.set_model(model)
- uihelpers.set_combo_text_column(combo, 1)
+ uiutil.set_combo_text_column(combo, 1)
combo = self.widget("prefs-cpu-default")
# [gsettings value, string]
@@ -135,7 +135,7 @@ class vmmPreferences(vmmGObjectUI):
["host-model", _("Copy host CPU definition")]]:
model.append(row)
combo.set_model(model)
- uihelpers.set_combo_text_column(combo, 1)
+ uiutil.set_combo_text_column(combo, 1)
#########################
@@ -156,7 +156,7 @@ class vmmPreferences(vmmGObjectUI):
def refresh_console_scaling(self):
combo = self.widget("prefs-console-scaling")
val = self.config.get_console_scaling()
- uihelpers.set_row_selection(combo, val)
+ uiutil.set_row_selection(combo, val)
def refresh_new_vm_sound(self):
self.widget("prefs-new-vm-sound").set_active(
@@ -164,15 +164,15 @@ class vmmPreferences(vmmGObjectUI):
def refresh_graphics_type(self):
combo = self.widget("prefs-graphics-type")
gtype = self.config.get_graphics_type(raw=True)
- uihelpers.set_row_selection(combo, gtype)
+ uiutil.set_row_selection(combo, gtype)
def refresh_storage_format(self):
combo = self.widget("prefs-storage-format")
val = self.config.get_default_storage_format(raw=True)
- uihelpers.set_row_selection(combo, val)
+ uiutil.set_row_selection(combo, val)
def refresh_cpu_default(self):
combo = self.widget("prefs-cpu-default")
val = self.config.get_default_cpu_setting(raw=True)
- uihelpers.set_row_selection(combo, val)
+ uiutil.set_row_selection(combo, val)
def refresh_disk_poll(self):
self.widget("prefs-stats-enable-disk").set_active(
diff --git a/virtManager/uihelpers.py b/virtManager/sharedui.py
index 298ae965..dec2c607 100644
--- a/virtManager/uihelpers.py
+++ b/virtManager/sharedui.py
@@ -24,26 +24,12 @@ import statvfs
import pwd
# pylint: disable=E0611
-from gi.repository import GObject
from gi.repository import Gtk
# pylint: enable=E0611
import virtinst
from virtManager import config
-
-OPTICAL_DEV_PATH = 0
-OPTICAL_LABEL = 1
-OPTICAL_IS_MEDIA_PRESENT = 2
-OPTICAL_DEV_KEY = 3
-OPTICAL_MEDIA_KEY = 4
-OPTICAL_IS_VALID = 5
-
-try:
- import gi
- gi.check_version("3.7.4")
- can_set_row_none = True
-except (ValueError, AttributeError):
- can_set_row_none = False
+from virtManager import uiutil
############################################################
@@ -255,11 +241,11 @@ def _net_list_changed(net_list, bridge_box,
if source_mode_combo is not None:
doshow = (row[0] == virtinst.VirtualNetworkInterface.TYPE_DIRECT)
- set_grid_row_visible(source_mode_combo, doshow)
+ uiutil.set_grid_row_visible(source_mode_combo, doshow)
vport_expander.set_visible(doshow)
show_bridge = row[5]
- set_grid_row_visible(bridge_box, show_bridge)
+ uiutil.set_grid_row_visible(bridge_box, show_bridge)
def pretty_network_desc(nettype, source=None, netobj=None):
@@ -538,6 +524,14 @@ def validate_network(err, conn, nettype, devname, macaddr, model=None):
# Populate media widget (choosecd, create) #
############################################
+OPTICAL_DEV_PATH = 0
+OPTICAL_LABEL = 1
+OPTICAL_IS_MEDIA_PRESENT = 2
+OPTICAL_DEV_KEY = 3
+OPTICAL_MEDIA_KEY = 4
+OPTICAL_IS_VALID = 5
+
+
def _set_mediadev_default(model):
if len(model) == 0:
model.append([None, _("No device present"), False, None, None, False])
@@ -796,95 +790,3 @@ class VMActionMenu(_VMMenu):
for child in self.get_children():
if getattr(child, "vmm_widget_name", None) == "run":
child.get_child().set_label(text)
-
-
-
-
-################
-# Misc helpers #
-################
-
-def set_combo_text_column(combo, col):
- if combo.get_has_entry():
- combo.set_entry_text_column(col)
- else:
- text = Gtk.CellRendererText()
- combo.pack_start(text, True)
- combo.add_attribute(text, 'text', col)
-
-
-def spin_get_helper(widget):
- adj = widget.get_adjustment()
- txt = widget.get_text()
-
- try:
- return int(txt)
- except:
- return adj.get_value()
-
-
-def get_list_selection(widget):
- selection = widget.get_selection()
- active = selection.get_selected()
-
- treestore, treeiter = active
- if treeiter is not None:
- return treestore[treeiter]
- return None
-
-
-def set_list_selection(widget, rownum):
- path = str(rownum)
- selection = widget.get_selection()
-
- selection.unselect_all()
- widget.set_cursor(path)
- selection.select_path(path)
-
-
-def set_row_selection(listwidget, prevkey):
- model = listwidget.get_model()
- _iter = None
- if prevkey:
- for row in model:
- if row[0] == prevkey:
- _iter = row.iter
- break
- if not _iter:
- _iter = model.get_iter_first()
-
- if hasattr(listwidget, "get_selection"):
- selection = listwidget.get_selection()
- cb = selection.select_iter
- else:
- selection = listwidget
- cb = selection.set_active_iter
- if _iter:
- cb(_iter)
- selection.emit("changed")
-
-
-def child_get_property(parent, child, propname):
- # Wrapper for child_get_property, which pygobject doesn't properly
- # introspect
- value = GObject.Value()
- value.init(GObject.TYPE_INT)
- parent.child_get_property(child, propname, value)
- return value.get_int()
-
-
-def set_grid_row_visible(child, visible):
- # For the passed widget, find its parent GtkGrid, and hide/show all
- # elements that are in the same row as it. Simplifies having to name
- # every element in a row when we want to dynamically hide things
- # based on UI interraction
-
- parent = child.get_parent()
- if not type(parent) is Gtk.Grid:
- raise RuntimeError("Programming error, parent must be grid, "
- "not %s" % type(parent))
-
- row = child_get_property(parent, child, "top-attach")
- for child in parent.get_children():
- if child_get_property(parent, child, "top-attach") == row:
- child.set_visible(visible)
diff --git a/virtManager/snapshots.py b/virtManager/snapshots.py
index 497795d1..1e8b4504 100644
--- a/virtManager/snapshots.py
+++ b/virtManager/snapshots.py
@@ -33,7 +33,7 @@ from gi.repository import Gtk
from virtinst import DomainSnapshot
from virtinst import util
-from virtManager import uihelpers
+from virtManager import uiutil
from virtManager.baseclass import vmmGObjectUI
from virtManager.asyncjob import vmmAsyncJob
@@ -214,7 +214,7 @@ class vmmSnapshotPage(vmmGObjectUI):
has_internal = False
for snap in snapshots:
desc = snap.get_xmlobj().description
- if not uihelpers.can_set_row_none:
+ if not uiutil.can_set_row_none:
desc = desc or ""
name = snap.get_name()
@@ -237,7 +237,7 @@ class vmmSnapshotPage(vmmGObjectUI):
model.append([None, None, None, None, "2"])
select_name = select_name or (cursnap and cursnap.get_name() or None)
- uihelpers.set_row_selection(self.widget("snapshot-list"), select_name)
+ uiutil.set_row_selection(self.widget("snapshot-list"), select_name)
self._initial_populate = True
def _make_screenshot_pixbuf(self, mime, sdata):
@@ -307,7 +307,7 @@ class vmmSnapshotPage(vmmGObjectUI):
self.widget("snapshot-status-icon").set_from_icon_name(
icon, Gtk.IconSize.BUTTON)
- uihelpers.set_grid_row_visible(self.widget("snapshot-mode"),
+ uiutil.set_grid_row_visible(self.widget("snapshot-mode"),
is_external)
if is_external:
is_mem = xmlobj.memory_type == "external"
@@ -396,7 +396,7 @@ class vmmSnapshotPage(vmmGObjectUI):
self.vm.run_status_icon_name(), Gtk.IconSize.BUTTON)
sn = self._get_screenshot()
- uihelpers.set_grid_row_visible(
+ uiutil.set_grid_row_visible(
self.widget("snapshot-new-screenshot"), bool(sn))
if sn:
self.widget("snapshot-new-screenshot").set_from_pixbuf(sn)
diff --git a/virtManager/storagebrowse.py b/virtManager/storagebrowse.py
index 79e68c3d..fb56a711 100644
--- a/virtManager/storagebrowse.py
+++ b/virtManager/storagebrowse.py
@@ -28,7 +28,7 @@ from gi.repository import Gtk
from virtManager import host
from virtManager.createvol import vmmCreateVolume
from virtManager.baseclass import vmmGObjectUI
-from virtManager import uihelpers
+from virtManager import uiutil
class vmmStorageBrowser(vmmGObjectUI):
@@ -180,7 +180,7 @@ class vmmStorageBrowser(vmmGObjectUI):
if not self._first_run:
self._first_run = True
pool = self.conn.get_default_pool()
- uihelpers.set_row_selection(
+ uiutil.set_row_selection(
self.widget("pool-list"), pool and pool.get_uuid() or None)
# Manually trigger vol_selected, so buttons are in the correct state
self.vol_selected()
@@ -216,7 +216,7 @@ class vmmStorageBrowser(vmmGObjectUI):
return data["enable_create"]
def current_pool(self):
- row = uihelpers.get_list_selection(self.widget("pool-list"))
+ row = uiutil.get_list_selection(self.widget("pool-list"))
if not row:
return
try:
@@ -227,7 +227,7 @@ class vmmStorageBrowser(vmmGObjectUI):
def current_vol_row(self):
if not self.current_pool():
return
- return uihelpers.get_list_selection(self.widget("vol-list"))
+ return uiutil.get_list_selection(self.widget("vol-list"))
def current_vol(self):
pool = self.current_pool()
@@ -283,7 +283,7 @@ class vmmStorageBrowser(vmmGObjectUI):
vol_list = self.widget("vol-list")
def select_volume(model, path, it, volume_name):
if model.get(it, 0)[0] == volume_name:
- uihelpers.set_list_selection(vol_list, path)
+ uiutil.set_list_selection(vol_list, path)
vol_list.get_model().foreach(select_volume, createvol.vol.name)
diff --git a/virtManager/systray.py b/virtManager/systray.py
index fc6a5232..724ec77a 100644
--- a/virtManager/systray.py
+++ b/virtManager/systray.py
@@ -25,7 +25,7 @@ from gi.repository import GObject
from gi.repository import Gtk
# pylint: enable=E0611
-from virtManager import uihelpers
+from virtManager import sharedui
from virtManager.baseclass import vmmGObject
from virtManager.error import vmmErrorDialog
@@ -303,7 +303,7 @@ class vmmSystray(vmmGObject):
# Build VM list entry
menu_item = build_image_menu_item(vm.get_name())
vm_mappings[uuid] = menu_item
- vm_action_menu = uihelpers.VMActionMenu(self, lambda: vm)
+ vm_action_menu = sharedui.VMActionMenu(self, lambda: vm)
menu_item.set_submenu(vm_action_menu)
self.vm_action_dict[uuid] = vm_action_menu
diff --git a/virtManager/uiutil.py b/virtManager/uiutil.py
new file mode 100644
index 00000000..0ca5baf4
--- /dev/null
+++ b/virtManager/uiutil.py
@@ -0,0 +1,117 @@
+#
+# Copyright (C) 2009, 2013, 2014 Red Hat, Inc.
+# Copyright (C) 2009 Cole Robinson <crobinso@redhat.com>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1301 USA.
+#
+
+# pylint: disable=E0611
+from gi.repository import GObject
+from gi.repository import Gtk
+# pylint: enable=E0611
+
+try:
+ import gi
+ gi.check_version("3.7.4")
+ can_set_row_none = True
+except (ValueError, AttributeError):
+ can_set_row_none = False
+
+
+def set_combo_text_column(combo, col):
+ if combo.get_has_entry():
+ combo.set_entry_text_column(col)
+ else:
+ text = Gtk.CellRendererText()
+ combo.pack_start(text, True)
+ combo.add_attribute(text, 'text', col)
+
+
+def spin_get_helper(widget):
+ adj = widget.get_adjustment()
+ txt = widget.get_text()
+
+ try:
+ return int(txt)
+ except:
+ return adj.get_value()
+
+
+def get_list_selection(widget):
+ selection = widget.get_selection()
+ active = selection.get_selected()
+
+ treestore, treeiter = active
+ if treeiter is not None:
+ return treestore[treeiter]
+ return None
+
+
+def set_list_selection(widget, rownum):
+ path = str(rownum)
+ selection = widget.get_selection()
+
+ selection.unselect_all()
+ widget.set_cursor(path)
+ selection.select_path(path)
+
+
+def set_row_selection(listwidget, prevkey):
+ model = listwidget.get_model()
+ _iter = None
+ if prevkey:
+ for row in model:
+ if row[0] == prevkey:
+ _iter = row.iter
+ break
+ if not _iter:
+ _iter = model.get_iter_first()
+
+ if hasattr(listwidget, "get_selection"):
+ selection = listwidget.get_selection()
+ cb = selection.select_iter
+ else:
+ selection = listwidget
+ cb = selection.set_active_iter
+ if _iter:
+ cb(_iter)
+ selection.emit("changed")
+
+
+def child_get_property(parent, child, propname):
+ # Wrapper for child_get_property, which pygobject doesn't properly
+ # introspect
+ value = GObject.Value()
+ value.init(GObject.TYPE_INT)
+ parent.child_get_property(child, propname, value)
+ return value.get_int()
+
+
+def set_grid_row_visible(child, visible):
+ # For the passed widget, find its parent GtkGrid, and hide/show all
+ # elements that are in the same row as it. Simplifies having to name
+ # every element in a row when we want to dynamically hide things
+ # based on UI interraction
+
+ parent = child.get_parent()
+ if not type(parent) is Gtk.Grid:
+ raise RuntimeError("Programming error, parent must be grid, "
+ "not %s" % type(parent))
+
+ row = child_get_property(parent, child, "top-attach")
+ for child in parent.get_children():
+ if child_get_property(parent, child, "top-attach") == row:
+ child.set_visible(visible)