Added parentnode 'type' to the list of vendors and devices
This commit is contained in:
parent
b2bc7c9a9f
commit
0d75b1278c
3 changed files with 32 additions and 11 deletions
|
@ -28,17 +28,13 @@ QVariant VendorDeviceModel::data(const QModelIndex &index, int role) const {
|
|||
|
||||
if (role == Qt::DisplayRole) {
|
||||
VendorDeviceTreeItem *item = static_cast<VendorDeviceTreeItem*>(index.internalPointer());
|
||||
if (item->isDevice()) {
|
||||
return item->data(index.column());
|
||||
}
|
||||
return "";
|
||||
return item->data(index.column());
|
||||
} else if (role == Qt::DecorationRole) {
|
||||
VendorDeviceTreeItem *item = static_cast<VendorDeviceTreeItem*>(index.internalPointer());
|
||||
QPixmap pixmap = item->image();
|
||||
if (item->isDevice()) {
|
||||
QPixmap pixmap = item->image();
|
||||
return pixmap.scaled(22, 22, Qt::KeepAspectRatio, Qt::SmoothTransformation);
|
||||
}
|
||||
return pixmap.scaled(150, 15, Qt::KeepAspectRatio, Qt::SmoothTransformation);
|
||||
}
|
||||
return QVariant();
|
||||
}
|
||||
|
|
|
@ -112,8 +112,8 @@ bool VendorDeviceTreeItem::parseXml( const QString &filename ) {
|
|||
if (reader.isStartElement()) {
|
||||
if (reader.name() == "devices") { //First element
|
||||
reader.readNext();
|
||||
} else if (reader.name() == "vendor") {
|
||||
parseVendor( &reader );
|
||||
} else if (reader.name() == "type") {
|
||||
parseType( &reader );
|
||||
} else {
|
||||
reader.raiseError( QObject::tr("Not a Telldus device-file"));
|
||||
}
|
||||
|
@ -138,12 +138,36 @@ bool VendorDeviceTreeItem::parseXml( const QString &filename ) {
|
|||
return true;
|
||||
}
|
||||
|
||||
void VendorDeviceTreeItem::parseVendor( QXmlStreamReader *reader ) {
|
||||
void VendorDeviceTreeItem::parseType( QXmlStreamReader *reader ) {
|
||||
VendorDeviceTreeItem *item = new VendorDeviceTreeItem(0, this);
|
||||
item->deviceName = reader->attributes().value("name").toString();
|
||||
item->img = reader->attributes().value("image").toString();
|
||||
appendChild(item);
|
||||
|
||||
reader->readNext();
|
||||
while(!reader->atEnd()) {
|
||||
if (reader->isEndElement()) {
|
||||
reader->readNext();
|
||||
break;
|
||||
}
|
||||
|
||||
if (reader->isStartElement()) {
|
||||
if (reader->name() == "vendor") {
|
||||
parseVendor( reader, item );
|
||||
} else {
|
||||
skipUnknownElement( reader );
|
||||
}
|
||||
} else {
|
||||
reader->readNext();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void VendorDeviceTreeItem::parseVendor( QXmlStreamReader *reader, VendorDeviceTreeItem *parent ) {
|
||||
VendorDeviceTreeItem *item = new VendorDeviceTreeItem(0, parent);
|
||||
item->deviceName = reader->attributes().value("name").toString();
|
||||
item->img = reader->attributes().value("image").toString();
|
||||
parent->appendChild(item);
|
||||
|
||||
reader->readNext();
|
||||
while(!reader->atEnd()) {
|
||||
if (reader->isEndElement()) {
|
||||
|
|
|
@ -31,7 +31,8 @@ public:
|
|||
VendorDeviceTreeItem *findByDeviceId( int deviceId ) const;
|
||||
|
||||
private:
|
||||
void parseVendor( QXmlStreamReader *reader );
|
||||
void parseType( QXmlStreamReader *reader );
|
||||
void parseVendor( QXmlStreamReader *reader, VendorDeviceTreeItem *parent );
|
||||
void parseDevice( QXmlStreamReader *reader, VendorDeviceTreeItem *parent );
|
||||
void skipUnknownElement( QXmlStreamReader *reader );
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue