diff options
author | Caolán McNamara <caolanm@redhat.com> | 2012-12-05 10:07:46 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2012-12-05 10:12:49 +0000 |
commit | b395637a39fca0512f159159495a06cf3cb2b8de (patch) | |
tree | 4c57f0acc5274b3735b70fa096e251ff013dca9b /vcl/source | |
parent | fix for bnc#791731 preserve cell formatting of datapilot area ( (diff) | |
download | core-b395637a39fca0512f159159495a06cf3cb2b8de.tar.gz core-b395637a39fca0512f159159495a06cf3cb2b8de.zip |
the builder now always owns all its widgets
and improve warning about un-found toplevel widgets to not
warn about unfound widgets if the toplevel id is found
but refers to the passed in parent
Change-Id: Ieaea3cf4d0342e0f65b330a06777d81a119ace14
Diffstat (limited to 'vcl/source')
-rw-r--r-- | vcl/source/window/builder.cxx | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/vcl/source/window/builder.cxx b/vcl/source/window/builder.cxx index e5711e989615..9acdad152356 100644 --- a/vcl/source/window/builder.cxx +++ b/vcl/source/window/builder.cxx @@ -121,6 +121,7 @@ VclBuilder::VclBuilder(Window *pParent, OUString sUIDir, OUString sUIFile, OStri , m_sHelpRoot(OUStringToOString(sUIFile, RTL_TEXTENCODING_UTF8)) , m_sProductName(OUStringToOString(utl::ConfigManager::getProductName(), RTL_TEXTENCODING_UTF8)) , m_pParent(pParent) + , m_bToplevelParentFound(false) , m_pParserState(new ParserState) { m_bToplevelHasDeferredInit = (pParent && pParent->IsDialog()) ? ((Dialog*)pParent)->isDeferredInit() : false; @@ -239,7 +240,7 @@ VclBuilder::VclBuilder(Window *pParent, OUString sUIDir, OUString sUIFile, OStri //drop maps, etc. that we don't need again delete m_pParserState; - SAL_WARN_IF(!m_sID.isEmpty() && !get_by_name(m_sID), "vcl.layout", + SAL_WARN_IF(!m_sID.isEmpty() && (!m_bToplevelParentFound && !get_by_name(m_sID)), "vcl.layout", "Requested top level widget \"" << m_sID.getStr() << "\" not found in " << sUIFile); } @@ -249,8 +250,7 @@ VclBuilder::~VclBuilder() for (std::vector<WinAndId>::reverse_iterator aI = m_aChildren.rbegin(), aEnd = m_aChildren.rend(); aI != aEnd; ++aI) { - if (aI->m_bOwned) - delete aI->m_pWindow; + delete aI->m_pWindow; } } @@ -905,6 +905,7 @@ Window *VclBuilder::insertObject(Window *pParent, const OString &rClass, rID.getStr() << ", set helpid " << pCurrentChild->GetHelpId().getStr()); } + m_bToplevelParentFound = true; } else { |