From d796c9dd933ab96ec83b9a634feedd5d32e1ba3f Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Tue, 8 Nov 2011 12:31:36 -0600 Subject: Test conversion to TQt3 from Qt3 8c6fc1f8e35fd264dd01c582ca5e7549b32ab731 --- doc/html/outliner-example.html | 279 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 279 insertions(+) create mode 100644 doc/html/outliner-example.html (limited to 'doc/html/outliner-example.html') diff --git a/doc/html/outliner-example.html b/doc/html/outliner-example.html new file mode 100644 index 000000000..f289fc639 --- /dev/null +++ b/doc/html/outliner-example.html @@ -0,0 +1,279 @@ + + + + + +Outliner to show use of DOM + + + + + + + +
+ +Home + | +All Classes + | +Main Classes + | +Annotated + | +Grouped Classes + | +Functions +

Outliner to show use of DOM

+ + +

+

This example presents a small outliner program to show the basic usage of +the DOM classes. The format of the outlines +is the OPML format as described in http://www.opml.org/spec. +

This example shows how to load a DOM tree from an XML file and how to +traverse it. +


+

Sample XML file (todos.opml): +

<?xml version="1.0" encoding="ISO-8859-1"?>
+<opml version="1.0">
+    <head>
+        <title>Todo List</title>
+        <dateCreated>Tue, 31 Oct 2000 17:00:17 CET</dateCreated>
+        <dateModified>Tue, 31 Oct 2000 17:00:17 CET</dateModified>
+        <ownerName>Arthur Dent</ownerName>
+        <ownerEmail>info@trolltech.com</ownerEmail>
+    </head>
+    <body>
+        <outline text="Background">
+            <outline text="This is an example todo list."/>
+        </outline>
+        <outline text="Books to read">
+            <outline text="Science Fiction">
+                <outline text="Philip K. Dick">
+                    <outline text="Do Androids Dream of Electical Sheep?"/>
+                    <outline text="The Three Stigmata of Palmer Eldritch"/>
+                </outline>
+                <outline text="Robert A. Heinlein">
+                    <outline text="Stranger in a Strange Land"/>
+                </outline>
+                <outline text="Isaac Asimov">
+                    <outline text="Foundation and Empire"/>
+                </outline>
+            </outline>
+            <outline text="TQt Books (in English)">
+                <outline text="Blanchette &amp; Summerfield: C++ GUI Programming with TQt 3"/>
+                <outline text="Dalheimer: Programming with TQt"/>
+                <outline text="Griffith: KDE 2/TQt Programming Bible"/>
+                <outline text="Hughes: Linux Rapid Application Development"/>
+                <outline text="Solin: TQt Programming in 24 hours"/>
+                <outline text="Ward: TQt 2 Programming for Linux and Windows 2000"/>
+            </outline>
+        </outline>
+        <outline text="Shopping list">
+            <outline text="General">
+                <outline text="Towel"/>
+                <outline text="Hair dryer"/>
+                <outline text="Underpants"/>
+            </outline>
+            <outline text="For Sunday">
+                <outline text="Beef"/>
+                <outline text="Rice"/>
+                <outline text="Carrots"/>
+                <outline text="Beans"/>
+                <outline text="Beer"/>
+                <outline text="Wine"/>
+                <outline text="Orange juice"/>
+            </outline>
+        </outline>
+        <outline text="Write a letter to Ford">
+        </outline>
+    </body>
+</opml>
+
+ +


+

Header file (outlinetree.h): +

/****************************************************************************
+** $Id: qt/outlinetree.h   3.3.8   edited Jan 11 14:37 $
+**
+** Copyright (C) 1992-2007 Trolltech ASA.  All rights reserved.
+**
+** This file is part of an example program for TQt.  This example
+** program may be used, distributed and modified without limitation.
+**
+*****************************************************************************/
+
+#ifndef OUTLINETREE_H
+#define OUTLINETREE_H
+
+#include <qlistview.h>
+#include <qdom.h>
+
+class OutlineTree : public TQListView
+{
+    Q_OBJECT
+
+public:
+    OutlineTree( const TQString fileName, TQWidget *parent = 0, const char *name = 0 );
+    ~OutlineTree();
+
+private:
+    TQDomDocument domTree;
+    void getHeaderInformation( const TQDomElement &header );
+    void buildTree( TQListViewItem *parentItem, const TQDomElement &parentElement );
+};
+
+#endif // OUTLINETREE_H
+
+ +


