mirror of
https://github.com/virt-manager/virt-manager.git
synced 2024-12-23 17:34:21 +03:00
Use icon theme icons rather than gtk stock icons.
This allows us to get many more relevant icons (mouse, tablet, sound card). Also, reorganize the virtual network and hardware lists to have icons appear first in the row.
This commit is contained in:
parent
32561b2d89
commit
27916ad571
@ -289,6 +289,10 @@ def main():
|
||||
raise RuntimeError(_("Unable to initialize GTK: %s") % str(e))
|
||||
warnings.resetwarnings()
|
||||
|
||||
# Add our icon dir to icon theme
|
||||
icon_theme = gtk.icon_theme_get_default()
|
||||
icon_theme.prepend_search_path(icon_dir)
|
||||
|
||||
gtk.gdk.threads_init()
|
||||
setup_glade_i18n()
|
||||
|
||||
|
@ -155,13 +155,15 @@ class vmmAddHardware(gobject.GObject):
|
||||
|
||||
# Main HW list
|
||||
hw_list = self.window.get_widget("hardware-type")
|
||||
# Name, icon name, page number, is sensitive, tooltip
|
||||
# Name, icon name, page number, is sensitive, tooltip, icon size
|
||||
model = gtk.ListStore(str, str, int, bool, str)
|
||||
hw_list.set_model(model)
|
||||
icon = gtk.CellRendererPixbuf()
|
||||
icon.set_property("stock-size", gtk.ICON_SIZE_BUTTON)
|
||||
hw_list.pack_start(icon, False)
|
||||
hw_list.add_attribute(icon, 'stock-id', 1)
|
||||
hw_list.add_attribute(icon, 'icon-name', 1)
|
||||
text = gtk.CellRendererText()
|
||||
text.set_property("xpad", 6)
|
||||
hw_list.pack_start(text, True)
|
||||
hw_list.add_attribute(text, 'text', 0)
|
||||
hw_list.add_attribute(text, 'sensitive', 3)
|
||||
@ -193,12 +195,14 @@ class vmmAddHardware(gobject.GObject):
|
||||
|
||||
# Disk device type / bus
|
||||
target_list = self.window.get_widget("target-device")
|
||||
target_model = gtk.ListStore(str, str, str, str)
|
||||
target_model = gtk.ListStore(str, str, str, str, int)
|
||||
target_list.set_model(target_model)
|
||||
icon = gtk.CellRendererPixbuf()
|
||||
icon.set_property("stock-size", gtk.ICON_SIZE_BUTTON)
|
||||
target_list.pack_start(icon, False)
|
||||
target_list.add_attribute(icon, 'stock-id', 2)
|
||||
target_list.add_attribute(icon, 'icon-name', 2)
|
||||
text = gtk.CellRendererText()
|
||||
text.set_property("xpad", 6)
|
||||
target_list.pack_start(text, True)
|
||||
target_list.add_attribute(text, 'text', 3)
|
||||
|
||||
@ -388,13 +392,13 @@ class vmmAddHardware(gobject.GObject):
|
||||
def add_hw_option(name, icon, page, sensitive, tooltip):
|
||||
model.append([name, icon, page, sensitive, tooltip])
|
||||
|
||||
add_hw_option("Storage", gtk.STOCK_HARDDISK, PAGE_DISK, True, None)
|
||||
add_hw_option("Network", gtk.STOCK_NETWORK, PAGE_NETWORK, True, None)
|
||||
add_hw_option("Input", gtk.STOCK_INDEX, PAGE_INPUT, self.vm.is_hvm(),
|
||||
add_hw_option("Storage", "drive-harddisk", PAGE_DISK, True, None)
|
||||
add_hw_option("Network", "network-idle", PAGE_NETWORK, True, None)
|
||||
add_hw_option("Input", "input-mouse", PAGE_INPUT, self.vm.is_hvm(),
|
||||
_("Not supported for this guest type."))
|
||||
add_hw_option("Graphics", gtk.STOCK_SELECT_COLOR, PAGE_GRAPHICS,
|
||||
add_hw_option("Graphics", "video-display", PAGE_GRAPHICS,
|
||||
True, None)
|
||||
add_hw_option("Sound", gtk.STOCK_MEDIA_PLAY, PAGE_SOUND,
|
||||
add_hw_option("Sound", "audio-card", PAGE_SOUND,
|
||||
self.vm.is_hvm(),
|
||||
_("Not supported for this guest type."))
|
||||
add_hw_option("Serial", gtk.STOCK_CONNECT, PAGE_CHAR,
|
||||
@ -403,11 +407,11 @@ class vmmAddHardware(gobject.GObject):
|
||||
add_hw_option("Parallel", gtk.STOCK_CONNECT, PAGE_CHAR,
|
||||
self.vm.is_hvm(),
|
||||
_("Not supported for this guest type."))
|
||||
add_hw_option("Physical Host Device", None, PAGE_HOSTDEV,
|
||||
add_hw_option("Physical Host Device", "system-run", PAGE_HOSTDEV,
|
||||
self.vm.get_connection().is_nodedev_capable(),
|
||||
_("Connection does not support host device "
|
||||
"enumeration"))
|
||||
add_hw_option("Video", gtk.STOCK_SELECT_COLOR, PAGE_VIDEO,
|
||||
add_hw_option("Video", "video-display", PAGE_VIDEO,
|
||||
libvirt.getVersion() > 6005,
|
||||
_("Libvirt version does not support video devices."))
|
||||
|
||||
@ -1275,24 +1279,26 @@ class vmmAddHardware(gobject.GObject):
|
||||
|
||||
def populate_target_device_model(self, model):
|
||||
model.clear()
|
||||
#[bus, device, icon, desc]
|
||||
#[bus, device, icon, desc, iconsize]
|
||||
def add_dev(bus, device, desc):
|
||||
if device == virtinst.VirtualDisk.DEVICE_FLOPPY:
|
||||
icon = "media-floppy"
|
||||
elif device == virtinst.VirtualDisk.DEVICE_CDROM:
|
||||
icon = "media-optical"
|
||||
else:
|
||||
icon = "drive-harddisk"
|
||||
model.append([bus, device, icon, desc, gtk.ICON_SIZE_BUTTON])
|
||||
|
||||
if self.vm.is_hvm():
|
||||
model.append(["ide", virtinst.VirtualDisk.DEVICE_DISK,
|
||||
gtk.STOCK_HARDDISK, "IDE disk"])
|
||||
model.append(["ide", virtinst.VirtualDisk.DEVICE_CDROM,
|
||||
gtk.STOCK_CDROM, "IDE cdrom"])
|
||||
model.append(["fdc", virtinst.VirtualDisk.DEVICE_FLOPPY,
|
||||
gtk.STOCK_FLOPPY, "Floppy disk"])
|
||||
model.append(["scsi",virtinst.VirtualDisk.DEVICE_DISK,
|
||||
gtk.STOCK_HARDDISK, "SCSI disk"])
|
||||
model.append(["usb", virtinst.VirtualDisk.DEVICE_DISK,
|
||||
gtk.STOCK_HARDDISK, "USB disk"])
|
||||
add_dev("ide", virtinst.VirtualDisk.DEVICE_DISK, "IDE disk")
|
||||
add_dev("ide", virtinst.VirtualDisk.DEVICE_CDROM, "IDE cdrom")
|
||||
add_dev("fdc", virtinst.VirtualDisk.DEVICE_FLOPPY, "Floppy disk")
|
||||
add_dev("scsi",virtinst.VirtualDisk.DEVICE_DISK, "SCSI disk")
|
||||
add_dev("usb", virtinst.VirtualDisk.DEVICE_DISK, "USB disk")
|
||||
if self.vm.get_hv_type().lower() == "kvm":
|
||||
model.append(["virtio", virtinst.VirtualDisk.DEVICE_DISK,
|
||||
gtk.STOCK_HARDDISK, "Virtio Disk"])
|
||||
add_dev("virtio", virtinst.VirtualDisk.DEVICE_DISK, "Virtio Disk")
|
||||
if self.vm.get_connection().get_type().lower() == "xen":
|
||||
model.append(["xen", virtinst.VirtualDisk.DEVICE_DISK,
|
||||
gtk.STOCK_HARDDISK, "Virtual disk"])
|
||||
add_dev("xen", virtinst.VirtualDisk.DEVICE_DISK, "Virtual disk")
|
||||
|
||||
def populate_input_model(self, model):
|
||||
model.clear()
|
||||
|
@ -96,6 +96,12 @@ class vmmConfig:
|
||||
def get_vm_status_icon(self, state):
|
||||
return self.status_icons[state]
|
||||
|
||||
def get_shutdown_icon_name(self):
|
||||
theme = gtk.icon_theme_get_default()
|
||||
if theme.has_icon("system-shutdown"):
|
||||
return "system-shutdown"
|
||||
return "icon_shutdown"
|
||||
|
||||
def get_appname(self):
|
||||
return self.appname
|
||||
|
||||
|
@ -42,11 +42,10 @@ import virtinst
|
||||
|
||||
# Columns in hw list model
|
||||
HW_LIST_COL_LABEL = 0
|
||||
HW_LIST_COL_STOCK_ID = 1
|
||||
HW_LIST_COL_STOCK_SIZE = 2
|
||||
HW_LIST_COL_PIXBUF = 3
|
||||
HW_LIST_COL_TYPE = 4
|
||||
HW_LIST_COL_DEVICE = 5
|
||||
HW_LIST_COL_ICON_NAME = 1
|
||||
HW_LIST_COL_ICON_SIZE = 2
|
||||
HW_LIST_COL_TYPE = 3
|
||||
HW_LIST_COL_DEVICE = 4
|
||||
|
||||
# Types for the hw list model: numbers specify what order they will be listed
|
||||
HW_LIST_TYPE_GENERAL = 0
|
||||
@ -133,18 +132,17 @@ class vmmDetails(gobject.GObject):
|
||||
else:
|
||||
self.window.get_widget("add-hardware-button").set_sensitive(True)
|
||||
|
||||
self.window.get_widget("control-shutdown").set_icon_widget(gtk.Image())
|
||||
self.window.get_widget("control-shutdown").get_icon_widget().set_from_file(config.get_icon_dir() + "/icon_shutdown.png")
|
||||
|
||||
icon_name = self.config.get_shutdown_icon_name()
|
||||
self.window.get_widget("control-shutdown").set_icon_name(icon_name)
|
||||
menu = gtk.Menu()
|
||||
self.window.get_widget("control-shutdown").set_menu(menu)
|
||||
|
||||
rebootimg = gtk.Image()
|
||||
rebootimg.set_from_pixbuf(gtk.gdk.pixbuf_new_from_file_at_size(self.config.get_icon_dir() + "/icon_shutdown.png", 18, 18))
|
||||
shutdownimg = gtk.Image()
|
||||
shutdownimg.set_from_pixbuf(gtk.gdk.pixbuf_new_from_file_at_size(self.config.get_icon_dir() + "/icon_shutdown.png", 18, 18))
|
||||
destroyimg = gtk.Image()
|
||||
destroyimg.set_from_pixbuf(gtk.gdk.pixbuf_new_from_file_at_size(self.config.get_icon_dir() + "/icon_shutdown.png", 18, 18))
|
||||
rebootimg = gtk.image_new_from_icon_name(icon_name,
|
||||
gtk.ICON_SIZE_MENU)
|
||||
shutdownimg = gtk.image_new_from_icon_name(icon_name,
|
||||
gtk.ICON_SIZE_MENU)
|
||||
destroyimg = gtk.image_new_from_icon_name(icon_name,
|
||||
gtk.ICON_SIZE_MENU)
|
||||
|
||||
reboot = gtk.ImageMenuItem(_("_Reboot"))
|
||||
reboot.set_image(rebootimg)
|
||||
@ -1712,21 +1710,21 @@ class vmmDetails(gobject.GObject):
|
||||
self.remove_device(info[0], info[1])
|
||||
|
||||
def prepare_hw_list(self):
|
||||
hw_list_model = gtk.ListStore(str, str, int, gtk.gdk.Pixbuf, int, gobject.TYPE_PYOBJECT)
|
||||
# [ label, icon name, icon size, hw type, hw data ]
|
||||
hw_list_model = gtk.ListStore(str, str, int, int,
|
||||
gobject.TYPE_PYOBJECT)
|
||||
self.window.get_widget("hw-list").set_model(hw_list_model)
|
||||
|
||||
hwCol = gtk.TreeViewColumn("Hardware")
|
||||
hwCol.set_spacing(24)
|
||||
hwCol.set_spacing(6)
|
||||
hwCol.set_min_width(165)
|
||||
hw_txt = gtk.CellRendererText()
|
||||
hw_txt.set_property("xpad", 2)
|
||||
hw_img = gtk.CellRendererPixbuf()
|
||||
hw_img.set_property("xpad", 4)
|
||||
hwCol.pack_start(hw_txt, True)
|
||||
hwCol.pack_start(hw_img, False)
|
||||
hwCol.pack_start(hw_txt, True)
|
||||
hwCol.add_attribute(hw_txt, 'text', HW_LIST_COL_LABEL)
|
||||
hwCol.add_attribute(hw_img, 'stock-id', HW_LIST_COL_STOCK_ID)
|
||||
hwCol.add_attribute(hw_img, 'stock-size', HW_LIST_COL_STOCK_SIZE)
|
||||
hwCol.add_attribute(hw_img, 'pixbuf', HW_LIST_COL_PIXBUF)
|
||||
hwCol.add_attribute(hw_img, 'stock-size', HW_LIST_COL_ICON_SIZE)
|
||||
hwCol.add_attribute(hw_img, 'icon-name', HW_LIST_COL_ICON_NAME)
|
||||
self.window.get_widget("hw-list").append_column(hwCol)
|
||||
self.prepare_boot_list()
|
||||
|
||||
@ -1741,23 +1739,32 @@ class vmmDetails(gobject.GObject):
|
||||
|
||||
icon = gtk.CellRendererPixbuf()
|
||||
boot_list.pack_start(icon, False)
|
||||
boot_list.add_attribute(icon, 'stock-id', 1)
|
||||
boot_list.add_attribute(icon, 'icon-name', 1)
|
||||
text = gtk.CellRendererText()
|
||||
boot_list.pack_start(text, True)
|
||||
boot_list.add_attribute(text, 'text', 0)
|
||||
|
||||
def add_hw_list_option(self, title, page_id, data, icon_name):
|
||||
model = self.window.get_widget("hw-list").get_model()
|
||||
model.append([title, icon_name, gtk.ICON_SIZE_LARGE_TOOLBAR,
|
||||
page_id, data])
|
||||
|
||||
def populate_hw_list(self):
|
||||
hw_list_model = self.window.get_widget("hw-list").get_model()
|
||||
hw_list_model.clear()
|
||||
hw_list_model.append([_("Overview"), None, 0, self.pixbuf_processor,
|
||||
HW_LIST_TYPE_GENERAL, []])
|
||||
hw_list_model.append([_("Performance"), None, 0, self.pixbuf_memory,
|
||||
HW_LIST_TYPE_STATS, []])
|
||||
hw_list_model.append([_("Processor"), None, 0, self.pixbuf_processor, HW_LIST_TYPE_CPU, []])
|
||||
hw_list_model.append([_("Memory"), None, 0, self.pixbuf_memory, HW_LIST_TYPE_MEMORY, []])
|
||||
hw_list_model.append([_("Boot Options"), None, 0, self.pixbuf_memory, HW_LIST_TYPE_BOOT, []])
|
||||
|
||||
self.add_hw_list_option("Overview", HW_LIST_TYPE_GENERAL, [],
|
||||
"computer")
|
||||
self.add_hw_list_option("Performance", HW_LIST_TYPE_STATS, [],
|
||||
"utilities-system-monitor")
|
||||
self.add_hw_list_option("Processor", HW_LIST_TYPE_CPU, [], "icon_cpu")
|
||||
self.add_hw_list_option("Memory", HW_LIST_TYPE_MEMORY, [], "icon_cpu")
|
||||
self.add_hw_list_option("Boot Options", HW_LIST_TYPE_BOOT, [],
|
||||
"icon_cpu")
|
||||
|
||||
self.repopulate_hw_list()
|
||||
|
||||
|
||||
def repopulate_hw_list(self):
|
||||
hw_list = self.window.get_widget("hw-list")
|
||||
hw_list_model = hw_list.get_model()
|
||||
@ -1771,116 +1778,96 @@ class vmmDetails(gobject.GObject):
|
||||
currentHostdevs = {}
|
||||
currentVids = {}
|
||||
|
||||
def update_hwlist(hwtype, info):
|
||||
"""Return (true if we updated an entry,
|
||||
index to insert at if we didn't update an entry)
|
||||
def add_hw_list_option(idx, name, page_id, info, icon_name):
|
||||
hw_list_model.insert(idx, [name, icon_name,
|
||||
gtk.ICON_SIZE_LARGE_TOOLBAR,
|
||||
page_id, info])
|
||||
|
||||
def update_hwlist(hwtype, info, name, icon_name):
|
||||
"""
|
||||
See if passed hw is already in list, and if so, update info.
|
||||
If not in list, add it!
|
||||
"""
|
||||
insertAt = 0
|
||||
for row in hw_list_model:
|
||||
if row[HW_LIST_COL_TYPE] == hwtype and \
|
||||
row[HW_LIST_COL_DEVICE][2] == info[2]:
|
||||
if (row[HW_LIST_COL_TYPE] == hwtype and
|
||||
row[HW_LIST_COL_DEVICE][2] == info[2]):
|
||||
# Update existing HW info
|
||||
row[HW_LIST_COL_DEVICE] = info
|
||||
return (False, insertAt)
|
||||
return
|
||||
|
||||
if row[HW_LIST_COL_TYPE] <= hwtype:
|
||||
insertAt += 1
|
||||
|
||||
return (True, insertAt)
|
||||
# Add the new HW row
|
||||
add_hw_list_option(insertAt, name, hwtype, info, icon_name)
|
||||
|
||||
# Populate list of disks
|
||||
for diskinfo in self.vm.get_disk_devices():
|
||||
currentDisks[diskinfo[2]] = 1
|
||||
missing, insertAt = update_hwlist(HW_LIST_TYPE_DISK,
|
||||
diskinfo)
|
||||
icon = "drive-harddisk"
|
||||
if diskinfo[4] == "cdrom":
|
||||
icon = "media-optical"
|
||||
elif diskinfo[4] == "floppy":
|
||||
icon = "media-floppy"
|
||||
|
||||
# Add in row
|
||||
if missing:
|
||||
stock = gtk.STOCK_HARDDISK
|
||||
if diskinfo[4] == "cdrom":
|
||||
stock = gtk.STOCK_CDROM
|
||||
elif diskinfo[4] == "floppy":
|
||||
stock = gtk.STOCK_FLOPPY
|
||||
hw_list_model.insert(insertAt, ["Disk %s" % diskinfo[2], stock, gtk.ICON_SIZE_LARGE_TOOLBAR, None, HW_LIST_TYPE_DISK, diskinfo])
|
||||
update_hwlist(HW_LIST_TYPE_DISK, diskinfo, "Disk %s" % diskinfo[2],
|
||||
icon)
|
||||
|
||||
# Populate list of NICs
|
||||
for netinfo in self.vm.get_network_devices():
|
||||
currentNICs[netinfo[2]] = 1
|
||||
missing, insertAt = update_hwlist(HW_LIST_TYPE_NIC,
|
||||
netinfo)
|
||||
|
||||
# Add in row
|
||||
if missing:
|
||||
hw_list_model.insert(insertAt, ["NIC %s" % netinfo[2][-9:], gtk.STOCK_NETWORK, gtk.ICON_SIZE_LARGE_TOOLBAR, None, HW_LIST_TYPE_NIC, netinfo])
|
||||
update_hwlist(HW_LIST_TYPE_NIC, netinfo,
|
||||
"NIC %s" % netinfo[2][-9:], "network-idle")
|
||||
|
||||
# Populate list of input devices
|
||||
for inputinfo in self.vm.get_input_devices():
|
||||
currentInputs[inputinfo[2]] = 1
|
||||
missing, insertAt = update_hwlist(HW_LIST_TYPE_INPUT,
|
||||
inputinfo)
|
||||
icon = "input-mouse"
|
||||
if inputinfo[4] == "tablet":
|
||||
label = _("Tablet")
|
||||
icon = "input-tablet"
|
||||
elif inputinfo[4] == "mouse":
|
||||
label = _("Mouse")
|
||||
else:
|
||||
label = _("Input")
|
||||
|
||||
# Add in row
|
||||
if missing:
|
||||
if inputinfo[4] == "tablet":
|
||||
label = _("Tablet")
|
||||
elif inputinfo[4] == "mouse":
|
||||
label = _("Mouse")
|
||||
else:
|
||||
label = _("Input")
|
||||
hw_list_model.insert(insertAt, [label, gtk.STOCK_INDEX, gtk.ICON_SIZE_LARGE_TOOLBAR, None, HW_LIST_TYPE_INPUT, inputinfo])
|
||||
update_hwlist(HW_LIST_TYPE_INPUT, inputinfo, label, icon)
|
||||
|
||||
# Populate list of graphics devices
|
||||
for gfxinfo in self.vm.get_graphics_devices():
|
||||
currentGraphics[gfxinfo[2]] = 1
|
||||
missing, insertAt = update_hwlist(HW_LIST_TYPE_GRAPHICS,
|
||||
gfxinfo)
|
||||
|
||||
# Add in row
|
||||
if missing:
|
||||
hw_list_model.insert(insertAt, [_("Display %s") % gfxinfo[1].upper(), gtk.STOCK_SELECT_COLOR, gtk.ICON_SIZE_LARGE_TOOLBAR, None, HW_LIST_TYPE_GRAPHICS, gfxinfo])
|
||||
update_hwlist(HW_LIST_TYPE_GRAPHICS, gfxinfo,
|
||||
_("Display %s") % gfxinfo[1],
|
||||
"video-display")
|
||||
|
||||
# Populate list of sound devices
|
||||
for soundinfo in self.vm.get_sound_devices():
|
||||
currentSounds[soundinfo[2]] = 1
|
||||
missing, insertAt = update_hwlist(HW_LIST_TYPE_SOUND,
|
||||
soundinfo)
|
||||
|
||||
# Add in row
|
||||
if missing:
|
||||
hw_list_model.insert(insertAt, [_("Sound: %s" % soundinfo[2]), gtk.STOCK_MEDIA_PLAY, gtk.ICON_SIZE_LARGE_TOOLBAR, None, HW_LIST_TYPE_SOUND, soundinfo])
|
||||
update_hwlist(HW_LIST_TYPE_SOUND, soundinfo,
|
||||
_("Sound: %s" % soundinfo[2]), "audio-card")
|
||||
|
||||
# Populate list of char devices
|
||||
for charinfo in self.vm.get_char_devices():
|
||||
currentChars[charinfo[2]] = 1
|
||||
missing, insertAt = update_hwlist(HW_LIST_TYPE_CHAR,
|
||||
charinfo)
|
||||
label = charinfo[0].capitalize()
|
||||
if charinfo[0] != "console":
|
||||
label += " %s" % charinfo[3] # Don't show port for console
|
||||
|
||||
# Add in row
|
||||
if missing:
|
||||
l = charinfo[0].capitalize()
|
||||
if charinfo[0] != "console":
|
||||
l += " %s" % charinfo[3] # Don't show port for console
|
||||
hw_list_model.insert(insertAt, [l, gtk.STOCK_CONNECT, gtk.ICON_SIZE_LARGE_TOOLBAR, None, HW_LIST_TYPE_CHAR, charinfo])
|
||||
update_hwlist(HW_LIST_TYPE_CHAR, charinfo, label,
|
||||
gtk.STOCK_CONNECT)
|
||||
|
||||
# Populate host devices
|
||||
for hostdevinfo in self.vm.get_hostdev_devices():
|
||||
currentHostdevs[hostdevinfo[2]] = 1
|
||||
missing, insertAt = update_hwlist(HW_LIST_TYPE_HOSTDEV,
|
||||
hostdevinfo)
|
||||
|
||||
if missing:
|
||||
hw_list_model.insert(insertAt, [hostdevinfo[2], None, gtk.ICON_SIZE_LARGE_TOOLBAR, None, HW_LIST_TYPE_HOSTDEV, hostdevinfo])
|
||||
update_hwlist(HW_LIST_TYPE_HOSTDEV, hostdevinfo, hostdevinfo[2],
|
||||
"system-run")
|
||||
|
||||
# Populate video devices
|
||||
for vidinfo in self.vm.get_video_devices():
|
||||
currentVids[vidinfo[2]] = 1
|
||||
missing, insertAt = update_hwlist(HW_LIST_TYPE_VIDEO,
|
||||
vidinfo)
|
||||
|
||||
if missing:
|
||||
hw_list_model.insert(insertAt,
|
||||
[_("Video"), gtk.STOCK_SELECT_COLOR,
|
||||
gtk.ICON_SIZE_LARGE_TOOLBAR,
|
||||
None, HW_LIST_TYPE_VIDEO, vidinfo])
|
||||
update_hwlist(HW_LIST_TYPE_VIDEO, vidinfo, _("Video"),
|
||||
"video-display")
|
||||
|
||||
# Now remove any no longer current devs
|
||||
devs = range(len(hw_list_model))
|
||||
@ -1927,23 +1914,27 @@ class vmmDetails(gobject.GObject):
|
||||
boot_model.clear()
|
||||
found_dev = {}
|
||||
for row in hw_list_model:
|
||||
if row[4] == HW_LIST_TYPE_DISK:
|
||||
diskinfo = row[5]
|
||||
hwtype = row[HW_LIST_COL_TYPE]
|
||||
|
||||
if hwtype == HW_LIST_TYPE_DISK:
|
||||
diskinfo = row[HW_LIST_COL_DEVICE]
|
||||
|
||||
if diskinfo[4] == virtinst.VirtualDisk.DEVICE_DISK and not \
|
||||
found_dev.get(virtinst.VirtualDisk.DEVICE_DISK, False):
|
||||
boot_model.append(["Hard Disk", gtk.STOCK_HARDDISK, "hd"])
|
||||
boot_model.append(["Hard Disk", "drive-harddisk", "hd"])
|
||||
found_dev[virtinst.VirtualDisk.DEVICE_DISK] = True
|
||||
elif diskinfo[4] == virtinst.VirtualDisk.DEVICE_CDROM and not \
|
||||
found_dev.get(virtinst.VirtualDisk.DEVICE_CDROM, False):
|
||||
boot_model.append(["CDROM", gtk.STOCK_CDROM, "cdrom"])
|
||||
boot_model.append(["CDROM", "media-optical", "cdrom"])
|
||||
found_dev[virtinst.VirtualDisk.DEVICE_CDROM] = True
|
||||
elif diskinfo[4] == virtinst.VirtualDisk.DEVICE_FLOPPY and not \
|
||||
found_dev.get(virtinst.VirtualDisk.DEVICE_FLOPPY, False):
|
||||
boot_model.append(["Floppy", gtk.STOCK_FLOPPY, "fd"])
|
||||
boot_model.append(["Floppy", "media-floppy", "fd"])
|
||||
found_dev[virtinst.VirtualDisk.DEVICE_FLOPPY] = True
|
||||
elif row[4] == HW_LIST_TYPE_NIC and not \
|
||||
found_dev.get(HW_LIST_TYPE_NIC, False):
|
||||
boot_model.append(["Network (PXE)", gtk.STOCK_NETWORK, "network"])
|
||||
|
||||
elif (hwtype == HW_LIST_TYPE_NIC and not
|
||||
found_dev.get(HW_LIST_TYPE_NIC, False)):
|
||||
boot_model.append(["Network (PXE)", "network-idle", "network"])
|
||||
found_dev[HW_LIST_TYPE_NIC] = True
|
||||
|
||||
if len(boot_model) <= 0:
|
||||
|
@ -62,7 +62,7 @@ class vmmHost(gobject.GObject):
|
||||
self.window.get_widget("overview-arch").set_text(self.conn.host_architecture())
|
||||
self.window.get_widget("config-autoconnect").set_active(conn.get_autoconnect())
|
||||
|
||||
netListModel = gtk.ListStore(str, str, str)
|
||||
netListModel = gtk.ListStore(str, str, str, int)
|
||||
self.window.get_widget("net-list").set_model(netListModel)
|
||||
|
||||
volListModel = gtk.ListStore(str, str, str, str)
|
||||
@ -81,12 +81,14 @@ class vmmHost(gobject.GObject):
|
||||
self.window.get_widget("vol-list").get_selection().connect("changed", self.vol_selected)
|
||||
|
||||
netCol = gtk.TreeViewColumn("Networks")
|
||||
netCol.set_spacing(6)
|
||||
net_txt = gtk.CellRendererText()
|
||||
net_img = gtk.CellRendererPixbuf()
|
||||
netCol.pack_start(net_txt, True)
|
||||
netCol.pack_start(net_img, False)
|
||||
netCol.pack_start(net_txt, True)
|
||||
netCol.add_attribute(net_txt, 'text', 1)
|
||||
netCol.add_attribute(net_img, 'stock-id', 2)
|
||||
netCol.add_attribute(net_img, 'icon-name', 2)
|
||||
netCol.add_attribute(net_img, 'stock-size', 3)
|
||||
self.window.get_widget("net-list").append_column(netCol)
|
||||
netListModel.set_sort_column_id(1, gtk.SORT_ASCENDING)
|
||||
|
||||
@ -385,7 +387,8 @@ class vmmHost(gobject.GObject):
|
||||
model.clear()
|
||||
for uuid in self.conn.list_net_uuids():
|
||||
net = self.conn.get_net(uuid)
|
||||
model.append([uuid, net.get_name(), gtk.STOCK_NETWORK])
|
||||
model.append([uuid, net.get_name(), "network-idle",
|
||||
gtk.ICON_SIZE_LARGE_TOOLBAR])
|
||||
|
||||
_iter = model.get_iter_first()
|
||||
if _iter:
|
||||
|
@ -164,12 +164,17 @@ class vmmManager(gobject.GObject):
|
||||
self.vmmenu_icons["resume"] = gtk.Image()
|
||||
self.vmmenu_icons["resume"].set_from_stock(gtk.STOCK_MEDIA_PAUSE,
|
||||
gtk.ICON_SIZE_MENU)
|
||||
self.vmmenu_icons["reboot"] = gtk.Image()
|
||||
self.vmmenu_icons["reboot"].set_from_pixbuf(gtk.gdk.pixbuf_new_from_file_at_size(self.config.get_icon_dir() + "/icon_shutdown.png", 18, 18))
|
||||
self.vmmenu_icons["poweroff"] = gtk.Image()
|
||||
self.vmmenu_icons["poweroff"].set_from_pixbuf(gtk.gdk.pixbuf_new_from_file_at_size(self.config.get_icon_dir() + "/icon_shutdown.png", 18, 18))
|
||||
self.vmmenu_icons["forcepoweroff"] = gtk.Image()
|
||||
self.vmmenu_icons["forcepoweroff"].set_from_pixbuf(gtk.gdk.pixbuf_new_from_file_at_size(self.config.get_icon_dir() + "/icon_shutdown.png", 18, 18))
|
||||
|
||||
icon_name = self.config.get_shutdown_icon_name()
|
||||
rebootimg = gtk.image_new_from_icon_name(icon_name,
|
||||
gtk.ICON_SIZE_MENU)
|
||||
shutdownimg = gtk.image_new_from_icon_name(icon_name,
|
||||
gtk.ICON_SIZE_MENU)
|
||||
destroyimg = gtk.image_new_from_icon_name(icon_name,
|
||||
gtk.ICON_SIZE_MENU)
|
||||
self.vmmenu_icons["reboot"] = rebootimg
|
||||
self.vmmenu_icons["poweroff"] = shutdownimg
|
||||
self.vmmenu_icons["forcepoweroff"] = destroyimg
|
||||
|
||||
self.vmmenu = gtk.Menu()
|
||||
self.vmmenushutdown = gtk.Menu()
|
||||
|
Loading…
Reference in New Issue
Block a user