From kde-commits Mon May 11 21:12:19 2009 From: Urs Wolfer Date: Mon, 11 May 2009 21:12:19 +0000 To: kde-commits Subject: playground/libs/webkitkde Message-Id: <1242076339.120654.19480.nullmailer () svn ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=124207634615180 SVN commit 966785 by uwolfer: Improve zoom actions behavior. Patch by Paweł Prażak, thanks. CCMAIL:kojot350@gmail.com M +13 -1 kdewebkit/settings/webkitsettings.cpp M +1 -0 kdewebkit/settings/webkitsettings.h M +45 -11 part/webkitpart.cpp M +2 -0 part/webkitpart.h M +9 -5 part/webkitpart.rc --- trunk/playground/libs/webkitkde/kdewebkit/settings/webkitsettings.cpp #966784:966785 @@ -90,6 +90,7 @@ bool m_hideAdsEnabled : 1; bool m_jsPopupBlockerPassivePopup : 1; bool m_accessKeysEnabled : 1; + bool m_zoomTextOnly : 1; // the virtual global "domain" KPerDomainSettings global; @@ -428,6 +429,10 @@ d->m_smoothScrolling = KSmoothScrollingEnabled; } + if ( reset || cgHtml.hasKey( "ZoomTextOnly" ) ) { + d->m_zoomTextOnly = cgHtml.readEntry( "ZoomTextOnly", false ); + } + if ( cgHtml.readEntry( "UserStyleSheetEnabled", false ) == true ) { if ( reset || cgHtml.hasKey( "UserStyleSheet" ) ) d->m_userSheet = cgHtml.readEntry( "UserStyleSheet", "" ); @@ -646,7 +651,9 @@ QWebSettings::globalSettings()->setAttribute(QWebSettings::PluginsEnabled, isPluginsEnabled()); QWebSettings::globalSettings()->setAttribute(QWebSettings::JavascriptCanOpenWindows, windowOpenPolicy() != WebKitSettings::KJSWindowOpenDeny); - +#if QT_VERSION >= 0x040500 + QWebSettings::globalSettings()->setAttribute(QWebSettings::ZoomTextOnly, zoomTextOnly()); +#endif QWebSettings::globalSettings()->setFontFamily(QWebSettings::StandardFont, stdFontName()); QWebSettings::globalSettings()->setFontFamily(QWebSettings::FixedFont, fixedFontName()); QWebSettings::globalSettings()->setFontFamily(QWebSettings::SerifFont, serifFontName()); @@ -1035,6 +1042,11 @@ return d->m_smoothScrolling; } +bool WebKitSettings::zoomTextOnly() const +{ + return d->m_zoomTextOnly; +} + bool WebKitSettings::isAutoDelayedActionsEnabled() const { return d->m_autoDelayedActionsEnabled; --- trunk/playground/libs/webkitkde/kdewebkit/settings/webkitsettings.h #966784:966785 @@ -126,6 +126,7 @@ bool autoSpellCheck() const; KAnimationAdvice showAnimations() const; KSmoothScrollingMode smoothScrolling() const; + bool zoomTextOnly() const; // Font settings QString stdFontName() const; --- trunk/playground/libs/webkitkde/part/webkitpart.cpp #966784:966785 @@ -113,16 +113,29 @@ actionCollection()->addAction("printFrame", action); connect(action, SIGNAL(triggered(bool)), m_browserExtension, SLOT(printFrame())); - action = new KAction(KIcon("format-font-size-more"), i18n("Enlarge Font"), this); - actionCollection()->addAction("incFontSizes", action); + action = new KAction(KIcon("zoom-in"), i18n("Zoom In"), this); + actionCollection()->addAction("zoomIn", action); action->setShortcut(KShortcut("CTRL++; CTRL+=")); connect(action, SIGNAL(triggered(bool)), m_browserExtension, SLOT(zoomIn())); - action = new KAction(KIcon("format-font-size-less"), i18n("Shrink Font"), this); - actionCollection()->addAction("decFontSizes", action); - action->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Minus)); + action = new KAction(KIcon("zoom-out"), i18n("Zoom Out"), this); + actionCollection()->addAction("zoomOut", action); + action->setShortcut(KShortcut("CTRL+-; CTRL+_")); connect(action, SIGNAL(triggered(bool)), m_browserExtension, SLOT(zoomOut())); + action = new KAction(KIcon("zoom-original"), i18n("Actual Size"), this); + actionCollection()->addAction("zoomNormal", action); + action->setShortcut(KShortcut("CTRL+0")); + connect(action, SIGNAL(triggered(bool)), m_browserExtension, SLOT(zoomNormal())); +#if QT_VERSION >= 0x040500 + action = new KAction(i18n("Zoom Text Only"), this); + action->setCheckable(true); + KConfigGroup cgHtml(KGlobal::config(), "HTML Settings"); + bool zoomTextOnly = cgHtml.readEntry("ZoomTextOnly", false); + action->setChecked(zoomTextOnly); + actionCollection()->addAction("zoomTextOnly", action); + connect(action, SIGNAL(triggered(bool)), m_browserExtension, SLOT(toogleZoomTextOnly())); +#endif action = actionCollection()->addAction(KStandardAction::SelectAll, "selectAll", m_browserExtension, SLOT(slotSelectAll())); action->setShortcutContext(Qt::WidgetShortcut); @@ -297,22 +310,43 @@ void WebKitBrowserExtension::zoomIn() { -#if QT_VERSION < 0x040500 - part->view()->setTextSizeMultiplier(part->view()->textSizeMultiplier() * 2); +#if QT_VERSION >= 0x040500 + part->view()->setZoomFactor(part->view()->zoomFactor() + 0.1); #else - part->view()->setZoomFactor(part->view()->zoomFactor() * 1.25); + part->view()->setTextSizeMultiplier(part->view()->textSizeMultiplier() + 0.1); #endif } void WebKitBrowserExtension::zoomOut() { -#if QT_VERSION < 0x040500 - part->view()->setTextSizeMultiplier(part->view()->textSizeMultiplier() * 2); +#if QT_VERSION >= 0x040500 + part->view()->setZoomFactor(part->view()->zoomFactor() - 0.1); #else - part->view()->setZoomFactor(part->view()->zoomFactor() * 0.8); + part->view()->setTextSizeMultiplier(part->view()->textSizeMultiplier() - 0.1); #endif } +void WebKitBrowserExtension::zoomNormal() +{ +#if QT_VERSION >= 0x040500 + part->view()->setZoomFactor(1); +#else + part->view()->setTextSizeMultiplier(1); +#endif +} + +void WebKitBrowserExtension::toogleZoomTextOnly() +{ +#if QT_VERSION >= 0x040500 + KConfigGroup cgHtml(KGlobal::config(), "HTML Settings"); + bool zoomTextOnly = cgHtml.readEntry( "ZoomTextOnly", false ); + cgHtml.writeEntry("ZoomTextOnly", !zoomTextOnly); + KGlobal::config()->reparseConfiguration(); + + part->view()->settings()->setAttribute(QWebSettings::ZoomTextOnly, !zoomTextOnly); +#endif +} + void WebKitBrowserExtension::slotSelectAll() { #if QT_VERSION >= 0x040500 --- trunk/playground/libs/webkitkde/part/webkitpart.h #966784:966785 @@ -82,6 +82,8 @@ void zoomIn(); void zoomOut(); + void zoomNormal(); + void toogleZoomTextOnly(); void slotSelectAll(); void slotFrameInWindow(); --- trunk/playground/libs/webkitkde/part/webkitpart.rc #966784:966785 @@ -1,5 +1,5 @@ - + @@ -13,14 +13,18 @@ - - + + + + +