summaryrefslogtreecommitdiffstats
path: root/kmail/khtmlparthtmlwriter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kmail/khtmlparthtmlwriter.cpp')
-rw-r--r--kmail/khtmlparthtmlwriter.cpp154
1 files changed, 0 insertions, 154 deletions
diff --git a/kmail/khtmlparthtmlwriter.cpp b/kmail/khtmlparthtmlwriter.cpp
deleted file mode 100644
index 3c8ee388d..000000000
--- a/kmail/khtmlparthtmlwriter.cpp
+++ /dev/null
@@ -1,154 +0,0 @@
-/* -*- c++ -*-
- khtmlparthtmlwriter.cpp
-
- This file is part of KMail, the KDE mail client.
- Copyright (c) 2003 Marc Mutz <mutz@kde.org>
-
- KMail is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License, version 2, as
- published by the Free Software Foundation.
-
- KMail 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
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
- In addition, as a special exception, the copyright holders give
- permission to link the code of this program with any edition of
- the TQt library by Trolltech AS, Norway (or with modified versions
- of TQt that use the same license as TQt), and distribute linked
- combinations including the two. You must obey the GNU General
- Public License in all respects for all of the code used other than
- TQt. If you modify this file, you may extend this exception to
- your version of the file, but you are not obligated to do so. If
- you do not wish to do so, delete this exception statement from
- your version.
-*/
-
-#include <config.h>
-
-#include "khtmlparthtmlwriter.h"
-
-#include <kdebug.h>
-#include <khtml_part.h>
-#include <khtmlview.h>
-
-#include <dom/dom_string.h>
-#include <dom/html_document.h>
-#include <dom/html_image.h>
-#include <dom/html_misc.h>
-
-#include <cassert>
-
-namespace KMail {
-
- KHtmlPartHtmlWriter::KHtmlPartHtmlWriter( KHTMLPart * part,
- TQObject * parent, const char * name )
- : TQObject( parent, name ), HtmlWriter(),
- mHtmlPart( part ), mHtmlTimer( 0, "mHtmlTimer" ), mState( Ended )
- {
- assert( part );
- connect( &mHtmlTimer, TQT_SIGNAL(timeout()), TQT_SLOT(slotWriteNextHtmlChunk()) );
- }
-
- KHtmlPartHtmlWriter::~KHtmlPartHtmlWriter() {
-
- }
-
- void KHtmlPartHtmlWriter::begin( const TQString & css ) {
- if ( mState != Ended ) {
- kdWarning( 5006 ) << "KHtmlPartHtmlWriter: begin() called on non-ended session!" << endl;
- reset();
- }
-
- mEmbeddedPartMap.clear();
-
- // clear the widget:
- mHtmlPart->view()->setUpdatesEnabled( false );
- mHtmlPart->view()->viewport()->setUpdatesEnabled( false );
- static_cast<TQScrollView *>(mHtmlPart->widget())->ensureVisible( 0, 0 );
-
- mHtmlPart->begin( KURL( "file:/" ) );
- if ( !css.isEmpty() )
- mHtmlPart->setUserStyleSheet( css );
- mState = Begun;
- }
-
- void KHtmlPartHtmlWriter::end() {
- kdWarning( mState != Begun, 5006 ) << "KHtmlPartHtmlWriter: end() called on non-begun or queued session!" << endl;
- mHtmlPart->end();
-
- resolveCidUrls();
-
- mHtmlPart->view()->viewport()->setUpdatesEnabled( true );
- mHtmlPart->view()->setUpdatesEnabled( true );
- mHtmlPart->view()->viewport()->repaint( false );
- mState = Ended;
- }
-
- void KHtmlPartHtmlWriter::reset() {
- if ( mState != Ended ) {
- mHtmlTimer.stop();
- mHtmlQueue.clear();
- mState = Begun; // don't run into end()'s warning
- end();
- }
- mState = Ended;
- }
-
- void KHtmlPartHtmlWriter::write( const TQString & str ) {
- kdWarning( mState != Begun, 5006 ) << "KHtmlPartHtmlWriter: write() called in Ended or Queued state!" << endl;
- mHtmlPart->write( str );
- }
-
- void KHtmlPartHtmlWriter::queue( const TQString & str ) {
- static const uint chunksize = 16384;
- for ( uint pos = 0 ; pos < str.length() ; pos += chunksize )
- mHtmlQueue.push_back( str.mid( pos, chunksize ) );
- mState = Queued;
- }
-
- void KHtmlPartHtmlWriter::flush() {
- slotWriteNextHtmlChunk();
- }
-
- void KHtmlPartHtmlWriter::slotWriteNextHtmlChunk() {
- if ( mHtmlQueue.empty() ) {
- mState = Begun; // don't run into end()'s warning
- end();
- } else {
- mHtmlPart->write( mHtmlQueue.front() );
- mHtmlQueue.pop_front();
- mHtmlTimer.start( 0, true );
- }
- }
-
- void KHtmlPartHtmlWriter::embedPart( const TQCString & contentId,
- const TQString & contentURL ) {
- mEmbeddedPartMap[TQString(contentId)] = contentURL;
- }
-
- void KHtmlPartHtmlWriter::resolveCidUrls()
- {
- DOM::HTMLDocument document = mHtmlPart->htmlDocument();
- DOM::HTMLCollection images = document.images();
- for ( DOM::Node node = images.firstItem(); !node.isNull(); node = images.nextItem() ) {
- DOM::HTMLImageElement image( node );
- KURL url( image.src().string() );
- if ( url.protocol() == "cid" ) {
- EmbeddedPartMap::const_iterator it = mEmbeddedPartMap.find( url.path() );
- if ( it != mEmbeddedPartMap.end() ) {
- kdDebug(5006) << "Replacing " << url.prettyURL() << " by " << it.data() << endl;
- image.setSrc( it.data() );
- }
- }
- }
- }
-
-} // namespace KMail
-
-#include "khtmlparthtmlwriter.moc"