Bladeren bron

Smooth resizing QWebView

Kandrashin Denis 13 jaren geleden
bovenliggende
commit
141c77a05e
10 gewijzigde bestanden met toevoegingen van 36 en 129 verwijderingen
  1. 0 3
      source/fb2doc.cpp
  2. 0 30
      source/fb2doc.h
  3. 0 3
      source/fb2edit.pro
  4. 0 40
      source/fb2main.cpp
  5. 0 3
      source/fb2main.h
  6. 0 1
      source/fb2read.cpp
  7. 0 7
      source/fb2read.h
  8. 0 38
      source/fb2text.h
  9. 1 1
      source/fb2view.cpp
  10. 35 3
      source/fb2view.h

+ 0 - 3
source/fb2doc.cpp

@@ -1,3 +0,0 @@
-#include "fb2doc.h"
-#include "fb2read.h"
-

+ 0 - 30
source/fb2doc.h

@@ -1,30 +0,0 @@
-#ifndef FB2DOC_H
-#define FB2DOC_H
-
-#include <QTextDocument>
-#include <QVariant>
-
-class Fb2ChildDocument : public QTextDocument
-{
-    Q_OBJECT
-public:
-    explicit Fb2ChildDocument(QTextDocument &parent)
-        : QTextDocument(&parent), m_parent(parent) {}
-protected:
-    virtual QVariant loadResource(int type, const QUrl &name)
-        { return m_parent.resource(type, name); }
-private:
-    QTextDocument &m_parent;
-};
-
-class Fb2MainDocument : public QTextDocument
-{
-    Q_OBJECT
-public:
-    explicit Fb2MainDocument(QObject *parent = 0) : QTextDocument(parent), m_child(*this) {}
-    Fb2ChildDocument & child() { return m_child; }
-private:
-    Fb2ChildDocument m_child;
-};
-
-#endif // FB2DOC_H

+ 0 - 3
source/fb2edit.pro

@@ -1,15 +1,12 @@
 HEADERS = \
     fb2app.h \
-    fb2doc.h \
     fb2main.h \
     fb2read.h \
-    fb2text.h \
     fb2tree.h \
     fb2view.h
 
 SOURCES = \
     fb2app.cpp \
-    fb2doc.cpp \
     fb2main.cpp \
     fb2read.cpp \
     fb2tree.cpp \

+ 0 - 40
source/fb2main.cpp

@@ -5,9 +5,7 @@
 #include <QWebFrame>
 
 #include "fb2main.h"
-#include "fb2doc.h"
 #include "fb2read.h"
-#include "fb2text.h"
 #include "fb2tree.h"
 #include "fb2view.h"
 #include "fb2main.h"
@@ -595,16 +593,6 @@ void MainWindow::viewText()
     createText();
 }
 
