From 865f314dd5ed55508f45a32973b709b79a541e36 Mon Sep 17 00:00:00 2001 From: tpearson Date: Fri, 11 Dec 2009 03:46:01 +0000 Subject: kdelibs update to Trinity v3.5.11 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdelibs@1061230 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- khtml/rendering/render_frames.cpp | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) (limited to 'khtml/rendering') diff --git a/khtml/rendering/render_frames.cpp b/khtml/rendering/render_frames.cpp index 7ee69b239..4ee0f96bf 100644 --- a/khtml/rendering/render_frames.cpp +++ b/khtml/rendering/render_frames.cpp @@ -36,6 +36,7 @@ #include "misc/htmltags.h" #include "khtmlview.h" #include "khtml_part.h" +#include "misc/knsplugininstaller.h" #include #include @@ -937,17 +938,30 @@ void RenderPartObject::slotPartLoadingErrorNotify() if (!mimeName.isEmpty() && part->docImpl() && !part->pluginPageQuestionAsked( serviceType ) ) { part->setPluginPageQuestionAsked( serviceType ); - // Prepare the URL to show in the question (host only if http, to make it short) - KURL pluginPageURL( embed->pluginPage ); - QString shortURL = pluginPageURL.protocol() == "http" ? pluginPageURL.host() : pluginPageURL.prettyURL(); - int res = KMessageBox::questionYesNo( m_view, - i18n("No plugin found for '%1'.\nDo you want to download one from %2?").arg(mimeName).arg(shortURL), - i18n("Missing Plugin"), i18n("Download"), i18n("Do Not Download"), QString("plugin-")+serviceType); - if ( res == KMessageBox::Yes ) + bool pluginAvailable; + pluginAvailable = false; + // check if a pluginList file is in the config + if(KNSPluginInstallEngine::isActive()) { - // Display vendor download page - ext->createNewWindow( pluginPageURL ); - return; + KNSPluginWizard pluginWizard(m_view, "pluginInstaller", mime); + if(pluginWizard.pluginAvailable()) { + pluginAvailable = true; + pluginWizard.exec(); + } + } + if(!pluginAvailable) { + // Prepare the URL to show in the question (host only if http, to make it short) + KURL pluginPageURL( embed->pluginPage ); + QString shortURL = pluginPageURL.protocol() == "http" ? pluginPageURL.host() : pluginPageURL.prettyURL(); + int res = KMessageBox::questionYesNo( m_view, + i18n("No plugin found for '%1'.\nDo you want to download one from %2?").arg(mimeName).arg(shortURL), + i18n("Missing Plugin"), i18n("Download"), i18n("Do Not Download"), QString("plugin-")+serviceType); + if ( res == KMessageBox::Yes ) + { + // Display vendor download page + ext->createNewWindow( pluginPageURL ); + return; + } } } } @@ -1007,4 +1021,5 @@ void RenderPartObject::slotViewCleared() } } + #include "render_frames.moc" -- cgit v1.2.1