[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    playground/libs/webkitkde
From:       Urs Wolfer <uwolfer () kde ! org>
Date:       2009-05-11 21:12:19
Message-ID: 1242076339.120654.19480.nullmailer () svn ! kde ! org
[Download RAW message or body]

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 @@
 <!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
-<kpartgui name="webkitpart" version="5">
+<kpartgui name="webkitpart" version="6">
 <MenuBar>
  <Menu name="file">
   <Action name="saveDocument" />
@@ -13,14 +13,18 @@
   <Action name="find" />
  </Menu>
  <Menu name="view">
-  <Action name="incFontSizes" />
-  <Action name="decFontSizes" />
+  <Action name="zoomIn" />
+  <Action name="zoomOut" />
+  <Action name="zoomNormal" />
+  <Action name="zoomTextOnly" />
+  <Separator />
   <Action name="viewDocumentSource" />
   <ActionList name="debugScriptList" />
  </Menu>
 </MenuBar>
 <ToolBar name="htmlToolBar" iconText="icononly" iconSize="22" hidden="true"><text>HTML Toolbar</text>
- <Action name="incFontSizes" />
- <Action name="decFontSizes" />
+  <Action name="zoomIn" />
+  <Action name="zoomOut" />
+  <Action name="zoomNormal" />
 </ToolBar>
 </kpartgui>
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic