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

List:       kde-core-devel
Subject:    Patch: switch khtml to use pixel sizes
From:       Rik Hemsley <rik () kde ! org>
Date:       2000-09-30 22:19:01
[Download RAW message or body]

This patch makes khtml use pixel sizes when selecting fonts. It is a 
different approach to the patch I posted before.

On most systems you should not notice a difference, while of XF86 4 fonts 
should be a reasonable size now.

This screws up kmail a little, but I can fix that :)

Rik

["khtml.diff" (text/x-c++)]

Index: khtml_settings.cc
===================================================================
RCS file: /home/kde/kdelibs/khtml/khtml_settings.cc,v
retrieving revision 1.27
diff -u -3 -p -r1.27 khtml_settings.cc
--- khtml_settings.cc	2000/09/26 22:41:26	1.27
+++ khtml_settings.cc	2000/09/30 22:14:22
@@ -20,6 +20,7 @@
 #include "khtml_settings.h"
 #include "khtmldefaults.h"
 #include <kglobalsettings.h>
+#include <ksimpleconfig.h>
 #include <kconfig.h>
 #include <kapp.h>
 #include <kglobal.h>
@@ -299,13 +300,42 @@ bool KHTMLSettings::isCSSEnabled( const 
 void KHTMLSettings::resetFontSizes()
 {
   m_fontSizes.clear();
-  for ( int i = 0; i < MAXFONTSIZES; i++ )
-        if( m_fontSize == 0 ) // small
-          m_fontSizes << defaultSmallFontSizes[ i ];
-        else if( m_fontSize == 2 ) // large
-          m_fontSizes << defaultLargeFontSizes[ i ];
-        else
-          m_fontSizes << defaultMediumFontSizes[ i ];
+
+  switch (m_fontSize) {
+
+    case 0: // small
+      for (int i = 0; i < MAXFONTSIZES; i++)
+        m_fontSizes << defaultSmallFontSizes[i];
+      break;
+
+    case 2: // large
+      for (int i = 0; i < MAXFONTSIZES; i++)
+        m_fontSizes << defaultLargeFontSizes[i];
+      break;
+
+    case 3: // custom
+      {
+        KSimpleConfig * c = new KSimpleConfig("kdeglobals", true);
+        c->setGroup("CustomHTMLFontSizes");
+
+        for (int i = 0; i < MAXFONTSIZES; i++)
+          m_fontSizes <<
+            c->readNumEntry(
+                "Size_" + QString::number(i),
+                defaultMediumFontSizes[i] // Use medium set as default.
+            );
+
+        delete c;
+        c = 0;
+      }
+      break;
+
+    case 1:
+    default: // medium
+      for (int i = 0; i < MAXFONTSIZES; i++)
+        m_fontSizes << defaultMediumFontSizes[i];
+      break;
+  }
 }
 
 void KHTMLSettings::setFontSizes(const QValueList<int> &_newFontSizes )
Index: css/cssstyleselector.cpp
===================================================================
RCS file: /home/kde/kdelibs/khtml/css/cssstyleselector.cpp,v
retrieving revision 1.61
diff -u -3 -p -r1.61 cssstyleselector.cpp
--- css/cssstyleselector.cpp	2000/09/27 21:26:51	1.61
+++ css/cssstyleselector.cpp	2000/09/30 22:14:38
@@ -1603,8 +1603,7 @@ void khtml::applyRule(khtml::RenderStyle
         QValueList<int> standardSizes = e->ownerDocument()->view()->part()->fontSizes();
         if(e->parentNode())
         {
-            QFontInfo fi(e->parentNode()->style()->font());
-            oldSize = fi.pointSize();
+            oldSize = e->parentNode()->style()->font().pointSize();
         }
         else
             oldSize = standardSizes[3];
@@ -1693,7 +1692,7 @@ void khtml::applyRule(khtml::RenderStyle
             if(diff < .15) // 15% deviation, otherwise we use a scaled font...
                 size = bestSize;
         }
-        f.setPointSize(size);
+        f.setPixelSize(size);
         //KGlobal::charsets()->setQFont(f, e->ownerDocument()->view()->part()->settings()->charset);
         style->setFont(f);
         return;
Index: html/html_documentimpl.cpp
===================================================================
RCS file: /home/kde/kdelibs/khtml/html/html_documentimpl.cpp,v
retrieving revision 1.86
diff -u -3 -p -r1.86 html_documentimpl.cpp
--- html/html_documentimpl.cpp	2000/09/27 11:34:46	1.86
+++ html/html_documentimpl.cpp	2000/09/30 22:14:43
@@ -392,7 +392,7 @@ void HTMLDocumentImpl::attach(KHTMLView 
         size = settings->minFontSize();
     QFont f = KGlobalSettings::generalFont();
     f.setFamily(settings->stdFontName());
-    f.setPointSize(size);
+    f.setPixelSize(size);
     //kdDebug() << "HTMLDocumentImpl::attach: setting to charset " << settings->charset() << endl; 
     KGlobal::charsets()->setQFont(f, settings->charset());
     m_style->setFont(f);
@@ -448,7 +448,7 @@ void HTMLDocumentImpl::applyChanges(bool
             size = settings->minFontSize();
         QFont f = KGlobalSettings::generalFont();
         f.setFamily(settings->stdFontName());
-        f.setPointSize(size);
+        f.setPixelSize(size);
 	//kdDebug() << "HTMLDocumentImpl::applyChanges: setting to charset " << settings->charset() << endl; 
 	KGlobal::charsets()->setQFont(f, settings->charset());
 	//kdDebug() << "HTMLDocumentImpl::applyChanges " << f.charSet() << f.family() << endl; 


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

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