35 #include <kparts/part.h>
37 #include <QtCore/QListIterator>
38 #include <QtCore/QStringList>
39 #include <QtCore/QList>
41 #include <QtWebKit/QWebPluginFactory>
42 #include <QtWebKit/QWebFrame>
43 #include <QtWebKit/QWebView>
45 #define QL1S(x) QLatin1String(x)
46 #define QL1C(x) QLatin1Char(x)
60 QString mimeType (_mimeType.trimmed());
62 if (mimeType.isEmpty()) {
63 kDebug(800) <<
"Looking up missing mimetype for plugin resource:" << url;
65 kDebug(800) <<
"Updated mimetype to" << mimeType;
73 kDebug(800) <<
"Asked for" << mimeType <<
"plugin, got" << part;
77 QString urlStr = url.toString(QUrl::RemovePath | QUrl::RemoveQuery | QUrl::RemoveFragment);
78 metaData.insert(
"PropagateHttpHeader",
"true");
79 metaData.insert(
"referrer", urlStr);
80 metaData.insert(
"cross-domain", urlStr);
81 metaData.insert(
"main_frame_request",
"TRUE");
82 metaData.insert(
"ssl_activate_warnings",
"TRUE");
87 const QString scheme = page->currentFrame()->url().scheme();
88 if (page && (QString::compare(scheme,
QL1S(
"https"), Qt::CaseInsensitive) == 0 ||
89 QString::compare(scheme,
QL1S(
"webdavs"), Qt::CaseInsensitive) == 0))
90 metaData.insert(
"ssl_was_in_use",
"TRUE");
92 metaData.insert(
"ssl_was_in_use",
"FALSE");
95 KParts::OpenUrlArguments openUrlArgs = part->arguments();
96 openUrlArgs.metaData() = metaData;
97 openUrlArgs.setMimeType(mimeType);
98 part->setArguments(openUrlArgs);
100 return part->widget();
114 const QString scheme (url.scheme());
115 return (scheme.startsWith(
QL1S(
"http"), Qt::CaseInsensitive)
116 || scheme.startsWith(
QL1S(
"webdav"), Qt::CaseInsensitive));
124 if (!ptr->isDefault() && !ptr->name().startsWith(
QL1S(
"inode/"), Qt::CaseInsensitive)) {
125 *mimeType = ptr->name();
136 KParts::ReadOnlyPart* part = 0;
138 if (!mimeType.isEmpty()) {
140 QVariantList arguments;
141 const int count = argumentNames.count();
143 for (
int i = 0; i < count; ++i) {
144 arguments <<
QString(argumentNames.at(i) +
QL1S(
"=\"") + argumentValues.at(i) +
QL1C(
'\"'));
146 part = KMimeTypeTrader::createPartInstanceFromQuery<KParts::ReadOnlyPart>(mimeType, parentWidget, parentObj,
QString(), arguments);
154 if (mimeType.startsWith(
QL1S(
"inode/"), Qt::CaseInsensitive))
157 if (mimeType.startsWith(
QL1S(
"application/x-java"), Qt::CaseInsensitive))
160 if (mimeType ==
QL1S(
"application/x-shockwave-flash") ||
161 mimeType ==
QL1S(
"application/futuresplash"))
167 #include "kwebpluginfactory.moc"