2 * Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org>
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
15 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
16 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
18 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
19 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
20 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
21 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
22 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
23 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 #include "FrameQtClient.h"
32 #include "ResourceLoader.h"
33 #include "ResourceLoaderInternal.h"
35 #include <QMessageBox>
39 FrameQtClientDefault::FrameQtClientDefault()
41 , ResourceLoaderClient()
43 , m_assignedMimetype(false)
47 FrameQtClientDefault::~FrameQtClientDefault()
51 void FrameQtClientDefault::setFrame(const FrameQt* frame)
54 m_frame = const_cast<FrameQt*>(frame);
57 void FrameQtClientDefault::openURL(const KURL& url)
59 m_frame->didOpenURL(url);
60 m_assignedMimetype = false;
62 RefPtr<ResourceLoader> loader = ResourceLoader::create(this, "GET", url);
66 void FrameQtClientDefault::submitForm(const String& method, const KURL& url, const FormData* postData)
68 m_assignedMimetype = false;
70 RefPtr<ResourceLoader> loader = ResourceLoader::create(this, method, url, *postData);
74 void FrameQtClientDefault::runJavaScriptAlert(String const& message)
76 QMessageBox::information(m_frame->view()->qwidget(), "JavaScript", message);
79 void FrameQtClientDefault::receivedResponse(ResourceLoader*, PlatformResponse)
84 void FrameQtClientDefault::receivedData(ResourceLoader* job, const char* data, int length)
86 ResourceLoaderInternal* d = job->getInternal();
89 if (!m_assignedMimetype) {
90 m_assignedMimetype = true;
92 // Assign correct mimetype _before_ calling begin()!
93 m_frame->setResponseMIMEType(d->m_mimetype);
96 // TODO: Allow user overrides of the encoding...
97 // This calls begin() for us, despite the misleading name
98 m_frame->setEncoding(d->m_charset, false);
100 // Feed with new data
101 m_frame->addData(data, length);
104 void FrameQtClientDefault::receivedAllData(ResourceLoader* job, PlatformData data)
107 m_assignedMimetype = false;