KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17
System : Linux localhost 2.6.18-419.el5 #1 SMP Fri Feb 24 22:47:42 UTC 2017 x86_64
User : nobody ( 99)
PHP Version : 5.2.17
Disable Function : NONE
Directory :  /proc/21571/root/usr/share/hwbrowser/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //proc/21571/root/usr/share/hwbrowser/DeviceGeneric.py
import gtk
import kudzu
import string
import gobject
import re

##
## I18N
## 
from rhpl.translate import _, N_
import rhpl.translate as translate
domain = 'hwbrowser'
translate.textdomain (domain)
gtk.glade.bindtextdomain(domain)


xml = None
hardware = None

man_re = re.compile (r'^(?P<vendorid>[%s]{4})\s+(?P<vendorname>.*\S)\s*$' % (string.hexdigits))
pci_ids = {}
usb_ids = {}

def load_ids (what):
    if what == 'pci':
        ids = pci_ids
        fname = "/usr/share/hwdata/pci.ids"
    elif what == 'usb':
        ids = usb_ids
        fname = "/usr/share/hwdata/usb.ids"
    _ids = {}
    fd = open (fname, "r")
    for line in fd.readlines ():
        m = man_re.match (line)
        if m:
            vid_hex = m.group ('vendorid')
            vname = m.group ('vendorname')
            vid = string.atoi (vid_hex, 16)
            _ids[vid] = vname
    fd.close ()
    ids.clear ()
    ids.update (_ids)

def hwdata_man_find (vid, what):
    if isinstance (vid, str):
        vid = string.atoi (vid, 0)

    if what == 'pci':
        if not len (pci_ids):
            load_ids ('pci')
        return pci_ids.get (vid)
    elif what == 'usb':
        if not len (usb_ids):
            load_ids ('usb')
        return usb_ids.get (vid)
    else:
        return None

def on_generic_device_select_row (selection):
    (model, iter) = selection.get_selected()
    if iter == None:
        return
    device = model.get_value (iter, 1)
    xml.get_widget("generic_manufacturer_label").show()
    xml.get_widget("manufacturer_label").show()    
    xml.get_widget("driver_label").show()
    xml.get_widget("generic_driver_label").show()
    xml.get_widget("device_label").show()
    xml.get_widget("generic_device_label").show()

    mfg = None

    if device == None:
        return
    if 'vendorId' in dir (device.kudzu_device) and 'bus' in dir (device.kudzu_device):
        bus = None
        if device.kudzu_device.bus == kudzu.BUS_PCI or device.kudzu_device.bus == kudzu.BUS_PCMCIA:
            bus = 'pci'
        elif device.kudzu_device.bus == kudzu.BUS_USB:
            bus = 'usb'
        if bus:
            mfg = hwdata_man_find (device.kudzu_device.vendorId, bus)
            if mfg:
                desc = device.kudzu_device.desc
    if not mfg:
        if string.find (device.kudzu_device.desc, "|") != -1:
            mfg, desc = string.split (device.kudzu_device.desc, "|")
        elif (device.kudzu_device.deviceclass == kudzu.CLASS_CDROM or
            device.kudzu_device.deviceclass == kudzu.CLASS_HD):

            if string.find(device.kudzu_device.desc, " ") != -1:
                mfg, desc = string.split(device.kudzu_device.desc, " ", 1)
            else:
                mfg = _("Unknown")
                desc = None

        elif device.kudzu_device.bus == kudzu.BUS_USB and device.kudzu_device.usbmfr != None:
            mfg = device.kudzu_device.usbmfr
        else:
            mfg = _("Unknown")
            desc = device.kudzu_device.desc

    xml.get_widget ('generic_manufacturer_label').set_text (mfg)
    if device.kudzu_device.driver in [None, "ignore"]:
        driver = _("None or built-in")
    else:
        driver = device.kudzu_device.driver
    xml.get_widget ('generic_driver_label').set_text (driver)
    if device.kudzu_device.device != None:
        xml.get_widget ('generic_device_label').set_text ('/dev/' + device.kudzu_device.device)
    else:
        xml.get_widget("device_label").hide()
        xml.get_widget("generic_device_label").hide()

    if device.kudzu_device.deviceclass == kudzu.CLASS_FLOPPY:
        if device.kudzu_device.detached == 1:
            #If there's no floppy drive attached, hide all the lower widgets
            xml.get_widget("generic_manufacturer_label").hide()
            xml.get_widget("manufacturer_label").hide()    
            xml.get_widget("driver_label").hide()
            xml.get_widget("generic_driver_label").hide()
            xml.get_widget("device_label").hide()
            xml.get_widget("generic_device_label").hide()

def hydrate (devices):
    tree_view = xml.get_widget ('generic_device_treeview')
    list = tree_view.get_model ()
    list.clear ()
    for device in devices:
        iter = list.append ()
        #Check to see if the device is a floppy
        if device.kudzu_device.deviceclass == kudzu.CLASS_FLOPPY:
            #Ok, we've found a floppy.  Let's see if it is detached
            if device.kudzu_device.detached == 1:
                #It's detached, let's show that there are no floppy drives
                list.set (iter, 0, (_("No floppy drives detected")), 1, device)
            else:
                #It's attached.  Continue as normal
                list.set (iter, 0, device.get_name(), 1, device)                
        else:
            list.set (iter, 0, device.get_name(), 1, device)
    tree_view.get_selection().select_path ((0,))

def initialize (global_xml, global_hardware):
    global xml, hardware
    xml = global_xml

    hardware = global_hardware
    tree_view = xml.get_widget ('generic_device_treeview')
    tree_view.get_selection ().set_mode (gtk.SELECTION_BROWSE)
    tree_view.get_selection ().connect ("changed", on_generic_device_select_row)
    model = gtk.ListStore (gobject.TYPE_STRING, gobject.TYPE_PYOBJECT)
    model.set_sort_column_id (0, gtk.SORT_ASCENDING)
    tree_view.set_model (model)
    column = gtk.TreeViewColumn ()
    renderer = gtk.CellRendererText ()
    column.pack_start (renderer, True)
    column.add_attribute (renderer, "text", 0)
    tree_view.append_column (column)
    

Anon7 - 2021