diff options
author | Caolán McNamara <caolanm@redhat.com> | 2012-12-05 16:19:57 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2012-12-05 16:29:21 +0000 |
commit | c2b8f129f378a23d626c4985238faa813cbaf381 (patch) | |
tree | 0922424bb9c7c8f0c3ba802ae6b089abc7b71855 /vcl | |
parent | ffc75b57349418db21ebf71086a7750d38f1280b (diff) |
allow arbitrary icons from our icon-themes as button images
Change-Id: Ibe02b485e265ac6274b0aab51676efb0e1d280ae
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/source/window/builder.cxx | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/vcl/source/window/builder.cxx b/vcl/source/window/builder.cxx index 9acdad152356..596bf1897a49 100644 --- a/vcl/source/window/builder.cxx +++ b/vcl/source/window/builder.cxx @@ -204,17 +204,22 @@ VclBuilder::VclBuilder(Window *pParent, OUString sUIDir, OUString sUIFile, OStri { PushButton *pTarget = get<PushButton>(aI->m_sID); FixedImage *pImage = get<FixedImage>(aI->m_sValue); - aImagesToBeRemoved.insert(aI->m_sValue); - const OString &rImage = m_pParserState->m_aStockMap[aI->m_sValue]; - SymbolType eType = mapStockToSymbol(rImage); - SAL_WARN_IF(!pTarget || !pImage || eType == SYMBOL_NOSYMBOL, + SAL_WARN_IF(!pTarget || !pImage, "vcl", "missing elements of button/image/stock"); - if (!pTarget || eType == SYMBOL_NOSYMBOL) + if (!pTarget || !pImage) continue; + aImagesToBeRemoved.insert(aI->m_sValue); - //to-do, situation where image isn't a stock image - if (pTarget && eType != SYMBOL_NOSYMBOL) + VclBuilder::stringmap::iterator aFind = m_pParserState->m_aStockMap.find(aI->m_sValue); + if (aFind == m_pParserState->m_aStockMap.end()) + pTarget->SetModeImage(pImage->GetImage()); + else { + const OString &rImage = aFind->second; + SymbolType eType = mapStockToSymbol(rImage); + SAL_WARN_IF(eType == SYMBOL_NOSYMBOL, "vcl", "missing stock image element for button"); + if (eType == SYMBOL_NOSYMBOL) + continue; pTarget->SetSymbol(eType); if (eType == SYMBOL_IMAGE) pTarget->SetModeImage(Bitmap(VclResId(mapStockToImageResource(rImage)))); |