diff --git a/src/plugins/help/helpplugin.cpp b/src/plugins/help/helpplugin.cpp index c25613d7c184ec90bd6c8317bc0a51291b6aab7f..daeceb903696718ef3a9e77e63ab3147ccc7905c 100644 --- a/src/plugins/help/helpplugin.cpp +++ b/src/plugins/help/helpplugin.cpp @@ -359,23 +359,26 @@ HelpViewer *HelpPlugin::createHelpViewer(qreal zoom) const QString backend = QLatin1String(qgetenv("QTC_HELPVIEWER_BACKEND")); if (backend.compare(QLatin1String("native"), Qt::CaseInsensitive) == 0) { #ifdef QTC_MAC_NATIVE_HELPVIEWER - viewer = new MacWebKitHelpViewer(zoom); + viewer = new MacWebKitHelpViewer(); #else qWarning() << "native help viewer is requested, but was not enabled during compilation"; #endif } else if (backend.compare(QLatin1String("textbrowser"), Qt::CaseInsensitive) != 0) { #ifndef QT_NO_WEBKIT - viewer = new QtWebKitHelpViewer(zoom); + viewer = new QtWebKitHelpViewer(); #endif } if (!viewer) - viewer = new TextBrowserHelpViewer(zoom); + viewer = new TextBrowserHelpViewer(); // initialize font QVariant fontSetting = LocalHelpManager::engineFontSettings(); if (fontSetting.isValid()) viewer->setViewerFont(fontSetting.value<QFont>()); + // initialize zoom + viewer->setScale(zoom); + // add find support Aggregation::Aggregate *agg = new Aggregation::Aggregate(); agg->add(viewer); diff --git a/src/plugins/help/helpviewer.h b/src/plugins/help/helpviewer.h index 8672f53f88cf00fc9f6993ff554efa8fd276d88c..d001f7010d150d6b62b4257bac613c201538fe46 100644 --- a/src/plugins/help/helpviewer.h +++ b/src/plugins/help/helpviewer.h @@ -55,6 +55,7 @@ public: virtual void setViewerFont(const QFont &font) = 0; virtual qreal scale() const = 0; + virtual void setScale(qreal scale) = 0; virtual QString title() const = 0; diff --git a/src/plugins/help/macwebkithelpviewer.h b/src/plugins/help/macwebkithelpviewer.h index 2ce62da0c0e7f01f1b069f8c206bc1bb986f7ca1..ab2481b8c5c5b9e72a4fac61192afb933524a4db 100644 --- a/src/plugins/help/macwebkithelpviewer.h +++ b/src/plugins/help/macwebkithelpviewer.h @@ -82,13 +82,14 @@ class MacWebKitHelpViewer : public HelpViewer Q_OBJECT public: - explicit MacWebKitHelpViewer(qreal zoom, QWidget *parent = 0); + explicit MacWebKitHelpViewer(QWidget *parent = 0); ~MacWebKitHelpViewer(); QFont viewerFont() const; void setViewerFont(const QFont &font); qreal scale() const; + void setScale(qreal scale); QString title() const; diff --git a/src/plugins/help/macwebkithelpviewer.mm b/src/plugins/help/macwebkithelpviewer.mm index 7f583f145d240c7108e26bd7fe12504a5c004aae..3c35e49b3a2192fcee0efca30e5cd714443f587c 100644 --- a/src/plugins/help/macwebkithelpviewer.mm +++ b/src/plugins/help/macwebkithelpviewer.mm @@ -454,7 +454,7 @@ void MacWebKitHelpWidget::showEvent(QShowEvent *) // #pragma mark -- MacWebKitHelpViewer -MacWebKitHelpViewer::MacWebKitHelpViewer(qreal zoom, QWidget *parent) +MacWebKitHelpViewer::MacWebKitHelpViewer(QWidget *parent) : HelpViewer(parent), m_widget(new MacWebKitHelpWidget(this)) { @@ -469,7 +469,6 @@ MacWebKitHelpViewer::MacWebKitHelpViewer(qreal zoom, QWidget *parent) setLayout(layout); layout->setContentsMargins(0, 0, 0, 0); layout->addWidget(m_widget, 10); - m_widget->webView().textSizeMultiplier = (zoom == 0.0 ? 1.0 : zoom); } MacWebKitHelpViewer::~MacWebKitHelpViewer() @@ -515,7 +514,12 @@ void MacWebKitHelpViewer::resetScale() qreal MacWebKitHelpViewer::scale() const { AutoreleasePool pool; Q_UNUSED(pool) - return m_widget->webView().textSizeMultiplier; + return m_widget->webView().textSizeMultiplier; +} + +void MacWebKitHelpViewer::setScale(qreal scale) +{ + m_widget->webView().textSizeMultiplier = (scale <= 0.0 ? 1.0 : scale); } QString MacWebKitHelpViewer::title() const diff --git a/src/plugins/help/qtwebkithelpviewer.cpp b/src/plugins/help/qtwebkithelpviewer.cpp index 3ae31b5715d73f53bcd99e5b18d1f0824965c024..c1e5aa5870a0df218f956682a85e61692c8b2e10 100644 --- a/src/plugins/help/qtwebkithelpviewer.cpp +++ b/src/plugins/help/qtwebkithelpviewer.cpp @@ -250,7 +250,7 @@ void HelpPage::onHandleUnsupportedContent(QNetworkReply *reply) // -- HelpViewer -QtWebKitHelpWidget::QtWebKitHelpWidget(qreal zoom, QtWebKitHelpViewer *parent) +QtWebKitHelpWidget::QtWebKitHelpWidget(QtWebKitHelpViewer *parent) : QWebView(parent), m_parent(parent) { @@ -278,8 +278,6 @@ QtWebKitHelpWidget::QtWebKitHelpWidget(qreal zoom, QtWebKitHelpViewer *parent) SLOT(actionChanged())); connect(pageAction(QWebPage::Forward), SIGNAL(changed()), this, SLOT(actionChanged())); - - setZoomFactor(zoom == 0.0 ? 1.0 : zoom); } QtWebKitHelpWidget::~QtWebKitHelpWidget() @@ -393,9 +391,9 @@ bool QtWebKitHelpWidget::eventFilter(QObject *obj, QEvent *event) return QWebView::eventFilter(obj, event); } -QtWebKitHelpViewer::QtWebKitHelpViewer(qreal zoom, QWidget *parent) +QtWebKitHelpViewer::QtWebKitHelpViewer(QWidget *parent) : HelpViewer(parent), - m_webView(new QtWebKitHelpWidget(zoom, this)) + m_webView(new QtWebKitHelpWidget(this)) { QVBoxLayout *layout = new QVBoxLayout; setLayout(layout); @@ -449,6 +447,11 @@ qreal QtWebKitHelpViewer::scale() const return m_webView->zoomFactor(); } +void QtWebKitHelpViewer::setScale(qreal scale) +{ + m_webView->setZoomFactor(scale <= 0.0 ? 1.0 : scale); +} + QString QtWebKitHelpViewer::title() const { return m_webView->title(); diff --git a/src/plugins/help/qtwebkithelpviewer.h b/src/plugins/help/qtwebkithelpviewer.h index 79ee30f0e9c3dc9b9e4b9a0462a291c3f4a64909..a8fe8f5bd7a5ef6ffdbe146fadb0f67a3dccb78e 100644 --- a/src/plugins/help/qtwebkithelpviewer.h +++ b/src/plugins/help/qtwebkithelpviewer.h @@ -48,13 +48,14 @@ class QtWebKitHelpViewer : public HelpViewer { Q_OBJECT public: - explicit QtWebKitHelpViewer(qreal zoom, QWidget *parent = 0); + explicit QtWebKitHelpViewer(QWidget *parent = 0); ~QtWebKitHelpViewer() { } QFont viewerFont() const; void setViewerFont(const QFont &font); qreal scale() const; + void setScale(qreal scale); QString title() const; @@ -103,7 +104,7 @@ class QtWebKitHelpWidget : public QWebView Q_OBJECT public: - explicit QtWebKitHelpWidget(qreal zoom, QtWebKitHelpViewer *parent = 0); + explicit QtWebKitHelpWidget(QtWebKitHelpViewer *parent = 0); ~QtWebKitHelpWidget(); void scaleUp(); diff --git a/src/plugins/help/textbrowserhelpviewer.cpp b/src/plugins/help/textbrowserhelpviewer.cpp index 281efd9aa49e3ecd60a1ee7604bf9436c0d208d0..b1e4b1154e11464fb1024e9f5beaf01a1542e672 100644 --- a/src/plugins/help/textbrowserhelpviewer.cpp +++ b/src/plugins/help/textbrowserhelpviewer.cpp @@ -50,9 +50,9 @@ using namespace Help::Internal; // -- HelpViewer -TextBrowserHelpViewer::TextBrowserHelpViewer(qreal zoom, QWidget *parent) +TextBrowserHelpViewer::TextBrowserHelpViewer(QWidget *parent) : HelpViewer(parent) - , m_textBrowser(new TextBrowserHelpWidget(zoom, this)) + , m_textBrowser(new TextBrowserHelpWidget(this)) { QVBoxLayout *layout = new QVBoxLayout; setLayout(layout); @@ -112,6 +112,22 @@ qreal TextBrowserHelpViewer::scale() const return m_textBrowser->zoomCount; } +void TextBrowserHelpViewer::setScale(qreal scale) +{ + m_textBrowser->forceFont = true; + if (scale > 10) + scale = 10; + else if (scale < -5) + scale = -5; + int diff = (int)scale - m_textBrowser->zoomCount; + if (diff > 0) + m_textBrowser->zoomIn(diff); + else if (diff < 0) + m_textBrowser->zoomOut(-diff); + m_textBrowser->zoomCount = (int)scale; + m_textBrowser->forceFont = false; +} + QString TextBrowserHelpViewer::title() const { return m_textBrowser->documentTitle(); @@ -284,9 +300,9 @@ void TextBrowserHelpViewer::goToHistoryItem() // -- private -TextBrowserHelpWidget::TextBrowserHelpWidget(int zoom, TextBrowserHelpViewer *parent) +TextBrowserHelpWidget::TextBrowserHelpWidget(TextBrowserHelpViewer *parent) : QTextBrowser(parent) - , zoomCount(zoom) + , zoomCount(0) , forceFont(false) , m_openInNewPageActionVisible(true) , m_parent(parent) diff --git a/src/plugins/help/textbrowserhelpviewer.h b/src/plugins/help/textbrowserhelpviewer.h index 0f859da198f52b8bada1474c734f03963bad90a5..4ad8e6d0a7f0258be29dac3b44b5260df093df46 100644 --- a/src/plugins/help/textbrowserhelpviewer.h +++ b/src/plugins/help/textbrowserhelpviewer.h @@ -47,13 +47,14 @@ class TextBrowserHelpViewer : public HelpViewer Q_OBJECT public: - explicit TextBrowserHelpViewer(qreal zoom, QWidget *parent = 0); + explicit TextBrowserHelpViewer(QWidget *parent = 0); ~TextBrowserHelpViewer(); QFont viewerFont() const; void setViewerFont(const QFont &font); qreal scale() const; + void setScale(qreal scale); QString title() const; @@ -97,7 +98,7 @@ class TextBrowserHelpWidget : public QTextBrowser Q_OBJECT public: - TextBrowserHelpWidget(int zoom, TextBrowserHelpViewer *parent); + TextBrowserHelpWidget(TextBrowserHelpViewer *parent); QVariant loadResource(int type, const QUrl &name);