summaryrefslogtreecommitdiffstats
path: root/filters/kspread/csv/xmltree.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'filters/kspread/csv/xmltree.cpp')
-rw-r--r--filters/kspread/csv/xmltree.cpp154
1 files changed, 154 insertions, 0 deletions
diff --git a/filters/kspread/csv/xmltree.cpp b/filters/kspread/csv/xmltree.cpp
new file mode 100644
index 000000000..f5c56373a
--- /dev/null
+++ b/filters/kspread/csv/xmltree.cpp
@@ -0,0 +1,154 @@
+/* This file is part of the KDE project
+ Copyright (C) 1999 David Faure <faure@kde.org>
+
+ 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.
+*/
+
+#include <xmltree.h>
+
+#include <tqdatetime.h>
+#include <kdebug.h>
+
+
+XMLTree::XMLTree(TQDomDocument &qdoc) : root(qdoc)
+{
+ root=TQDomDocument("spreadsheet");
+ root.appendChild( root.createProcessingInstruction( "xml", "version=\"1.0\" encoding=\"UTF-8\"" ) );
+ doc = root.createElement( "spreadsheet" );
+
+ doc.setAttribute("editor", "KSpread CSV Filter");
+ doc.setAttribute("mime", "application/x-kspread");
+ root.appendChild(doc);
+
+ TQDomElement paper = root.createElement("paper");
+ paper.setAttribute("format", "A4");
+ paper.setAttribute("orientation", "Portrait");
+ TQDomElement borders = root.createElement( "borders" );
+ borders.setAttribute( "left", 20 );
+ borders.setAttribute( "top", 20 );
+ borders.setAttribute( "right", 20 );
+ borders.setAttribute( "bottom", 20 );
+ paper.appendChild( borders );
+ doc.appendChild(paper);
+
+ map = root.createElement("map");
+ doc.appendChild(map);
+
+ sheet = root.createElement("table");
+
+ sheet.setAttribute("name", "foobar");
+ map.appendChild(sheet);
+
+ row = 1;
+ column = 1;
+}
+
+XMLTree::~XMLTree()
+{
+ //if(root) // We're using fancy references, now! (Werner)
+ //delete root;
+}
+
+// Not needed anymore (Werner)
+//const TQString XMLTree::part()
+//{
+// TQString s;
+// TQTextStream t(s, IO_WriteOnly);
+
+// TQTime tmr;
+// tmr.start();
+// kdDebug(30501) << "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" << endl;
+
+// root.save(t); // Why does this take sooooo long (approx. 8s on my Athlon 500 with a
+ // quite small file :( )
+
+// David: gdb says that TQString::replace calls itself recursively an enormous amount of time
+// This is called by TQStringBuffer::writeBlock (), called by TQTextStream::writeBlock ()
+// called by TQTextStream::operator<< () in TQDOM_AttrPrivate::save ().
+//
+// And this looks related to the UTF 8 encoding ...
+
+// kdDebug(30501) << (const char*)TQString::number((int)tmr.elapsed()) << endl;
+// kdDebug(30501) << "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" << endl;
+
+// t << '\0';
+
+// return s;
+//}
+
+bool XMLTree::cell( const TQString & contents )
+{
+ TQDomElement e = root.createElement("cell");
+ //e.appendChild(getFormat(xf));
+ //e.appendChild(getFont(xf));
+
+ e.setAttribute("row", row);
+ e.setAttribute("column", column++);
+
+ TQDomElement format=root.createElement("format");
+ format.setAttribute("float", "3");
+ format.setAttribute("alignY", "2");
+ format.setAttribute("floatcolor", "2");
+ format.setAttribute("faktor", "1");
+ format.setAttribute("precision", "-1");
+ format.setAttribute("align", "4");
+
+ TQDomElement pen=root.createElement("pen");
+ pen.setAttribute("width", "1");
+ pen.setAttribute("style", "0");
+ pen.setAttribute("color", "#000000");
+
+ TQDomElement lborder=root.createElement("left-border");
+ lborder.appendChild(pen);
+ format.appendChild(lborder);
+
+ pen=root.createElement("pen");
+ pen.setAttribute("width", "1");
+ pen.setAttribute("style", "0");
+ pen.setAttribute("color", "#000000");
+
+ TQDomElement tborder=root.createElement("top-border");
+ tborder.appendChild(pen);
+ format.appendChild(tborder);
+
+ pen=root.createElement("pen");
+ pen.setAttribute("width", "1");
+ pen.setAttribute("style", "0");
+ pen.setAttribute("color", "#000000");
+
+ TQDomElement fdia=root.createElement("fall-diagonal");
+ fdia.appendChild(pen);
+ format.appendChild(fdia);
+
+ pen=root.createElement("pen");
+ pen.setAttribute("width", "1");
+ pen.setAttribute("style", "0");
+ pen.setAttribute("color", "#000000");
+
+ TQDomElement udia=root.createElement("up-diagonal");
+ udia.appendChild(pen);
+ format.appendChild(udia);
+
+ e.appendChild(format);
+
+ TQDomElement text=root.createElement("text");
+ text.appendChild(root.createTextNode(contents));
+ e.appendChild(text);
+
+ sheet.appendChild(e);
+
+ return true;
+}