Bug 118399 - steve.ttf font does not include Icelandic characters
Summary: steve.ttf font does not include Icelandic characters
Status: RESOLVED FIXED
Alias: None
Product: blinken
Classification: Applications
Component: general (show other bugs)
Version: 0.1
Platform: Gentoo Packages Linux
: NOR normal
Target Milestone: ---
Assignee: Albert Astals Cid
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-12-15 19:54 UTC by Bj
Modified: 2006-02-23 22:55 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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;