summaryrefslogtreecommitdiff
path: root/vcl/source/window
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2012-12-05 10:07:46 +0000
committerCaolán McNamara <caolanm@redhat.com>2012-12-05 10:12:49 +0000
commitb395637a39fca0512f159159495a06cf3cb2b8de (patch)
tree4c57f0acc5274b3735b70fa096e251ff013dca9b /vcl/source/window
parent307ac3f53d670a28e60471859aed03e4e13519d6 (diff)
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/window')
-rw-r--r--vcl/source/window/builder.cxx7
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
{