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 "WebKitPart.h"
33 #include "WebKitFactory.h"
34 #include "WebKitPartClient.h"
36 using namespace WebCore;
38 WebKitPart::WebKitPart(QWidget* parentWidget, QObject* parentObject, GUIProfile prof)
39 : KParts::ReadOnlyPart(parentObject)
44 setInstance(WebKitFactory::instance(), prof == BrowserViewGUI && !parentPart());
46 initView(parentWidget, prof);
49 WebKitPart::~WebKitPart()
52 delete m_frame->page();
57 bool WebKitPart::openFile()
62 bool WebKitPart::openUrl(const KUrl& url)
64 return m_frame->openURL(KURL(url.toEncoded()));
67 bool WebKitPart::closeUrl()
69 return m_frame->closeURL();
72 WebKitPart* WebKitPart::parentPart()
74 return qobject_cast<WebKitPart*>(parent());
77 Frame* WebKitPart::frame()
82 void WebKitPart::initView(QWidget* parentWidget, GUIProfile prof)
84 if (prof == DefaultGUI)
85 setXMLFile("WebKitPart.rc");
86 else if (prof == BrowserViewGUI)
87 setXMLFile("WebKitPartBrowser.rc");
89 m_client = new WebKitPartClient();
91 // Initialize WebCore in Qt platform mode...
92 Page* page = new Page();
93 Frame* frame = new FrameQt(page, 0, m_client);
96 frame->deref(); // Frames are created with a refcount of 1. Release this ref, since we've assigned it to a RefPtr
98 page->setMainFrame(frame);
100 FrameView* frameView = new FrameView(frame);
101 m_frameView = frameView;
102 frameView->deref(); // FrameViews are created with a refcount of 1. Release this ref, since we've assigned it to a RefPtr
104 m_frame->setView(frameView);
105 m_frameView->setParentWidget(parentWidget);
107 // Initialize KParts widget...
108 setWidget(m_frame->view()->qwidget());
111 #include "WebKitPart.moc"