Selaa lähdekoodia

Small changes in class Fb2SaveHandler

Kandrashin Denis 13 vuotta sitten
vanhempi
commit
af8c7b24dc
3 muutettua tiedostoa jossa 16 lisäystä ja 12 poistoa
  1. 12 0
      source/fb2save.cpp
  2. 2 2
      source/fb2save.h
  3. 2 10
      source/fb2view.cpp

+ 12 - 0
source/fb2save.cpp

@@ -3,11 +3,14 @@
 
 #include "fb2save.h"
 #include "fb2view.hpp"
+#include "fb2utils.h"
 
 #include <QAbstractNetworkCache>
 #include <QNetworkReply>
 #include <QNetworkRequest>
 #include <QScopedPointer>
+#include <QWebFrame>
+#include <QWebPage>
 
 //---------------------------------------------------------------------------
 //  Fb2HtmlHandler
@@ -368,12 +371,14 @@ void Fb2SaveHandler::ParagHandler::start()
 Fb2SaveHandler::Fb2SaveHandler(Fb2WebView &view, QIODevice *device, QList<int> *folds)
     : Fb2HtmlHandler()
     , m_writer(view, device, folds)
+    , m_view(view)
 {
 }
 
 Fb2SaveHandler::Fb2SaveHandler(Fb2WebView &view, QByteArray *array, QList<int> *folds)
     : Fb2HtmlHandler()
     , m_writer(view, array, folds)
+    , m_view(view)
 {
 }
 
@@ -384,3 +389,10 @@ Fb2XmlHandler::NodeHandler * Fb2SaveHandler::CreateRoot(const QString &name, con
     return 0;
 }
 
+bool Fb2SaveHandler::save()
+{
+    static const QString javascript = FB2::read(":/js/export.js");
+    m_view.page()->mainFrame()->addToJavaScriptWindowObject("handler", this);
+    m_view.page()->mainFrame()->evaluateJavaScript(javascript);
+    return true;
+}

+ 2 - 2
source/fb2save.h

@@ -6,8 +6,6 @@
 
 #include <QByteArray>
 #include <QStringList>
-#include <QThread>
-#include <QXmlDefaultHandler>
 #include <QXmlStreamWriter>
 
 #include "fb2temp.hpp"
@@ -64,6 +62,7 @@ class Fb2SaveHandler : public Fb2HtmlHandler
 public:
     explicit Fb2SaveHandler(Fb2WebView &view, QByteArray *array, QList<int> *folds = 0);
     explicit Fb2SaveHandler(Fb2WebView &view, QIODevice *device, QList<int> *folds = 0);
+    bool save();
 
 private:
     class BodyHandler : public NodeHandler
@@ -143,6 +142,7 @@ protected:
 
 private:
     Fb2SaveWriter m_writer;
+    Fb2WebView & m_view;
 };
 
 #endif // Fb2Save_H

+ 2 - 10
source/fb2view.cpp

@@ -177,20 +177,12 @@ void Fb2WebView::load(const QString &filename, const QString &xml)
 
 bool Fb2WebView::save(QIODevice *device)
 {
-    Fb2SaveHandler handler(*this, device);
-    static const QString javascript = FB2::read(":/js/export.js");
-    page()->mainFrame()->addToJavaScriptWindowObject("handler", &handler);
-    page()->mainFrame()->evaluateJavaScript(javascript);
-    return true;
+    return Fb2SaveHandler(*this, device).save();
 }
 
 bool Fb2WebView::save(QByteArray *array, QList<int> *folds)
 {
-    Fb2SaveHandler handler(*this, array, folds);
-    static const QString javascript = FB2::read(":/js/export.js");
-    page()->mainFrame()->addToJavaScriptWindowObject("handler", &handler);
-    page()->mainFrame()->evaluateJavaScript(javascript);
-    return true;
+    return Fb2SaveHandler(*this, array, folds).save();
 }
 
 bool Fb2WebView::save(QString *string)