add setStatusCode request api member
[pykit.git] / Viewer.cc
index abb1b2f..7c726c9 100644 (file)
--- a/Viewer.cc
+++ b/Viewer.cc
 #include <iostream>
 #include <QWebPluginFactory>
 #include "Publisher.hh"
+#ifdef POPPLER
 #include "PDFWidget.hh"
+#endif
 
 //#include "Viewer.mpp"
 #define prefix_
 ///////////////////////////////cc.p////////////////////////////////////////
 
+#ifdef POPPLER
+
 namespace {
 
     class PDFWebPluginFactory
@@ -44,12 +48,17 @@ prefix_ PDFWebPluginFactory::PDFWebPluginFactory(QNetworkAccessManager * manager
 {}
 
 prefix_ QObject * PDFWebPluginFactory::create(QString const & mimeType, QUrl const & url,
-                                              QStringList const & /* argumentNames */,
-                                              QStringList const & /* argumentValues */)
+                                              QStringList const & argumentNames,
+                                              QStringList const & argumentValues)
     const
 {
-    if (mimeType == "application/x-pdf") {
-        pykit::PDFWidget * plugin = new pykit::PDFWidget(manager_);
+    if (mimeType == "application/pdf") {
+        int idix (argumentNames.indexOf("id"));
+        QString id;
+        if (idix>0)
+            id = argumentValues[idix];
+        pykit::PDFWidget * plugin = new pykit::PDFWidget(
+            id, manager_, dynamic_cast<QWidget*>(parent()));
         plugin->load(url);
         return plugin;
     }
@@ -67,7 +76,7 @@ prefix_ QList<QWebPluginFactory::Plugin> PDFWebPluginFactory::plugins()
         plugin.description = "View PDF files";
         {
             QWebPluginFactory::MimeType mimeType;
-            mimeType.name = "application/x-pdf";
+            mimeType.name = "application/pdf";
             mimeType.description = "PDF file";
             plugin.mimeTypes += mimeType;
         }
@@ -77,6 +86,8 @@ prefix_ QList<QWebPluginFactory::Plugin> PDFWebPluginFactory::plugins()
     return plugins;
 }
 
+#endif
+
 ///////////////////////////////////////////////////////////////////////////
 // pykit::Viewer
 
@@ -86,7 +97,9 @@ prefix_ pykit::Viewer::Viewer(QUrl const & url, Publisher * publisher, QWidget *
     QWebSettings::globalSettings()->setAttribute(QWebSettings::PluginsEnabled, true);
     page()->setNetworkAccessManager(
         new InternalNetworkAccessManager(page()->networkAccessManager(), this, publisher));
+#ifdef POPPLER
     page()->setPluginFactory(new PDFWebPluginFactory (page()->networkAccessManager(), this));
+#endif
     load(url);
 }