/* This file is part of the KDE project Copyright (C) 2001, 2002, 2004 Nicolas GOUTTE Copyright (c) 2001 IABG mbH. All rights reserved. Contact: Wolf-Michael Bolle This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ /* This file is based on the old file: /home/kde/koffice/filters/kword/ascii/asciiexport.cc The old file was copyrighted by Copyright (C) 1998, 1999 Reginald Stadlbauer Copyright (c) 2000 ID-PRO Deutschland GmbH. All rights reserved. Contact: Wolf-Michael Bolle The old file was licensed under the terms of the GNU Library General Public License version 2. */ #include #include #include "TagProcessing.h" #define DEBUG_KWORD_TAGS // #define DEBUG_KWORD_IGNORED_TAGS void ProcessSubtags ( const TQDomNode &parentNode, TQValueList &tagProcessingList, KWEFKWordLeader *leader) { //kdDebug(30508) << "Starting ProcessSubtags for node: " << parentNode.nodeName() << endl; TQDomNode childNode; for ( childNode = parentNode.firstChild (); !childNode.isNull (); childNode = childNode.nextSibling () ) { if ( childNode.isElement () ) { bool found = false; TQValueList::Iterator tagProcessingIt; for ( tagProcessingIt = tagProcessingList.begin (); tagProcessingIt != tagProcessingList.end (); tagProcessingIt++ ) { if ( childNode.nodeName () == (*tagProcessingIt).name ) { found = true; if ( (*tagProcessingIt).processor != NULL ) { ((*tagProcessingIt).processor) ( childNode, (*tagProcessingIt).data, leader ); } #ifdef DEBUG_KWORD_IGNORED_TAGS else { kdDebug(30508) << "Ignoring " << childNode.nodeName () << " tag in " << parentNode.nodeName () << endl; } #endif break; } } if ( !found ) { kdDebug(30508) << "Unexpected tag " << childNode.nodeName () << " in " << parentNode.nodeName () << "!" << endl; } } } //kdDebug(30508) << "Ending ProcessSubtags for node: " << parentNode.nodeName() << endl; } void AllowNoSubtags ( const TQDomNode& myNode, KWEFKWordLeader *leader ) { #ifdef DEBUG_KWORD_TAGS TQString outputText; TQValueList tagProcessingList; ProcessSubtags (myNode, tagProcessingList, leader); #else @_UNUSED( leader ): #endif } AttrProcessing::AttrProcessing ( const TQString& n, const TQString& t, void *d ) : name (n), data (d) { if ( t == "int" ) type = AttrInt; else if ( t == TQSTRING_OBJECT_NAME_STRING ) type = AttrTQString; else if ( t == "double" ) type = AttrDouble; else if ( t == "bool" ) type = AttrBool; else if ( t.isEmpty() ) type = AttrNull; else { kdWarning(30508) << "Unknown type: " << t << " for element " << n << " assuming NULL" << endl; type = AttrNull; } } void ProcessAttributes ( const TQDomNode &myNode, TQValueList &attrProcessingList ) { //kdDebug(30508) << "Starting ProcessAttributes for node: " << myNode.nodeName() << endl; TQDomNamedNodeMap myAttribs ( myNode.attributes () ); //kdDebug(30508) << "Attributes = " << myAttribs.length () <::Iterator attrProcessingIt; for ( attrProcessingIt = attrProcessingList.begin (); attrProcessingIt != attrProcessingList.end (); attrProcessingIt++ ) { //kdDebug(30508) << "NAME: " << myAttrib.name () << " == " << (*attrProcessingIt).name < attrProcessingList; ProcessAttributes (myNode, attrProcessingList); #else Q_UNUSED( myNode ); #endif }