-void MainWindow::currentCharFormatChanged(const QTextCharFormat &format)
-{
-    QFont font = format.font();
-    actionTextBold   -> setChecked(font.bold());
-    actionTextItalic -> setChecked(font.italic());
-    actionTextStrike -> setChecked(font.strikeOut());
-    actionTextSub    -> setChecked(format.verticalAlignment() == QTextCharFormat::AlignSubScript);
-    actionTextSup    -> setChecked(format.verticalAlignment() == QTextCharFormat::AlignSuperScript);
-}
-
 void MainWindow::cursorPositionChanged()
 {
  //   alignmentChanged(textEdit->alignment());
@@ -619,49 +607,21 @@ void MainWindow::clipboardDataChanged()
 
 void MainWindow::textBold()
 {
-    QTextCharFormat fmt;
-    fmt.setFontWeight(actionTextBold->isChecked() ? QFont::Bold : QFont::Normal);
-    mergeFormatOnWordOrSelection(fmt);
 }
 
 void MainWindow::textItalic()
 {
-    QTextCharFormat fmt;
-    fmt.setFontItalic(actionTextItalic->isChecked());
-    mergeFormatOnWordOrSelection(fmt);
 }
 
 void MainWindow::textStrike()
 {
-    QTextCharFormat fmt;
-    fmt.setFontStrikeOut(actionTextStrike->isChecked());
-    mergeFormatOnWordOrSelection(fmt);
 }
 
 void MainWindow::textSub()
 {
-    QTextCharFormat fmt;
-    fmt.setVerticalAlignment(actionTextSub->isChecked() ? QTextCharFormat::AlignSubScript : QTextCharFormat::AlignNormal);
-    mergeFormatOnWordOrSelection(fmt);
 }
 
 void MainWindow::textSup()
 {
-    QTextCharFormat fmt;
-    fmt.setVerticalAlignment(actionTextSup->isChecked() ? QTextCharFormat::AlignSuperScript : QTextCharFormat::AlignNormal);
-    mergeFormatOnWordOrSelection(fmt);
-}
-
-void MainWindow::mergeFormatOnWordOrSelection(const QTextCharFormat &format)
-{
-/*
-    if (!textEdit) return;
-    QTextCursor cursor = textEdit->textCursor();
-    cursor.beginEditBlock();
-    if (!cursor.hasSelection()) cursor.select(QTextCursor::WordUnderCursor);
-    cursor.mergeCharFormat(format);
-    textEdit->mergeCurrentCharFormat(format);
-    cursor.endEditBlock();
-*/
 }
 

+ 0 - 3
source/fb2main.h

@@ -2,7 +2,6 @@
 #define FB2MAIN_H
 
 #include <QMainWindow>
-#include <QTextCharFormat>
 
 QT_BEGIN_NAMESPACE
 class QAction;
@@ -57,7 +56,6 @@ private slots:
     void textSub();
     void textSup();
 
-    void currentCharFormatChanged(const QTextCharFormat &format);
     void cursorPositionChanged();
     void clipboardDataChanged();
 
@@ -77,7 +75,6 @@ private:
     bool maybeSave();
     bool saveFile(const QString &fileName);
     void setCurrentFile(const QString &fileName, const QString &html = QString());
-    void mergeFormatOnWordOrSelection(const QTextCharFormat &format);
     MainWindow *findMainWindow(const QString &fileName);
 
     Fb2ReadThread *thread;

+ 0 - 1
source/fb2read.cpp

@@ -1,5 +1,4 @@
 #include <QtGui>
-#include <QTextEdit>
 #include <QtDebug>
 
 #include "fb2read.h"

+ 0 - 7
source/fb2read.h

@@ -1,17 +1,10 @@
 #ifndef FB2READ_H
 #define FB2READ_H
 
-#include "fb2doc.h"
-
 #include <QMutex>
 #include <QThread>
 #include <QXmlDefaultHandler>
-#include <QTextCursor>
-#include <QTextDocument>
 #include <QStringList>
-#include <QTextFrameFormat>
-#include <QTextBlockFormat>
-#include <QTextCharFormat>
 #include <QXmlStreamWriter>
 
 QT_BEGIN_NAMESPACE

+ 0 - 38
source/fb2text.h

@@ -1,38 +0,0 @@
-#ifndef FB2TEXT_H
-#define FB2TEXT_H
-
-#include <QResizeEvent>
-#include <QTextEdit>
-#include <QTimer>
-
-class Fb2TextEdit : public QTextEdit
-{
-    Q_OBJECT
-
-public:
-    Fb2TextEdit(QWidget* parent = 0)
-        : QTextEdit(parent)
-    {
-          m_timer.setInterval( 100 );
-          m_timer.setSingleShot(true);
-          connect(&m_timer, SIGNAL(timeout()), SLOT(doResize()));
-    }
-
-protected slots:
-    void doResize() {
-        QResizeEvent event(size(), m_size);
-        QTextEdit::resizeEvent(&event);
-    }
-
-protected:
-     void resizeEvent( QResizeEvent* e ) {
-          if (!m_timer.isActive()) m_size = e->oldSize();
-          m_timer.start();
-     }
-
-private:
-    QTimer m_timer;
-    QSize m_size;
-};
-
-#endif // FB2TEXT_H

+ 1 - 1
source/fb2view.cpp

@@ -25,7 +25,7 @@ QNetworkReply * Fb2NetworkAccessManager::createRequest(Operation op, const QNetw
 //---------------------------------------------------------------------------
 
 Fb2WebView::Fb2WebView(QWidget *parent)
-    : QWebView(parent)
+    : Fb2BaseWebView(parent)
 {
     page()->setContentEditable(true);
     QWebSettings *settings = page()->settings();

+ 35 - 3
source/fb2view.h

@@ -1,8 +1,10 @@
 #ifndef FB2VIEW_H
 #define FB2VIEW_H
 
-#include <QWebView>
 #include <QNetworkAccessManager>
+#include <QResizeEvent>
+#include <QTimer>
+#include <QWebView>
 
 class Fb2NetworkAccessManager : public QNetworkAccessManager
 {
@@ -15,7 +17,38 @@ protected:
 
 };
 
-class Fb2WebView : public QWebView
+class Fb2BaseWebView : public QWebView
+{
+    Q_OBJECT
+
+public:
+    Fb2BaseWebView(QWidget* parent = 0)
+        : QWebView(parent)
+    {
+          m_timer.setInterval(100);
+          m_timer.setSingleShot(true);
+          connect(&m_timer, SIGNAL(timeout()), SLOT(doResize()));
+    }
+
+protected slots:
+    void doResize() {
+        QResizeEvent event(size(), m_size);
+        QWebView::resizeEvent(&event);
+        QWebView::update();
+    }
+
+protected:
+     void resizeEvent(QResizeEvent* event) {
+          if (!m_timer.isActive()) m_size = event->oldSize();
+          m_timer.start();
+     }
+
+private:
+    QTimer m_timer;
+    QSize m_size;
+};
+
+class Fb2WebView : public Fb2BaseWebView
 {
     Q_OBJECT
 public:
@@ -30,7 +63,6 @@ public slots:
 
 private:
     Fb2NetworkAccessManager m_network;
-
 };
 
 #endif // FB2VIEW_H