+

Implementation (outlinetree.cpp): +

/****************************************************************************
+** $Id: qt/outlinetree.cpp   3.3.8   edited Jan 11 14:37 $
+**
+** Copyright (C) 1992-2007 Trolltech ASA.  All rights reserved.
+**
+** This file is part of an example program for TQt.  This example
+** program may be used, distributed and modified without limitation.
+**
+*****************************************************************************/
+
+#include "outlinetree.h"
+#include <qfile.h>
+#include <qmessagebox.h>
+
+OutlineTree::OutlineTree( const TQString fileName, TQWidget *parent, const char *name )
+    : TQListView( parent, name )
+{
+    // div. configuration of the list view
+    addColumn( "Outlines" );
+    setSorting( -1 );
+    setRootIsDecorated( TRUE );
+
+    // read the XML file and create DOM tree
+    TQFile opmlFile( fileName );
+    if ( !opmlFile.open( IO_ReadOnly ) ) {
+        TQMessageBox::critical( 0,
+                tr( "Critical Error" ),
+                tr( "Cannot open file %1" ).arg( fileName ) );
+        return;
+    }
+    if ( !domTree.setContent( &opmlFile ) ) {
+        TQMessageBox::critical( 0,
+                tr( "Critical Error" ),
+                tr( "Parsing error for file %1" ).arg( fileName ) );
+        opmlFile.close();
+        return;
+    }
+    opmlFile.close();
+
+    // get the header information from the DOM
+    TQDomElement root = domTree.documentElement();
+    TQDomNode node;
+    node = root.firstChild();
+    while ( !node.isNull() ) {
+        if ( node.isElement() && node.nodeName() == "head" ) {
+            TQDomElement header = node.toElement();
+            getHeaderInformation( header );
+            break;
+        }
+        node = node.nextSibling();
+    }
+    // create the tree view out of the DOM
+    node = root.firstChild();
+    while ( !node.isNull() ) {
+        if ( node.isElement() && node.nodeName() == "body" ) {
+            TQDomElement body = node.toElement();
+            buildTree( 0, body );
+            break;
+        }
+        node = node.nextSibling();
+    }
+}
+
+OutlineTree::~OutlineTree()
+{
+}
+
+void OutlineTree::getHeaderInformation( const TQDomElement &header )
+{
+    // visit all children of the header element and look if you can make
+    // something with it
+    TQDomNode node = header.firstChild();
+    while ( !node.isNull() ) {
+        if ( node.isElement() ) {
+            // case for the different header entries
+            if ( node.nodeName() == "title" ) {
+                TQDomText textChild = node.firstChild().toText();
+                if ( !textChild.isNull() ) {
+                    setColumnText( 0, textChild.nodeValue() );
+                }
+            }
+        }
+        node = node.nextSibling();
+    }
+}
+
+void OutlineTree::buildTree( TQListViewItem *parentItem, const TQDomElement &parentElement )
+{
+    TQListViewItem *thisItem = 0;
+    TQDomNode node = parentElement.firstChild();
+    while ( !node.isNull() ) {
+        if ( node.isElement() && node.nodeName() == "outline" ) {
+            // add a new list view item for the outline
+            if ( parentItem == 0 )
+                thisItem = new TQListViewItem( this, thisItem );
+            else
+                thisItem = new TQListViewItem( parentItem, thisItem );
+            thisItem->setText( 0, node.toElement().attribute( "text" ) );
+            // recursive build of the tree
+            buildTree( thisItem, node.toElement() );
+        }
+        node = node.nextSibling();
+    }
+}
+
+ +


+

Main (main.cpp): +

/****************************************************************************
+** $Id: qt/main.cpp   3.3.8   edited Jan 11 14:37 $
+**
+** Copyright (C) 1992-2007 Trolltech ASA.  All rights reserved.
+**
+** This file is part of an example program for TQt.  This example
+** program may be used, distributed and modified without limitation.
+**
+*****************************************************************************/
+
+#include <qapplication.h>
+#include "outlinetree.h"
+
+int main( int argc, char **argv )
+{
+    TQApplication a( argc, argv );
+
+    OutlineTree outline( "todos.opml" );
+    a.setMainWidget( &outline );
+    outline.show();
+
+    return a.exec();
+}
+
+ +

See also TQt XML Examples. + + +


+ +
Copyright © 2007 +TrolltechTrademarks +
TQt 3.3.8
+
+ -- cgit v1.2.1