void SetDisksDataThread::run() { if ( nullptr==ptr_ConnPtr || nullptr==*ptr_ConnPtr ) { emit ptrIsNull(); return; }; // NOTE: currConnName == domainName virDomainPtr domain = virDomainLookupByName( *ptr_ConnPtr, currConnName.toUtf8().data()); if ( nullptr!=domain ) { char *xmlDesc = virDomainGetXMLDesc(domain, 0); virDomainFree(domain); if ( nullptr!=xmlDesc ) { QDomDocument doc; doc.setContent(QString(xmlDesc)); free(xmlDesc); QDomElement _devices = doc .firstChildElement("domain") .firstChildElement("devices"); QDomElement _disk = _devices .firstChildElement("disk"); while ( !_disk.isNull() ) { emit diskData(_disk); _disk = _disk.nextSiblingElement("disk"); }; }; } else sendConnErrors(); }
QVariant TrackViewModel::data(const QModelIndex &index, int role) const { if (!index.isValid()) return QVariant(); Track *track = trackByIndex(index); if (track) return trackData(track, index, role); Disk *disk = diskByIndex(index); if(disk) return diskData(disk, index, role); return QVariant(); }