void CharStyle::runFeatures(const QStringList& featureList, const CharStyle* parent) { QStringList::ConstIterator it; for (it = featureList.begin(); it != featureList.end(); ++it) { QString feature = it->trimmed(); if (feature == INHERIT) { if (parent) runFeatures(parent->features(), dynamic_cast<const CharStyle*>(parent->parentStyle())); } else if (feature == BOLD) { // select bolder font } else if (feature == ITALIC) { // select italic font } else if (feature == UNDERLINE) { m_Effects |= ScStyle_Underline; } else if (feature == UNDERLINEWORDS) { m_Effects |= ScStyle_UnderlineWords; } else if (feature == STRIKETHROUGH) { m_Effects |= ScStyle_Strikethrough; } else if (feature == SUPERSCRIPT) { m_Effects |= ScStyle_Superscript; } else if (feature == SUBSCRIPT) { m_Effects |= ScStyle_Subscript; } else if (feature == OUTLINE) { m_Effects |= ScStyle_Outline; } else if (feature == SHADOWED) { m_Effects |= ScStyle_Shadowed; } else if (feature == ALLCAPS) { m_Effects |= ScStyle_AllCaps; } else if (feature == SMALLCAPS) { m_Effects |= ScStyle_SmallCaps; } else if (feature == SHYPHEN) { m_Effects |= ScStyle_HyphenationPossible; } else if (feature.startsWith("-")) { QString no_feature = feature.mid(1); if (no_feature == BOLD) { // deselect bolder font } else if (no_feature == ITALIC) { // deselect italic font } else if (no_feature == UNDERLINE) { m_Effects &= ~ScStyle_Underline; } else if (no_feature == UNDERLINEWORDS) { m_Effects &= ~ScStyle_UnderlineWords; } else if (no_feature == STRIKETHROUGH) { m_Effects &= ~ScStyle_Strikethrough; } else if (no_feature == SUPERSCRIPT) { m_Effects &= ~ScStyle_Superscript; } else if (no_feature == SUBSCRIPT) { m_Effects &= ~ScStyle_Subscript; } else if (no_feature == OUTLINE) { m_Effects &= ~ScStyle_Outline; } else if (no_feature == SHADOWED) { m_Effects &= ~ScStyle_Shadowed; } else if (no_feature == ALLCAPS) { m_Effects &= ~ScStyle_AllCaps; } else if (no_feature == SMALLCAPS) { m_Effects &= ~ScStyle_SmallCaps; } else { qDebug("CharStyle: unknown feature: %s", feature.toLocal8Bit().constData()); } } else { qDebug("CharStyle: unknown feature: %s", feature.toLocal8Bit().constData()); } } }