fb2view.cpp 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #include "fb2view.h"
  2. #include "fb2read.h"
  3. #include <QtDebug>
  4. //---------------------------------------------------------------------------
  5. // Fb2WebView
  6. //---------------------------------------------------------------------------
  7. Fb2WebView::Fb2WebView(QWidget *parent)
  8. : Fb2BaseWebView(parent)
  9. , m_thread(0)
  10. {
  11. page()->setContentEditable(true);
  12. QWebSettings *settings = page()->settings();
  13. settings->setAttribute(QWebSettings::AutoLoadImages, true);
  14. settings->setAttribute(QWebSettings::JavaEnabled, false);
  15. settings->setAttribute(QWebSettings::JavascriptEnabled, true);
  16. settings->setAttribute(QWebSettings::PrivateBrowsingEnabled, true);
  17. settings->setAttribute(QWebSettings::PluginsEnabled, false);
  18. settings->setAttribute(QWebSettings::ZoomTextOnly, true);
  19. }
  20. Fb2WebView::~Fb2WebView()
  21. {
  22. foreach (QString value, m_files) QFile::remove(value);
  23. }
  24. bool Fb2WebView::load(const QString &filename)
  25. {
  26. if (m_thread) return false;
  27. m_thread = new Fb2ReadThread(this, filename);
  28. connect(m_thread, SIGNAL(file(QString, QString)), SLOT(file(QString, QString)));
  29. connect(m_thread, SIGNAL(html(QString, QString)), SLOT(html(QString, QString)));
  30. m_thread->start();
  31. }
  32. void Fb2WebView::file(QString name, QString path)
  33. {
  34. m_files.insert(name, path);
  35. }
  36. void Fb2WebView::html(QString name, QString html)
  37. {
  38. setHtml(html, QUrl::fromLocalFile(name));
  39. if (m_thread) m_thread->deleteLater();
  40. m_thread = 0;
  41. }
  42. void Fb2WebView::zoomIn()
  43. {
  44. qreal zoom = zoomFactor();
  45. setZoomFactor(zoom * 1.1);
  46. }
  47. void Fb2WebView::zoomOut()
  48. {
  49. qreal zoom = zoomFactor();
  50. setZoomFactor(zoom * 0.9);
  51. }
  52. void Fb2WebView::zoomOrig()
  53. {
  54. setZoomFactor(1);
  55. }