blob: ea6c1dec84f50b1abe5f290926693c5e212ba798 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
/*
*/
#include "structureparser.h"
#include <qstring.h>
#include <qlistview.h>
StructureParser::StructureParser( QListView * t )
: QXmlDefaultHandler()
{
setListView( t );
}
void StructureParser::setListView( QListView * t )
{
table = t;
table->setSorting( -1 );
table->addColumn( "Qualified name" );
table->addColumn( "Namespace" );
}
bool StructureParser::startElement( const QString& namespaceURI,
const QString& ,
const QString& qName,
const QXmlAttributes& attributes)
{
QListViewItem * element;
if ( ! stack.isEmpty() ){
QListViewItem *lastChild = stack.top()->firstChild();
if ( lastChild ) {
while ( lastChild->nextSibling() )
lastChild = lastChild->nextSibling();
}
element = new QListViewItem( stack.top(), lastChild, qName, namespaceURI );
} else {
element = new QListViewItem( table, qName, namespaceURI );
}
stack.push( element );
element->setOpen( TRUE );
if ( attributes.length() > 0 ) {
for ( int i = 0 ; i < attributes.length(); i++ ) {
new QListViewItem( element, attributes.qName(i), attributes.uri(i) );
}
}
return TRUE;
}
bool StructureParser::endElement( const QString&, const QString&,
const QString& )
{
stack.pop();
return TRUE;
}
|