Bug 118399

Summary: steve.ttf font does not include Icelandic characters
Product: [Applications] blinken Reporter: Bj <nifgraup>
Component: generalAssignee: Albert Astals Cid <aacid>
Status: RESOLVED FIXED    
Severity: normal CC: jlp
Priority: NOR    
Version: 0.1   
Target Milestone: ---   
Platform: Gentoo Packages   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Bj 2005-12-15 19:54:25 UTC
Version:           0.1 (using KDE KDE 3.5.0)
Installed from:    Gentoo Packages
OS:                Linux

The steve.ttf font does not include the characters þ and ð, making the program very hard to translate into Icelandic.
Comment 1 Albert Astals Cid 2005-12-15 23:09:26 UTC
Hi, true, the problem is that i'm not a font designer, well, i'm just horrible in anything that involves proper drawing, so we have two possible solutions:

a) You or someone else modifiy the steve.ttf font to include characters
b) I add an option so that you (when translating) can indicate blinken not to use steve.ttf but system default font.

What do you think? Are you an artistic type of user? If so i can give a few directions on how to produce the missing glyphs.
Comment 2 Jure Repinc 2006-01-21 15:44:26 UTC
Same problem here with Slovenian translation. I think that this additional option to control the font used would be very usefull.

Some pointers on how to modify the font would also be great.
Comment 3 Albert Astals Cid 2006-02-23 22:55:17 UTC
SVN commit 512902 by aacid:

The "easy" fix for steve.ttf not having "strange" characters
BUGS: 118399


 M  +21 -11    blinken.cpp  
 M  +3 -0      blinken.h  


--- branches/KDE/3.5/kdeedu/blinken/src/blinken.cpp #512901:512902
@@ -74,6 +74,10 @@
 	m_helpMenu = new KHelpMenu(this, kapp->aboutData());
 	
 	for (int i = 0; i < 3; i++) m_overLevels[i] = false;
+	
+	QString aux = i18n("If the Steve font that is used by bliken by default to show status messages does not support any of the characters of your language, please translate that message to 1 and KDE standard font will be used to show the texts, if not translate it to 0", "0");
+	
+	m_alwaysUseNonCoolFont = aux == "1";
 }
 
 blinken::~blinken()
@@ -158,11 +162,14 @@
 			p.drawLine(186, 227, 199, 214); 
 		}
 #endif
-		p.drawRect(m_fontRect);
-		if (blinkenSettings::customFont())
+		if (!m_alwaysUseNonCoolFont)
 		{
-			p.drawLine(437, 214, 450, 227); 
-			p.drawLine(437, 227, 450, 214); 
+			p.drawRect(m_fontRect);
+			if (blinkenSettings::customFont())
+			{
+				p.drawLine(437, 214, 450, 227); 
+				p.drawLine(437, 227, 450, 214); 
+			}
 		}
 
 		// draw the options' text
@@ -182,10 +189,13 @@
 		p.drawText(area, Qt::AlignCenter, sounds);
 		m_soundRect = m_soundRect.unite(area);
 #endif
-		area = p.boundingRect(QRect(), Qt::AlignAuto, font);
-		area.moveBy(426 - area.width(), 221 - (area.height() / 2));
-		p.drawText(area, Qt::AlignCenter, font);
-		m_fontRect = m_fontRect.unite(area);
+		if (!m_alwaysUseNonCoolFont)
+		{
+			area = p.boundingRect(QRect(), Qt::AlignAuto, font);
+			area.moveBy(426 - area.width(), 221 - (area.height() / 2));
+			p.drawText(area, Qt::AlignCenter, font);
+			m_fontRect = m_fontRect.unite(area);
+		}
 		
 		p.setFont(oFont);
 		p.setPen(oPen);
@@ -279,7 +289,7 @@
 		hsd->showLevel(1);
 		m_updateButtonHighlighting = true;
 	}
-	else if (m_showPreferences && m_fontRect.contains(e -> pos()))
+	else if (m_showPreferences && m_fontRect.contains(e -> pos()) && !m_alwaysUseNonCoolFont)
 	{
 		blinkenSettings::setCustomFont(!blinkenSettings::customFont());
 		blinkenSettings::writeConfig();
@@ -594,7 +604,7 @@
 	}
 	
 	QFont f;
-	if (blinkenSettings::customFont()) f = QFont("Steve");
+	if (blinkenSettings::customFont() && !m_alwaysUseNonCoolFont) f = QFont("Steve");
 	p.setFont(f);
 	f.setPointSize(fontUtils::fontSize(p, text, 380, 30));
 	p.setFont(f);
@@ -751,7 +761,7 @@
 		haveToUpdate = true;
 	}
 	
-	if (m_showPreferences && m_fontRect.contains(p))
+	if (m_showPreferences && m_fontRect.contains(p) && !m_alwaysUseNonCoolFont)
 	{
 		m_overFont = true;
 		haveToUpdate = true;
--- branches/KDE/3.5/kdeedu/blinken/src/blinken.h #512901:512902
@@ -76,6 +76,9 @@
 		// if should update the highlighting after the next repaint
 		bool m_updateButtonHighlighting;
 		
+		// use always the non-cool font?
+		bool m_alwaysUseNonCoolFont;
+		
 		blinkenGame::color m_highlighted;
 		QTimer *m_unhighlighter;