summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCole Robinson <crobinso@redhat.com>2014-01-26 18:15:50 -0500
committerCole Robinson <crobinso@redhat.com>2014-01-26 18:15:50 -0500
commit708a2737cfd34f32c912ca3aaf2a29283e3a05c3 (patch)
tree38ec9321be6227fb2aea90486907449cf4079916
parent2a34b353da1fd9750718605c240b6f3fbd74b0f0 (diff)
downloadvirt-manager-708a2737cfd34f32c912ca3aaf2a29283e3a05c3.tar.gz
Split uihelpers into sharedui and uiutil
Reserve uiutil for the little gtk helper functions, rest goes into shared UI (which all should probably be factored into their own files but thats a task for another day)
-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)