Fix problem with sbs config xml parsing. Make sure to trim error message to avoid erroneously adding an error when there is none. Fix problem with adding system includes for variants.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE componentDefinition [
<!ENTITY common_implementations SYSTEM "CBA_commonImpl.inc">
<!ENTITY common_source SYSTEM "CBA_commonSrc.inc">
]>
<!-- Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). -->
<!-- All rights reserved. -->
<!-- This component and the accompanying materials are made available -->
<!-- under the terms of the License "Eclipse Public License v1.0" -->
<!-- which accompanies this distribution, and is available -->
<!-- at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<componentDefinition xmlns="http://www.nokia.com/sdt/emf/component"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<enumPropertyDeclaration qualifiedName="com.nokia.sdt.series60.CBA.Type">
<enumElement value="R_AVKON_SOFTKEYS_EMPTY"/>
<enumElement value="R_AVKON_SOFTKEYS_EMPTY_WITH_IDS"/>
<enumElement value="R_AVKON_SOFTKEYS_OK_EMPTY"/>
<enumElement value="R_AVKON_SOFTKEYS_SELECT_CANCEL"/>
<enumElement value="R_AVKON_SOFTKEYS_OK_CANCEL"/>
<enumElement value="R_AVKON_SOFTKEYS_OK_DETAILS"/>
<enumElement value="R_AVKON_SOFTKEYS_CALL_CANCEL"/>
<enumElement value="R_AVKON_SOFTKEYS_OPTIONS_BACK"/>
<enumElement value="R_AVKON_SOFTKEYS_OPTIONS_DONE"/>
<enumElement value="R_AVKON_SOFTKEYS_OPTIONS_CANCEL"/>
<enumElement value="R_AVKON_SOFTKEYS_OPTIONS_EXIT"/>
<enumElement value="R_AVKON_SOFTKEYS_OK_BACK"/>
<enumElement value="R_AVKON_SOFTKEYS_CANCEL"/>
<enumElement value="R_AVKON_SOFTKEYS_BACK"/>
<enumElement value="R_AVKON_SOFTKEYS_CLOSE"/>
<enumElement value="R_AVKON_SOFTKEYS_DONE_BACK"/>
<enumElement value="R_AVKON_SOFTKEYS_DONE_CANCEL"/>
<enumElement value="R_AVKON_SOFTKEYS_MARK_BACK"/>
<enumElement value="R_AVKON_SOFTKEYS_UNMARK_BACK"/>
<enumElement value="R_AVKON_SOFTKEYS_YES_NO"/>
<enumElement value="R_AVKON_SOFTKEYS_UNLOCK_EMPTY"/>
<enumElement value="R_AVKON_SOFTKEYS_SAVE_BACK"/>
<enumElement value="R_AVKON_SOFTKEYS_SHOW_CANCEL"/>
<enumElement value="R_AVKON_SOFTKEYS_SHOW_EXIT"/>
<enumElement value="R_AVKON_SOFTKEYS_EXIT"/>
<enumElement value="R_AVKON_SOFTKEYS_READ_EXIT"/>
<enumElement value="R_AVKON_SOFTKEYS_LISTEN_EXIT"/>
<enumElement value="R_AVKON_SOFTKEYS_SEARCH_BACK"/>
<enumElement value="R_AVKON_SOFTKEYS_AGAIN_QUIT"/>
<enumElement value="R_AVKON_SOFTKEYS_QUIT"/>
<enumElement value="R_AVKON_SOFTKEYS_INSERT_BACK"/>
</enumPropertyDeclaration>
<enumPropertyDeclaration qualifiedName="com.nokia.sdt.series60.CBA.Id">
<enumElement value="" displayValue="None"/>
<enumElement value="UNIQUE"/>
<enumElement value="EAknSoftkeyOk"/>
<enumElement value="EAknSoftkeyCancel"/>
<enumElement value="EAknSoftkeySelect"/>
<enumElement value="EAknSoftkeyOptions"/>
<enumElement value="EAknSoftkeyBack"/>
<enumElement value="EAknSoftkeyMark"/>
<enumElement value="EAknSoftkeyUnmark"/>
<enumElement value="EAknSoftkeyInsert"/>
<enumElement value="EAknSoftkeyYes"/>
<enumElement value="EAknSoftkeyNo"/>
<enumElement value="EAknSoftkeyDone"/>
<enumElement value="EAknSoftkeyClose"/>
<enumElement value="EAknSoftkeyExit"/>
<enumElement value="EAknSoftkeyClear"/>
<enumElement value="EAknSoftkeyUnlock"/>
<enumElement value="EAknSoftkeySave"/>
<enumElement value="EAknSoftkeyShow"/>
<enumElement value="EAknSoftkeyListen"/>
<enumElement value="EAknSoftkeyRead"/>
<enumElement value="EAknSoftkeySearch"/>
<enumElement value="EAknSoftkeyEmpty"/>
<enumElement value="EAknSoftkeyLock"/>
<enumElement value="EAknSoftkeyCall"/>
<enumElement value="EAknSoftkeyAgain"/>
<enumElement value="EAknSoftkeyQuit"/>
<enumElement value="EAknSoftkeyDetails"/>
<enumElement value="EAknSoftkeyNext"/>
</enumPropertyDeclaration>
<compoundPropertyDeclaration editableType="com.nokia.sdt.series60.CBA.Type"
qualifiedName="com.nokia.sdt.series60.CBAProperty">
<property name="leftText" type="localizedString" default=""
descriptionKey="leftTextDescription"
editorClass="com.nokia.sdt.symbian.ui.editors.ScalableTextEditorFactory" />
<enumProperty name="leftId" type="com.nokia.sdt.series60.CBA.Id" default="EAknSoftkeyOptions"
descriptionKey="leftIdDescription" />
<property name="rightText" type="localizedString" default=""
descriptionKey="rightTextDescription"
editorClass="com.nokia.sdt.symbian.ui.editors.ScalableTextEditorFactory" />
<enumProperty name="rightId" type="com.nokia.sdt.series60.CBA.Id" default="EAknSoftkeyExit"
descriptionKey="rightIdDescription" />
<enumProperty name="type" type="string" category="Hidden" />
</compoundPropertyDeclaration>
<component friendlyName="%friendlyName"
qualifiedName="com.nokia.sdt.series60.CBA"
baseComponent="com.nokia.sdt.series60.CBABase"
category="System"
instanceNameRoot="controlPane"
version="1.0">
<symbian sdkName="com.nokia.series60" minSDKVersion="2.0" maxSDKVersion="3.1.9"
className="CEikButtonGroupContainer" classHelpTopic=""
resourceType="CBA" resourceHelpTopic="" />
<documentation>
<information>%information</information>
</documentation>
<designerImages smallIconFile="CBA_sm.png"
largeIconFile="CBA.png"/>
<properties>
<compoundProperty category="Behavior" name="info" type="com.nokia.sdt.series60.CBAProperty"
descriptionKey="infoKey" />
</properties>
<implementations>
&common_implementations;
</implementations>
<events>
<event name="leftSoftKeyPressed" category="ControlPane"
handlerNameTemplate="Handle{title(name)}LeftSoftKeyPressedL"
descriptionKey="leftSoftKeyPressedDescription"
/>
<event name="rightSoftKeyPressed" category="ControlPane"
handlerNameTemplate="Handle{title(name)}RightSoftKeyPressedL"
descriptionKey="rightSoftKeyPressedDescription"
/>
</events>
<sourceMapping>
<select property="info">
<!-- only emit something for custom CBAs -->
<choice value="com.nokia.sdt.series60.CBA.Type.CUSTOM">
<!-- this struct MOVES between uikon.rh and eikon.rh with each release! -->
<mapResource struct="CBA" headers="uikon.rh eikon.rh">
<mapResourceMember property="info" member="buttons[0]" struct="CBA_BUTTON" headers="uikon.rh eikon.rh">
<mapEnumMember property="leftId" member="id"
headers="avkon.rsg"
uniqueValue="UNIQUE"
nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_COMMANDS"
/>
<mapSimpleMember property="leftText" member="txt"/>
</mapResourceMember>
<mapResourceMember property="info" member="buttons[1]" struct="CBA_BUTTON" headers="uikon.rh eikon.rh">
<mapEnumMember property="rightId" member="id"
headers="avkon.rsg"
uniqueValue="UNIQUE"
nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_COMMANDS"
/>
<mapSimpleMember property="rightText" member="txt"/>
</mapResourceMember>
</mapResource>
</choice>
<choice/>
</select>
</sourceMapping>
<sourceGen forms="AppUi AknView HandleCommandSwitchDispatch">
<inline scope="prototype">
include("cbaLibrary.js")
</inline>
<template form="AknView" phase="MainSystemIncludes"><![CDATA[
#include <eikbtgpc.h>
]]> </template>
&common_source;
</sourceGen>
</component>
</componentDefinition>