From 3b7a1ffae0ae9e5fd0c1dd238434e0bf312fa6ad Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Tue, 14 Aug 2012 10:57:58 +0200 Subject: Get sure rekonq makes use of djvu plugin Also, clean up mimetype detection, following kdewebkit. I tried implementing this using the protected excludeMimeType in kwebpluginfactory, but I fear it has to be declared virtual to let the trick work. Isn't it? BUG: 304562 CCMAIL: adawit@kde.org --- src/webpluginfactory.cpp | 14 +++++++++++++- src/webpluginfactory.h | 2 +- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/webpluginfactory.cpp b/src/webpluginfactory.cpp index b62af1c8..083ea747 100644 --- a/src/webpluginfactory.cpp +++ b/src/webpluginfactory.cpp @@ -50,13 +50,25 @@ void WebPluginFactory::setLoadClickToFlash(bool load) } -QObject *WebPluginFactory::create(const QString &mimeType, +QObject *WebPluginFactory::create(const QString &_mimeType, const QUrl &url, const QStringList &argumentNames, const QStringList &argumentValues) const { + QString mimeType(_mimeType.trimmed()); + // If no mimetype is provided, follow kwebpluginfactory road to determine/guess it + if (mimeType.isEmpty()) + { + extractGuessedMimeType(url, &mimeType); + } + kDebug() << "loading mimeType: " << mimeType; + // we'd like to use djvu plugin if possible. If not available, rekonq protocol handler + // will provide a part to load it. See BUG:304562 about + if (mimeType == QL1S("image/vnd.djvu") || mimeType == QL1S("image/x.djvu")) + return 0; + switch (ReKonfig::pluginsEnabled()) { case 0: diff --git a/src/webpluginfactory.h b/src/webpluginfactory.h index b1bcd967..82bf02ce 100644 --- a/src/webpluginfactory.h +++ b/src/webpluginfactory.h @@ -43,7 +43,7 @@ class REKONQ_TESTS_EXPORT WebPluginFactory : public KWebPluginFactory public: WebPluginFactory(QObject *parent); - virtual QObject *create(const QString &mimeType, + virtual QObject *create(const QString &_mimeType, const QUrl &url, const QStringList &argumentNames, const QStringList &argumentValues) const; -- cgit v1.2.1