--- a/src/hbcore/utils/hbtypefaceinfodatabase_p.cpp Wed Jun 23 18:33:25 2010 +0300
+++ b/src/hbcore/utils/hbtypefaceinfodatabase_p.cpp Tue Jul 06 14:36:53 2010 +0300
@@ -50,6 +50,7 @@
#define TITLE_STRING "title"
#define DIGITAL_STRING "digital"
#define UNDEFINED_STRING "undefined"
+#define ALIAS_STRING "alias"
#define TYPEFACE_METRICS_FILE_STEM "typeface_metrics_"
static const int LARGEST_SIZE = 100;
@@ -91,6 +92,15 @@
return encoded;
}
+static bool isAliasRole(const QString &roleName)
+{
+ bool alias(false); // return value
+ QString name = roleName.toLower();
+ if (name == ALIAS_STRING) {
+ alias = true;
+ }
+ return alias;
+}
/*!
Returns path to a writable location that should be used as a base storage folder for
dynamic metric creation.
@@ -165,19 +175,25 @@
}
else {
QString role;
- QString family;
+ QString family, aliasFamily;
bool isBold;
- while (parser->readMapping( role, family, isBold)) {
+ while (parser->readMapping( role, family, aliasFamily, isBold)) {
HbTypefaceInfoItem item( mType );
HbFontSpec::Role roleEnum;
if (encodeRole(role, roleEnum)){
item.mRoleEnum = roleEnum;
item.mFamily = family;
item.mIsBold = isBold;
+ item.mIsAlias = false;
mTypefaceInfoVector->append( item );
}
- else {
- // role might be an alias. Not required functionality. Ignore
+ else if (isAliasRole(role)) {
+ item.mRoleEnum = HbFontSpec::Undefined;
+ item.mFamily = aliasFamily;
+ item.mAliasedFamily = family;
+ item.mIsBold = isBold;
+ item.mIsAlias = true;
+ mTypefaceInfoVector->append( item );
}
}
@@ -189,7 +205,7 @@
if( item->mRoleEnum == HbFontSpec::Secondary ) {
secondaryFontspec = item;
}
- if( item->mRoleEnum == HbFontSpec::Undefined ) {
+ if (item->mRoleEnum == HbFontSpec::Undefined && item->mIsAlias == false) {
undefinedFontspec = item;
}
}
@@ -226,7 +242,8 @@
-bool HbTypefaceInfoDatabase::readTypefaceMetricsFile( HbTypefaceXmlParser *parser, HbTypefaceInfoItem *typeFaceInfoItem )
+bool HbTypefaceInfoDatabase::readTypefaceMetricsFile( HbTypefaceXmlParser *parser,
+ HbTypefaceInfoItem *typeFaceInfoItem )
{
int numPoints(0);
@@ -254,7 +271,8 @@
delete file;
#ifdef HBTYPEFACEINFO_DEBUG_ENABLE
- qDebug("HbDownsizeInfo::readTypefaceMetricsFile: typeface metric filename: %s", typefaceMetricsFileName.toAscii().constData());
+ qDebug("HbDownsizeInfo::readTypefaceMetricsFile: typeface metric filename: %s",
+ typefaceMetricsFileName.toAscii().constData());
#endif
parser->setFilePath(typefaceMetricsFileName);